@mcp-b/react-components 0.20.5 → 0.22.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 (234) hide show
  1. package/dist/{AgentActivity-D2SHSGFX.d.ts → AgentActivity-D3OvrC02.d.ts} +14 -1
  2. package/dist/{AgentChat-C-ZyXbJz.d.ts → AgentChat-Bm1qYbOo.d.ts} +24 -1
  3. package/dist/AgentChatStartScreen-DDZ25aax.d.ts +60 -0
  4. package/dist/{Button-yRInko9u.d.ts → Button-SBIz6Lqi.d.ts} +2 -1
  5. package/dist/{CodeBlock-ygtuzqJd.js → CodeBlock-Cp67Njo3.js} +1 -1
  6. package/dist/{CodeBlock-Bbls1CnA.d.ts → CodeBlock-yMpGqScn.d.ts} +1 -1
  7. package/dist/Dialog-BD8NBKaE.d.ts +122 -0
  8. package/dist/{FileTree-CdgfccsM.js → FileTree-DW60q1w7.js} +1 -1
  9. package/dist/IconButton-CFKhu6OR.d.ts +35 -0
  10. package/dist/{Message-DzuteocT.js → Message-_-bEYLAO.js} +9 -16
  11. package/dist/{ModelSelector-pecWyOFI.js → ModelSelector-Brvj9Cab.js} +15 -8
  12. package/dist/{PromptInput-Cq-8RoXD.d.ts → PromptInput-BjoPWaaG.d.ts} +15 -2
  13. package/dist/{ThinkChatActivity-CdbL0aoA.d.ts → ThinkChatActivity-2BobmuvR.d.ts} +8 -7
  14. package/dist/{ThinkChatActivitySummary-D1xOrNrq.d.ts → ThinkChatActivitySummary-kr5fE0wg.d.ts} +14 -5
  15. package/dist/{ToggleGroup-DNd6cDJZ.d.ts → ToggleGroup-BW1jrhAF.d.ts} +10 -0
  16. package/dist/{Workspace-CWtust-2.d.ts → Workspace-CIycQ4xE.d.ts} +1 -1
  17. package/dist/{WorkspaceExplorer-DGigwsgH.d.ts → WorkspaceExplorer-BCipn7Vd.d.ts} +1 -1
  18. package/dist/{WorkspaceFile-D8Un_xge.d.ts → WorkspaceFile-DMtRMwVv.d.ts} +1 -1
  19. package/dist/{WorkspaceFileView-Bxx4wEzJ.js → WorkspaceFileView-rUEN2iox.js} +4 -4
  20. package/dist/assets/think-browser-host.png +0 -0
  21. package/dist/components/ActionGuide.d.ts +85 -0
  22. package/dist/components/ActionGuide.js +94 -0
  23. package/dist/components/Activity.d.ts +33 -17
  24. package/dist/components/Activity.js +40 -28
  25. package/dist/components/AgentActivity.d.ts +1 -1
  26. package/dist/components/AgentActivity.js +3 -11
  27. package/dist/components/AgentActivityPreview.d.ts +1 -1
  28. package/dist/components/AgentActivityPreview.js +17 -16
  29. package/dist/components/AgentAttention.d.ts +1 -1
  30. package/dist/components/AgentChat.d.ts +1 -1
  31. package/dist/components/AgentChat.js +169 -136
  32. package/dist/components/AgentChatStartScreen.d.ts +2 -0
  33. package/dist/components/AgentChatStartScreen.js +88 -0
  34. package/dist/components/AgentConnection.d.ts +1 -1
  35. package/dist/components/AgentConnection.js +2 -2
  36. package/dist/components/AgentMessageParts.js +1 -1
  37. package/dist/components/AgentToolDetail.js +1 -1
  38. package/dist/components/AlertDialog.d.ts +2 -1
  39. package/dist/components/AlertDialog.js +8 -2
  40. package/dist/components/AppIcon.d.ts +58 -0
  41. package/dist/components/AppIcon.js +51 -0
  42. package/dist/components/AppTopBar.js +9 -10
  43. package/dist/components/Approval.js +3 -5
  44. package/dist/components/Artifact.d.ts +3 -7
  45. package/dist/components/Artifact.js +12 -18
  46. package/dist/components/Avatar.d.ts +7 -2
  47. package/dist/components/Avatar.js +4 -2
  48. package/dist/components/BrowserLiveView.js +6 -8
  49. package/dist/components/BrowserReplay.js +9 -9
  50. package/dist/components/BrowserRunPanel.js +2 -2
  51. package/dist/components/Button.d.ts +1 -1
  52. package/dist/components/ChainOfThought.d.ts +1 -1
  53. package/dist/components/ChainOfThought.js +1 -1
  54. package/dist/components/ChatGptSignInScreen.js +2 -2
  55. package/dist/components/Checkbox.js +1 -1
  56. package/dist/components/Checkpoint.js +1 -1
  57. package/dist/components/CodeBlock.d.ts +1 -1
  58. package/dist/components/CodeBlock.js +1 -1
  59. package/dist/components/CodexModelSelector.js +1 -1
  60. package/dist/components/Commit.d.ts +1 -1
  61. package/dist/components/Commit.js +3 -3
  62. package/dist/components/ContextMenu.js +1 -1
  63. package/dist/components/Conversation.d.ts +3 -24
  64. package/dist/components/Conversation.js +6 -34
  65. package/dist/components/Dialog.d.ts +1 -117
  66. package/dist/components/Dialog.js +9 -1
  67. package/dist/components/EmptyState.d.ts +46 -0
  68. package/dist/components/EmptyState.js +50 -0
  69. package/dist/components/EnvironmentVariables.d.ts +1 -1
  70. package/dist/components/EnvironmentVariables.js +2 -2
  71. package/dist/components/FileTree.js +1 -1
  72. package/dist/components/IconButton.d.ts +1 -31
  73. package/dist/components/IconButton.js +2 -1
  74. package/dist/components/Kbd.d.ts +32 -0
  75. package/dist/components/Kbd.js +34 -0
  76. package/dist/components/McpConnectionRequest.d.ts +1 -1
  77. package/dist/components/McpConnectionRequest.js +1 -1
  78. package/dist/components/McpPluginCatalog.d.ts +86 -0
  79. package/dist/components/McpPluginCatalog.js +364 -0
  80. package/dist/components/McpServerPicker.d.ts +2 -2
  81. package/dist/components/McpServerPicker.js +7 -13
  82. package/dist/components/MediaPreviewCard.js +1 -1
  83. package/dist/components/Menubar.js +1 -1
  84. package/dist/components/Message.d.ts +4 -8
  85. package/dist/components/Message.js +1 -1
  86. package/dist/components/MessageScroller.d.ts +1 -1
  87. package/dist/components/MessageScroller.js +1 -1
  88. package/dist/components/ModelSelector.d.ts +12 -6
  89. package/dist/components/ModelSelector.js +2 -2
  90. package/dist/components/Plan.js +1 -1
  91. package/dist/components/PricingBillingToggle.js +1 -0
  92. package/dist/components/PricingPlanCard.d.ts +1 -1
  93. package/dist/components/PricingPlanCard.js +10 -12
  94. package/dist/components/PromptInput.d.ts +2 -2
  95. package/dist/components/PromptInput.js +30 -12
  96. package/dist/components/Queue.d.ts +1 -1
  97. package/dist/components/Queue.js +2 -2
  98. package/dist/components/Reasoning.js +5 -10
  99. package/dist/components/ResponsiveSidebarShell.js +2 -1
  100. package/dist/components/SearchField.js +1 -1
  101. package/dist/components/Select.js +1 -1
  102. package/dist/components/Sources.js +1 -1
  103. package/dist/components/StatusPill.d.ts +43 -0
  104. package/dist/components/StatusPill.js +35 -0
  105. package/dist/components/Stepper.js +1 -1
  106. package/dist/components/SubagentRunIndicator.js +1 -1
  107. package/dist/components/SubagentRunSelector.js +1 -1
  108. package/dist/components/Task.js +1 -1
  109. package/dist/components/Terminal.d.ts +3 -3
  110. package/dist/components/Terminal.js +7 -8
  111. package/dist/components/TestResults.js +1 -1
  112. package/dist/components/ThemeModeControl.js +1 -1
  113. package/dist/components/ThinkChat.d.ts +12 -6
  114. package/dist/components/ThinkChatActivity.d.ts +2 -2
  115. package/dist/components/ThinkChatActivity.js +28 -16
  116. package/dist/components/ThinkChatActivitySummary.d.ts +2 -2
  117. package/dist/components/ThinkChatActivitySummary.js +67 -64
  118. package/dist/components/ThinkChatToolPanels.js +1 -1
  119. package/dist/components/ThinkExecutionDetail.js +5 -5
  120. package/dist/components/ThinkExecutionStatus.js +1 -1
  121. package/dist/components/ThinkExecutionWorkbench.js +19 -25
  122. package/dist/components/ThinkFullApp.d.ts +8 -4
  123. package/dist/components/ThinkFullApp.js +17 -2
  124. package/dist/components/ThinkFullAppViewSwitch.d.ts +1 -1
  125. package/dist/components/ThinkRoutineBrowser.js +3 -2
  126. package/dist/components/ThinkRoutineForm.js +3 -3
  127. package/dist/components/ThinkRoutineLibrary.js +2 -2
  128. package/dist/components/ThinkRoutineRuns.js +4 -3
  129. package/dist/components/ThinkThreadPicker.js +5 -4
  130. package/dist/components/Toast.d.ts +12 -2
  131. package/dist/components/Toast.js +14 -4
  132. package/dist/components/ToggleGroup.d.ts +1 -1
  133. package/dist/components/ToggleGroup.js +54 -7
  134. package/dist/components/ToolInvocation.js +1 -1
  135. package/dist/components/Tooltip.d.ts +6 -4
  136. package/dist/components/Tooltip.js +11 -4
  137. package/dist/components/WebPreview.d.ts +13 -6
  138. package/dist/components/WebPreview.js +55 -50
  139. package/dist/components/Workspace.d.ts +1 -1
  140. package/dist/components/WorkspaceBrowser.d.ts +1 -1
  141. package/dist/components/WorkspaceBrowser.js +1 -1
  142. package/dist/components/WorkspaceExplorer.d.ts +3 -3
  143. package/dist/components/WorkspaceExplorer.js +1 -1
  144. package/dist/components/WorkspaceFile.d.ts +1 -1
  145. package/dist/components/WorkspaceFileView.d.ts +1 -1
  146. package/dist/components/WorkspaceFileView.js +1 -1
  147. package/dist/components/WorkspaceHeader.js +1 -1
  148. package/dist/components/icons.d.ts +2 -2
  149. package/dist/components/icons.js +2 -2
  150. package/dist/{copy-button-BrvQ7z4W.d.ts → copy-button-EBv_B9F6.d.ts} +2 -2
  151. package/dist/{copy-button-vo1paUSi.js → copy-button-TWq8nZhc.js} +8 -8
  152. package/dist/{icons-DyOM0EJs.js → icons-ua6f_GH3.js} +3 -2
  153. package/dist/{icons-DkRtZmvT.d.ts → icons-wP1yFUXF.d.ts} +6 -1
  154. package/dist/mcp-server-catalog-DycejaJ5.d.ts +1077 -0
  155. package/dist/styles/action-guide.css +128 -0
  156. package/dist/styles/activity-header.css +41 -10
  157. package/dist/styles/activity.css +26 -4
  158. package/dist/styles/agent-activity-preview-overlay.css +51 -12
  159. package/dist/styles/agent-activity-preview.css +23 -53
  160. package/dist/styles/agent-attention.css +2 -2
  161. package/dist/styles/agent-chat.css +291 -57
  162. package/dist/styles/agent-connection.css +8 -8
  163. package/dist/styles/alert-dialog.css +5 -20
  164. package/dist/styles/app-icon.css +122 -0
  165. package/dist/styles/app-top-bar.css +4 -5
  166. package/dist/styles/approval.css +1 -7
  167. package/dist/styles/artifact.css +4 -4
  168. package/dist/styles/avatar.css +13 -0
  169. package/dist/styles/base-ui-motion.css +1 -1
  170. package/dist/styles/base.css +94 -3
  171. package/dist/styles/browser-control-overlay.css +16 -7
  172. package/dist/styles/browser-live-view.css +5 -38
  173. package/dist/styles/browser-replay.css +2 -6
  174. package/dist/styles/browser-run-panel.css +4 -18
  175. package/dist/styles/button.css +17 -1
  176. package/dist/styles/card.css +4 -4
  177. package/dist/styles/chain-of-thought.css +0 -1
  178. package/dist/styles/chatgpt-sign-in-screen.css +7 -5
  179. package/dist/styles/checkbox-group.css +3 -3
  180. package/dist/styles/code-block.css +4 -4
  181. package/dist/styles/context-menu.css +1 -1
  182. package/dist/styles/conversation.css +7 -42
  183. package/dist/styles/description-list.css +4 -4
  184. package/dist/styles/dialog.css +22 -7
  185. package/dist/styles/empty-state.css +48 -0
  186. package/dist/styles/environment-variables.css +4 -4
  187. package/dist/styles/field.css +2 -2
  188. package/dist/styles/index.css +6 -0
  189. package/dist/styles/inline-citation.css +1 -1
  190. package/dist/styles/kbd.css +40 -0
  191. package/dist/styles/mcp-plugin-catalog.css +296 -0
  192. package/dist/styles/mcp-server-picker.css +0 -26
  193. package/dist/styles/media-preview-card.css +5 -3
  194. package/dist/styles/message-scroller.css +4 -4
  195. package/dist/styles/message.css +11 -6
  196. package/dist/styles/model-selector.css +5 -8
  197. package/dist/styles/popover.css +1 -1
  198. package/dist/styles/preview-card.css +1 -1
  199. package/dist/styles/prompt-input.css +44 -54
  200. package/dist/styles/queue.css +2 -2
  201. package/dist/styles/recipes.css +83 -9
  202. package/dist/styles/resizable-side-panel.css +1 -1
  203. package/dist/styles/responsive-sidebar-shell.css +19 -14
  204. package/dist/styles/scrollbars.css +32 -3
  205. package/dist/styles/search-field.css +9 -0
  206. package/dist/styles/sources.css +1 -1
  207. package/dist/styles/status-pill.css +39 -0
  208. package/dist/styles/stepper.css +2 -2
  209. package/dist/styles/streamdown.css +13 -12
  210. package/dist/styles/subagent-run.css +3 -3
  211. package/dist/styles/switch.css +1 -3
  212. package/dist/styles/tabs.css +1 -1
  213. package/dist/styles/task.css +1 -1
  214. package/dist/styles/terminal.css +2 -2
  215. package/dist/styles/test-results.css +1 -2
  216. package/dist/styles/textarea.css +1 -1
  217. package/dist/styles/theme-mode-control.css +1 -1
  218. package/dist/styles/think-execution-status.css +4 -23
  219. package/dist/styles/think-execution-workbench.css +2 -3
  220. package/dist/styles/think-full-app.css +24 -4
  221. package/dist/styles/think-routine-library.css +14 -16
  222. package/dist/styles/think-thread-picker.css +9 -26
  223. package/dist/styles/toast.css +2 -23
  224. package/dist/styles/toggle-group.css +76 -3
  225. package/dist/styles/tooltip.css +1 -2
  226. package/dist/styles/utilities.css +73 -0
  227. package/dist/styles/web-preview.css +5 -0
  228. package/dist/styles/workspace-explorer.css +4 -6
  229. package/dist/utils/favicon.d.ts +10 -0
  230. package/dist/utils/favicon.js +18 -0
  231. package/dist/utils/mcp-server-catalog.d.ts +2 -1078
  232. package/dist/utils/mcp-server-catalog.js +3 -11
  233. package/dist/utils/structured-code.d.ts +1 -1
  234. package/package.json +2 -2
