@mcp-b/react-components 0.40.0 → 0.41.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 (196) hide show
  1. package/dist/{AgentChat-CVO7xyLC.d.ts → AgentChat-DVr2giwD.d.ts} +1 -1
  2. package/dist/{AgentToolRunsContext-BCVqCtJ1.d.ts → AgentToolRunsContext-daY67hFM.d.ts} +12 -0
  3. package/dist/AppTopBar-ZdgmB_Lu.d.ts +97 -0
  4. package/dist/{CodeBlock-CWk1FVtm.js → CodeBlock-BjELA-_s.js} +1 -1
  5. package/dist/{FileTree-xqHYBw4g.js → FileTree-DMYRdT6R.js} +1 -1
  6. package/dist/McpConnectorForm-MRm1r59e.d.ts +39 -0
  7. package/dist/{Message-DBsHHhcM.d.ts → Message-D_vCVEGB.d.ts} +20 -1
  8. package/dist/{ThinkChatActivity-D6-_5Phw.d.ts → ThinkChatActivity-DyGHj01E.d.ts} +1 -1
  9. package/dist/{ThinkExecutionRun-lYYgyeE1.d.ts → ThinkExecutionRun-k8bpyXqt.d.ts} +3 -3
  10. package/dist/{ToggleGroup-_pQMyHGM.d.ts → ToggleGroup-BrQZOQn_.d.ts} +1 -1
  11. package/dist/Toolbar-CBOseBQr.d.ts +152 -0
  12. package/dist/{WorkspaceFileView-Lab3om3F.js → WorkspaceFileView-D0yFwoDr.js} +2 -2
  13. package/dist/{WorkspaceMessageResponse-Cy28WGSz.d.ts → WorkspaceMessageResponse-D66ty4FO.d.ts} +1 -1
  14. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  15. package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
  16. package/dist/components/agents-sdk/AgentChat.js +41 -18
  17. package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +1 -1
  18. package/dist/components/agents-sdk/AgentToolRunsContext.js +12 -0
  19. package/dist/components/agents-sdk/BrowserLiveScreen.d.ts +135 -0
  20. package/dist/components/agents-sdk/BrowserLiveScreen.js +637 -0
  21. package/dist/components/agents-sdk/BrowserLiveView.d.ts +2 -2
  22. package/dist/components/agents-sdk/BrowserLiveView.js +6 -9
  23. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  24. package/dist/components/agents-sdk/BrowserRunPanel.d.ts +1 -1
  25. package/dist/components/agents-sdk/BrowserRunPanel.js +6 -12
  26. package/dist/components/agents-sdk/ManagerOffice.d.ts +156 -0
  27. package/dist/components/agents-sdk/ManagerOffice.js +662 -0
  28. package/dist/components/agents-sdk/McpConnectionRequest.js +3 -3
  29. package/dist/components/agents-sdk/McpConnectorForm.d.ts +1 -38
  30. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +8 -2
  31. package/dist/components/agents-sdk/McpPluginCatalog.js +80 -62
  32. package/dist/components/agents-sdk/McpServerPicker.d.ts +1 -1
  33. package/dist/components/agents-sdk/McpServerPicker.js +2 -2
  34. package/dist/components/agents-sdk/ModelSelector.js +2 -2
  35. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  36. package/dist/components/agents-sdk/SubagentRunDetails.d.ts +1 -9
  37. package/dist/components/agents-sdk/SubagentRunDetails.js +1 -9
  38. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  39. package/dist/components/agents-sdk/SubagentRunSelector.d.ts +4 -2
  40. package/dist/components/agents-sdk/SubagentRunSelector.js +7 -6
  41. package/dist/components/agents-sdk/ThinkChat.d.ts +4 -4
  42. package/dist/components/agents-sdk/ThinkChat.js +1 -1
  43. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  44. package/dist/components/agents-sdk/ThinkChatActivity.js +1 -1
  45. package/dist/components/agents-sdk/ThinkChatToolPanels.js +1 -1
  46. package/dist/components/agents-sdk/ThinkExecutionDetail.d.ts +1 -1
  47. package/dist/components/agents-sdk/ThinkExecutionDetail.js +43 -43
  48. package/dist/components/agents-sdk/ThinkExecutionRun.d.ts +2 -2
  49. package/dist/components/agents-sdk/ThinkExecutionRun.js +5 -6
  50. package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +1 -1
  51. package/dist/components/agents-sdk/ThinkExecutionStatus.js +8 -12
  52. package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +8 -1
  53. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +42 -37
  54. package/dist/components/agents-sdk/ThinkFullApp.d.ts +18 -6
  55. package/dist/components/agents-sdk/ThinkFullApp.js +113 -145
  56. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +1 -1
  57. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.js +1 -1
  58. package/dist/components/agents-sdk/ThinkRoutine.d.ts +1 -1
  59. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +1 -1
  60. package/dist/components/agents-sdk/ThinkRoutineDetail.js +5 -16
  61. package/dist/components/agents-sdk/ThinkRoutineForm.js +1 -1
  62. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +69 -89
  63. package/dist/components/agents-sdk/ThinkRoutineRuns.d.ts +1 -1
  64. package/dist/components/agents-sdk/ThinkRoutineRuns.js +3 -10
  65. package/dist/components/agents-sdk/ThinkThreadPicker.js +2 -2
  66. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  67. package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -1
  68. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  69. package/dist/components/agents-sdk/WorkspaceHeader.js +2 -1
  70. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -1
  71. package/dist/components/agents-sdk/WorkspaceMountManager.js +11 -11
  72. package/dist/components/ai-sdk/Activity.js +1 -1
  73. package/dist/components/ai-sdk/AgentAttention.d.ts +1 -1
  74. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  75. package/dist/components/ai-sdk/Approval.js +1 -1
  76. package/dist/components/ai-sdk/Artifact.js +1 -1
  77. package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
  78. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  79. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  80. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  81. package/dist/components/ai-sdk/Conversation.js +1 -1
  82. package/dist/components/ai-sdk/Goal.js +1 -1
  83. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  84. package/dist/components/ai-sdk/Message.d.ts +2 -2
  85. package/dist/components/ai-sdk/Message.js +25 -3
  86. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  87. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
  88. package/dist/components/ai-sdk/Plan.js +1 -1
  89. package/dist/components/ai-sdk/PromptInput.js +1 -1
  90. package/dist/components/ai-sdk/Queue.d.ts +4 -4
  91. package/dist/components/ai-sdk/Queue.js +6 -15
  92. package/dist/components/ai-sdk/Reasoning.js +1 -1
  93. package/dist/components/ai-sdk/Sources.js +1 -1
  94. package/dist/components/ai-sdk/Task.d.ts +2 -2
  95. package/dist/components/ai-sdk/Task.js +2 -2
  96. package/dist/components/extension/ChatGptSignInScreen.js +1 -1
  97. package/dist/components/extension/CodexModelSelector.js +1 -1
  98. package/dist/components/extension/ConversationTabPicker.js +1 -1
  99. package/dist/components/foundations/Avatar.d.ts +1 -10
  100. package/dist/components/foundations/Avatar.js +1 -10
  101. package/dist/components/foundations/Checkbox.js +1 -1
  102. package/dist/components/foundations/CheckboxGroup.js +1 -0
  103. package/dist/components/foundations/ContextMenu.js +1 -1
  104. package/dist/components/foundations/LinkButton.d.ts +12 -10
  105. package/dist/components/foundations/LinkButton.js +15 -11
  106. package/dist/components/foundations/Menubar.js +1 -1
  107. package/dist/components/foundations/SearchField.js +1 -1
  108. package/dist/components/foundations/Select.js +1 -1
  109. package/dist/components/foundations/Stepper.js +1 -1
  110. package/dist/components/foundations/Toast.js +1 -1
  111. package/dist/components/foundations/ToggleGroup.d.ts +1 -1
  112. package/dist/components/foundations/ToggleGroup.js +1 -1
  113. package/dist/components/foundations/Toolbar.d.ts +1 -151
  114. package/dist/components/foundations/icons.d.ts +2 -2
  115. package/dist/components/foundations/icons.js +2 -2
  116. package/dist/components/general-purpose/AppTopBar.d.ts +1 -90
  117. package/dist/components/general-purpose/AppTopBar.js +2 -1
  118. package/dist/components/general-purpose/Commit.d.ts +2 -2
  119. package/dist/components/general-purpose/Commit.js +5 -13
  120. package/dist/components/general-purpose/EnvironmentVariables.d.ts +2 -2
  121. package/dist/components/general-purpose/EnvironmentVariables.js +4 -7
  122. package/dist/components/general-purpose/FileTree.js +1 -1
  123. package/dist/components/general-purpose/PricingBillingToggle.js +5 -10
  124. package/dist/components/general-purpose/PricingPlanCard.js +15 -14
  125. package/dist/components/general-purpose/PricingUsageCalculator.js +1 -1
  126. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +95 -2
  127. package/dist/components/general-purpose/ResponsiveSidebarShell.js +90 -34
  128. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  129. package/dist/components/general-purpose/Terminal.d.ts +1 -1
  130. package/dist/components/general-purpose/Terminal.js +4 -12
  131. package/dist/components/general-purpose/TestResults.d.ts +1 -1
  132. package/dist/components/general-purpose/TestResults.js +8 -21
  133. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  134. package/dist/components/general-purpose/WebPreview.d.ts +1 -1
  135. package/dist/components/general-purpose/WebPreview.js +4 -12
  136. package/dist/components/nanites/AgentConnection.js +2 -2
  137. package/dist/components/nanites/AgentToolDetail.d.ts +1 -1
  138. package/dist/components/nanites/AgentToolDetail.js +7 -7
  139. package/dist/components/nanites/NaniteScene.js +11 -11
  140. package/dist/{copy-button-Bc7jsYv_.js → copy-button-lys9N_aI.js} +1 -1
  141. package/dist/{icons-DwgNir1Q.d.ts → icons-0corjfxR.d.ts} +1 -16
  142. package/dist/{icons-MmIXciMO.js → icons-CVFSeTJn.js} +2 -5
  143. package/dist/styles/agent-attention.css +5 -5
  144. package/dist/styles/agent-chat.css +47 -12
  145. package/dist/styles/agent-tool-detail.css +2 -12
  146. package/dist/styles/app-icon.css +12 -18
  147. package/dist/styles/app-top-bar.css +32 -6
  148. package/dist/styles/avatar.css +6 -22
  149. package/dist/styles/base.css +2 -8
  150. package/dist/styles/browser-live-screen.css +38 -0
  151. package/dist/styles/browser-live-view.css +12 -4
  152. package/dist/styles/browser-run-panel.css +20 -18
  153. package/dist/styles/chatgpt-sign-in-screen.css +5 -5
  154. package/dist/styles/commit.css +24 -1
  155. package/dist/styles/environment-variables.css +3 -0
  156. package/dist/styles/index.css +5 -4
  157. package/dist/styles/manager-office.css +486 -0
  158. package/dist/styles/mcp-plugin-catalog.css +39 -35
  159. package/dist/styles/mcp-server-picker.css +1 -1
  160. package/dist/styles/message.css +41 -18
  161. package/dist/styles/nanite-scene.css +9 -9
  162. package/dist/styles/pricing-page.css +12 -8
  163. package/dist/styles/prompt-input.css +8 -13
  164. package/dist/styles/recipes.css +1 -57
  165. package/dist/styles/responsive-sidebar-shell.css +70 -20
  166. package/dist/styles/subagent-run.css +20 -3
  167. package/dist/styles/terminal.css +19 -0
  168. package/dist/styles/test-results.css +10 -1
  169. package/dist/styles/think-execution-status.css +8 -24
  170. package/dist/styles/think-execution-workbench.css +98 -105
  171. package/dist/styles/think-full-app.css +81 -193
  172. package/dist/styles/think-routine-library.css +0 -40
  173. package/dist/styles/think-thread-picker.css +8 -3
  174. package/dist/styles/transition-surface.css +7 -8
  175. package/dist/styles/utilities.css +42 -0
  176. package/dist/styles/web-preview.css +28 -5
  177. package/dist/styles/workspace-explorer.css +4 -23
  178. package/dist/styles/workspace-mount-manager.css +22 -0
  179. package/package.json +37 -35
  180. package/dist/ResponsiveSidebarShell-DWjULskY.d.ts +0 -68
  181. package/dist/components/agents-sdk/AgentActivityPreview.d.ts +0 -46
  182. package/dist/components/agents-sdk/AgentActivityPreview.js +0 -93
  183. package/dist/components/agents-sdk/ThinkThreadShell.d.ts +0 -38
  184. package/dist/components/agents-sdk/ThinkThreadShell.js +0 -27
  185. package/dist/components/foundations/Badge.d.ts +0 -62
  186. package/dist/components/foundations/Badge.js +0 -55
  187. package/dist/components/foundations/StatusPill.d.ts +0 -43
  188. package/dist/components/foundations/StatusPill.js +0 -35
  189. package/dist/components/general-purpose/Shell.d.ts +0 -149
  190. package/dist/components/general-purpose/Shell.js +0 -116
  191. package/dist/styles/agent-activity-preview-overlay.css +0 -169
  192. package/dist/styles/agent-activity-preview.css +0 -209
  193. package/dist/styles/badge.css +0 -120
  194. package/dist/styles/shell.css +0 -122
  195. package/dist/styles/status-pill.css +0 -39
  196. package/dist/{ThinkChat-DkA4Wr71.js → ThinkChat-BES_3Mb-.js} +1 -1
