@mcp-b/react-components 0.12.0 → 0.13.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 (229) hide show
  1. package/dist/{AgentChat-CRmsKg9B.d.ts → AgentChat-Br6tKEl8.d.ts} +29 -5
  2. package/dist/{Button-Ct5I6aTu.d.ts → Button-FX_hpqxm.d.ts} +8 -11
  3. package/dist/{CodeBlock-XNQOupQ3.js → CodeBlock-BUFXG8HW.js} +22 -12
  4. package/dist/{CodeBlock-CxQXv3C4.d.ts → CodeBlock-DUh9WOGo.d.ts} +13 -7
  5. package/dist/{Combobox-D9anamNr.d.ts → Combobox-B9Fcd6q-.d.ts} +4 -14
  6. package/dist/{FileTree-wMyZhhHO.js → FileTree-mpEIcfzA.js} +1 -1
  7. package/dist/{Menu-BLhnNnRK.d.ts → Menu-Bgu-ufb5.d.ts} +26 -65
  8. package/dist/{ModelSelector-BB-xB-Es.js → ModelSelector-DVgVBdvw.js} +7 -7
  9. package/dist/{PromptInput-IyM6ZETj.d.ts → PromptInput-p5KmOmt1.d.ts} +302 -46
  10. package/dist/Select-Dl_vF_Bt.d.ts +213 -0
  11. package/dist/{Tabs-D9EAq09D.d.ts → Tabs-3Zc4tb9D.d.ts} +9 -6
  12. package/dist/{ThinkChat-B3wYahor.js → ThinkChat-7DQ2CogF.js} +34 -2
  13. package/dist/{ThinkChatActivity-F4KFPcJA.d.ts → ThinkChatActivity-Cuk28Js_.d.ts} +1 -1
  14. package/dist/{attachment-preview-ChtC3HiU.js → attachment-preview-DIs50Q0h.js} +3 -3
  15. package/dist/components/Accordion.d.ts +17 -6
  16. package/dist/components/Accordion.js +23 -36
  17. package/dist/components/Activity.d.ts +5 -5
  18. package/dist/components/Activity.js +9 -9
  19. package/dist/components/AgentChat.d.ts +1 -1
  20. package/dist/components/AgentChat.js +304 -116
  21. package/dist/components/AgentConnection.js +2 -2
  22. package/dist/components/AlertDialog.d.ts +40 -32
  23. package/dist/components/AlertDialog.js +46 -39
  24. package/dist/components/Artifact.d.ts +1 -1
  25. package/dist/components/Artifact.js +5 -5
  26. package/dist/components/Autocomplete.js +10 -2
  27. package/dist/components/Avatar.d.ts +2 -2
  28. package/dist/components/Avatar.js +3 -3
  29. package/dist/components/Badge.d.ts +11 -14
  30. package/dist/components/Badge.js +10 -18
  31. package/dist/components/BrowserLiveView.js +26 -36
  32. package/dist/components/BrowserReplay.js +4 -4
  33. package/dist/components/BrowserRunPanel.js +1 -1
  34. package/dist/components/Button.d.ts +2 -2
  35. package/dist/components/Button.js +7 -30
  36. package/dist/components/ChainOfThought.d.ts +5 -5
  37. package/dist/components/ChainOfThought.js +8 -5
  38. package/dist/components/ChatGptSignInScreen.js +3 -3
  39. package/dist/components/Checkbox.d.ts +10 -2
  40. package/dist/components/Checkbox.js +13 -6
  41. package/dist/components/CheckboxGroup.d.ts +6 -6
  42. package/dist/components/CheckboxGroup.js +6 -6
  43. package/dist/components/CodeBlock.d.ts +1 -1
  44. package/dist/components/CodeBlock.js +1 -1
  45. package/dist/components/CodexModelSelector.d.ts +23 -28
  46. package/dist/components/CodexModelSelector.js +116 -94
  47. package/dist/components/Collapsible.d.ts +2 -4
  48. package/dist/components/Collapsible.js +9 -7
  49. package/dist/components/Combobox.d.ts +2 -2
  50. package/dist/components/Combobox.js +20 -22
  51. package/dist/components/Commit.d.ts +5 -5
  52. package/dist/components/Commit.js +6 -6
  53. package/dist/components/Context.js +5 -1
  54. package/dist/components/ContextMenu.d.ts +20 -72
  55. package/dist/components/ContextMenu.js +46 -56
  56. package/dist/components/Conversation.d.ts +1 -1
  57. package/dist/components/Conversation.js +1 -1
  58. package/dist/components/Dialog.d.ts +38 -30
  59. package/dist/components/Dialog.js +46 -34
  60. package/dist/components/EnvironmentVariables.d.ts +1 -1
  61. package/dist/components/EnvironmentVariables.js +5 -5
  62. package/dist/components/Field.d.ts +3 -3
  63. package/dist/components/Field.js +7 -8
  64. package/dist/components/Fieldset.d.ts +2 -2
  65. package/dist/components/Fieldset.js +2 -2
  66. package/dist/components/FileTree.js +1 -1
  67. package/dist/components/Label.d.ts +1 -1
  68. package/dist/components/Label.js +1 -1
  69. package/dist/components/McpServerPicker.js +21 -19
  70. package/dist/components/Menu.d.ts +2 -2
  71. package/dist/components/Menu.js +39 -49
  72. package/dist/components/Menubar.d.ts +16 -52
  73. package/dist/components/Menubar.js +44 -56
  74. package/dist/components/Message.d.ts +1 -1
  75. package/dist/components/Message.js +6 -6
  76. package/dist/components/MessageScroller.d.ts +1 -1
  77. package/dist/components/MessageScroller.js +1 -1
  78. package/dist/components/Meter.js +5 -0
  79. package/dist/components/ModelSelector.d.ts +1 -1
  80. package/dist/components/ModelSelector.js +1 -1
  81. package/dist/components/NavigationMenu.d.ts +3 -14
  82. package/dist/components/NavigationMenu.js +22 -38
  83. package/dist/components/NumberField.js +6 -0
  84. package/dist/components/Popover.d.ts +21 -44
  85. package/dist/components/Popover.js +33 -23
  86. package/dist/components/PreviewCard.d.ts +20 -18
  87. package/dist/components/PreviewCard.js +30 -20
  88. package/dist/components/PricingPage.js +30 -29
  89. package/dist/components/Progress.d.ts +7 -3
  90. package/dist/components/Progress.js +9 -4
  91. package/dist/components/PromptInput.d.ts +2 -2
  92. package/dist/components/PromptInput.js +139 -54
  93. package/dist/components/Queue.d.ts +7 -7
  94. package/dist/components/Queue.js +6 -6
  95. package/dist/components/RadioGroup.d.ts +10 -9
  96. package/dist/components/RadioGroup.js +8 -9
  97. package/dist/components/Reasoning.d.ts +4 -4
  98. package/dist/components/Reasoning.js +10 -6
  99. package/dist/components/ScrollArea.d.ts +2 -9
  100. package/dist/components/ScrollArea.js +5 -23
  101. package/dist/components/Select.d.ts +2 -2
  102. package/dist/components/Select.js +100 -134
  103. package/dist/components/Slider.d.ts +10 -7
  104. package/dist/components/Slider.js +12 -11
  105. package/dist/components/Sources.d.ts +4 -4
  106. package/dist/components/Sources.js +8 -5
  107. package/dist/components/Stepper.js +1 -1
  108. package/dist/components/Switch.d.ts +6 -3
  109. package/dist/components/Switch.js +7 -4
  110. package/dist/components/Tabs.d.ts +2 -2
  111. package/dist/components/Tabs.js +9 -4
  112. package/dist/components/Task.d.ts +4 -4
  113. package/dist/components/Task.js +10 -6
  114. package/dist/components/Terminal.d.ts +2 -2
  115. package/dist/components/Terminal.js +5 -5
  116. package/dist/components/TestResults.d.ts +4 -4
  117. package/dist/components/TestResults.js +5 -5
  118. package/dist/components/ThinkChat.d.ts +9 -2
  119. package/dist/components/ThinkChat.js +1 -1
  120. package/dist/components/ThinkChatActivity.d.ts +1 -1
  121. package/dist/components/ThinkChatActivity.js +1 -1
  122. package/dist/components/ThinkChatToolPanels.js +8 -8
  123. package/dist/components/ThinkExecutionWorkbench.js +28 -28
  124. package/dist/components/ThinkFullApp.js +8 -8
  125. package/dist/components/ThinkThreadPicker.js +1 -1
  126. package/dist/components/ThinkThreadShell.js +5 -5
  127. package/dist/components/Toast.js +7 -0
  128. package/dist/components/ToggleGroup.d.ts +6 -2
  129. package/dist/components/ToggleGroup.js +6 -2
  130. package/dist/components/Toolbar.js +6 -0
  131. package/dist/components/Tooltip.d.ts +36 -27
  132. package/dist/components/Tooltip.js +45 -29
  133. package/dist/components/WebPreview.d.ts +1 -1
  134. package/dist/components/WebPreview.js +3 -3
  135. package/dist/components/WorkspaceExplorer.d.ts +6 -8
  136. package/dist/components/WorkspaceExplorer.js +6 -6
  137. package/dist/components/icons.d.ts +2 -2
  138. package/dist/components/icons.js +2 -2
  139. package/dist/{copy-button-C6JSKtFE.js → copy-button-DUMLYdsk.js} +7 -6
  140. package/dist/{copy-button-BKXqGiNm.d.ts → copy-button-DtPMgN7e.d.ts} +3 -2
  141. package/dist/icons-Ba9THQKz.js +64 -0
  142. package/dist/icons-CUCz_Sft.d.ts +210 -0
  143. package/dist/styles/accessibility.css +14 -0
  144. package/dist/styles/accordion.css +21 -61
  145. package/dist/styles/activity.css +23 -58
  146. package/dist/styles/agent-chat.css +45 -4
  147. package/dist/styles/agent-connection.css +8 -10
  148. package/dist/styles/alert-dialog.css +20 -26
  149. package/dist/styles/artifact.css +6 -6
  150. package/dist/styles/attachment-preview.css +1 -1
  151. package/dist/styles/autocomplete.css +5 -170
  152. package/dist/styles/avatar.css +8 -8
  153. package/dist/styles/badge.css +8 -10
  154. package/dist/styles/base-ui-motion.css +176 -0
  155. package/dist/styles/base.css +19 -25
  156. package/dist/styles/browser-live-view.css +7 -7
  157. package/dist/styles/browser-replay.css +5 -5
  158. package/dist/styles/browser-run-panel.css +5 -5
  159. package/dist/styles/button.css +48 -43
  160. package/dist/styles/card.css +3 -5
  161. package/dist/styles/chain-of-thought.css +14 -70
  162. package/dist/styles/chatgpt-sign-in-screen.css +3 -3
  163. package/dist/styles/checkbox-group.css +1 -1
  164. package/dist/styles/checkbox.css +3 -7
  165. package/dist/styles/code-block.css +10 -10
  166. package/dist/styles/codex-model-selector.css +33 -44
  167. package/dist/styles/collapsible.css +11 -27
  168. package/dist/styles/combobox.css +3 -149
  169. package/dist/styles/commit.css +19 -35
  170. package/dist/styles/context-menu.css +1 -77
  171. package/dist/styles/context.css +12 -12
  172. package/dist/styles/conversation.css +7 -7
  173. package/dist/styles/dialog.css +34 -55
  174. package/dist/styles/environment-variables.css +10 -10
  175. package/dist/styles/field.css +16 -58
  176. package/dist/styles/fieldset.css +2 -2
  177. package/dist/styles/file-tree.css +7 -9
  178. package/dist/styles/index.css +8 -1
  179. package/dist/styles/input.css +1 -51
  180. package/dist/styles/label.css +2 -2
  181. package/dist/styles/marker.css +2 -4
  182. package/dist/styles/mcp-server-picker.css +5 -5
  183. package/dist/styles/menu.css +6 -153
  184. package/dist/styles/menubar.css +6 -105
  185. package/dist/styles/message-scroller.css +1 -1
  186. package/dist/styles/message.css +86 -8
  187. package/dist/styles/meter.css +4 -20
  188. package/dist/styles/model-selector.css +13 -13
  189. package/dist/styles/navigation-menu.css +14 -54
  190. package/dist/styles/number-field.css +8 -23
  191. package/dist/styles/popover.css +13 -68
  192. package/dist/styles/preview-card.css +5 -46
  193. package/dist/styles/pricing-page.css +43 -43
  194. package/dist/styles/progress.css +7 -16
  195. package/dist/styles/prompt-input.css +95 -44
  196. package/dist/styles/queue.css +12 -28
  197. package/dist/styles/radio.css +4 -8
  198. package/dist/styles/reasoning.css +3 -62
  199. package/dist/styles/recipes.css +475 -0
  200. package/dist/styles/select.css +7 -103
  201. package/dist/styles/shell.css +3 -3
  202. package/dist/styles/slider.css +5 -7
  203. package/dist/styles/sources.css +9 -66
  204. package/dist/styles/stepper.css +16 -14
  205. package/dist/styles/streamdown.css +9 -9
  206. package/dist/styles/switch.css +4 -7
  207. package/dist/styles/tabs.css +7 -8
  208. package/dist/styles/task.css +13 -42
  209. package/dist/styles/terminal.css +7 -7
  210. package/dist/styles/test-results.css +21 -37
  211. package/dist/styles/think-execution-workbench.css +23 -23
  212. package/dist/styles/think-full-app.css +12 -20
  213. package/dist/styles/think-resize-handle.css +2 -2
  214. package/dist/styles/think-thread-picker.css +19 -10
  215. package/dist/styles/think-thread-shell.css +7 -7
  216. package/dist/styles/toast.css +14 -25
  217. package/dist/styles/toggle-group.css +16 -14
  218. package/dist/styles/toggle.css +14 -15
  219. package/dist/styles/toolbar.css +13 -25
  220. package/dist/styles/tooltip.css +6 -16
  221. package/dist/styles/web-preview.css +15 -15
  222. package/dist/styles/workspace-explorer.css +14 -13
  223. package/dist/utils/codex-model-catalog.d.ts +142 -0
  224. package/dist/utils/codex-model-catalog.js +112 -0
  225. package/dist/utils/structured-code.d.ts +1 -1
  226. package/package.json +8 -2
  227. package/dist/Select-CRsKCJ9x.d.ts +0 -200
  228. package/dist/icons-CbjtbIJK.d.ts +0 -51
  229. package/dist/icons-D2Q5n5C1.js +0 -291