@@ -1,6 +1,21 @@
1
+ /* Blurring the page behind the scrim reads as depth rather than as a dark
2
+ sheet, and keeps the dismissed content recognizable underneath. Browsers
3
+ without backdrop-filter still get the scrim on its own.
4
+
5
+ The blur does run on every frame of the open fade — the scrim covers the
6
+ viewport, so each frame re-filters all of it. What makes that affordable is
7
+ the filter itself: one 1px radius, no second pass. An earlier
8
+ blur(24px) saturate(180%) cost about a third of the Storybook suite in
9
+ timing failures, in stories that had nothing to do with dialogs.
10
+
11
+ Gating this behind :not([data-starting-style]) looks like it skips the fade
12
+ and does not. Base UI drops that attribute on the frame after mount, so the
13
+ blur is live from frame 1 while the opacity climbs for ~13 more. It bought
14
+ one frame and read as though it bought fourteen. */
1
15
  .dialog__backdrop {
2
16
  background-color: var(--sigvelo-color-backdrop);
3
- z-index: 50;
17
+ backdrop-filter: var(--sigvelo-glass-filter);
18
+ z-index: var(--sigvelo-z-overlay);
4
19
  }
5
20
 
6
21
  .dialog__popup {
@@ -10,7 +25,7 @@
10
25
  inset-block-start: 50%;
11
26
  inset-inline-start: 50%;
12
27
  translate: -50% -50%;
13
- z-index: 50;
28
+ z-index: var(--sigvelo-z-overlay);
14
29
  inline-size: calc(100% - var(--sigvelo-control-height-sm));
15
30
  max-inline-size: 32rem;
16
31
  max-block-size: calc(100dvb - var(--sigvelo-spacing-8));
@@ -35,16 +50,16 @@
35
50
  }
