@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
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
.agent-connect__title-group {
|
|
29
29
|
display: grid;
|
|
30
|
-
gap:
|
|
30
|
+
gap: var(--sigvelo-spacing-1);
|
|
31
31
|
min-inline-size: 0;
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -45,17 +45,17 @@
|
|
|
45
45
|
margin: 0;
|
|
46
46
|
color: var(--sigvelo-color-text-muted);
|
|
47
47
|
font-size: var(--sigvelo-text-compact);
|
|
48
|
-
line-height:
|
|
48
|
+
line-height: var(--sigvelo-leading-snug);
|
|
49
49
|
text-wrap: pretty;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
.agent-connect__targets {
|
|
53
53
|
display: grid;
|
|
54
54
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
55
|
-
gap:
|
|
55
|
+
gap: var(--sigvelo-spacing-1);
|
|
56
56
|
min-inline-size: 0;
|
|
57
57
|
margin: 0;
|
|
58
|
-
padding:
|
|
58
|
+
padding: var(--sigvelo-spacing-1);
|
|
59
59
|
border: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
60
60
|
var(--sigvelo-color-neutral-border-subtle);
|
|
61
61
|
border-radius: var(--sigvelo-radius-md);
|
|
@@ -66,9 +66,9 @@
|
|
|
66
66
|
display: inline-flex;
|
|
67
67
|
align-items: center;
|
|
68
68
|
justify-content: center;
|
|
69
|
-
min-block-size:
|
|
69
|
+
min-block-size: var(--sigvelo-spacing-7);
|
|
70
70
|
min-inline-size: 0;
|
|
71
|
-
padding: 0
|
|
71
|
+
padding: 0 var(--sigvelo-spacing-2);
|
|
72
72
|
border: 0;
|
|
73
73
|
border-radius: var(--sigvelo-radius-sm);
|
|
74
74
|
background: transparent;
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
font: inherit;
|
|
78
78
|
font-size: var(--sigvelo-text-xs);
|
|
79
79
|
font-weight: var(--sigvelo-font-weight-semibold);
|
|
80
|
-
line-height:
|
|
80
|
+
line-height: var(--sigvelo-leading-tight);
|
|
81
81
|
overflow-wrap: anywhere;
|
|
82
82
|
text-align: center;
|
|
83
83
|
}
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
|
|
94
94
|
@media (pointer: coarse) {
|
|
95
95
|
.agent-connect__target {
|
|
96
|
-
min-block-size:
|
|
96
|
+
min-block-size: var(--sigvelo-spacing-10);
|
|
97
97
|
padding-inline: var(--sigvelo-spacing-3);
|
|
98
98
|
}
|
|
99
99
|
}
|
|
@@ -113,8 +113,8 @@
|
|
|
113
113
|
background: var(--sigvelo-color-surface);
|
|
114
114
|
color: var(--sigvelo-color-text);
|
|
115
115
|
box-shadow:
|
|
116
|
-
var(--sigvelo-
|
|
117
|
-
inset 0 0 0
|
|
116
|
+
var(--sigvelo-elevation-raised),
|
|
117
|
+
inset 0 0 0 var(--sigvelo-border-width) var(--sigvelo-color-primary-border-subtle);
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
.agent-connect .code-block__container {
|
|
@@ -16,9 +16,12 @@
|
|
|
16
16
|
box-shadow: var(--sigvelo-recipe-focus-shadow);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
/* Matches .dialog__backdrop, including why one 8px radius is the affordable
|
|
20
|
+
version of this effect. */
|
|
19
21
|
.alert-dialog__backdrop {
|
|
20
22
|
background-color: var(--sigvelo-color-backdrop);
|
|
21
|
-
|
|
23
|
+
backdrop-filter: var(--sigvelo-glass-filter);
|
|
24
|
+
z-index: var(--sigvelo-z-overlay);
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
.alert-dialog__popup {
|
|
@@ -28,7 +31,7 @@
|
|
|
28
31
|
inset-block-start: 50%;
|
|
29
32
|
inset-inline-start: 50%;
|
|
30
33
|
translate: -50% -50%;
|
|
31
|
-
z-index:
|
|
34
|
+
z-index: var(--sigvelo-z-overlay);
|
|
32
35
|
inline-size: calc(100% - var(--sigvelo-control-height-sm));
|
|
33
36
|
max-inline-size: 28rem;
|
|
34
37
|
max-block-size: calc(100dvb - var(--sigvelo-control-height-sm));
|
|
@@ -81,10 +81,10 @@
|
|
|
81
81
|
|
|
82
82
|
@media (any-pointer: coarse) {
|
|
83
83
|
.app-top-bar__button {
|
|
84
|
-
inline-size:
|
|
85
|
-
min-inline-size:
|
|
86
|
-
block-size:
|
|
87
|
-
min-block-size:
|
|
84
|
+
inline-size: var(--sigvelo-spacing-11);
|
|
85
|
+
min-inline-size: var(--sigvelo-spacing-11);
|
|
86
|
+
block-size: var(--sigvelo-spacing-11);
|
|
87
|
+
min-block-size: var(--sigvelo-spacing-11);
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
|
package/dist/styles/approval.css
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
display: flex;
|
|
13
13
|
align-items: baseline;
|
|
14
14
|
gap: var(--sigvelo-spacing-2);
|
|
15
|
-
line-height:
|
|
15
|
+
line-height: var(--sigvelo-leading-snug);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
.approval__question {
|
|
@@ -159,12 +159,6 @@
|
|
|
159
159
|
gap: var(--sigvelo-spacing-1-5);
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
.approval__kbd {
|
|
163
|
-
font-family: inherit;
|
|
164
|
-
font-size: 0.75em;
|
|
165
|
-
opacity: 0.75;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
162
|
.approval__status:not(.sigvelo-visually-hidden) {
|
|
169
163
|
color: var(--sigvelo-color-danger-text);
|
|
170
164
|
font-size: var(--sigvelo-text-xs);
|
package/dist/styles/artifact.css
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
font-family: inherit;
|
|
6
6
|
color: var(--sigvelo-color-text);
|
|
7
7
|
/* Shadow-led elevation: no perimeter border */
|
|
8
|
-
background-color: var(--sigvelo-color-surface);
|
|
9
|
-
border-radius: var(--sigvelo-radius-lg
|
|
10
|
-
box-shadow: var(--sigvelo-
|
|
8
|
+
background-color: var(--sigvelo-color-surface-raised);
|
|
9
|
+
border-radius: var(--sigvelo-radius-lg);
|
|
10
|
+
box-shadow: var(--sigvelo-elevation-raised);
|
|
11
11
|
overflow: hidden;
|
|
12
12
|
}
|
|
13
13
|
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
margin-block-start: var(--sigvelo-spacing-0-5);
|
|
42
42
|
font-size: var(--sigvelo-text-compact);
|
|
43
43
|
color: var(--sigvelo-color-text-muted);
|
|
44
|
-
line-height:
|
|
44
|
+
line-height: var(--sigvelo-leading-snug);
|
|
45
45
|
overflow-wrap: anywhere;
|
|
46
46
|
text-wrap: pretty;
|
|
47
47
|
}
|
|
@@ -63,6 +63,6 @@
|
|
|
63
63
|
|
|
64
64
|
@media (forced-colors: active) {
|
|
65
65
|
.artifact {
|
|
66
|
-
border:
|
|
66
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width) CanvasText;
|
|
67
67
|
}
|
|
68
68
|
}
|
package/dist/styles/badge.css
CHANGED
package/dist/styles/base.css
CHANGED
|
@@ -13,11 +13,96 @@
|
|
|
13
13
|
margin: 0;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/*
|
|
17
|
+
* Corner shape, system-wide.
|
|
18
|
+
*
|
|
19
|
+
* corner-shape has no effect on a square corner, so applying it everywhere
|
|
20
|
+
* costs nothing and means a component gets the shape by having a radius rather
|
|
21
|
+
* than by remembering to opt in. In browsers without corner-shape the token
|
|
22
|
+
* resolves to `round` and nothing changes.
|
|
23
|
+
*
|
|
24
|
+
* The exception is a pill or a circle: a superellipse turns a stadium into a
|
|
25
|
+
* lozenge and a circle into a squircle. Anything using --sigvelo-radius-full or
|
|
26
|
+
* --sigvelo-radius-circle therefore overrides the custom property back to
|
|
27
|
+
* `round` in the block below. audit:css-recipes fails if that list falls out of
|
|
28
|
+
* sync with the stylesheets.
|
|
29
|
+
*/
|
|
30
|
+
:where(*) {
|
|
31
|
+
corner-shape: var(--sigvelo-corner-shape);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* sigvelo-pill-shapes:start */
|
|
35
|
+
:where(
|
|
36
|
+
.agent-activity-preview__badge,
|
|
37
|
+
.agent-activity-preview__dismiss,
|
|
38
|
+
.agent-activity-preview__favicons img,
|
|
39
|
+
.agent-activity-preview__unviewed-dot,
|
|
40
|
+
.approval__key,
|
|
41
|
+
.avatar,
|
|
42
|
+
.avatar-group__count,
|
|
43
|
+
.avatar__badge,
|
|
44
|
+
.avatar__fallback,
|
|
45
|
+
.badge,
|
|
46
|
+
.browser-run-panel__tab-glyph,
|
|
47
|
+
.chain-of-thought__search-result,
|
|
48
|
+
.chain-of-thought__step-indicator,
|
|
49
|
+
.codex-model-selector__trigger,
|
|
50
|
+
.codex-model-selector__trigger::before,
|
|
51
|
+
.empty-state__icon,
|
|
52
|
+
.inline-citation__trigger,
|
|
53
|
+
.media-preview-card__play,
|
|
54
|
+
.menu__radio-indicator::before,
|
|
55
|
+
.message-scroller__button,
|
|
56
|
+
.plan__step-indicator,
|
|
57
|
+
.prompt-input__button[data-responsive-label],
|
|
58
|
+
.prompt-input__context-trigger,
|
|
59
|
+
.prompt-input__dictation[data-listening] .prompt-input__dictation-icon::before,
|
|
60
|
+
.prompt-input__permissions-trigger,
|
|
61
|
+
.prompt-input__recording-button,
|
|
62
|
+
.prompt-input__stop,
|
|
63
|
+
.prompt-input__submit,
|
|
64
|
+
.queue__item-indicator,
|
|
65
|
+
.radio,
|
|
66
|
+
.radio__indicator,
|
|
67
|
+
.scroll-area__thumb,
|
|
68
|
+
.slider__indicator,
|
|
69
|
+
.slider__thumb,
|
|
70
|
+
.slider__track,
|
|
71
|
+
.status-pill__dot,
|
|
72
|
+
.stepper__indicator,
|
|
73
|
+
.stepper__separator,
|
|
74
|
+
.stepper__trigger,
|
|
75
|
+
.subagent-run__milestone::before,
|
|
76
|
+
.subagent-run__selector,
|
|
77
|
+
.switch,
|
|
78
|
+
.switch__thumb,
|
|
79
|
+
.task__item::before,
|
|
80
|
+
.test-results__test-status,
|
|
81
|
+
.think-routine-library__routine-status,
|
|
82
|
+
[data-slot="meter-indicator"],
|
|
83
|
+
[data-slot="meter-track"],
|
|
84
|
+
[data-slot="progress-indicator"],
|
|
85
|
+
[data-slot="progress-track"]
|
|
86
|
+
) {
|
|
87
|
+
--sigvelo-corner-shape: round;
|
|
88
|
+
}
|
|
89
|
+
/* sigvelo-pill-shapes:end */
|
|
90
|
+
|
|
91
|
+
/*
|
|
92
|
+
* Interface text reads at 14px, not at the 16px root.
|
|
93
|
+
*
|
|
94
|
+
* The root stays 16px so 1rem is still 16px and the 4px spacing grid is
|
|
95
|
+
* untouched — the same split the reference bundles use, where the type scale
|
|
96
|
+
* is re-pointed but the spacing base stays at 0.25rem. Components that name a
|
|
97
|
+
* step explicitly are unaffected; this only moves what inherited text lands on,
|
|
98
|
+
* which is where a 16px default reads oversized against 32px rows and 13px
|
|
99
|
+
* control labels.
|
|
100
|
+
*/
|
|
16
101
|
body {
|
|
17
102
|
position: relative;
|
|
18
103
|
font-family: var(--sigvelo-font-sans);
|
|
19
|
-
font-size: var(--sigvelo-text-
|
|
20
|
-
line-height: var(--sigvelo-leading
|
|
104
|
+
font-size: var(--sigvelo-text-sm);
|
|
105
|
+
line-height: var(--sigvelo-text-sm-leading);
|
|
21
106
|
color: var(--sigvelo-color-text);
|
|
22
107
|
background-color: var(--sigvelo-color-canvas);
|
|
23
108
|
-webkit-font-smoothing: antialiased;
|
|
@@ -25,7 +110,7 @@ body {
|
|
|
25
110
|
}
|
|
26
111
|
|
|
27
112
|
.sigvelo-icon--spinner {
|
|
28
|
-
animation: sigvelo-icon-spin var(--sigvelo-duration-
|
|
113
|
+
animation: sigvelo-icon-spin var(--sigvelo-motion-duration-spin) linear infinite;
|
|
29
114
|
transform-origin: center;
|
|
30
115
|
}
|
|
31
116
|
|
|
@@ -35,12 +120,34 @@ body {
|
|
|
35
120
|
}
|
|
36
121
|
}
|
|
37
122
|
|
|
123
|
+
/*
|
|
124
|
+
* Canonical "busy/streaming" text-shimmer sweep. Components own the gradient
|
|
125
|
+
* treatment and state gating; they share this keyframe and
|
|
126
|
+
* --sigvelo-motion-duration-shimmer. Shadow-isolated bundles keep a local copy
|
|
127
|
+
* (keyframes do not cross shadow roots), the same as sigvelo-icon-spin.
|
|
128
|
+
*/
|
|
129
|
+
@keyframes sigvelo-text-shimmer {
|
|
130
|
+
from {
|
|
131
|
+
background-position: 100% 0;
|
|
132
|
+
}
|
|
133
|
+
to {
|
|
134
|
+
background-position: -100% 0;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
38
138
|
@media (prefers-reduced-motion: reduce) {
|
|
39
139
|
.sigvelo-icon--spinner {
|
|
40
140
|
animation: none;
|
|
41
141
|
}
|
|
42
142
|
}
|
|
43
143
|
|
|
144
|
+
/* Headings are short enough for the browser to balance the rag for free;
|
|
145
|
+
balance gives up past a handful of lines, so this costs nothing on the
|
|
146
|
+
occasional long one. */
|
|
147
|
+
:where(h1, h2, h3, h4, h5, h6) {
|
|
148
|
+
text-wrap: balance;
|
|
149
|
+
}
|
|
150
|
+
|
|
44
151
|
code,
|
|
45
152
|
kbd,
|
|
46
153
|
samp,
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
* Standalone stylesheet for browser-control chrome mounted in a closed shadow
|
|
3
3
|
* root. It intentionally uses system colors so it remains legible on arbitrary
|
|
4
4
|
* pages without leaking the full document-level token sheet into the host.
|
|
5
|
+
*
|
|
6
|
+
* Every length here is a literal on purpose. The token layer does not exist
|
|
7
|
+
* inside this shadow root, so a --sigvelo-* reference resolves to nothing and
|
|
8
|
+
* takes its whole declaration with it — silently, and only on a real host page,
|
|
9
|
+
* which is the one place this is hard to notice. Keep the values on the 4px
|
|
10
|
+
* grid by hand; audit:css-recipes checks both halves of that.
|
|
5
11
|
*/
|
|
6
12
|
|
|
7
13
|
:host {
|
|
@@ -18,6 +24,10 @@
|
|
|
18
24
|
padding: 0;
|
|
19
25
|
pointer-events: none;
|
|
20
26
|
position: fixed;
|
|
27
|
+
/* Mirrors --sigvelo-z-host-overlay, deliberately as a literal. This sheet is
|
|
28
|
+
mounted in a closed shadow root on someone else's page, where the token
|
|
29
|
+
layer does not exist; var() would resolve to nothing, z-index would fall
|
|
30
|
+
back to auto, and the overlay would quietly stop being on top. */
|
|
21
31
|
z-index: 2147483647;
|
|
22
32
|
}
|
|
23
33
|
|
|
@@ -69,7 +79,7 @@
|
|
|
69
79
|
font:
|
|
70
80
|
600 12px/1.2 system-ui,
|
|
71
81
|
sans-serif;
|
|
72
|
-
padding:
|
|
82
|
+
padding: 8px 12px;
|
|
73
83
|
}
|
|
74
84
|
|
|
75
85
|
:host button:focus-visible {
|
|
@@ -85,7 +95,7 @@
|
|
|
85
95
|
:host .takeover,
|
|
86
96
|
:host .owner {
|
|
87
97
|
background: var(--browser-control-accent);
|
|
88
|
-
border: 1px
|
|
98
|
+
border: solid 1px var(--browser-control-accent-text);
|
|
89
99
|
box-shadow: 0 2px 10px var(--browser-control-shadow);
|
|
90
100
|
color: var(--browser-control-accent-text);
|
|
91
101
|
}
|
|
@@ -109,7 +119,7 @@
|
|
|
109
119
|
left: 10px;
|
|
110
120
|
max-width: min(360px, 60vw);
|
|
111
121
|
overflow: hidden;
|
|
112
|
-
padding:
|
|
122
|
+
padding: 8px 12px;
|
|
113
123
|
pointer-events: none;
|
|
114
124
|
position: fixed;
|
|
115
125
|
text-overflow: ellipsis;
|
|
@@ -120,7 +130,7 @@
|
|
|
120
130
|
:host .banner {
|
|
121
131
|
align-items: center;
|
|
122
132
|
background: var(--browser-control-warning);
|
|
123
|
-
border: 1px
|
|
133
|
+
border: solid 1px var(--browser-control-warning-text);
|
|
124
134
|
border-radius: 14px;
|
|
125
135
|
box-shadow: 0 4px 18px var(--browser-control-shadow);
|
|
126
136
|
color: var(--browser-control-warning-text);
|
|
@@ -131,7 +141,7 @@
|
|
|
131
141
|
gap: 10px;
|
|
132
142
|
left: 50%;
|
|
133
143
|
max-width: min(720px, calc(100vw - 32px));
|
|
134
|
-
padding:
|
|
144
|
+
padding: 8px 10px 8px 16px;
|
|
135
145
|
pointer-events: auto;
|
|
136
146
|
position: fixed;
|
|
137
147
|
top: 12px;
|
|
@@ -147,7 +157,7 @@
|
|
|
147
157
|
|
|
148
158
|
:host .banner .done,
|
|
149
159
|
:host .banner .cannot {
|
|
150
|
-
border: 1px
|
|
160
|
+
border: solid 1px currentcolor;
|
|
151
161
|
color: inherit;
|
|
152
162
|
flex-shrink: 0;
|
|
153
163
|
}
|
|
@@ -27,25 +27,17 @@
|
|
|
27
27
|
opacity: 1;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
/* The chip itself is the library
|
|
31
|
-
placement lives here. */
|
|
30
|
+
/* The chip itself is the library StatusPill (sm/destructive/busy) — only the
|
|
31
|
+
overlay placement lives here. */
|
|
32
32
|
.browser-live-view__badge {
|
|
33
33
|
position: absolute;
|
|
34
34
|
inset-block-start: var(--sigvelo-spacing-2);
|
|
35
35
|
inset-inline-end: var(--sigvelo-spacing-2);
|
|
36
36
|
z-index: 1;
|
|
37
|
-
box-shadow: var(--sigvelo-
|
|
37
|
+
box-shadow: var(--sigvelo-elevation-raised);
|
|
38
38
|
pointer-events: none;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
.browser-live-view__badge-dot {
|
|
42
|
-
inline-size: var(--sigvelo-spacing-1-5);
|
|
43
|
-
block-size: var(--sigvelo-spacing-1-5);
|
|
44
|
-
border-radius: 50%;
|
|
45
|
-
background-color: currentColor;
|
|
46
|
-
animation: browser-live-view-pulse 1.4s ease-in-out infinite;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
41
|
/* Ended state: quiet fill, same footprint so the layout never jumps */
|
|
50
42
|
.browser-live-view__ended {
|
|
51
43
|
display: flex;
|
|
@@ -91,10 +83,6 @@
|
|
|
91
83
|
z-index: 1;
|
|
92
84
|
}
|
|
93
85
|
|
|
94
|
-
.browser-live-view__state-spinner {
|
|
95
|
-
animation: sigvelo-icon-spin 900ms linear infinite;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
86
|
/* Expand affordance, video-player style: quiet until the box is hovered or
|
|
99
87
|
the button is focused */
|
|
100
88
|
.browser-live-view__expand {
|
|
@@ -102,8 +90,8 @@
|
|
|
102
90
|
inset-block-end: var(--sigvelo-spacing-2);
|
|
103
91
|
inset-inline-end: var(--sigvelo-spacing-2);
|
|
104
92
|
z-index: 1;
|
|
105
|
-
background-color: var(--sigvelo-color-surface);
|
|
106
|
-
box-shadow: var(--sigvelo-
|
|
93
|
+
background-color: var(--sigvelo-color-surface-raised);
|
|
94
|
+
box-shadow: var(--sigvelo-elevation-floating);
|
|
107
95
|
opacity: 0;
|
|
108
96
|
transition:
|
|
109
97
|
opacity var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
|
|
@@ -144,27 +132,6 @@
|
|
|
144
132
|
object-fit: contain;
|
|
145
133
|
}
|
|
146
134
|
|
|
147
|
-
@keyframes browser-live-view-pulse {
|
|
148
|
-
0%,
|
|
149
|
-
100% {
|
|
150
|
-
opacity: 1;
|
|
151
|
-
}
|
|
152
|
-
50% {
|
|
153
|
-
opacity: 0.4;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
@media (prefers-reduced-motion: reduce) {
|
|
158
|
-
.browser-live-view__badge-dot,
|
|
159
|
-
.browser-live-view__state-spinner {
|
|
160
|
-
animation: none;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
:root[data-motion="reduce"] :is(.browser-live-view__badge-dot, .browser-live-view__state-spinner) {
|
|
165
|
-
animation: none;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
135
|
@media (hover: none) {
|
|
169
136
|
.browser-live-view__expand {
|
|
170
137
|
opacity: 1;
|
|
@@ -34,22 +34,18 @@
|
|
|
34
34
|
pointer-events: none;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
+
/* Positioning only: this overlays the replay stage. The typography is
|
|
38
|
+
.empty-state. */
|
|
37
39
|
.browser-replay__empty {
|
|
38
40
|
position: absolute;
|
|
39
41
|
inset: 0;
|
|
40
|
-
display: grid;
|
|
41
|
-
place-content: center;
|
|
42
|
-
padding: 1rem;
|
|
43
|
-
color: var(--sigvelo-color-text-muted);
|
|
44
|
-
font-size: var(--sigvelo-text-compact);
|
|
45
|
-
text-align: center;
|
|
46
42
|
}
|
|
47
43
|
|
|
48
44
|
.browser-replay__controls {
|
|
49
45
|
display: flex;
|
|
50
46
|
align-items: center;
|
|
51
47
|
gap: var(--sigvelo-spacing-2-5);
|
|
52
|
-
padding-block:
|
|
48
|
+
padding-block: var(--sigvelo-spacing-2);
|
|
53
49
|
padding-inline: var(--sigvelo-spacing-3);
|
|
54
50
|
border-block-start: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
55
51
|
var(--sigvelo-color-neutral-border-subtle);
|
|
@@ -184,6 +180,6 @@
|
|
|
184
180
|
|
|
185
181
|
@media (forced-colors: active) {
|
|
186
182
|
.browser-replay {
|
|
187
|
-
border:
|
|
183
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width) CanvasText;
|
|
188
184
|
}
|
|
189
185
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
.browser-run-panel .web-preview__nav:has(.browser-run-panel__tabs) {
|
|
8
|
-
min-block-size:
|
|
8
|
+
min-block-size: var(--sigvelo-spacing-12);
|
|
9
9
|
gap: 0;
|
|
10
10
|
padding-block: 0;
|
|
11
11
|
padding-inline: var(--sigvelo-spacing-1-5);
|
|
@@ -49,10 +49,10 @@
|
|
|
49
49
|
.browser-run-panel__tab-glyph {
|
|
50
50
|
display: grid;
|
|
51
51
|
flex: none;
|
|
52
|
-
inline-size:
|
|
53
|
-
block-size:
|
|
52
|
+
inline-size: var(--sigvelo-control-icon-size-lg);
|
|
53
|
+
block-size: var(--sigvelo-control-icon-size-lg);
|
|
54
54
|
place-items: center;
|
|
55
|
-
border-radius:
|
|
55
|
+
border-radius: var(--sigvelo-radius-circle);
|
|
56
56
|
background: var(--sigvelo-color-primary-bg-subtle);
|
|
57
57
|
color: var(--sigvelo-color-primary-text);
|
|
58
58
|
font-size: var(--sigvelo-text-3xs);
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
.browser-run-panel__address-bar {
|
|
70
|
-
min-block-size:
|
|
70
|
+
min-block-size: var(--sigvelo-spacing-12);
|
|
71
71
|
background: var(--sigvelo-color-surface);
|
|
72
72
|
}
|
|
73
73
|
|
|
@@ -101,20 +101,6 @@
|
|
|
101
101
|
color: var(--sigvelo-color-danger-text);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
.browser-run-panel__spinner {
|
|
105
|
-
animation: sigvelo-icon-spin 900ms linear infinite;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
@media (prefers-reduced-motion: reduce) {
|
|
109
|
-
.browser-run-panel__spinner {
|
|
110
|
-
animation: none;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
:root[data-motion="reduce"] .browser-run-panel__spinner {
|
|
115
|
-
animation: none;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
104
|
@media (forced-colors: active) {
|
|
119
105
|
.browser-run-panel__tab[data-active] {
|
|
120
106
|
outline: var(--sigvelo-focus-ring-forced);
|
package/dist/styles/button.css
CHANGED
|
@@ -27,7 +27,9 @@
|
|
|
27
27
|
color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
|
|
28
28
|
border-color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
|
|
29
29
|
box-shadow var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
|
|
30
|
-
|
|
30
|
+
/* Release settles with a damped spring; the color transitions above stay on
|
|
31
|
+
the standard curve, where a bounce would just read as a slow fade. */
|
|
32
|
+
translate var(--sigvelo-motion-duration-presence) var(--sigvelo-ease-press);
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
.button svg {
|
|
@@ -185,7 +187,7 @@
|
|
|
185
187
|
|
|
186
188
|
@media (forced-colors: active) {
|
|
187
189
|
.button {
|
|
188
|
-
border:
|
|
190
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width) ButtonText;
|
|
189
191
|
}
|
|
190
192
|
|
|
191
193
|
.button--ghost,
|
package/dist/styles/card.css
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
.card {
|
|
2
|
-
background-color: var(--sigvelo-color-surface);
|
|
2
|
+
background-color: var(--sigvelo-color-surface-raised);
|
|
3
3
|
color: var(--sigvelo-color-text);
|
|
4
|
-
/* Shadow-led elevation:
|
|
4
|
+
/* Shadow-led elevation: the hairline ring in the stack is the perimeter. */
|
|
5
5
|
border-radius: var(--sigvelo-radius-lg);
|
|
6
6
|
padding: var(--sigvelo-spacing-4);
|
|
7
|
-
box-shadow: var(--sigvelo-
|
|
7
|
+
box-shadow: var(--sigvelo-elevation-raised);
|
|
8
8
|
transition: box-shadow var(--sigvelo-motion-duration-interaction)
|
|
9
9
|
var(--sigvelo-motion-ease-change);
|
|
10
10
|
}
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
.card--hover:hover {
|
|
86
|
-
box-shadow: var(--sigvelo-
|
|
86
|
+
box-shadow: var(--sigvelo-elevation-floating);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
.card--hover:focus-visible {
|
|
@@ -44,7 +44,6 @@
|
|
|
44
44
|
background-color: var(--sigvelo-color-primary-bg-subtle);
|
|
45
45
|
border-color: var(--sigvelo-color-primary-border-muted);
|
|
46
46
|
color: var(--sigvelo-color-primary-text);
|
|
47
|
-
animation: sigvelo-icon-spin 1.6s linear infinite;
|
|
48
47
|
}
|
|
49
48
|
|
|
50
49
|
.chain-of-thought__step-body {
|
|
@@ -167,7 +166,7 @@
|
|
|
167
166
|
@media (forced-colors: active) {
|
|
168
167
|
.chain-of-thought__step-indicator,
|
|
169
168
|
.chain-of-thought__search-result {
|
|
170
|
-
border:
|
|
169
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width) CanvasText;
|
|
171
170
|
}
|
|
172
171
|
|
|
173
172
|
.chain-of-thought__header:focus-visible,
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
min-inline-size: 17.5rem;
|
|
10
10
|
display: grid;
|
|
11
11
|
place-items: center;
|
|
12
|
-
padding: clamp(
|
|
12
|
+
padding: clamp(var(--sigvelo-spacing-5), 5vw, var(--sigvelo-spacing-12));
|
|
13
13
|
background-color: var(--sigvelo-color-canvas);
|
|
14
14
|
background-image:
|
|
15
15
|
linear-gradient(
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
z-index: 1;
|
|
57
57
|
isolation: isolate;
|
|
58
58
|
display: grid;
|
|
59
|
-
gap:
|
|
59
|
+
gap: var(--sigvelo-spacing-5);
|
|
60
60
|
justify-items: center;
|
|
61
61
|
text-align: center;
|
|
62
62
|
}
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
font-size: var(--sigvelo-text-2xl);
|
|
74
74
|
font-weight: var(--sigvelo-font-weight-bold);
|
|
75
75
|
letter-spacing: 0;
|
|
76
|
-
line-height:
|
|
76
|
+
line-height: var(--sigvelo-leading-tight);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
.chatgpt-sign-in__brand p {
|
|
@@ -93,8 +93,8 @@
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
.chatgpt-sign-in__brand-mark :where(img, svg) {
|
|
96
|
-
inline-size:
|
|
97
|
-
block-size:
|
|
96
|
+
inline-size: var(--sigvelo-control-icon-size-xl);
|
|
97
|
+
block-size: var(--sigvelo-control-icon-size-xl);
|
|
98
98
|
filter: drop-shadow(
|
|
99
99
|
0 0.25rem 0.5rem color-mix(in oklab, var(--sigvelo-color-primary-bg), transparent 72%)
|
|
100
100
|
);
|
|
@@ -109,7 +109,8 @@
|
|
|
109
109
|
overflow: hidden;
|
|
110
110
|
min-inline-size: min(100%, 16.75rem);
|
|
111
111
|
box-shadow:
|
|
112
|
-
inset 0 0 0
|
|
112
|
+
inset 0 0 0 var(--sigvelo-border-width)
|
|
113
|
+
color-mix(in oklab, var(--sigvelo-color-primary-text-on-bg), transparent 84%),
|
|
113
114
|
0 0.75rem 1.5rem color-mix(in oklab, var(--sigvelo-color-primary-bg), transparent 78%);
|
|
114
115
|
translate: 0;
|
|
115
116
|
scale: 1;
|
|
@@ -153,7 +154,8 @@
|
|
|
153
154
|
|
|
154
155
|
.chatgpt-sign-in__button:hover:not([data-disabled]) {
|
|
155
156
|
box-shadow:
|
|
156
|
-
inset 0 0 0
|
|
157
|
+
inset 0 0 0 var(--sigvelo-border-width)
|
|
158
|
+
color-mix(in oklab, var(--sigvelo-color-primary-text-on-bg), transparent 76%),
|
|
157
159
|
0 0.9rem 1.9rem color-mix(in oklab, var(--sigvelo-color-primary-bg), transparent 72%);
|
|
158
160
|
translate: 0 -0.0625rem;
|
|
159
161
|
}
|