@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.
Files changed (116) hide show
  1. package/dist/{AgentActivity-D2SHSGFX.d.ts → AgentActivity-D3OvrC02.d.ts} +14 -1
  2. package/dist/{AgentChat-C-ZyXbJz.d.ts → AgentChat-Dvkn8lce.d.ts} +23 -0
  3. package/dist/AgentChatStartScreen-CvXJBr4y.d.ts +57 -0
  4. package/dist/{ModelSelector-pecWyOFI.js → ModelSelector-CEd8M9eK.js} +14 -7
  5. package/dist/{ThinkChatActivity-CdbL0aoA.d.ts → ThinkChatActivity-FY1VWXgh.d.ts} +8 -7
  6. package/dist/{ThinkChatActivitySummary-D1xOrNrq.d.ts → ThinkChatActivitySummary-kr5fE0wg.d.ts} +14 -5
  7. package/dist/{ToggleGroup-DNd6cDJZ.d.ts → ToggleGroup-BW1jrhAF.d.ts} +10 -0
  8. package/dist/components/Activity.d.ts +33 -17
  9. package/dist/components/Activity.js +39 -27
  10. package/dist/components/AgentActivity.d.ts +1 -1
  11. package/dist/components/AgentActivityPreview.d.ts +1 -1
  12. package/dist/components/AgentActivityPreview.js +2 -2
  13. package/dist/components/AgentChat.d.ts +1 -1
  14. package/dist/components/AgentChat.js +142 -129
  15. package/dist/components/AgentChatStartScreen.d.ts +2 -0
  16. package/dist/components/AgentChatStartScreen.js +82 -0
  17. package/dist/components/Approval.js +2 -4
  18. package/dist/components/BrowserLiveView.js +5 -7
  19. package/dist/components/BrowserReplay.js +5 -4
  20. package/dist/components/BrowserRunPanel.js +1 -1
  21. package/dist/components/ChatGptSignInScreen.js +1 -1
  22. package/dist/components/Conversation.d.ts +1 -22
  23. package/dist/components/Conversation.js +2 -29
  24. package/dist/components/EmptyState.d.ts +46 -0
  25. package/dist/components/EmptyState.js +50 -0
  26. package/dist/components/Kbd.d.ts +32 -0
  27. package/dist/components/Kbd.js +34 -0
  28. package/dist/components/ModelSelector.d.ts +10 -4
  29. package/dist/components/ModelSelector.js +2 -2
  30. package/dist/components/PricingBillingToggle.js +1 -0
  31. package/dist/components/PromptInput.js +3 -2
  32. package/dist/components/Reasoning.js +1 -1
  33. package/dist/components/StatusPill.d.ts +43 -0
  34. package/dist/components/StatusPill.js +35 -0
  35. package/dist/components/ThinkChat.d.ts +9 -3
  36. package/dist/components/ThinkChatActivity.d.ts +2 -2
  37. package/dist/components/ThinkChatActivity.js +27 -15
  38. package/dist/components/ThinkChatActivitySummary.d.ts +2 -2
  39. package/dist/components/ThinkChatActivitySummary.js +67 -64
  40. package/dist/components/ThinkExecutionDetail.js +4 -4
  41. package/dist/components/ThinkExecutionWorkbench.js +5 -4
  42. package/dist/components/ThinkFullAppViewSwitch.d.ts +1 -1
  43. package/dist/components/ThinkRoutineBrowser.js +1 -0
  44. package/dist/components/ThinkRoutineRuns.js +3 -2
  45. package/dist/components/ThinkThreadPicker.js +3 -2
  46. package/dist/components/ToggleGroup.d.ts +1 -1
  47. package/dist/components/ToggleGroup.js +54 -7
  48. package/dist/components/ToolInvocation.js +1 -1
  49. package/dist/styles/activity-header.css +41 -10
  50. package/dist/styles/activity.css +26 -4
  51. package/dist/styles/agent-activity-preview-overlay.css +39 -12
  52. package/dist/styles/agent-activity-preview.css +31 -30
  53. package/dist/styles/agent-attention.css +2 -2
  54. package/dist/styles/agent-chat.css +199 -0
  55. package/dist/styles/agent-connection.css +8 -8
  56. package/dist/styles/alert-dialog.css +5 -2
  57. package/dist/styles/app-top-bar.css +4 -4
  58. package/dist/styles/approval.css +1 -7
  59. package/dist/styles/artifact.css +4 -4
  60. package/dist/styles/base-ui-motion.css +1 -1
  61. package/dist/styles/base.css +95 -3
  62. package/dist/styles/browser-control-overlay.css +16 -7
  63. package/dist/styles/browser-live-view.css +5 -38
  64. package/dist/styles/browser-replay.css +2 -6
  65. package/dist/styles/browser-run-panel.css +4 -18
  66. package/dist/styles/button.css +3 -1
  67. package/dist/styles/card.css +4 -4
  68. package/dist/styles/chain-of-thought.css +0 -1
  69. package/dist/styles/chatgpt-sign-in-screen.css +7 -5
  70. package/dist/styles/checkbox-group.css +3 -3
  71. package/dist/styles/code-block.css +4 -4
  72. package/dist/styles/context-menu.css +1 -1
  73. package/dist/styles/conversation.css +7 -42
  74. package/dist/styles/description-list.css +2 -2
  75. package/dist/styles/dialog.css +17 -2
  76. package/dist/styles/empty-state.css +48 -0
  77. package/dist/styles/environment-variables.css +4 -4
  78. package/dist/styles/field.css +2 -2
  79. package/dist/styles/index.css +3 -0
  80. package/dist/styles/inline-citation.css +1 -1
  81. package/dist/styles/kbd.css +40 -0
  82. package/dist/styles/media-preview-card.css +5 -3
  83. package/dist/styles/message-scroller.css +4 -4
  84. package/dist/styles/message.css +4 -6
  85. package/dist/styles/model-selector.css +5 -8
  86. package/dist/styles/popover.css +1 -1
  87. package/dist/styles/preview-card.css +1 -1
  88. package/dist/styles/prompt-input.css +18 -40
  89. package/dist/styles/queue.css +2 -2
  90. package/dist/styles/recipes.css +68 -9
  91. package/dist/styles/resizable-side-panel.css +1 -1
  92. package/dist/styles/responsive-sidebar-shell.css +5 -6
  93. package/dist/styles/scrollbars.css +32 -3
  94. package/dist/styles/sources.css +1 -1
  95. package/dist/styles/status-pill.css +39 -0
  96. package/dist/styles/stepper.css +2 -2
  97. package/dist/styles/streamdown.css +13 -12
  98. package/dist/styles/subagent-run.css +3 -3
  99. package/dist/styles/switch.css +1 -3
  100. package/dist/styles/tabs.css +1 -1
  101. package/dist/styles/task.css +1 -1
  102. package/dist/styles/terminal.css +2 -2
  103. package/dist/styles/test-results.css +1 -2
  104. package/dist/styles/textarea.css +1 -1
  105. package/dist/styles/theme-mode-control.css +1 -1
  106. package/dist/styles/think-execution-status.css +4 -23
  107. package/dist/styles/think-execution-workbench.css +2 -3
  108. package/dist/styles/think-full-app.css +2 -2
  109. package/dist/styles/think-routine-library.css +14 -16
  110. package/dist/styles/think-thread-picker.css +8 -25
  111. package/dist/styles/toast.css +2 -2
  112. package/dist/styles/toggle-group.css +76 -3
  113. package/dist/styles/tooltip.css +1 -2
  114. package/dist/styles/utilities.css +73 -0
  115. package/dist/styles/workspace-explorer.css +4 -6
  116. package/package.json +2 -2