36
51
 
37
52
  .dialog__title {
38
- font-size: var(--sigvelo-text-base);
39
- font-weight: var(--sigvelo-font-weight-semibold);
40
- line-height: var(--sigvelo-leading-compact);
53
+ font-size: var(--sigvelo-text-lg);
54
+ font-weight: var(--sigvelo-font-weight-normal);
55
+ line-height: var(--sigvelo-text-lg-leading);
41
56
  color: var(--sigvelo-color-text);
42
57
  margin-block-end: var(--sigvelo-spacing-1);
43
58
  }
44
59
 
45
60
  .dialog__description {
46
- font-size: var(--sigvelo-text-compact);
47
- line-height: var(--sigvelo-leading-normal);
61
+ font-size: var(--sigvelo-text-sm);
62
+ line-height: var(--sigvelo-text-sm-leading);
48
63
  color: var(--sigvelo-color-text-muted);
49
64
  margin-block-end: var(--sigvelo-spacing-3);
50
65
  }
@@ -0,0 +1,48 @@
1
+ /*
2
+ * One anatomy for every "there is nothing here yet". Codex splits these into
3
+ * an inline variant and a page variant, but the difference between them is how
4
+ * much the container gives the block, not what the block is — so the size
5
+ * lives in one variable and the centring lives in the parent.
6
+ */
7
+ .empty-state {
8
+ --sigvelo-recipe-empty-state-padding-block: var(--sigvelo-spacing-4);
9
+
10
+ display: flex;
11
+ flex-direction: column;
12
+ align-items: center;
13
+ justify-content: center;
14
+ gap: var(--sigvelo-spacing-2);
15
+ padding-block: var(--sigvelo-recipe-empty-state-padding-block);
16
+ padding-inline: var(--sigvelo-spacing-3);
17
+ color: var(--sigvelo-color-text-muted);
18
+ font-size: var(--sigvelo-text-compact);
19
+ line-height: var(--sigvelo-text-compact-leading);
20
+ text-align: center;
21
+ }
22
+
23
+ .empty-state__icon {
24
+ display: inline-flex;
25
+ align-items: center;
26
+ justify-content: center;
27
+ inline-size: var(--sigvelo-spacing-12);
28
+ block-size: var(--sigvelo-spacing-12);
29
+ margin-block-end: var(--sigvelo-spacing-1);
30
+ border-radius: var(--sigvelo-radius-full);
31
+ background-color: var(--sigvelo-color-neutral-bg-subtle);
32
+ color: var(--sigvelo-color-text-muted);
33
+ }
34
+
35
+ .empty-state__title {
36
+ color: var(--sigvelo-color-text);
37
+ font-size: var(--sigvelo-text-base);
38
+ font-weight: var(--sigvelo-font-weight-semibold);
39
+ line-height: var(--sigvelo-text-base-leading);
40
+ }
41
+
42
+ /* Prose, so it takes a measure. Without one a wide panel sets a single
43
+ sentence across its whole width and the reader loses the line. */
44
+ .empty-state__description {
45
+ max-inline-size: 32ch;
46
+ font-size: var(--sigvelo-text-sm);
47
+ line-height: var(--sigvelo-text-sm-leading);
48
+ }
@@ -4,7 +4,7 @@
4
4
  justify-content: space-between;