@@ -11,15 +11,15 @@
11
11
  max-width: 36rem;
12
12
  /* Whitespace separates the work log from message prose around it */
13
13
  margin-block: 0.5rem;
14
- font-family: var(--sigvelo-font-sans);
14
+ font-family: inherit;
15
15
  color: var(--sigvelo-color-text);
16
16
  }
17
17
 
18
18
  .activity__trigger {
19
19
  display: flex;
20
20
  align-items: center;
21
- gap: 0.375rem;
22
- padding-block: 0.375rem;
21
+ gap: var(--sigvelo-spacing-1-5);
22
+ padding-block: var(--sigvelo-spacing-1-5);
23
23
  /* The fill bleeds past the text edge via the negative margin, so the label
24
24
  stays flush with the rows below instead of indenting on hover */
25
25
  padding-inline: 0.5rem;
@@ -31,7 +31,7 @@
31
31
  status, not content */
32
32
  color: color-mix(in oklab, var(--sigvelo-color-text-muted), transparent 20%);
33
33
  font-family: inherit;
34
- font-size: 0.8125rem;
34
+ font-size: var(--sigvelo-text-compact);
35
35
  font-weight: var(--sigvelo-font-weight-semibold);
36
36
  text-align: start;
37
37
  cursor: pointer;
@@ -47,9 +47,7 @@
47
47
 
48
48
  .activity__trigger:focus-visible {
49
49
  outline: none;
50
- box-shadow:
51
- 0 0 0 2px var(--sigvelo-color-canvas),
52
- 0 0 0 4px var(--sigvelo-color-focus);
50
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
53
51
  }
54
52
 
55
53
  /* Basis 0 keeps the long nowrap label from inflating the message width
@@ -95,45 +93,30 @@
95
93
  transform: rotate(90deg);
96
94
  }
97
95
 
98
- /* The measured height lives on the base class, NOT gated behind [data-open]:
99
- during close the open rule stops matching before the ending style lands,
100
- height computes to `auto`, and `auto → 0` can't transition — the panel
101
- snaps shut instead of folding. (Base UI's documented panel pattern.) */
102
96
  .activity__content {
103
- height: var(--collapsible-panel-height);
104
- overflow: hidden;
105
97
  /* The panel clips (overflow: hidden), so it must own the gutter the row
106
98
  hover fills bleed into — the list padding puts the text back in line */
107
99
  margin-inline: -0.5rem;
108
100
  /* Standard easing, not emphasized: the expo-out curve front-loads ~60% of
109
101
  the motion into the first frames, which makes collapsing read as content
110
102
  snapping upward instead of folding. */
111
- transition:
112
- height var(--sigvelo-duration-medium) var(--sigvelo-ease-standard),
113
- opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
114
- }
115
-
116
- .activity__content[data-starting-style],
117
- .activity__content[data-ending-style] {
118
- height: 0;
119
- opacity: 0;
120
103
  }
121
104
 
122
105
  .activity__list {
123
106
  display: flex;
124
107
  flex-direction: column;
125
- gap: 0.375rem;
108
+ gap: var(--sigvelo-spacing-1-5);
126
109
  /* Unbounded on purpose: the expanded log flows in the conversation scroll;
127
110
  only subsection panels (group text, shell output, code) are height-capped. */
128
- padding-block: 0.125rem 0.5rem;
111
+ padding-block: var(--sigvelo-spacing-0-5) 0.5rem;
129
112
  padding-inline: 0.5rem;
130
113
  }
131
114
 
132
115
  .activity__item {
133
116
  display: flex;
134
117
  align-items: baseline;
135
- gap: 0.375rem;
136
- font-size: 0.8125rem;
118
+ gap: var(--sigvelo-spacing-1-5);
119
+ font-size: var(--sigvelo-text-compact);
137
120
  color: var(--sigvelo-color-text);
138
121
  line-height: 1.6;
139
122
  }
@@ -148,18 +131,18 @@
148
131
  .activity__group-trigger {
149
132
  display: flex;
150
133
  align-items: baseline;
151
- gap: 0.375rem;
134
+ gap: var(--sigvelo-spacing-1-5);
152
135
  /* Negative margins cancel the padding, so the hover fill gets breathing
153
136
  room while the row text stays aligned with its plain siblings */
154
- padding-block: 0.125rem;
137
+ padding-block: var(--sigvelo-spacing-0-5);
155
138
  padding-inline: 0.5rem;
156
- margin-block: -0.125rem;
139
+ margin-block: -var(--sigvelo-spacing-0-5);
157
140
  margin-inline: -0.5rem;
158
141
  background: none;
159
142
  border: none;
160
143
  border-radius: var(--sigvelo-radius-sm);
161
144
  font-family: inherit;
162
- font-size: 0.8125rem;
145
+ font-size: var(--sigvelo-text-compact);
163
146
  font-weight: inherit;
164
147
  color: var(--sigvelo-color-text);
165
148
  line-height: 1.6;
@@ -195,34 +178,18 @@
195
178
 
196
179
  .activity__group-trigger:focus-visible {
197
180
  outline: none;
198
- box-shadow:
199
- 0 0 0 2px var(--sigvelo-color-canvas),
200
- 0 0 0 4px var(--sigvelo-color-focus);
181
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
201
182
  border-radius: var(--sigvelo-radius-sm);
202
183
  }
203
184
 
204
- .activity__group-panel {
205
- height: var(--collapsible-panel-height);
206
- overflow: hidden;
207
- transition:
208
- height var(--sigvelo-duration-medium) var(--sigvelo-ease-standard),
209
- opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
210
- }
211
-
212
- .activity__group-panel[data-starting-style],
213
- .activity__group-panel[data-ending-style] {
214
- height: 0;
215
- opacity: 0;
216
- }
217
-
218
185
  .activity__group-panel-inner {
219
- padding-block: 0.375rem 0.5rem;
186
+ padding-block: var(--sigvelo-spacing-1-5) 0.5rem;
220
187
  }
221
188
 
222
189
  /* Prose panels (thought traces): quiet text, bounded like everything else */
223
190
  .activity__group-text {
224
191
  margin: 0;
225
- font-size: 0.8125rem;
192
+ font-size: var(--sigvelo-text-compact);
226
193
  line-height: 1.6;
227
194
  color: var(--sigvelo-color-text-muted);
228
195
  white-space: pre-wrap;
@@ -234,9 +201,7 @@
234
201
  .activity__group-text:focus-visible,
235
202
  .activity__shell-output:focus-visible {
236
203
  outline: none;
237
- box-shadow:
238
- 0 0 0 2px var(--sigvelo-color-canvas),
239
- 0 0 0 4px var(--sigvelo-color-focus);
204
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
240
205
  border-radius: var(--sigvelo-radius-sm);
241
206
  scroll-margin-block: 1rem;
242
207
  }
@@ -248,13 +213,13 @@
248
213
  flex-direction: column;
249
214
  gap: 0.25rem;
250
215
  padding-block: 0.5rem;
251
- padding-inline: 0.75rem;
216
+ padding-inline: var(--sigvelo-spacing-3);
252
217
  background-color: var(--sigvelo-color-neutral-bg-subtle);
253
218
  border-radius: var(--sigvelo-radius-md);
254
219
  }
255
220
 
256
221
  .activity__shell-label {
257
- font-size: 0.6875rem;
222
+ font-size: var(--sigvelo-text-2xs);
258
223
  font-weight: var(--sigvelo-font-weight-semibold);
259
224
  color: var(--sigvelo-color-text-muted);
260
225
  }
@@ -262,7 +227,7 @@
262
227
  .activity__shell-output {
263
228
  margin: 0;
264
229
  font-family: var(--sigvelo-font-mono);
265
- font-size: 0.75rem;
230
+ font-size: var(--sigvelo-text-xs);
266
231
  line-height: 1.6;
267
232
  color: var(--sigvelo-color-text);
268
233
  white-space: pre-wrap;
@@ -274,7 +239,7 @@
274
239
 
275
240
  .activity__shell-status {
276
241
  align-self: flex-end;
277
- font-size: 0.6875rem;
242
+ font-size: var(--sigvelo-text-2xs);
278
243
  color: var(--sigvelo-color-success-text-on-subtle);
279
244
  }
280
245
 
@@ -291,8 +256,8 @@
291
256
  drove it. Compact underline tabs — chrome stays quiet inside the shell. */
292
257
  .activity__browser-tabs .tabs__tab {
293
258
  padding-block: 0.25rem;
294
- padding-inline: 0.125rem;
295
- font-size: 0.75rem;
259
+ padding-inline: var(--sigvelo-spacing-0-5);
260
+ font-size: var(--sigvelo-text-xs);
296
261
  }
297
262
 
298
263
  .activity__browser-tabs .tabs__panel {
@@ -6,7 +6,7 @@
6
6
  min-height: 0;
7
7
  background-color: var(--sigvelo-color-surface);
8
8
  color: var(--sigvelo-color-text);
9
- font-family: var(--sigvelo-font-sans);
9
+ font-family: inherit;
10
10
  }
11
11
 
12
12
  .agent-chat__conversation {
@@ -44,7 +44,7 @@
44
44
  position: absolute;
45
45
  inset-inline: 0;
46
46
  inset-block-end: 0;
47
- padding: 0.625rem;
47
+ padding: var(--sigvelo-spacing-2-5);
48
48
  padding-block-start: 1.5rem;
49
49
  background: linear-gradient(
50
50
  to top,
@@ -70,13 +70,54 @@
70
70
  .agent-chat__notice {
71
71
  display: flex;
72
72
  align-items: center;
73
- gap: 0.375rem;
73
+ gap: var(--sigvelo-spacing-1-5);
74
74
  margin-block-end: 0.5rem;
75
- font-size: 0.75rem;
75
+ font-size: var(--sigvelo-text-xs);
76
76
  color: var(--sigvelo-color-text-muted);
77
77
  }
78
78
 
79
+ .agent-chat__notice:empty {
80
+ margin-block-end: 0;
81
+ }
82
+
79
83
  .agent-chat__notice[data-tone="danger"],
80
84
  .agent-chat__notice [data-tone="danger"] {
81
85
  color: var(--sigvelo-color-danger-text);
82
86
  }
87
+
88
+ .agent-chat__turn-error {
89
+ display: flex;
90
+ flex: 1;
91
+ flex-wrap: wrap;
92
+ align-items: center;
93
+ justify-content: space-between;
94
+ gap: var(--sigvelo-spacing-3);
95
+ padding: var(--sigvelo-spacing-3);
96
+ color: var(--sigvelo-color-danger-text-on-subtle);
97
+ background-color: var(--sigvelo-color-danger-bg-subtle);
98
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width)
99
+ var(--sigvelo-color-danger-border-muted);
100
+ border-radius: var(--sigvelo-radius-lg);
101
+ }
102
+
103
+ .agent-chat__turn-error-message {
104
+ min-inline-size: min(100%, 16rem);
105
+ flex: 1;
106
+ margin: 0;
107
+ overflow-wrap: anywhere;
108
+ font-size: var(--sigvelo-text-sm);
109
+ line-height: 1.5;
110
+ }
111
+
112
+ .agent-chat__turn-error-actions {
113
+ display: flex;
114
+ flex-wrap: wrap;
115
+ gap: 0.5rem;
116
+ margin-inline-start: auto;
117
+ }
118
+
119
+ @media (forced-colors: active) {
120
+ .agent-chat__turn-error {
121
+ border: var(--sigvelo-focus-width) solid CanvasText;
122
+ }
123
+ }
@@ -1,6 +1,6 @@
1
1
  .agent-connect {
2
2
  display: grid;
3
- gap: 0.75rem;
3
+ gap: var(--sigvelo-spacing-3);
4
4
  min-inline-size: 0;
5
5
  color: var(--sigvelo-color-text);
6
6
  }
@@ -34,7 +34,7 @@
34
34
  .agent-connect__title-group :where(h2, h3) {
35
35
  margin: 0;
36
36
  color: var(--sigvelo-color-text);
37
- font-size: 0.95rem;
37
+ font-size: var(--sigvelo-text-base);
38
38
  font-weight: var(--sigvelo-font-weight-bold);
39
39
  line-height: 1.2;
40
40
  letter-spacing: 0;
@@ -44,7 +44,7 @@
44
44
  max-inline-size: 62ch;
45
45
  margin: 0;
46
46
  color: var(--sigvelo-color-text-muted);
47
- font-size: 0.78rem;
47
+ font-size: var(--sigvelo-text-compact);
48
48
  line-height: 1.35;
49
49
  text-wrap: pretty;
50
50
  }
@@ -87,7 +87,7 @@
87
87
  color: var(--sigvelo-color-text-muted);
88
88
  cursor: pointer;
89
89
  font: inherit;
90
- font-size: 0.72rem;
90
+ font-size: var(--sigvelo-text-xs);
91
91
  font-weight: var(--sigvelo-font-weight-semibold);
92
92
  line-height: 1.15;
93
93
  overflow-wrap: anywhere;
@@ -106,7 +106,7 @@
106
106
  @media (pointer: coarse) {
107
107
  .agent-connect__target {
108
108
  min-block-size: 2.5rem;
109
- padding-inline: 0.75rem;
109
+ padding-inline: var(--sigvelo-spacing-3);
110
110
  }
111
111
  }
112
112
 
@@ -117,9 +117,7 @@
117
117
 
118
118
  .agent-connect__target:focus-visible {
119
119
  outline: none;
120
- box-shadow:
121
- 0 0 0 2px var(--sigvelo-color-canvas),
122
- 0 0 0 4px var(--sigvelo-color-focus);
120
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
123
121
  }
124
122
 
125
123
  .agent-connect__target[data-selected="true"] {
@@ -137,13 +135,13 @@
137
135
 
138
136
  .agent-connect .code-block__content,
139
137
  .agent-connect .code-block__content--highlighted pre.shiki {
140
- font-size: 0.74rem;
138
+ font-size: var(--sigvelo-text-xs);
141
139
  line-height: 1.5;
142
140
  }
143
141
 
144
142
  .agent-connect__mcp-form {
145
143
  display: grid;
146
- gap: 0.75rem;
144
+ gap: var(--sigvelo-spacing-3);
147
145
  min-inline-size: 0;
148
146
  }
149
147
 
@@ -13,14 +13,10 @@
13
13
 
14
14
  .alert-dialog__trigger:focus-visible {
15
15
  outline: none;
16
- box-shadow:
17
- 0 0 0 2px var(--sigvelo-color-canvas),
18
- 0 0 0 4px var(--sigvelo-color-focus);
16
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
19
17
  }
20
18
 
21
19
  .alert-dialog__backdrop {
22
- position: fixed;
23
- inset: 0;
24
20
  background-color: var(--sigvelo-color-backdrop);
25
21
  opacity: 1;
26
22
  z-index: 50;
@@ -33,6 +29,8 @@
33
29
  }
34
30
 
35
31
  .alert-dialog__popup {
32
+ --sigvelo-recipe-surface-padding: var(--sigvelo-spacing-6);
33
+
36
34
  position: fixed;
37
35
  inset-block-start: 50%;
38
36
  inset-inline-start: 50%;
@@ -42,14 +40,6 @@
42
40
  max-inline-size: 28rem;
43
41
  max-block-size: calc(100dvb - 2rem);
44
42
  overflow: auto;
45
- background-color: var(--sigvelo-color-canvas);
46
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
47
- var(--sigvelo-color-neutral-border-muted);
48
- border-radius: var(--sigvelo-radius-md);
49
- padding: 1.5rem;
50
- box-shadow:
51
- 0 10px 15px -3px color-mix(in oklab, var(--sigvelo-color-text), transparent 90%),
52
- 0 4px 6px -4px color-mix(in oklab, var(--sigvelo-color-text), transparent 90%);
53
43
  transition:
54
44
  opacity var(--sigvelo-duration-medium) var(--sigvelo-ease-standard),
55
45
  transform var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized);
@@ -61,6 +51,13 @@
61
51
  transform: translate(-50%, -50%) scale(0.95);
62
52
  }
63
53
 
54
+ @media (prefers-reduced-motion: reduce) {
55
+ .alert-dialog__popup[data-starting-style],
56
+ .alert-dialog__popup[data-ending-style] {
57
+ transform: translate(-50%, -50%);
58
+ }
59
+ }
60
+
64
61
  .alert-dialog__popup--sm {
65
62
  max-inline-size: 20rem;
66
63
  }
@@ -70,8 +67,7 @@
70
67
  }
71
68
 
72
69
  .alert-dialog__title {
73
- font-family: var(--sigvelo-font-sans);
74
- font-size: 1.125rem;
70
+ font-size: var(--sigvelo-text-lg);
75
71
  font-weight: var(--sigvelo-font-weight-bold);
76
72
  line-height: 1.25;
77
73
  color: var(--sigvelo-color-text);
@@ -80,8 +76,7 @@
80
76
  }
81
77
 
82
78
  .alert-dialog__description {
83
- font-family: var(--sigvelo-font-sans);
84
- font-size: 0.875rem;
79
+ font-size: var(--sigvelo-text-sm);
85
80
  line-height: 1.5;
86
81
  color: var(--sigvelo-color-text-muted);
87
82
  margin: 0 0 1.5rem;
@@ -98,7 +93,7 @@
98
93
  display: flex;
99
94
  flex-wrap: wrap;
100
95
  justify-content: flex-end;
101
- gap: 0.75rem;
96
+ gap: var(--sigvelo-spacing-3);
102
97
  }
103
98
 
104
99
  .alert-dialog__media {
@@ -109,10 +104,11 @@
109
104
  display: inline-flex;
110
105
  align-items: center;
111
106
  justify-content: center;
112
- min-block-size: 2.5rem;
113
- padding: 0 1rem;
114
- font-family: var(--sigvelo-font-sans);
115
- font-size: 0.875rem;
107
+ min-block-size: var(--sigvelo-recipe-control-height);
108
+ padding-block: 0;
109
+ padding-inline: var(--sigvelo-recipe-control-padding-inline);
110
+ font-family: inherit;
111
+ font-size: var(--sigvelo-recipe-control-font-size);
116
112
  font-weight: var(--sigvelo-font-weight-semibold);
117
113
  border: none;
118
114
  border-radius: var(--sigvelo-radius-md);
@@ -125,14 +121,12 @@
125
121
 
126
122
  .alert-dialog__action:focus-visible {
127
123
  outline: none;
128
- box-shadow:
129
- 0 0 0 2px var(--sigvelo-color-canvas),
130
- 0 0 0 4px var(--sigvelo-color-focus);
124
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
131
125
  }
132
126
 
133
127
  .alert-dialog__action:disabled {
134
128
  cursor: not-allowed;
135
- opacity: 0.5;
129
+ opacity: var(--sigvelo-recipe-disabled-opacity);
136
130
  }
137
131
 
138
132
  .alert-dialog__action--primary {
@@ -2,7 +2,7 @@
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  inline-size: 100%;
5
- font-family: var(--sigvelo-font-sans);
5
+ font-family: inherit;
6
6
  color: var(--sigvelo-color-text);
7
7
  /* Shadow-led elevation: no perimeter border */
8
8
  background-color: var(--sigvelo-color-surface);
@@ -15,8 +15,8 @@
15
15
  display: flex;
16
16
  align-items: flex-start;
17
17
  justify-content: space-between;
18
- gap: 0.75rem;
19
- padding-block: 0.75rem;
18
+ gap: var(--sigvelo-spacing-3);
19
+ padding-block: var(--sigvelo-spacing-3);
20
20
  padding-inline: 1rem;
21
21
  background-color: var(--sigvelo-color-surface);
22
22
  }
@@ -38,8 +38,8 @@
38
38
 
39
39
  .artifact__description {
40
40
  margin: 0;
41
- margin-block-start: 0.125rem;
42
- font-size: 0.8125rem;
41
+ margin-block-start: var(--sigvelo-spacing-0-5);
42
+ font-size: var(--sigvelo-text-compact);
43
43
  color: var(--sigvelo-color-text-muted);
44
44
  line-height: 1.4;
45
45
  overflow-wrap: anywhere;
@@ -73,7 +73,7 @@
73
73
  .artifact__content {
74
74
  padding-block: 1rem;
75
75
  padding-inline: 1rem;
76
- font-size: 0.875rem;
76
+ font-size: var(--sigvelo-text-sm);
77
77
  line-height: 1.5;
78
78
  overflow-wrap: anywhere;
79
79
  }
@@ -15,7 +15,7 @@
15
15
 
16
16
  .attachment-preview__name {
17
17
  margin-block-start: 0.5rem;
18
- font-size: 0.75rem;
18
+ font-size: var(--sigvelo-text-xs);
19
19
  color: var(--sigvelo-color-text-muted);
20
20
  text-align: center;
21
21
  }
@@ -1,182 +1,17 @@
1
1
  .autocomplete__input {
2
2
  flex: 1;
3
- min-width: 0;
4
- padding-block: 0.5rem;
5
- padding-inline: 0.75rem;
6
- font-family: var(--sigvelo-font-sans);
7
- font-size: 0.875rem;
8
- color: var(--sigvelo-color-text);
9
- background-color: transparent;
10
- border: none;
11
- border-radius: var(--sigvelo-radius-sm);
12
- outline: none;
13
- }
14
-
15
- .autocomplete__input::placeholder {
16
- color: var(--sigvelo-color-text-muted);
17
- }
18
-
19
- .autocomplete__input:focus-visible {
20
- outline: none;
21
- box-shadow:
22
- 0 0 0 2px var(--sigvelo-color-canvas),
23
- 0 0 0 4px var(--sigvelo-color-focus);
24
- }
25
-
26
- .autocomplete__trigger {
27
- display: inline-flex;
28
- align-items: center;
29
- justify-content: center;
30
- padding: 0.5rem;
31
- color: var(--sigvelo-color-text-muted);
32
- background-color: transparent;
33
- border: none;
34
- border-radius: var(--sigvelo-radius-sm);
35
- cursor: pointer;
36
- transition: color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
37
- }
38
-
39
- .autocomplete__trigger:hover {
40
- color: var(--sigvelo-color-text);
41
- }
42
-
43
- .autocomplete__trigger:focus-visible {
44
- outline: none;
45
- box-shadow:
46
- 0 0 0 2px var(--sigvelo-color-canvas),
47
- 0 0 0 4px var(--sigvelo-color-focus);
48
- }
49
-
50
- .autocomplete__clear {
51
- display: inline-flex;
52
- align-items: center;
53
- justify-content: center;
54
- padding: 0.25rem;
55
- color: var(--sigvelo-color-text-muted);
56
- background-color: transparent;
57
- border: none;
58
- border-radius: var(--sigvelo-radius-sm);
59
- cursor: pointer;
60
- transition:
61
- color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
62
- background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
63
- }
64
-
65
- .autocomplete__clear:hover {
66
- color: var(--sigvelo-color-text);
67
- background-color: var(--sigvelo-color-neutral-bg-subtle);
68
- }
69
-
70
- .autocomplete__clear:focus-visible {
71
- outline: none;
72
- box-shadow:
73
- 0 0 0 2px var(--sigvelo-color-canvas),
74
- 0 0 0 4px var(--sigvelo-color-focus);
75
- }
76
-
77
- .autocomplete__positioner {
78
- z-index: 50;
79
3
  }
80
4
 
81
5
  .autocomplete__popup {
82
- min-width: 200px;
83
- max-height: 300px;
84
- overflow: auto;
85
- background-color: var(--sigvelo-color-surface);
86
- color: var(--sigvelo-color-text);
87
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
88
- var(--sigvelo-color-neutral-border-muted);
89
- border-radius: var(--sigvelo-radius-md);
90
- box-shadow:
91
- 0 10px 15px -3px color-mix(in oklab, var(--sigvelo-color-text), transparent 90%),
92
- 0 4px 6px -4px color-mix(in oklab, var(--sigvelo-color-text), transparent 90%);
93
- animation: autocomplete-popup-enter var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
94
- }
6
+ --sigvelo-recipe-surface-padding: 0;
95
7
 
96
- .autocomplete__popup[data-ending-style] {
97
- animation: autocomplete-popup-exit 100ms ease;
98
- }
99
-
100
- @keyframes autocomplete-popup-enter {
101
- from {
102
- opacity: 0;
103
- transform: translateY(-4px);
104
- }
105
- to {
106
- opacity: 1;
107
- transform: translateY(0);
108
- }
109
- }
110
-
111
- @keyframes autocomplete-popup-exit {
112
- from {
113
- opacity: 1;
114
- transform: translateY(0);
115
- }
116
- to {
117
- opacity: 0;
118
- transform: translateY(-4px);
119
- }
120
- }
121
-
122
- .autocomplete__list {
123
- padding: 0.25rem;
124
- }
125
-
126
- .autocomplete__item {
127
- display: flex;
128
- align-items: center;
129
- gap: 0.5rem;
130
- padding-block: 0.5rem;
131
- padding-inline: 0.75rem;
132
- font-family: var(--sigvelo-font-sans);
133
- font-size: 0.875rem;
134
- color: var(--sigvelo-color-text);
135
- border-radius: var(--sigvelo-radius-sm);
136
- cursor: pointer;
137
- outline: none;
138
- transition:
139
- background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
140
- color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
141
- }
142
-
143
- .autocomplete__item:hover,
144
- .autocomplete__item[data-highlighted] {
145
- background-color: var(--sigvelo-color-neutral-bg-subtle);
146
- color: var(--sigvelo-color-neutral-text-on-subtle);
147
- }
148
-
149
- .autocomplete__item[data-disabled] {
150
- opacity: 0.5;
151
- pointer-events: none;
152
- }
153
-
154
- .autocomplete__empty {
155
- padding: 1rem;
156
- text-align: center;
157
- font-size: 0.875rem;
158
- color: var(--sigvelo-color-text-muted);
8
+ inline-size: var(--anchor-width);
9
+ min-inline-size: 12.5rem;
159
10
  }
160
11
 
161
12
  .autocomplete__status {
162
- padding: 0.75rem;
13
+ padding: var(--sigvelo-spacing-3);
163
14
  text-align: center;
164
- font-size: 0.75rem;
165
- color: var(--sigvelo-color-text-muted);
166
- }
167
-
168
- .autocomplete__group {
169
- padding-block: 0.25rem;
170
- }
171
-
172
- .autocomplete__group + .autocomplete__group {
173
- border-block-start: 1px solid var(--sigvelo-color-neutral-border-muted);
174
- }
175
-
176
- .autocomplete__group-label {
177
- padding-block: 0.375rem;
178
- padding-inline: 0.75rem;
179
- font-size: 0.75rem;
180
- font-weight: var(--sigvelo-font-weight-semibold);
15
+ font-size: var(--sigvelo-text-xs);
181
16
  color: var(--sigvelo-color-text-muted);
182
17
  }