@@ -12,26 +12,53 @@
12
12
  color: CanvasText;
13
13
  font-family: system-ui, sans-serif;
14
14
 
15
- --sigvelo-spacing-0-5: 0.125rem;
16
- --sigvelo-spacing-1: 0.25rem;
17
- --sigvelo-spacing-1-5: 0.375rem;
18
- --sigvelo-spacing-2: 0.5rem;
19
- --sigvelo-spacing-3: 0.75rem;
20
- --sigvelo-radius-md: 0.5rem;
21
- --sigvelo-radius-lg: 0.75rem;
22
- --sigvelo-radius-xs: 0.1875rem;
23
- --sigvelo-text-compact: 0.8125rem;
15
+ /*
16
+ * `all: initial` plus a closed shadow root means nothing inherits, so every
17
+ * token the imported stylesheets read has to be restated here. A token that
18
+ * is missing does not fall back to the page value — it resolves to nothing
19
+ * and the declaration is dropped, which is silent. Keep this list in step
20
+ * with what agent-activity-preview.css and activity-header.css actually use.
21
+ *
22
+ * These are px, not rem, and that is the point. This bundle renders in an
23
+ * active-tab content script, and `rem` resolves against the host page's root
24
+ * element — a page setting `html { font-size: 10px }` would shrink the whole
25
+ * preview by a third. `all: initial` does not isolate that; nothing does.
26
+ * A surface drawn on a page we do not control has to carry its own units.
27
+ */
28
+ --sigvelo-spacing-0-5: 2px;
29
+ --sigvelo-spacing-1: 4px;
30
+ --sigvelo-spacing-1-5: 6px;
31
+ --sigvelo-spacing-2: 8px;
32
+ --sigvelo-spacing-3: 12px;
33
+ --sigvelo-spacing-8: 32px;
34
+ --sigvelo-radius-md: 8px;
35
+ --sigvelo-radius-lg: 12px;
36
+ --sigvelo-radius-xs: 3px;
37
+ --sigvelo-radius-full: 9999px;
38
+ --sigvelo-border-style: solid;
39
+ --sigvelo-border-width: 1px;
40
+ --sigvelo-text-compact: 13px;
41
+ --sigvelo-font-weight-normal: 400;
24
42
  --sigvelo-font-weight-semibold: 500;