5
5
  gap: var(--sigvelo-spacing-3);
6
6
  padding-block: var(--sigvelo-spacing-2-5);
7
- padding-inline: 0.875rem;
7
+ padding-inline: var(--sigvelo-spacing-3-5);
8
8
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
9
9
  var(--sigvelo-color-neutral-border-subtle);
10
10
  }
@@ -42,7 +42,7 @@
42
42
 
43
43
  .environment-variables__group-label {
44
44
  padding-block: var(--sigvelo-spacing-1-5);
45
- padding-inline: 0.875rem;
45
+ padding-inline: var(--sigvelo-spacing-3-5);
46
46
  font-size: var(--sigvelo-text-2xs);
47
47
  font-weight: var(--sigvelo-font-weight-bold);
48
48
  text-transform: uppercase;
@@ -58,7 +58,7 @@
58
58
  align-items: center;
59
59
  gap: var(--sigvelo-spacing-2-5);
60
60
  padding-block: var(--sigvelo-spacing-2);
61
- padding-inline: 0.875rem;
61
+ padding-inline: var(--sigvelo-spacing-3-5);
62
62
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
63
63
  var(--sigvelo-color-neutral-border-subtle);
64
64
  }
@@ -79,7 +79,7 @@
79
79
  .environment-variables__value {
80
80
  flex: 1;
81
81
  min-width: 0;
82
- padding-block: 0.3125rem;
82
+ padding-block: var(--sigvelo-spacing-1-5);
83
83
  padding-inline: var(--sigvelo-spacing-2);
84
84
  font-family: var(--sigvelo-font-mono);
85
85
  font-size: var(--sigvelo-text-xs);
@@ -94,7 +94,7 @@
94
94
  .field__description {
95
95
  font-family: inherit;
96
96
  font-size: var(--sigvelo-text-xs);
97
- line-height: 1.4;
97
+ line-height: var(--sigvelo-leading-snug);
98
98
  color: var(--sigvelo-color-text-muted);
99
99
  margin: 0;
100
100
  }
@@ -102,7 +102,7 @@
102
102
  .field__error {
103
103
  font-family: inherit;
104
104
  font-size: var(--sigvelo-text-xs);
105
- line-height: 1.4;
105
+ line-height: var(--sigvelo-leading-snug);
106
106
  color: var(--sigvelo-color-danger-bg);
107
107
  margin: 0;
108
108
  opacity: 1;
@@ -25,8 +25,10 @@
25
25
  @import "./attachment-preview.css" layer(components);
26
26
  @import "./autocomplete.css" layer(components);
27
27
  @import "./avatar.css" layer(components);
28
+ @import "./app-icon.css" layer(components);
28
29
  @import "./badge.css" layer(components);
29
30
  @import "./button.css" layer(components);
31
+ @import "./action-guide.css" layer(components);
30
32
  @import "./card.css" layer(components);
31
33
  @import "./checkbox.css" layer(components);
32
34
  @import "./checkbox-group.css" layer(components);
@@ -34,11 +36,13 @@
34
36
  @import "./combobox.css" layer(components);
35
37
  @import "./context-menu.css" layer(components);
36
38
  @import "./dialog.css" layer(components);
39
+ @import "./empty-state.css" layer(components);
37
40
  @import "./field.css" layer(components);
38
41
  @import "./fieldset.css" layer(components);
39
42
  @import "./form.css" layer(components);
40
43
  @import "./github-motion-mark.css" layer(components);
41
44
  @import "./input.css" layer(components);
45
+ @import "./kbd.css" layer(components);
42
46
  @import "./label.css" layer(components);
43
47
  @import "./marker.css" layer(components);
44
48
  @import "./media-preview-card.css" layer(components);
@@ -50,6 +54,7 @@
50
54
  @import "./nanite-scene.css" layer(components);
51
55
  @import "./number-field.css" layer(components);
52
56
  @import "./popover.css" layer(components);
57
+ @import "./mcp-plugin-catalog.css" layer(components);
53
58
  @import "./mcp-server-picker.css" layer(components);
54
59
  @import "./mcp-connection-request.css" layer(components);
55
60
  @import "./preview-card.css" layer(components);
@@ -61,6 +66,7 @@
61
66
  @import "./select.css" layer(components);
62
67
  @import "./separator.css" layer(components);
63
68
  @import "./slider.css" layer(components);
69
+ @import "./status-pill.css" layer(components);
64
70
  @import "./stepper.css" layer(components);
65
71
  @import "./switch.css" layer(components);
66
72
  @import "./tabs.css" layer(components);
@@ -81,7 +81,7 @@
81
81
  overflow-wrap: anywhere;
82
82
  color: var(--sigvelo-color-text-muted);
83
83
  font-size: var(--sigvelo-text-xs);
84
- line-height: 1.4;
84
+ line-height: var(--sigvelo-leading-snug);
85
85
  }
86
86
 
87
87
  .inline-citation__metadata {
@@ -0,0 +1,40 @@
1
+ /*
2
+ * Everything here resolves from currentColor, which is what lets one chip work
3
+ * on a page surface and on the inverted surface of a tooltip. A fixed
4
+ * neutral background is legible on exactly one of those.
5
+ *
6
+ * Codex renders its keys at tertiary text and strips the shadow its base sheet
7
+ * applies, so the resting state here is quiet by default rather than quieted
8
+ * at each call site.
9
+ */
10
+ .kbd {
11
+ display: inline-flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ min-inline-size: var(--sigvelo-spacing-5);
15
+ padding-block: var(--sigvelo-spacing-0-5);
16
+ padding-inline: var(--sigvelo-spacing-1);
17
+ font-family: var(--sigvelo-font-mono);
18
+ /* em, not a type step: a key sits inside a label and should track whatever
19
+ size that label is set at. */
20
+ font-size: 0.75em;
21
+ line-height: var(--sigvelo-text-xs-leading);
22
+ /* currentcolor in the color property is the *inherited* color, so this dims
23
+ whatever the surface already set. In every declaration below it, though,
24
+ currentcolor is this new value — which is why nothing here names a
25
+ specific text token. Naming one would pin the chip to a light surface and
26
+ lose the tooltip. */
27
+ color: color-mix(in oklab, currentcolor, transparent 25%);
28
+ background-color: color-mix(in oklab, currentcolor, transparent 90%);
29
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width)
30
+ color-mix(in oklab, currentcolor, transparent 82%);
31
+ border-radius: var(--sigvelo-radius-sm);
32
+ white-space: nowrap;
33
+ }
34
+
35
+ @media (forced-colors: active) {
36
+ .kbd {
37
+ color: ButtonText;
38
+ border-color: ButtonText;
39
+ }
40
+ }
@@ -0,0 +1,296 @@
1
+ .mcp-plugin-catalog {
2
+ container: mcp-plugin-catalog / inline-size;
3
+ box-sizing: border-box;
4
+ inline-size: 100%;
5
+ max-inline-size: var(--sigvelo-measure-wide-block);
6
+ padding-inline: var(--sigvelo-spacing-4);
7
+ margin-inline: auto;
8
+ color: var(--sigvelo-color-text);
9
+ }
10
+
11
+ .mcp-plugin-catalog__header,
12
+ .mcp-plugin-catalog__heading-copy,
13
+ .mcp-plugin-catalog__installed,
14
+ .mcp-plugin-catalog__sections,
15
+ .mcp-plugin-catalog__section {
16
+ display: grid;
17
+ }
18
+
19
+ .mcp-plugin-catalog__header {
20
+ gap: var(--sigvelo-spacing-4);
21
+ margin-block-end: var(--sigvelo-spacing-6);
22
+ }
23
+
24
+ .mcp-plugin-catalog__heading-copy {
25
+ gap: var(--sigvelo-spacing-1);
26
+ }
27
+
28
+ .mcp-plugin-catalog__heading,
29
+ .mcp-plugin-catalog__description,
30
+ .mcp-plugin-catalog__section-heading,
31
+ .mcp-plugin-catalog__empty,
32
+ .mcp-plugin-details p {
33
+ margin: 0;
34
+ }
35
+
36
+ .mcp-plugin-catalog__heading {
37
+ font-size: var(--sigvelo-text-3xl);
38
+ font-weight: var(--sigvelo-font-weight-normal);
39
+ line-height: var(--sigvelo-text-3xl-leading);
40
+ letter-spacing: var(--sigvelo-tracking-normal);
41
+ }
42
+
43
+ .mcp-plugin-catalog__description {
44
+ max-inline-size: var(--sigvelo-measure-prose);
45
+ color: var(--sigvelo-color-text-muted);
46
+ font-size: var(--sigvelo-text-base);
47
+ line-height: var(--sigvelo-text-base-leading);
48
+ }
49
+
50
+ .mcp-plugin-catalog__search {
51
+ inline-size: 100%;
52
+ }
53
+
54
+ .mcp-plugin-catalog__installed {
55
+ gap: var(--sigvelo-spacing-2);
56
+ margin-block-end: var(--sigvelo-spacing-6);
57
+ }
58
+
59
+ .mcp-plugin-catalog__installed-list,
60
+ .mcp-plugin-catalog__list {
61
+ padding: 0;
62
+ margin: 0;
63
+ list-style: none;
64
+ }
65
+
66
+ .mcp-plugin-catalog__installed-list {
67
+ display: flex;
68
+ gap: var(--sigvelo-spacing-2);
69
+ overflow-x: auto;
70
+ }
71
+
72
+ .mcp-plugin-catalog__sections {
73
+ gap: var(--sigvelo-spacing-6);
74
+ }
75
+
76
+ .mcp-plugin-catalog__section {
77
+ gap: var(--sigvelo-spacing-2);
78
+ }
79
+
80
+ .mcp-plugin-catalog__section-heading {
81
+ color: var(--sigvelo-color-text);
82
+ font-size: var(--sigvelo-text-sm);
83
+ font-weight: var(--sigvelo-font-weight-semibold);
84
+ line-height: var(--sigvelo-text-sm-leading);
85
+ }
86
+
87
+ .mcp-plugin-catalog__list {
88
+ display: grid;
89
+ gap: var(--sigvelo-spacing-4) var(--sigvelo-spacing-2);
90
+ margin-inline: calc(-1 * var(--sigvelo-spacing-2));
91
+ }
92
+
93
+ .mcp-plugin-catalog__card {
94
+ display: grid;
95
+ grid-template-columns: minmax(0, 1fr) auto;
96
+ align-items: center;
97
+ gap: var(--sigvelo-spacing-2);
98
+ min-block-size: var(--sigvelo-spacing-14);
99
+ padding-inline-end: var(--sigvelo-spacing-2);
100
+ border-radius: var(--sigvelo-radius-lg);
101
+ transition: background-color var(--sigvelo-motion-duration-interaction)
102
+ var(--sigvelo-motion-ease-change);
103
+ }
104
+
105
+ .mcp-plugin-catalog__card:hover {
106
+ background-color: var(--sigvelo-color-neutral-bg-subtle);
107
+ }
108
+
109
+ .mcp-plugin-catalog__card .button:hover:not([data-disabled]) {
110
+ background-color: transparent;
111
+ }
112
+
113
+ .mcp-plugin-catalog__card-main {
114
+ display: grid;
115
+ grid-template-columns: var(--sigvelo-spacing-10) minmax(0, 1fr);
116
+ align-items: center;
117
+ justify-content: start;
118
+ gap: var(--sigvelo-spacing-3-5);
119
+ inline-size: 100%;
120
+ min-inline-size: 0;
121
+ padding-inline: var(--sigvelo-spacing-2);
122
+ text-align: start;
123
+ white-space: normal;
124
+ }
125
+
126
+ .mcp-plugin-catalog__card-copy {
127
+ display: grid;
128
+ min-inline-size: 0;
129
+ }
130
+
131
+ .mcp-plugin-catalog__card-name {
132
+ font-size: var(--sigvelo-text-sm);
133
+ font-weight: var(--sigvelo-font-weight-normal);
134
+ line-height: var(--sigvelo-text-compact-leading);
135
+ }
136
+
137
+ .mcp-plugin-catalog__card-description {
138
+ color: var(--sigvelo-color-text-muted);
139
+ font-size: var(--sigvelo-text-compact);
140
+ line-height: var(--sigvelo-text-compact-leading);
141
+ }
142
+
143
+ .mcp-plugin-catalog__empty {
144
+ padding-block: var(--sigvelo-spacing-8);
145
+ color: var(--sigvelo-color-text-muted);
146
+ font-size: var(--sigvelo-text-sm);
147
+ text-align: center;
148
+ }
149
+
150
+ .dialog__popup.mcp-plugin-details {
151
+ --sigvelo-recipe-surface-padding: 0;
152
+
153
+ display: block;
154
+ max-inline-size: 36.25rem;
155
+ overflow-block: auto;
156
+ overflow-inline: hidden;
157
+ overscroll-behavior: contain;
158
+ }
159
+
160
+ .mcp-plugin-details__hero {
161
+ position: relative;
162
+ isolation: isolate;
163
+ display: flex;
164
+ flex-direction: column;
165
+ align-items: center;
166
+ gap: var(--sigvelo-spacing-4);
167
+ min-block-size: 22.75rem;
168
+ padding-block-start: calc(var(--sigvelo-spacing-12) + var(--sigvelo-spacing-1));
169
+ overflow: hidden;
170
+ background:
171
+ radial-gradient(
172
+ ellipse 48% 135% at 0% 38%,
173
+ var(--sigvelo-color-warning-400) 0%,
174
+ transparent 74%
175
+ ),
176
+ radial-gradient(
177
+ ellipse 50% 85% at 48% -8%,
178
+ var(--sigvelo-color-primary-300) 0%,
179
+ transparent 78%
180
+ ),
181
+ radial-gradient(
182
+ ellipse 68% 78% at 42% 112%,
183
+ var(--sigvelo-color-primary-700) 0%,
184
+ transparent 72%
185
+ ),
186
+ linear-gradient(
187
+ 108deg,
188
+ var(--sigvelo-color-primary-600),
189
+ var(--sigvelo-color-primary-400) 70%,
190
+ var(--sigvelo-color-primary-500)
191
+ );
192
+ color: var(--sigvelo-color-primary-text-on-bg);
193
+ }
194
+
195
+ .mcp-plugin-details__hero > .dialog__close {
196
+ position: absolute;
197
+ inset-block-start: var(--sigvelo-spacing-2);
198
+ inset-inline-end: var(--sigvelo-spacing-2);
199
+ color: inherit;
200
+ }
201
+
202
+ .mcp-plugin-details__hero > .dialog__close:hover:not([data-disabled]) {
203
+ background-color: color-mix(in oklab, transparent, white 12%);
204
+ }
205
+
206
+ .mcp-plugin-details__title-copy {
207
+ display: flex;
208
+ flex-direction: column;
209
+ align-items: center;
210
+ text-align: center;
211
+ }
212
+
213
+ .mcp-plugin-details__identity {
214
+ display: flex;
215
+ align-items: center;
216
+ gap: var(--sigvelo-spacing-3-5);
217
+ }
218
+
219
+ .mcp-plugin-details__identity > .separator {
220
+ block-size: var(--sigvelo-spacing-8);
221
+ background-color: color-mix(in oklab, currentcolor, transparent 30%);
222
+ }
223
+
224
+ .mcp-plugin-details__title-copy {
225
+ gap: var(--sigvelo-spacing-2);
226
+ inline-size: 100%;
227
+ padding-inline: var(--sigvelo-spacing-5);
228
+ }
229
+
230
+ .mcp-plugin-details__title {
231
+ margin: 0;
232
+ color: inherit;
233
+ font-size: var(--sigvelo-text-2xl);
234
+ font-weight: var(--sigvelo-font-weight-semibold);
235
+ line-height: var(--sigvelo-text-2xl-leading);
236
+ }
237
+
238
+ .mcp-plugin-details__state {
239
+ color: inherit;
240
+ font-size: var(--sigvelo-text-xs);
241
+ line-height: var(--sigvelo-text-xs-leading);
242
+ opacity: 0.8;
243
+ }
244
+
245
+ .mcp-plugin-details__description {
246
+ display: -webkit-box;
247
+ max-inline-size: 33.75rem;
248
+ max-block-size: calc(5 * var(--sigvelo-text-sm-leading));
249
+ margin: 0;
250
+ overflow: hidden;
251
+ color: inherit;
252
+ font-size: var(--sigvelo-text-sm);
253
+ line-height: var(--sigvelo-text-sm-leading);
254
+ text-align: center;
255
+ -webkit-box-orient: vertical;
256
+ -webkit-line-clamp: 5;
257
+ }
258
+
259
+ .mcp-plugin-details__footer {
260
+ display: flex;
261
+ justify-content: center;
262
+ margin-block-start: auto;
263
+ padding-block: var(--sigvelo-spacing-4) var(--sigvelo-spacing-8);
264
+ }
265
+
266
+ .mcp-plugin-details__disclosure {
267
+ display: grid;
268
+ gap: var(--sigvelo-spacing-2-5);
269
+ padding: var(--sigvelo-spacing-4) var(--sigvelo-spacing-5);
270
+ color: var(--sigvelo-color-text-subtle);
271
+ font-size: var(--sigvelo-text-xs);
272
+ line-height: var(--sigvelo-leading-snug);
273
+ }
274
+
275
+ .mcp-plugin-details__disclosure strong {
276
+ color: var(--sigvelo-color-text);
277
+ font-weight: var(--sigvelo-font-weight-semibold);
278
+ }
279
+
280
+ @media (forced-colors: active) {
281
+ .mcp-plugin-details__hero {
282
+ background: Canvas;
283
+ color: CanvasText;
284
+ }
285
+ }
286
+
287
+ @container mcp-plugin-catalog (inline-size >= 36rem) {
288
+ .mcp-plugin-catalog__header {
289
+ grid-template-columns: minmax(0, 1fr) 16rem;
290
+ align-items: end;
291
+ }
292
+
293
+ .mcp-plugin-catalog__list {
294
+ grid-template-columns: repeat(2, minmax(0, 1fr));
295
+ }
296
+ }
@@ -74,28 +74,6 @@
74
74
  object-fit: contain;
75
75
  }