@@ -2,58 +2,67 @@
2
2
  container: mcp-plugin-catalog / inline-size;
3
3
  box-sizing: border-box;
4
4
  inline-size: 100%;
5
- max-inline-size: var(--sigvelo-measure-wide-block);
6
- padding-inline: var(--sigvelo-spacing-4);
7
- margin-inline: auto;
5
+ min-block-size: 0;
6
+ display: flex;
7
+ flex-direction: column;
8
8
  color: var(--sigvelo-color-text);
9
9
  }
10
10
 
11
- .mcp-plugin-catalog__header,
12
- .mcp-plugin-catalog__heading-copy,
13
11
  .mcp-plugin-catalog__installed,
14
12
  .mcp-plugin-catalog__sections,
15
13
  .mcp-plugin-catalog__section {
16
14
  display: grid;
17
15
  }
18
16
 
17
+ /* The card's chrome row at the bar rhythm: no title (the hosting tab or icon
18
+ carries it), no fill — separated from the scrolling directory by one
19
+ hairline and a breath of shadow. */
19
20
  .mcp-plugin-catalog__header {
20
- gap: var(--sigvelo-spacing-4);
21
- margin-block-end: var(--sigvelo-spacing-6);
21
+ position: relative;
22
+ flex: none;
23
+ display: flex;
24
+ align-items: center;
25
+ gap: var(--sigvelo-spacing-2);
26
+ min-block-size: calc(var(--sigvelo-density-compact-control-height) + var(--sigvelo-spacing-2));
27
+ padding-block: var(--sigvelo-spacing-1);
28
+ padding-inline: var(--sigvelo-spacing-2);
29
+ border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
30
+ var(--sigvelo-color-neutral-border-subtle);
31
+ box-shadow: var(--sigvelo-elevation-bar);
22
32
  }