43
+ --sigvelo-control-height-sm: 32px;
44
+ --sigvelo-control-height-xl: 44px;
45
+ --sigvelo-control-icon-size-sm: 14px;
46
+ --sigvelo-control-icon-size-md: 16px;
47
+ --sigvelo-control-icon-size-lg: 18px;
25
48
  --sigvelo-duration-fast: 150ms;
26
- --sigvelo-duration-slow: 360ms;
49
+ --sigvelo-motion-duration-shimmer: 2400ms;
50
+ --sigvelo-motion-duration-spin: 900ms;
27
51
  --sigvelo-ease-standard: cubic-bezier(0.2, 0, 0, 1);
28
52
  --sigvelo-color-surface: Canvas;
53
+ --sigvelo-color-surface-raised: Canvas;
29
54
  --sigvelo-color-text: CanvasText;
30
55
  --sigvelo-color-text-muted: GrayText;
31
56
  --sigvelo-color-primary-text: LinkText;
32
57
  --sigvelo-color-warning-text: #8a4b00;
33
58
  --sigvelo-color-neutral-bg-subtle: color-mix(in oklab, CanvasText 7%, Canvas);
34
- --sigvelo-shadow-sm: 0 0.125rem 0.1875rem color-mix(in oklab, CanvasText 8%, transparent);
59
+ --sigvelo-elevation-raised:
60
+ 0 0 0 0.5px color-mix(in oklab, CanvasText 8%, transparent),
61
+ 0 1px 2px -1px color-mix(in oklab, CanvasText 8%, transparent);
35
62
  --sigvelo-recipe-focus-shadow: 0 0 0 2px Canvas, 0 0 0 4px Highlight;
36
63
  }
37
64
 
@@ -51,7 +78,7 @@
51
78
  }
52
79
 
53
80
  .sigvelo-icon--spinner {
54
- animation: agent-activity-preview-spin var(--sigvelo-duration-slow) linear infinite;
81
+ animation: agent-activity-preview-spin var(--sigvelo-motion-duration-spin) linear infinite;
55
82
  transform-origin: center;
56
83
  }
57
84
 
@@ -5,8 +5,8 @@
5
5
  padding: var(--sigvelo-spacing-2);
6
6
  border-radius: var(--sigvelo-radius-lg);
7
7
  color: var(--sigvelo-color-text);
8
- background: color-mix(in oklab, var(--sigvelo-color-surface), transparent 3%);
9
- box-shadow: var(--sigvelo-shadow-xs);
8
+ background: var(--sigvelo-color-surface-raised);
9
+ box-shadow: var(--sigvelo-elevation-raised);
10
10
  }
11
11
 