76
76
 
77
- .mcp-server-picker__avatar {
78
- inline-size: var(--sigvelo-control-icon-size-lg);
79
- block-size: var(--sigvelo-control-icon-size-lg);
80
- background-color: transparent;
81
- border-radius: var(--sigvelo-radius-sm);
82
- }
83
-
84
- .mcp-server-picker__avatar-image,
85
- .mcp-server-picker__avatar-fallback {
86
- border-radius: var(--sigvelo-radius-sm);
87
- }
88
-
89
- .mcp-server-picker__avatar-image {
90
- object-fit: contain;
91
- }
92
-
93
- .mcp-server-picker__avatar-fallback {
94
- font-size: var(--sigvelo-text-xs);
95
- font-weight: var(--sigvelo-font-weight-bold);
96
- line-height: var(--sigvelo-leading-none);
97
- }
98
-
99
77
  .mcp-server-picker__copy {
100
78
  display: flex;
101
79
  align-items: baseline;
@@ -195,10 +173,6 @@
195
173
  }
196
174
 
197
175
  @media (forced-colors: active) {
198
- .mcp-server-picker__avatar-fallback {
199
- border: var(--sigvelo-border-style) var(--sigvelo-border-width) ButtonText;
200
- }
201
-
202
176
  .mcp-server-picker__row-shell:has(.mcp-server-picker__row[data-highlighted]) {
203
177
  outline: 1px solid Highlight;
204
178
  }
@@ -15,7 +15,7 @@
15
15
  }