23
33
 
24
- .mcp-plugin-catalog__heading-copy {
25
- gap: var(--sigvelo-spacing-1);
34
+ /* The bar's one action keeps to the far end, Ploy-style. */
35
+ .mcp-plugin-catalog__add-custom {
36
+ margin-inline-start: auto;
26
37
  }
27
38
 
28
- .mcp-plugin-catalog__heading,
29
- .mcp-plugin-catalog__description,
30
39
  .mcp-plugin-catalog__section-heading,
31
40
  .mcp-plugin-catalog__empty,
32
41
  .mcp-plugin-details p {
33
42
  margin: 0;
34
43
  }
35
44
 
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);
45
+ .mcp-plugin-catalog__search {
46
+ flex: 1;
47
+ max-inline-size: 24rem;
41
48
  }
42
49
 
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);
50
+ .mcp-plugin-catalog__body {
51
+ flex: 1;
52
+ min-block-size: 0;
53
+ overflow: auto;
54
+ padding-inline: var(--sigvelo-spacing-4);
55
+ padding-block: var(--sigvelo-spacing-2) var(--sigvelo-spacing-4);
48
56
  }
49
57
 
50
- .mcp-plugin-catalog__search {
51
- inline-size: 100%;
58
+ .mcp-plugin-catalog__body > * {
59
+ max-inline-size: var(--sigvelo-measure-wide-block);
60
+ margin-inline: auto;
52
61
  }
53
62
 
54
63
  .mcp-plugin-catalog__installed {
55
64
  gap: var(--sigvelo-spacing-2);
56
- margin-block-end: var(--sigvelo-spacing-6);
65
+ margin-block-end: var(--sigvelo-spacing-5);
57
66
  }
58
67
 
59
68
  .mcp-plugin-catalog__installed-list,
@@ -70,7 +79,7 @@
70
79
  }