12
12
  .agent-activity-preview__badge {
@@ -15,17 +15,17 @@
15
15
  inset-inline-end: var(--sigvelo-spacing-1);
16
16
  display: grid;
17
17
  place-items: center;
18
- width: 2rem;
19
- height: 2rem;
20
- border-radius: 999px;
18
+ width: var(--sigvelo-control-height-sm);
19
+ height: var(--sigvelo-control-height-sm);
20
+ border-radius: var(--sigvelo-radius-full);
21
21
  color: var(--sigvelo-color-primary-text);
22
- background: var(--sigvelo-color-surface);
23
- box-shadow: var(--sigvelo-shadow-sm);
22
+ background: var(--sigvelo-color-surface-raised);
23
+ box-shadow: var(--sigvelo-elevation-raised);
24
24
  }
25
25
 
26
26
  .agent-activity-preview__badge > svg {
27
- width: 1rem;
28
- height: 1rem;
27
+ width: var(--sigvelo-control-icon-size-md);
28
+ height: var(--sigvelo-control-icon-size-md);
29
29
  }
30
30
 
31
31
  .agent-activity-preview__dismiss {
@@ -35,14 +35,14 @@
35
35
  inset-inline-end: var(--sigvelo-spacing-1);
36
36
  display: grid;
37
37
  place-items: center;
38
- width: 2rem;
39
- height: 2rem;
38
+ width: var(--sigvelo-control-height-sm);
39
+ height: var(--sigvelo-control-height-sm);
40
40
  padding: 0;
41
41
  border: 0;
42
- border-radius: 999px;
42
+ border-radius: var(--sigvelo-radius-full);
43
43
  color: var(--sigvelo-color-text-muted);
44
- background: var(--sigvelo-color-surface);
45
- box-shadow: var(--sigvelo-shadow-sm);
44
+ background: var(--sigvelo-color-surface-raised);
45
+ box-shadow: var(--sigvelo-elevation-raised);
46
46
  cursor: pointer;
47
47
  opacity: 0;
48
48
  scale: 0.92;
@@ -71,8 +71,8 @@
71
71
  }
72
72
 
73
73
  .agent-activity-preview__dismiss > svg {
74
- width: 0.875rem;
75
- height: 0.875rem;
74
+ width: var(--sigvelo-control-icon-size-sm);
75
+ height: var(--sigvelo-control-icon-size-sm);
76
76
  }
77
77
 
78
78
  .agent-activity-preview__list {
@@ -143,15 +143,15 @@
143
143
  }
144
144
 
145
145
  .agent-activity-preview__file-action > svg {
146
- width: 1rem;
147
- height: 1rem;
146
+ width: var(--sigvelo-control-icon-size-md);
147
+ height: var(--sigvelo-control-icon-size-md);
148
148
  }
149
149
 
150
150
  .agent-activity-preview__row .activity__header {
151
151
  gap: var(--sigvelo-spacing-2);
152
152
  }
153
153
 
154
- .agent-activity-preview__row .activity__header-label {
154
+ .agent-activity-preview__row .activity__header-action {
155
155
  max-width: none;
156
156
  }
157
157
 
@@ -171,18 +171,19 @@
171
171
 
172
172
  .agent-activity-preview__favicons img {
173
173
  display: block;
174
- width: 1.125rem;
175
- height: 1.125rem;
176
- margin-inline-start: -0.25rem;
177
- border: 2px solid var(--sigvelo-color-surface);
178
- border-radius: 999px;
179
- background: var(--sigvelo-color-surface);
174
+ width: var(--sigvelo-control-icon-size-lg);
175
+ height: var(--sigvelo-control-icon-size-lg);
176
+ /* Overlap the run of favicons by a quarter of a step. */
177
+ margin-inline-start: calc(-1 * var(--sigvelo-spacing-1));
178
+ border: 2px solid var(--sigvelo-color-surface-raised);
179
+ border-radius: var(--sigvelo-radius-full);
180
+ background: var(--sigvelo-color-surface-raised);
180
181
  object-fit: contain;
181
182
  }
182
183
 
183
184
  .agent-activity-preview__trailing > svg {
184
- width: 1rem;
185
- height: 1rem;
185
+ width: var(--sigvelo-control-icon-size-md);
186
+ height: var(--sigvelo-control-icon-size-md);
186
187
  }
187
188
 
188
189
  .agent-activity-preview__row[data-status="running"] .agent-activity-preview__trailing > svg,
@@ -195,9 +196,9 @@
195
196
  }