16
16
 
17
17
  .media-preview-card:is(:hover, :focus-within) {
18
- box-shadow: var(--sigvelo-shadow-md);
18
+ box-shadow: var(--sigvelo-elevation-floating);
19
19
  }
20
20
 
21
21
  .media-preview-card:has(> :is(a, button):focus-visible) {
@@ -73,8 +73,10 @@
73
73
  var(--sigvelo-color-neutral-border);
74
74
  border-radius: var(--sigvelo-radius-full);
75
75
  color: var(--sigvelo-color-text);
76
- background: color-mix(in oklab, var(--sigvelo-color-surface), transparent 12%);
77
- box-shadow: var(--sigvelo-shadow-sm);
76
+ /* Sits over arbitrary artwork, so it keeps the hard border and takes the
77
+ translucent surface the glass token already defines. */
78
+ background: var(--sigvelo-color-surface-glass);
79
+ box-shadow: var(--sigvelo-elevation-floating);
78
80
  translate: -50% -50%;
79
81
  scale: 1;
80
82
  transition:
@@ -42,11 +42,11 @@
42
42
  .message-scroller__button {
43
43
  position: absolute;
44
44
  inset-inline-start: 50%;
45
- inset-block-end: var(--message-scroller-button-inset-block-end, 1rem);
45
+ inset-block-end: var(--message-scroller-button-inset-block-end, var(--sigvelo-spacing-4));
46
46
  z-index: 1;
47
47
  translate: -50% 0;
48
- border-radius: 999rem;
49
- box-shadow: var(--sigvelo-shadow-sm);
48
+ border-radius: var(--sigvelo-radius-full);
49
+ box-shadow: var(--sigvelo-elevation-floating);
50
50
  transition:
51
51
  opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
52
52
  scale var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
@@ -54,7 +54,7 @@
54
54
  }
55
55
 
56
56
  .message-scroller__button[data-direction="start"] {
57
- inset-block-start: 1rem;
57
+ inset-block-start: var(--sigvelo-spacing-4);
58
58
  inset-block-end: auto;
59
59
  }
60
60
 
@@ -26,7 +26,7 @@
26
26
  padding-inline: var(--sigvelo-spacing-3);
27
27
  border-radius: var(--sigvelo-radius-lg);
28
28
  font-size: var(--sigvelo-text-sm);
29
- line-height: 1.55;
29
+ line-height: var(--sigvelo-leading-normal);
30
30
  background-color: var(--sigvelo-color-neutral-bg-subtle);
31
31
  color: var(--sigvelo-color-text);
32
32
  overflow-wrap: anywhere;
@@ -45,6 +45,13 @@
45
45
  padding-inline: 0;
46
46
  }