71
80
 
72
81
  .mcp-plugin-catalog__sections {
73
- gap: var(--sigvelo-spacing-6);
82
+ gap: var(--sigvelo-spacing-5);
74
83
  }
75
84
 
76
85
  .mcp-plugin-catalog__section {
@@ -86,7 +95,7 @@
86
95
 
87
96
  .mcp-plugin-catalog__list {
88
97
  display: grid;
89
- gap: var(--sigvelo-spacing-4) var(--sigvelo-spacing-2);
98
+ gap: var(--sigvelo-spacing-2) var(--sigvelo-spacing-2);
90
99
  margin-inline: calc(-1 * var(--sigvelo-spacing-2));
91
100
  }
92
101
 
@@ -95,7 +104,7 @@
95
104
  grid-template-columns: minmax(0, 1fr) auto;
96
105
  align-items: center;
97
106
  gap: var(--sigvelo-spacing-2);
98
- min-block-size: var(--sigvelo-spacing-14);
107
+ min-block-size: var(--sigvelo-spacing-12);
99
108
  padding-inline-end: var(--sigvelo-spacing-2);
100
109
  border-radius: var(--sigvelo-radius-lg);
101
110
  transition: background-color var(--sigvelo-motion-duration-interaction)
@@ -112,10 +121,10 @@
112
121
 
113
122
  .mcp-plugin-catalog__card-main {
114
123
  display: grid;
115
- grid-template-columns: var(--sigvelo-spacing-10) minmax(0, 1fr);
124
+ grid-template-columns: var(--sigvelo-spacing-8) minmax(0, 1fr);
116
125
  align-items: center;
117
126
  justify-content: start;
118
- gap: var(--sigvelo-spacing-3-5);
127
+ gap: var(--sigvelo-spacing-3);
119
128
  inline-size: 100%;
120
129
  min-inline-size: 0;
121
130
  padding-inline: var(--sigvelo-spacing-2);
@@ -170,7 +179,7 @@
170
179
  background:
171
180
  radial-gradient(
172
181
  ellipse 48% 135% at 0% 38%,
173
- var(--sigvelo-color-warning-400) 0%,
182
+ var(--sigvelo-color-primary-400) 0%,
174
183
  transparent 74%
175
184
  ),
176
185
  radial-gradient(
@@ -285,11 +294,6 @@
285
294
  }
286
295
 
287
296
  @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
297
  .mcp-plugin-catalog__list {
294
298
  grid-template-columns: repeat(2, minmax(0, 1fr));
295
299
  }
@@ -130,7 +130,7 @@
130
130
  }
131
131
 
132
132
  .mcp-server-picker__row-shell[data-status="authenticating"] .mcp-server-picker__row-status {
133
- color: var(--sigvelo-color-warning-text-on-subtle);
133
+ color: var(--sigvelo-color-text-muted);
134
134
  }
135
135
 
136
136
  .mcp-server-picker__row-shell:is([data-status="failed"], [data-status="not-connected"])
@@ -20,7 +20,7 @@
20
20
 
21
21
  .message__content {
22
22
  display: inline-block;
23
- max-inline-size: min(42rem, 85%);
23
+ max-inline-size: min(var(--sigvelo-measure-prose), 85%);
24
24
  min-inline-size: 0;
25
25
  padding-block: var(--sigvelo-spacing-2);
26
26
  padding-inline: var(--sigvelo-spacing-3);
@@ -37,14 +37,27 @@
37
37
  color: var(--sigvelo-color-text);
38
38
  }
39
39
 
40
+ .message__content:has(> .message__response) {
41
+ font-size: var(--sigvelo-text-sm);
42
+ line-height: var(--sigvelo-text-sm-leading);
43
+ }
44
+
45
+ .message[data-from="user"] .message__content:has(> .message__response) {
46
+ font-family: var(--sigvelo-font-user-message);
47
+ }
48
+
40
49
  .message[data-from="assistant"] .message__content {
41
50
  display: block;
42
- inline-size: min(42rem, 85%);
51
+ inline-size: min(var(--sigvelo-measure-prose), 85%);
43
52
  max-inline-size: 100%;
44
53
  background-color: transparent;
45
54
  padding-inline: 0;
46
55
  }
47
56
 
57
+ .message[data-from="assistant"] .message__content:has(> .message__response) {
58
+ font-family: var(--sigvelo-font-response);
59
+ }
60
+
48
61
  /* Structured parts can opt into the transcript rail without teaching Message
49
62
  which product feature they represent. The child still owns its own measure
50
63
  and responsive layout. */
@@ -70,6 +83,7 @@
70
83
  .message__response {
71
84
  min-inline-size: 0;
72
85
  max-inline-size: 100%;
86
+ line-height: calc(var(--sigvelo-text-sm-leading) * var(--sigvelo-chat-font-scale));
73
87
  }
74
88
 
75
89
  .message__attachment {
@@ -114,39 +128,48 @@
114
128
  color: var(--sigvelo-color-text-muted);
115
129
  }
116
130
 
117
- .message__actions {
118
- display: inline-flex;
131
+ .message__meta {
132
+ display: flex;
119
133
  align-items: center;
134
+ justify-content: flex-end;
135
+ min-block-size: var(--sigvelo-control-height-xs);
136
+ align-self: flex-end;
120
137
  gap: var(--sigvelo-spacing-0-5);
121
- padding: 0;
122
138
  color: var(--sigvelo-color-text-muted);
139
+ transition: opacity var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
123
140
  }
124
141
 
125
- .message__actions--reserved {
126
- min-block-size: var(--sigvelo-control-height-sm);
142
+ .message__timestamp {
143
+ font-size: var(--sigvelo-text-xs);
144
+ font-variant-numeric: tabular-nums;
145
+ line-height: var(--sigvelo-leading-snug);
146
+ white-space: nowrap;
127
147
  }
128
148
 
129
- .message[data-from="user"]:has(> .message__actions--inline) {
130
- flex-direction: row-reverse;
131
- align-items: center;
149
+ .message__meta .message__actions[data-unavailable] {
150
+ visibility: hidden;
132
151
  }
133
152
 
134
- .message[data-from="user"] > .message__actions--inline {
135
- align-self: center;
153
+ .message__actions {
154
+ display: inline-flex;
155
+ align-items: center;
156
+ gap: var(--sigvelo-spacing-0-5);
157
+ padding: 0;
158
+ color: var(--sigvelo-color-text-muted);
136
159
  }
137
160
 
138
- .message[data-from="user"] > .message__actions--inline[data-unavailable] {
139
- visibility: hidden;
161
+ .message__actions--reserved {
162
+ min-block-size: var(--sigvelo-control-height-xs);
140
163
  }
141
164
 
142
165
  @media (hover: hover) and (pointer: fine) {
143
- .message[data-from="user"] > .message__actions--inline {
166
+ .message__meta {
144
167
  opacity: 0;
145
168
  pointer-events: none;
146
169
  }
147
170
 
148
- .message[data-from="user"]:hover > .message__actions--inline,
149
- .message[data-from="user"]:focus-within > .message__actions--inline {
171
+ .message:hover > .message__meta,
172
+ .message:focus-within > .message__meta {
150
173
  opacity: 1;
151
174
  pointer-events: auto;
152
175
  }
@@ -173,7 +196,7 @@
173
196
  .message__edit-form {
174
197
  display: grid;
175
198
  gap: var(--sigvelo-spacing-3);
176
- inline-size: min(42rem, 85%);
199
+ inline-size: min(var(--sigvelo-measure-prose), 85%);
177
200
  padding: var(--sigvelo-spacing-3);
178
201
  color: var(--sigvelo-color-text);
179
202
  background-color: var(--sigvelo-color-surface-raised);
@@ -46,7 +46,7 @@
46
46
  .nanite-scene__nanite,
47
47
  .nanite-scene__hat,
48
48
  .nanite-scene__glass,
49
- .nanite-scene__badge,
49
+ .nanite-scene__status-mark,
50
50
  .nanite-scene__sparkle,
51
51
  .nanite-scene__github-signal,
52
52
  .nanite-scene__github-node,
@@ -60,7 +60,7 @@
60
60
  }
61
61
 
62
62
  .nanite-scene__hat,
63
- .nanite-scene__badge,
63
+ .nanite-scene__status-mark,
64
64
  .nanite-scene__sparkle,
65
65
  .nanite-scene__github-signal,
66
66
  .nanite-scene__github-node,
@@ -74,7 +74,7 @@
74
74
  transform: translateY(-6px);
75
75
  }
76
76
 
77
- .nanite-scene__badge,
77
+ .nanite-scene__status-mark,
78
78
  .nanite-scene__sparkle {
79
79
  visibility: hidden;
80
80
  opacity: 0;
@@ -177,15 +177,15 @@
177
177
  animation-delay: 240ms;
178
178
  }
179
179
 
180
- .nanite-scene--celebrating .nanite-scene__badge,
181
- .nanite-scene--concerned .nanite-scene__badge {
180
+ .nanite-scene--celebrating .nanite-scene__status-mark,
181
+ .nanite-scene--concerned .nanite-scene__status-mark {
182
182
  visibility: visible;
183
183
  opacity: 1;
184
- animation: nanite-badge-pop 400ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
184
+ animation: nanite-status-mark-pop 400ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
185
185
  animation-delay: 500ms;
186
186
  }
187
187
 
188
- .nanite-scene--concerned .nanite-scene__badge {
188
+ .nanite-scene--concerned .nanite-scene__status-mark {
189
189
  animation-delay: 300ms;
190
190
  }
191
191
 
@@ -363,7 +363,7 @@
363
363
  }
364
364
  }
365
365
 
366
- @keyframes nanite-badge-pop {
366
+ @keyframes nanite-status-mark-pop {
367
367
  from {
368
368
  opacity: 0;
369
369
  transform: scale(0.4);
@@ -423,7 +423,7 @@
423
423
  .nanite-scene__nanite,
424
424
  .nanite-scene__hat,
425
425
  .nanite-scene__glass,
426
- .nanite-scene__badge,
426
+ .nanite-scene__status-mark,
427
427
  .nanite-scene__sparkle,
428
428
  .nanite-scene__github-signal,
429
429
  .nanite-scene__github-node,
@@ -54,8 +54,11 @@
54
54
  color: var(--sigvelo-color-text);
55
55
  }
56
56
 
57
- .pricing-page__billing-badge {
57
+ .pricing-page__billing-savings {
58
58
  margin-inline-start: var(--sigvelo-spacing-1-5);
59
+ color: var(--sigvelo-color-success-text);
60
+ font-size: var(--sigvelo-text-xs);
61
+ font-weight: var(--sigvelo-font-weight-semibold);
59
62
  }
60
63
 
61
64
  /* Plans Grid */
@@ -81,17 +84,18 @@
81
84
  0 2px 4px -2px color-mix(in oklab, var(--sigvelo-color-primary-bg), transparent 90%);
82
85
  }
83
86
 
84
- .pricing-page__popular-badge {
85
- position: absolute;
86
- top: -0.625rem;
87
- left: 50%;
88
- transform: translateX(-50%);
89
- }
90
-
91
87
  .pricing-page__plan-header {
92
88
  margin-bottom: var(--sigvelo-spacing-6);
93
89
  }
94
90
 
91
+ .pricing-page__popular-label {
92
+ display: block;
93
+ margin-block-end: var(--sigvelo-spacing-1);
94
+ color: var(--sigvelo-color-success-text);
95
+ font-size: var(--sigvelo-text-xs);
96
+ font-weight: var(--sigvelo-font-weight-semibold);
97
+ }
98
+
95
99
  .pricing-page__plan-name {
96
100
  font-family: inherit;
97
101
  font-size: var(--sigvelo-text-xl);
@@ -1,6 +1,4 @@
1
1
  .prompt-input {
2
- --prompt-input-secondary-text: var(--sigvelo-color-text-muted);
3
-
4
2
  container: prompt-input / inline-size;
5
3
  position: relative;
6
4
  display: flex;
@@ -351,10 +349,10 @@
351
349
  background-color: color-mix(in oklab, transparent, var(--sigvelo-color-text) 5%);
352
350
  }
353
351
 
354
- /* Bypass is the loud one — Codex-style warning tint so it can't be missed. */
352
+ /* Bypass is the loud one — the muted danger red so it can't be missed. */
355
353
  .prompt-input__permissions-trigger[data-mode="bypass"],
356
354
  .prompt-input__permissions-trigger[data-mode="bypass"]:hover:not([data-disabled]) {
357
- color: var(--sigvelo-color-warning-text);
355
+ color: var(--sigvelo-color-danger-text);
358
356
  }
359
357
 
360
358
  /* Both modes stacked in one cell; the trigger is always as wide as the
@@ -523,8 +521,6 @@
523
521
  }
524
522
 
525
523
  .prompt-input__command-popup {
526
- --prompt-input-secondary-text: var(--sigvelo-color-text-muted);
527
-
528
524
  inline-size: 100%;
529
525
  max-block-size: min(24rem, var(--available-height));
530
526
  overflow-inline: hidden;
@@ -565,7 +561,7 @@
565
561
  }
566
562
 
567
563
  .prompt-input__command-meta {
568
- color: var(--prompt-input-secondary-text);
564
+ color: var(--sigvelo-color-text-muted);
569
565
  font-size: var(--sigvelo-density-compact-control-font-size);
570
566
  white-space: nowrap;
571
567
  }
@@ -622,7 +618,7 @@
622
618
 
623
619
  .prompt-input__command-description,
624
620
  .prompt-input__context-description {
625
- color: var(--prompt-input-secondary-text);
621
+ color: var(--sigvelo-color-text-muted);
626
622
  font-size: var(--sigvelo-density-compact-control-font-size);
627
623
  }
628
624
 
@@ -640,12 +636,10 @@
640
636
  }
641
637
 
642
638
  .prompt-input__context-trigger[data-unavailable] {
643
- color: var(--sigvelo-color-warning-text);
639
+ color: var(--sigvelo-color-text-muted);
644
640
  }
645
641
 
646
642
  .prompt-input__context-menu {
647
- --prompt-input-secondary-text: var(--sigvelo-color-text-muted);
648
-
649
643
  min-inline-size: min(22rem, calc(100dvi - var(--sigvelo-spacing-4)));
650
644
  max-inline-size: min(28rem, calc(100dvi - var(--sigvelo-spacing-4)));
651
645
  }
@@ -665,9 +659,10 @@
665
659
  }
666
660
 
667
661
  .prompt-input__button,
668
- .prompt-input__footer .button,
669
662
  .prompt-input__attachment-remove,
670
- .prompt-input__reference.button {
663
+ .prompt-input__recording-button,
664
+ .prompt-input__reference,
665
+ .prompt-input__submit {
671
666
  --sigvelo-recipe-button-height: var(--sigvelo-control-height-xl);
672
667
  }
673
668
 
@@ -92,8 +92,7 @@
92
92
  :where(
93
93
  [data-slot="dialog-footer"],
94
94
  [data-slot="alert-dialog-footer"],
95
- [data-slot="message-edit-actions"],
96
- [data-slot="subagent-run-actions"]
95
+ [data-slot="message-edit-actions"]
97
96
  ) {
98
97
  display: flex;
99
98
  flex-wrap: wrap;
@@ -150,13 +149,6 @@
150
149
  border-radius: var(--sigvelo-radius-md);
151
150
  }
152
151
 
153
- :where([data-recipe~="application-plane"]) {
154
- margin: var(--sigvelo-spacing-3);
155
- border-radius: var(--sigvelo-radius-lg);
156
- background: var(--sigvelo-color-surface);
157
- box-shadow: var(--sigvelo-elevation-floating);
158
- }
159
-
160
152
  :where([data-recipe~="disclosure-stack"]) {
161
153
  display: flex;
162
154
  flex-direction: column;
@@ -196,47 +188,6 @@
196
188
  mask-repeat: no-repeat;
197
189
  }
198
190
 
199
- /* The inline-axis partner, for toolbars, tab strips, and chip rows that scroll
200
- sideways. Gradients take physical directions only, so start/end are swapped
201
- under [dir="rtl"] rather than expressed logically. */
202
- :where([data-recipe~="scroll-fade-x"]) {
203
- --sigvelo-scroll-fade-start: 0px;
204
- --sigvelo-scroll-fade-end: 0px;
205
- -webkit-mask-image: linear-gradient(
206
- to right,
207
- transparent 0,
208
- #000 var(--sigvelo-scroll-fade-start),
209
- #000 calc(100% - var(--sigvelo-scroll-fade-end)),
210
- transparent 100%
211
- );
212
- mask-image: linear-gradient(
213
- to right,
214
- transparent 0,
215
- #000 var(--sigvelo-scroll-fade-start),
216
- #000 calc(100% - var(--sigvelo-scroll-fade-end)),
217
- transparent 100%
218
- );
219
- -webkit-mask-repeat: no-repeat;
220
- mask-repeat: no-repeat;
221
- }
222
-
223
- :where([dir="rtl"] [data-recipe~="scroll-fade-x"], [data-recipe~="scroll-fade-x"][dir="rtl"]) {
224
- -webkit-mask-image: linear-gradient(
225
- to left,
226
- transparent 0,
227
- #000 var(--sigvelo-scroll-fade-start),
228
- #000 calc(100% - var(--sigvelo-scroll-fade-end)),
229
- transparent 100%
230
- );
231
- mask-image: linear-gradient(
232
- to left,
233
- transparent 0,
234
- #000 var(--sigvelo-scroll-fade-start),
235
- #000 calc(100% - var(--sigvelo-scroll-fade-end)),
236
- transparent 100%
237
- );
238
- }
239
-
240
191
  @media (any-pointer: coarse) {
241
192
  :where(:root, [data-theme="light"], [data-theme="dark"]) {
242
193
  --sigvelo-recipe-row-min-height: var(--sigvelo-control-height-xl);
@@ -836,13 +787,6 @@
836
787
  --sigvelo-recipe-surface-border: CanvasText;
837
788
  }
838
789
 
839
- :where([data-recipe~="application-plane"]) {
840
- border: var(--sigvelo-border-style) var(--sigvelo-border-width) CanvasText;
841
- background: Canvas;
842
- color: CanvasText;
843
- box-shadow: none;
844
- }
845
-
846
790
  :where(
847
791
  [data-slot="input"],
848
792
  [data-slot="select-trigger"],
@@ -1,15 +1,15 @@
1
+ /* Three planes, Ploy-style: the rail is the recessed vertical, everything
2
+ beside it — bar, content — rests directly on the page surface, and one
3
+ elevated card (a host's, e.g. the workbench) floats above it. Nothing else
4
+ paints. */
1
5
  .responsive-sidebar-shell {
2
6
  container: responsive-sidebar-shell / inline-size;
3
7
  block-size: 100%;
4
8
  min-inline-size: 0;
5
9
  min-block-size: 0;
6
10
  display: grid;
7
- grid-template-rows: auto minmax(0, 1fr);
8
- background: var(--sigvelo-color-surface-under);
9
- }
10
-
11
- .responsive-sidebar-shell > .app-top-bar {
12
- background: var(--sigvelo-color-surface-under);
11
+ grid-template-rows: minmax(0, 1fr);
12
+ background: var(--sigvelo-color-surface);
13
13
  }
14
14
 
15
15
  .responsive-sidebar-shell__frame {
@@ -24,7 +24,6 @@
24
24
  grid-template-columns: var(--resizable-side-panel-size, 16rem) minmax(0, 1fr);
25
25
  grid-template-rows: minmax(0, 1fr);
26
26
  overflow: hidden;
27
- background: var(--sigvelo-color-surface-under);
28
27
  color: var(--sigvelo-color-text);
29
28
  font-family: inherit;
30
29
  transition: grid-template-columns var(--sigvelo-motion-duration-layout)
@@ -45,19 +44,35 @@
45
44
  .responsive-sidebar-shell__sidebar {
46
45
  grid-column: 1;
47
46
  grid-row: 1;
47
+ /* One rail tone everywhere: the recessed step below the page. The compact
48
+ overlay drawer below carries its own raised material regardless. */
49
+ background: var(--responsive-sidebar-shell-sidebar-surface, var(--sigvelo-color-surface-under));
48
50
  }
49
51
 
50
52
  .responsive-sidebar-shell__main {
51
53
  grid-column: 2;
52
54
  grid-row: 1;
53
55
  display: grid;
54
- grid-template-rows: minmax(0, 1fr);
56
+ /* The bar's own row, so it never overlaps the content it labels. Auto, not a
57
+ reserved height: a shell with no bar keeps the whole column for content. */
58
+ grid-template-rows: auto minmax(0, 1fr);
55
59
  }
56
60
 
57
61
  .responsive-sidebar-shell__peek {
58
62
  display: none;
59
63
  }
60
64
 
65
+ /* Wide widths show the plain title and the icon toggle; the compact trigger
66
+ only exists below the drawer breakpoint, where the title itself becomes the
67
+ control that opens the sidebar. */
68
+ .responsive-sidebar-shell__title-trigger {
69
+ display: none;
70
+ }
71
+
72
+ .responsive-sidebar-shell__compact-leading {
73
+ display: none;
74
+ }
75
+
61
76
  @media (forced-colors: active) {
62
77
  .responsive-sidebar-shell,
63
78
  .responsive-sidebar-shell__frame {
@@ -92,18 +107,6 @@
92
107
  }
93
108
 
94
109
  @container responsive-sidebar-shell (inline-size <= 56rem) {
95
- /* Narrow hosts flatten the application plane: no desktop chrome remains
96
- around it, so margins and elevation would read as a card in a frame. */
97
- .responsive-sidebar-shell__main {
98
- margin: 0;
99
- border-radius: 0;
100
- box-shadow: none;
101
- }
102
-
103
- .responsive-sidebar-shell > .app-top-bar {
104
- background: var(--sigvelo-color-surface);
105
- }
106
-
107
110
  .responsive-sidebar-shell__frame {
108
111
  grid-template-columns: minmax(0, 1fr);
109
112
  }
@@ -144,6 +147,53 @@
144
147
  display: none;
145
148
  }
146
149
 
150
+ /* The title stands in for both its own text and the icon toggle: one
151
+ labelled control that opens the drawer, instead of an anonymous icon
152
+ beside a dead title. Shallow owner classes keep this independent of the
153
+ app bar's incidental DOM anatomy. */
154
+ .responsive-sidebar-shell__toggle--replaced-by-title,
155
+ .responsive-sidebar-shell__toggle--replaced-by-compact-leading,
156
+ .responsive-sidebar-shell__title-text--replaced-by-trigger {
157
+ display: none;
158
+ }
159
+
160
+ .responsive-sidebar-shell__compact-leading {
161
+ display: contents;
162
+ }
163
+
164
+ .responsive-sidebar-shell__title-trigger {
165
+ inline-size: auto;
166
+ max-inline-size: min(22rem, 58vw);
167
+ min-inline-size: 0;
168
+ min-block-size: var(--sigvelo-density-compact-control-height);
169
+ display: inline-flex;
170
+ gap: var(--sigvelo-density-compact-control-gap);
171
+ padding-inline: var(--sigvelo-density-compact-control-padding-inline);
172
+ border-radius: var(--sigvelo-radius-md);
173
+ color: var(--sigvelo-color-text);
174
+ font-size: var(--sigvelo-density-compact-control-font-size);
175
+ font-weight: var(--sigvelo-font-weight-semibold);
176
+ }
177
+
178
+ .responsive-sidebar-shell__title-trigger span {
179
+ min-inline-size: 0;
180
+ overflow: hidden;
181
+ text-overflow: ellipsis;
182
+ white-space: nowrap;
183
+ }
184
+
185
+ .responsive-sidebar-shell__title-trigger > svg {
186
+ flex: 0 0 auto;
187
+ inline-size: var(--sigvelo-density-compact-control-icon-size);
188
+ block-size: var(--sigvelo-density-compact-control-icon-size);
189
+ color: var(--sigvelo-color-text-muted);
190
+ transition: rotate var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
191
+ }
192
+
193
+ .responsive-sidebar-shell__title-trigger[aria-expanded="true"] > svg {
194
+ rotate: 180deg;
195
+ }
196
+
147
197
  .responsive-sidebar-shell[data-sidebar-open="false"]
148
198
  > .responsive-sidebar-shell__frame
149
199
  > .responsive-sidebar-shell__sidebar {