196
197
 
197
198
  .agent-activity-preview__unviewed-dot {
198
- width: 0.5rem;
199
- height: 0.5rem;
200
- border-radius: 999px;
199
+ width: var(--sigvelo-spacing-2);
200
+ height: var(--sigvelo-spacing-2);
201
+ border-radius: var(--sigvelo-radius-full);
201
202
  background: currentColor;
202
203
  }
203
204
 
@@ -9,7 +9,7 @@
9
9
  border-radius: var(--sigvelo-radius-md);
10
10
  color: var(--sigvelo-color-text);
11
11
  background: var(--sigvelo-color-surface);
12
- box-shadow: var(--sigvelo-shadow-xs);
12
+ box-shadow: var(--sigvelo-elevation-raised);
13
13
  }
14
14
 
15
15
  .agent-attention[data-tone="warning"] {
@@ -58,7 +58,7 @@
58
58
  .agent-attention__text {
59
59
  display: grid;
60
60
  min-width: 0;
61
- line-height: 1.35;
61
+ line-height: var(--sigvelo-leading-snug);
62
62
  }
63
63
 
64
64
  .agent-attention__title {
@@ -1,6 +1,7 @@
1
1
  .agent-chat {
2
2
  --agent-chat-content-max-inline-size: 64rem;
3
3
 
4
+ container: agent-chat / inline-size;
4
5
  position: relative;
5
6
  inline-size: 100%;
6
7
  block-size: 100%;
@@ -44,6 +45,165 @@
44
45
  --message-scroller-button-inset-block-end: var(--sigvelo-spacing-2);
45
46
  }
46
47
 
48
+ .agent-chat-start-screen {
49
+ block-size: 100%;
50
+ min-block-size: 0;
51
+ overflow: auto;
52
+ scrollbar-gutter: stable;
53
+ }
54
+
55
+ .agent-chat-start-screen__content {
56
+ display: grid;
57
+ align-content: center;
58
+ gap: var(--sigvelo-spacing-6);
59
+ inline-size: min(100%, var(--agent-chat-content-max-inline-size));
60
+ min-block-size: 100%;
61
+ margin-inline: auto;
62
+ padding: clamp(var(--sigvelo-spacing-5), 8vb, var(--sigvelo-spacing-12)) var(--sigvelo-spacing-4);
63
+ }
64
+
65
+ .agent-chat-start-screen__heading {
66
+ margin: 0;
67
+ color: var(--sigvelo-color-text);
68
+ font-size: clamp(var(--sigvelo-text-2xl), 4vw, var(--sigvelo-text-3xl));
69
+ font-weight: var(--sigvelo-font-weight-semibold);
70
+ letter-spacing: var(--sigvelo-tracking-tight);
71
+ line-height: var(--sigvelo-leading-tight);
72
+ text-align: center;
73
+ text-wrap: balance;
74
+ }
75
+
76
+ .agent-chat-start-screen__content > .agent-chat__composer {
77
+ position: static;
78
+ padding: 0;
79
+ background: none;
80
+ }
81
+
82
+ /* The one moment the composer is the subject of the screen rather than
83
+ chrome pinned under a transcript: rounder, and lifted further off the page. */
84
+ .agent-chat-start-screen__content > .agent-chat__composer > .prompt-input {
85
+ inline-size: 100%;
86
+ border-radius: var(--sigvelo-radius-3xl);
87
+ }
88
+
89
+ .agent-chat-start-screen__starters {
90
+ min-inline-size: 0;
91
+ }
92
+
93
+ .agent-chat-starter-list {
94
+ display: grid;
95
+ gap: var(--sigvelo-spacing-0-5);
96
+ margin: 0;
97
+ padding: 0;
98
+ list-style: none;
99
+ }
100
+
101
+ .agent-chat-starter {
102
+ display: grid;
103
+ grid-template-columns: minmax(0, 1fr) auto;
104
+ align-items: center;
105
+ border-radius: var(--sigvelo-radius-xl);
106
+ transition: background-color var(--sigvelo-motion-duration-interaction)
107
+ var(--sigvelo-motion-ease-change);
108
+ }
109
+
110
+ /* A suggestion is not a card. It fills on approach and stays flat — the only
111
+ raised surface on this screen is the composer. */
112
+ .agent-chat-starter:hover,
113
+ .agent-chat-starter:focus-within {
114
+ background-color: var(--sigvelo-color-surface-sunken);
115
+ }
116
+
117
+ .agent-chat-starter .agent-chat-starter__action {
118
+ justify-content: flex-start;
119
+ inline-size: 100%;
120
+ min-block-size: var(--sigvelo-control-height-xl);
121
+ min-inline-size: 0;
122
+ gap: var(--sigvelo-spacing-3);
123
+ padding-block: var(--sigvelo-spacing-2);
124
+ padding-inline: var(--sigvelo-spacing-3);
125
+ background: transparent;
126
+ color: var(--sigvelo-color-text-muted);
127
+ font-size: var(--sigvelo-text-base);
128
+ font-weight: var(--sigvelo-font-weight-normal);
129
+ text-align: start;
130
+ white-space: normal;
131
+ transition: color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
132
+ }
133
+
134
+ .agent-chat-starter .agent-chat-starter__action:hover:not([data-disabled]) {
135
+ background: transparent;
136
+ }
137
+
138
+ /* Resting text is quiet so the heading and composer lead; the row a pointer
139
+ or keyboard is actually on resolves to full-strength text. */
140
+ .agent-chat-starter:hover .agent-chat-starter__action,
141
+ .agent-chat-starter:focus-within .agent-chat-starter__action {
142
+ color: var(--sigvelo-color-text);
143
+ }
144
+
145
+ .agent-chat-starter__action[data-muted] {
146
+ color: var(--sigvelo-color-text-subtle);
147
+ }
148
+
149
+ .agent-chat-starter__icon {
150
+ display: inline-flex;
151
+ flex: none;
152
+ color: var(--sigvelo-color-primary-text);
153
+ }
154
+
155
+ .agent-chat-starter__label {
156
+ flex: 1;
157
+ min-inline-size: 0;
158
+ overflow-wrap: anywhere;
159
+ }
160
+
161
+ .agent-chat-starter__dismiss {
162
+ margin-inline-end: var(--sigvelo-spacing-1);
163
+ color: var(--sigvelo-color-text-faint);
164
+ opacity: 0;
165
+ }
166
+
167
+ .agent-chat-starter:hover .agent-chat-starter__dismiss,
168
+ .agent-chat-starter:focus-within .agent-chat-starter__dismiss {
169
+ opacity: 1;
170
+ }
171
+
172
+ /* First paint only. The start screen is replaced by the transcript after the
173
+ first message, so this never re-runs mid-conversation. */
174
+ @media (prefers-reduced-motion: no-preference) {
175
+ .agent-chat-start-screen__content > *,
176
+ .agent-chat-starter {
177
+ animation: agent-chat-start-screen-enter var(--sigvelo-motion-duration-disclosure)
178
+ var(--sigvelo-ease-snappy) backwards;
179
+ }
180
+
181
+ .agent-chat-start-screen__content > *:nth-child(2),
182
+ .agent-chat-starter:nth-child(2) {
183
+ animation-delay: calc(var(--sigvelo-motion-stagger-step) * 1);
184
+ }
185
+
186
+ .agent-chat-start-screen__content > *:nth-child(3),
187
+ .agent-chat-starter:nth-child(3) {
188
+ animation-delay: calc(var(--sigvelo-motion-stagger-step) * 2);
189
+ }
190
+
191
+ .agent-chat-starter:nth-child(4) {
192
+ animation-delay: calc(var(--sigvelo-motion-stagger-step) * 3);
193
+ }
194
+
195
+ .agent-chat-starter:nth-child(n + 5) {
196
+ animation-delay: calc(var(--sigvelo-motion-stagger-step) * 4);
197
+ }
198
+ }
199
+
200
+ @keyframes agent-chat-start-screen-enter {
201
+ from {
202
+ opacity: 0;
203
+ translate: 0 var(--sigvelo-motion-distance-md);
204
+ }
205
+ }
206
+
47
207
  /* Floating over the transcript: solid behind the controls, fading out
48
208
  through the top padding so content slides under instead of hitting a bar. */
49
209
  .agent-chat__composer {
@@ -164,6 +324,10 @@
164
324
  }
165
325
 
166
326
  @media (any-pointer: coarse) {
327
+ .agent-chat-starter__dismiss {
328
+ opacity: 1;
329
+ }
330
+
167
331
  .agent-chat__queued-message,
168
332
  .agent-chat__queued-action {
169
333
  min-block-size: var(--sigvelo-control-height-xl);
@@ -211,7 +375,42 @@
211
375
  }
212
376
 
213
377
  @media (forced-colors: active) {
378
+ .agent-chat-starter:hover,
379
+ .agent-chat-starter:focus-within {
380
+ outline: var(--sigvelo-border-width) solid CanvasText;
381
+ }
382
+
383
+ .agent-chat-starter__dismiss {
384
+ opacity: 1;
385
+ }
386
+
214
387
  .agent-chat__turn-error {
215
388
  border: var(--sigvelo-focus-width) solid CanvasText;
216
389
  }
217
390
  }
391
+
392
+ /* Sized against the chat's own box, not the viewport: this component is as
393
+ likely to be a 320px browser side panel as a full window, and the viewport
394
+ says nothing about which. Height still comes from the viewport — a container
395
+ cannot query its own block size without inline-size collapsing with it. */
396
+ @container agent-chat (width <= 36rem) {
397
+ .agent-chat-start-screen__content {
398
+ align-content: start;
399
+ padding-block: var(--sigvelo-spacing-5);
400
+ }
401
+
402
+ .agent-chat-start-screen__heading {
403
+ font-size: var(--sigvelo-text-2xl);
404
+ }
405
+
406
+ .agent-chat-starter__action {
407
+ font-size: var(--sigvelo-text-sm);
408
+ }
409
+ }
410
+
411
+ @media (max-height: 40rem) {
412
+ .agent-chat-start-screen__content {
413
+ align-content: start;
414
+ padding-block: var(--sigvelo-spacing-5);
415
+ }
416
+ }
@@ -27,7 +27,7 @@
27
27
 
28
28
  .agent-connect__title-group {
29
29
  display: grid;
30
- gap: 0.2rem;
30
+ gap: var(--sigvelo-spacing-1);
31
31
  min-inline-size: 0;
32
32
  }
33
33
 
@@ -45,7 +45,7 @@
45
45
  margin: 0;
46
46
  color: var(--sigvelo-color-text-muted);
47
47
  font-size: var(--sigvelo-text-compact);
48
- line-height: 1.35;
48
+ line-height: var(--sigvelo-leading-snug);
49
49
  text-wrap: pretty;
50
50
  }
51
51
 
@@ -66,9 +66,9 @@
66
66
  display: inline-flex;
67
67
  align-items: center;
68
68
  justify-content: center;
69
- min-block-size: 1.75rem;
69
+ min-block-size: var(--sigvelo-spacing-7);
70
70
  min-inline-size: 0;
71
- padding: 0 0.45rem;
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: 1.15;
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: 2.5rem;
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-shadow-xs),
117
- inset 0 0 0 1px var(--sigvelo-color-primary-border-subtle);
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
- z-index: 50;
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: 50;
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: 2.75rem;
85
- min-inline-size: 2.75rem;
86
- block-size: 2.75rem;
87
- min-block-size: 2.75rem;
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
 
@@ -12,7 +12,7 @@
12
12
  display: flex;
13
13
  align-items: baseline;
14
14
  gap: var(--sigvelo-spacing-2);
15
- line-height: 1.4;
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);
@@ -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, var(--sigvelo-radius-md));
10
- box-shadow: var(--sigvelo-shadow-sm);
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: 1.4;
44
+ line-height: var(--sigvelo-leading-snug);
45
45
  overflow-wrap: anywhere;
46
46
  text-wrap: pretty;
47
47
  }
@@ -3,7 +3,7 @@
3
3
  * CSS so all anchored surfaces enter, exit, and respect reduced motion alike.
4
4
  */
5
5
  .base-ui-positioner {
6
- z-index: 50;
6
+ z-index: var(--sigvelo-z-overlay);
7
7
  }
8
8
 
9
9
  .base-ui-backdrop {