47
47
 
48
+ /* Structured parts can opt into the transcript rail without teaching Message
49
+ which product feature they represent. The child still owns its own measure
50
+ and responsive layout. */
51
+ .message[data-from="assistant"] .message__content:has(> [data-message-layout="wide"]) {
52
+ inline-size: 100%;
53
+ }
54
+
48
55
  .message[data-from="system"] .message__content {
49
56
  background-color: transparent;
50
57
  color: var(--sigvelo-color-text-muted);
@@ -139,15 +146,13 @@
139
146
  inline-size: min(42rem, 85%);
140
147
  padding: var(--sigvelo-spacing-3);
141
148
  color: var(--sigvelo-color-text);
142
- background-color: var(--sigvelo-color-surface);
143
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
144
- var(--sigvelo-color-neutral-border-muted);
149
+ background-color: var(--sigvelo-color-surface-raised);
145
150
  border-radius: var(--sigvelo-radius-lg);
146
- box-shadow: var(--sigvelo-shadow-sm);
151
+ box-shadow: var(--sigvelo-elevation-raised);
147
152
  }
148
153
 
149
154
  .message__edit-textarea {
150
- min-block-size: 6rem;
155
+ min-block-size: var(--sigvelo-spacing-24);
151
156
  max-block-size: 18rem;
152
157
  }
153
158