@mcp-b/react-components 0.40.0 → 0.42.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 (228) 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/{CodeBlock-CWk1FVtm.js → CodeBlock-BjELA-_s.js} +1 -1
  4. package/dist/{FileTree-xqHYBw4g.js → FileTree-DMYRdT6R.js} +1 -1
  5. package/dist/McpConnectorForm-MRm1r59e.d.ts +39 -0
  6. package/dist/{Message-DBsHHhcM.d.ts → Message-D_vCVEGB.d.ts} +20 -1
  7. package/dist/{ThinkChatActivity-D6-_5Phw.d.ts → ThinkChatActivity-CsDql-ER.d.ts} +4 -1
  8. package/dist/{ThinkExecutionRun-lYYgyeE1.d.ts → ThinkExecutionRun-k8bpyXqt.d.ts} +3 -3
  9. package/dist/{WorkspaceFileView-Lab3om3F.js → WorkspaceFileView-DwdXiKku.js} +17 -22
  10. package/dist/{WorkspaceMessageResponse-Cy28WGSz.d.ts → WorkspaceMessageResponse-D66ty4FO.d.ts} +1 -1
  11. package/dist/components/agents-sdk/AgentActivity.js +4 -3
  12. package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
  13. package/dist/components/agents-sdk/AgentChat.js +42 -18
  14. package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +1 -1
  15. package/dist/components/agents-sdk/AgentToolRunsContext.js +12 -0
  16. package/dist/components/agents-sdk/BrowserLiveScreen.d.ts +135 -0
  17. package/dist/components/agents-sdk/BrowserLiveScreen.js +637 -0
  18. package/dist/components/agents-sdk/BrowserLiveView.d.ts +2 -2
  19. package/dist/components/agents-sdk/BrowserLiveView.js +6 -9
  20. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  21. package/dist/components/agents-sdk/BrowserRunPanel.d.ts +1 -1
  22. package/dist/components/agents-sdk/BrowserRunPanel.js +8 -13
  23. package/dist/components/agents-sdk/ManagerOffice.d.ts +168 -0
  24. package/dist/components/agents-sdk/ManagerOffice.js +698 -0
  25. package/dist/components/agents-sdk/McpConnectionRequest.js +3 -3
  26. package/dist/components/agents-sdk/McpConnectorForm.d.ts +1 -38
  27. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +8 -2
  28. package/dist/components/agents-sdk/McpPluginCatalog.js +82 -62
  29. package/dist/components/agents-sdk/McpServerPicker.d.ts +1 -1
  30. package/dist/components/agents-sdk/McpServerPicker.js +2 -2
  31. package/dist/components/agents-sdk/ModelSelector.js +1 -1
  32. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  33. package/dist/components/agents-sdk/SubagentRunDetails.d.ts +1 -9
  34. package/dist/components/agents-sdk/SubagentRunDetails.js +1 -9
  35. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  36. package/dist/components/agents-sdk/SubagentRunSelector.d.ts +4 -2
  37. package/dist/components/agents-sdk/SubagentRunSelector.js +7 -6
  38. package/dist/components/agents-sdk/ThinkChat.d.ts +4 -4
  39. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  40. package/dist/components/agents-sdk/ThinkChatActivity.js +18 -4
  41. package/dist/components/agents-sdk/ThinkChatToolPanels.js +7 -3
  42. package/dist/components/agents-sdk/ThinkExecutionDetail.d.ts +1 -1
  43. package/dist/components/agents-sdk/ThinkExecutionDetail.js +45 -43
  44. package/dist/components/agents-sdk/ThinkExecutionRun.d.ts +2 -2
  45. package/dist/components/agents-sdk/ThinkExecutionRun.js +5 -6
  46. package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +1 -1
  47. package/dist/components/agents-sdk/ThinkExecutionStatus.js +8 -12
  48. package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +8 -1
  49. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +43 -37
  50. package/dist/components/agents-sdk/ThinkFullApp.d.ts +42 -78
  51. package/dist/components/agents-sdk/ThinkFullApp.js +121 -202
  52. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +1 -1
  53. package/dist/components/agents-sdk/ThinkRoutine.d.ts +1 -1
  54. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +1 -1
  55. package/dist/components/agents-sdk/ThinkRoutineDetail.js +4 -15
  56. package/dist/components/agents-sdk/ThinkRoutineForm.js +1 -1
  57. package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +7 -6
  58. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +112 -140
  59. package/dist/components/agents-sdk/ThinkRoutineRuns.d.ts +1 -1
  60. package/dist/components/agents-sdk/ThinkRoutineRuns.js +3 -10
  61. package/dist/components/agents-sdk/ThinkThreadPicker.js +2 -1
  62. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  63. package/dist/components/agents-sdk/WorkspaceExplorer.js +2 -1
  64. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  65. package/dist/components/agents-sdk/WorkspaceHeader.js +2 -1
  66. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -1
  67. package/dist/components/agents-sdk/WorkspaceMountManager.js +11 -11
  68. package/dist/components/ai-sdk/Activity.js +1 -1
  69. package/dist/components/ai-sdk/AgentAttention.d.ts +1 -1
  70. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  71. package/dist/components/ai-sdk/Approval.js +1 -1
  72. package/dist/components/ai-sdk/Artifact.js +1 -1
  73. package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
  74. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  75. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  76. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  77. package/dist/components/ai-sdk/Conversation.js +1 -1
  78. package/dist/components/ai-sdk/Goal.js +1 -1
  79. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  80. package/dist/components/ai-sdk/Message.d.ts +2 -2
  81. package/dist/components/ai-sdk/Message.js +25 -3
  82. package/dist/components/ai-sdk/MessageScroller.js +3 -2
  83. package/dist/components/ai-sdk/MessageScrollerVirtual.js +2 -1
  84. package/dist/components/ai-sdk/Plan.js +1 -1
  85. package/dist/components/ai-sdk/PromptInput.js +21 -15
  86. package/dist/components/ai-sdk/Queue.d.ts +4 -4
  87. package/dist/components/ai-sdk/Queue.js +6 -15
  88. package/dist/components/ai-sdk/Reasoning.js +1 -1
  89. package/dist/components/ai-sdk/Sources.js +1 -1
  90. package/dist/components/ai-sdk/Task.d.ts +2 -2
  91. package/dist/components/ai-sdk/Task.js +2 -2
  92. package/dist/components/extension/ChatGptSignInScreen.js +2 -1
  93. package/dist/components/extension/CodexModelSelector.js +1 -1
  94. package/dist/components/extension/ConversationTabPicker.js +1 -1
  95. package/dist/components/foundations/Avatar.d.ts +1 -10
  96. package/dist/components/foundations/Avatar.js +1 -10
  97. package/dist/components/foundations/Checkbox.js +1 -1
  98. package/dist/components/foundations/CheckboxGroup.js +1 -0
  99. package/dist/components/foundations/ContextMenu.js +1 -1
  100. package/dist/components/foundations/LinkButton.d.ts +12 -10
  101. package/dist/components/foundations/LinkButton.js +15 -11
  102. package/dist/components/foundations/Menubar.js +1 -1
  103. package/dist/components/foundations/SearchField.js +1 -1
  104. package/dist/components/foundations/Select.js +1 -1
  105. package/dist/components/foundations/Stepper.js +1 -1
  106. package/dist/components/foundations/Toast.js +1 -1
  107. package/dist/components/foundations/ToggleGroup.d.ts +79 -1
  108. package/dist/components/foundations/icons.d.ts +2 -2
  109. package/dist/components/foundations/icons.js +2 -2
  110. package/dist/components/general-purpose/AppFrame.js +1 -0
  111. package/dist/components/general-purpose/AppTopBar.d.ts +6 -0
  112. package/dist/components/general-purpose/AppTopBar.js +2 -1
  113. package/dist/components/general-purpose/Commit.d.ts +2 -2
  114. package/dist/components/general-purpose/Commit.js +5 -13
  115. package/dist/components/general-purpose/EnvironmentVariables.d.ts +2 -2
  116. package/dist/components/general-purpose/EnvironmentVariables.js +4 -7
  117. package/dist/components/general-purpose/FileTree.js +1 -1
  118. package/dist/components/general-purpose/PricingBillingToggle.js +4 -9
  119. package/dist/components/general-purpose/PricingPlanCard.js +15 -14
  120. package/dist/components/general-purpose/ResizableSidePanel.d.ts +8 -0
  121. package/dist/components/general-purpose/ResizableSidePanel.js +3 -2
  122. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +105 -2
  123. package/dist/components/general-purpose/ResponsiveSidebarShell.js +112 -56
  124. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  125. package/dist/components/general-purpose/Terminal.d.ts +1 -1
  126. package/dist/components/general-purpose/Terminal.js +4 -12
  127. package/dist/components/general-purpose/TestResults.d.ts +1 -1
  128. package/dist/components/general-purpose/TestResults.js +8 -21
  129. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  130. package/dist/components/general-purpose/WebPreview.d.ts +4 -1
  131. package/dist/components/general-purpose/WebPreview.js +6 -14
  132. package/dist/components/nanites/AgentConnection.js +2 -2
  133. package/dist/components/nanites/AgentToolDetail.d.ts +1 -1
  134. package/dist/components/nanites/AgentToolDetail.js +6 -5
  135. package/dist/components/nanites/NaniteScene.js +11 -11
  136. package/dist/{copy-button-Bc7jsYv_.js → copy-button-lys9N_aI.js} +1 -1
  137. package/dist/{icons-DwgNir1Q.d.ts → icons-0corjfxR.d.ts} +1 -16
  138. package/dist/{icons-MmIXciMO.js → icons-CVFSeTJn.js} +2 -5
  139. package/dist/styles/accordion.css +1 -0
  140. package/dist/styles/action-guide.css +8 -7
  141. package/dist/styles/activity-header.css +13 -39
  142. package/dist/styles/activity.css +40 -55
  143. package/dist/styles/agent-attention.css +19 -19
  144. package/dist/styles/agent-chat.css +94 -42
  145. package/dist/styles/agent-connection.css +10 -4
  146. package/dist/styles/agent-tool-detail.css +5 -15
  147. package/dist/styles/alert-dialog.css +4 -4
  148. package/dist/styles/app-frame.css +1 -3
  149. package/dist/styles/app-icon.css +12 -18
  150. package/dist/styles/app-top-bar.css +31 -9
  151. package/dist/styles/approval.css +1 -0
  152. package/dist/styles/artifact.css +6 -6
  153. package/dist/styles/attachment-preview.css +5 -4
  154. package/dist/styles/avatar.css +6 -22
  155. package/dist/styles/base.css +2 -8
  156. package/dist/styles/browser-live-screen.css +38 -0
  157. package/dist/styles/browser-live-view.css +12 -4
  158. package/dist/styles/browser-replay.css +6 -6
  159. package/dist/styles/browser-run-panel.css +21 -18
  160. package/dist/styles/button.css +15 -6
  161. package/dist/styles/card.css +5 -5
  162. package/dist/styles/chatgpt-sign-in-screen.css +6 -6
  163. package/dist/styles/code-block.css +14 -13
  164. package/dist/styles/codex-model-selector.css +2 -0
  165. package/dist/styles/collapsible.css +1 -0
  166. package/dist/styles/commit.css +30 -7
  167. package/dist/styles/context.css +9 -9
  168. package/dist/styles/conversation-tab-picker.css +1 -1
  169. package/dist/styles/conversation.css +6 -8
  170. package/dist/styles/dialog.css +4 -4
  171. package/dist/styles/empty-state.css +3 -3
  172. package/dist/styles/environment-variables.css +12 -9
  173. package/dist/styles/field.css +2 -1
  174. package/dist/styles/fieldset.css +2 -2
  175. package/dist/styles/index.css +8 -7
  176. package/dist/styles/manager-office.css +480 -0
  177. package/dist/styles/mcp-plugin-catalog.css +44 -39
  178. package/dist/styles/mcp-server-picker.css +4 -4
  179. package/dist/styles/message-scroller.css +9 -11
  180. package/dist/styles/message.css +74 -28
  181. package/dist/styles/nanite-scene.css +9 -9
  182. package/dist/styles/navigation-menu.css +1 -0
  183. package/dist/styles/plan.css +13 -12
  184. package/dist/styles/pricing-page.css +37 -30
  185. package/dist/styles/prompt-input.css +26 -18
  186. package/dist/styles/queue.css +1 -0
  187. package/dist/styles/reasoning.css +1 -9
  188. package/dist/styles/recipes.css +29 -58
  189. package/dist/styles/responsive-sidebar-shell.css +107 -29
  190. package/dist/styles/separator.css +5 -5
  191. package/dist/styles/sources.css +4 -4
  192. package/dist/styles/stepper.css +1 -0
  193. package/dist/styles/streamdown.css +31 -21
  194. package/dist/styles/subagent-run.css +20 -3
  195. package/dist/styles/tabs.css +1 -0
  196. package/dist/styles/task.css +5 -17
  197. package/dist/styles/terminal.css +29 -10
  198. package/dist/styles/test-results.css +16 -7
  199. package/dist/styles/think-execution-status.css +10 -26
  200. package/dist/styles/think-execution-workbench.css +98 -108
  201. package/dist/styles/think-full-app.css +75 -225
  202. package/dist/styles/think-routine-library.css +26 -95
  203. package/dist/styles/think-thread-picker.css +17 -12
  204. package/dist/styles/transition-surface.css +7 -8
  205. package/dist/styles/utilities.css +75 -0
  206. package/dist/styles/web-preview.css +46 -22
  207. package/dist/styles/workspace-explorer.css +22 -44
  208. package/dist/styles/workspace-mount-manager.css +24 -2
  209. package/dist/utils/favicon.d.ts +6 -1
  210. package/dist/utils/favicon.js +18 -1
  211. package/package.json +37 -35
  212. package/dist/ResponsiveSidebarShell-DWjULskY.d.ts +0 -68
  213. package/dist/ToggleGroup-_pQMyHGM.d.ts +0 -80
  214. package/dist/components/agents-sdk/AgentActivityPreview.d.ts +0 -46
  215. package/dist/components/agents-sdk/AgentActivityPreview.js +0 -93
  216. package/dist/components/agents-sdk/ThinkThreadShell.d.ts +0 -38
  217. package/dist/components/agents-sdk/ThinkThreadShell.js +0 -27
  218. package/dist/components/foundations/Badge.d.ts +0 -62
  219. package/dist/components/foundations/Badge.js +0 -55
  220. package/dist/components/foundations/StatusPill.d.ts +0 -43
  221. package/dist/components/foundations/StatusPill.js +0 -35
  222. package/dist/components/general-purpose/Shell.d.ts +0 -149
  223. package/dist/components/general-purpose/Shell.js +0 -116
  224. package/dist/styles/agent-activity-preview-overlay.css +0 -169
  225. package/dist/styles/agent-activity-preview.css +0 -209
  226. package/dist/styles/badge.css +0 -120
  227. package/dist/styles/shell.css +0 -122
  228. package/dist/styles/status-pill.css +0 -39
@@ -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;
@@ -16,7 +14,9 @@
16
14
  not a border: a 0.5px ring stays crisp at any zoom and does not add a pixel
17
15
  of layout. Forced colors restores a real border at the end of this file. */
18
16
  border: 0;
19
- border-radius: calc(var(--sigvelo-radius-xl) + var(--sigvelo-spacing-2));
17
+ --prompt-input-radius: calc(var(--sigvelo-radius-xl) + var(--sigvelo-spacing-2));
18
+
19
+ border-radius: var(--prompt-input-radius);
20
20
  box-shadow: var(--sigvelo-elevation-floating);
21
21
  font-family: inherit;
22
22
  color: var(--sigvelo-color-text);
@@ -97,8 +97,12 @@
97
97
  }
98
98
 
99
99
  /* A supporting tray shares one material and overlap contract whether it sits
100
- above the composer for queued work or below it for first-turn utilities. */
100
+ above the composer for queued work or below it for first-turn utilities.
101
+ Overlap the card radius, not the hairline: the composer edge is a shadow,
102
+ so a 1px tuck leaves the tray reading as a second pill. */
101
103
  :where(.prompt-input__tray) {
104
+ --prompt-input-tray-overlap: calc(var(--sigvelo-radius-xl) + var(--sigvelo-spacing-2));
105
+
102
106
  display: flex;
103
107
  align-items: center;
104
108
  min-block-size: var(--sigvelo-control-height-xl);
@@ -111,12 +115,16 @@
111
115
  }
112
116
 
113
117
  .prompt-input__tray[data-side="top"] {
114
- margin-block-end: calc(-1 * var(--sigvelo-border-width));
118
+ z-index: 0;
119
+ margin-block-end: calc(-1 * var(--prompt-input-tray-overlap));
120
+ padding-block-end: calc(var(--prompt-input-tray-overlap) + var(--sigvelo-spacing-1));
115
121
  border-radius: var(--sigvelo-radius-2xl) var(--sigvelo-radius-2xl) 0 0;
116
122
  }
117
123
 
118
124
  .prompt-input__tray[data-side="bottom"] {
119
- margin-block-start: calc(-1 * var(--sigvelo-border-width));
125
+ z-index: 0;
126
+ margin-block-start: calc(-1 * var(--prompt-input-tray-overlap));
127
+ padding-block-start: calc(var(--prompt-input-tray-overlap) + var(--sigvelo-spacing-1));
120
128
  border-radius: 0 0 var(--sigvelo-radius-2xl) var(--sigvelo-radius-2xl);
121
129
  }
122
130
 
@@ -351,10 +359,10 @@
351
359
  background-color: color-mix(in oklab, transparent, var(--sigvelo-color-text) 5%);
352
360
  }
353
361
 
354
- /* Bypass is the loud one — Codex-style warning tint so it can't be missed. */
362
+ /* Bypass is the loud one — the muted danger red so it can't be missed. */
355
363
  .prompt-input__permissions-trigger[data-mode="bypass"],
356
364
  .prompt-input__permissions-trigger[data-mode="bypass"]:hover:not([data-disabled]) {
357
- color: var(--sigvelo-color-warning-text);
365
+ color: var(--sigvelo-color-danger-text);
358
366
  }
359
367
 
360
368
  /* Both modes stacked in one cell; the trigger is always as wide as the
@@ -372,6 +380,7 @@
372
380
  white-space: nowrap;
373
381
  }
374
382
 
383
+ /* Local wrap. Not --sigvelo-layout-break-compact. */
375
384
  @container prompt-input (inline-size <= 36rem) {
376
385
  .prompt-input__footer {
377
386
  gap: var(--sigvelo-spacing-1);
@@ -418,6 +427,7 @@
418
427
  }
419
428
  }
420
429
 
430
+ /* Local wrap. Not --sigvelo-layout-break-compact. */
421
431
  @container prompt-input (inline-size <= 22rem) {
422
432
  .prompt-input__context-trigger {
423
433
  inline-size: var(--sigvelo-control-height-xs);
@@ -523,8 +533,6 @@
523
533
  }
524
534
 
525
535
  .prompt-input__command-popup {
526
- --prompt-input-secondary-text: var(--sigvelo-color-text-muted);
527
-
528
536
  inline-size: 100%;
529
537
  max-block-size: min(24rem, var(--available-height));
530
538
  overflow-inline: hidden;
@@ -552,7 +560,7 @@
552
560
 
553
561
  .prompt-input__command-copy {
554
562
  display: grid;
555
- grid-template-columns: auto minmax(0, 1fr) auto;
563
+ grid-template-columns: auto var(--sigvelo-layout-track-fill) auto;
556
564
  align-items: baseline;
557
565
  column-gap: var(--sigvelo-spacing-2);
558
566
  min-inline-size: 0;
@@ -565,7 +573,7 @@
565
573
  }
566
574
 
567
575
  .prompt-input__command-meta {
568
- color: var(--prompt-input-secondary-text);
576
+ color: var(--sigvelo-color-text-muted);
569
577
  font-size: var(--sigvelo-density-compact-control-font-size);
570
578
  white-space: nowrap;
571
579
  }
@@ -614,6 +622,7 @@
614
622
  opacity: 1;
615
623
  }
616
624
 
625
+ /* Local wrap. Not --sigvelo-layout-break-compact. */
617
626
  @container prompt-input (inline-size < 28rem) {
618
627
  .prompt-input__reference-label {
619
628
  max-inline-size: 12rem;
@@ -622,7 +631,7 @@
622
631
 
623
632
  .prompt-input__command-description,
624
633
  .prompt-input__context-description {
625
- color: var(--prompt-input-secondary-text);
634
+ color: var(--sigvelo-color-text-muted);
626
635
  font-size: var(--sigvelo-density-compact-control-font-size);
627
636
  }
628
637
 
@@ -640,12 +649,10 @@
640
649
  }
641
650
 
642
651
  .prompt-input__context-trigger[data-unavailable] {
643
- color: var(--sigvelo-color-warning-text);
652
+ color: var(--sigvelo-color-text-muted);
644
653
  }
645
654
 
646
655
  .prompt-input__context-menu {
647
- --prompt-input-secondary-text: var(--sigvelo-color-text-muted);
648
-
649
656
  min-inline-size: min(22rem, calc(100dvi - var(--sigvelo-spacing-4)));
650
657
  max-inline-size: min(28rem, calc(100dvi - var(--sigvelo-spacing-4)));
651
658
  }
@@ -665,9 +672,10 @@
665
672
  }
666
673
 
667
674
  .prompt-input__button,
668
- .prompt-input__footer .button,
669
675
  .prompt-input__attachment-remove,
670
- .prompt-input__reference.button {
676
+ .prompt-input__recording-button,
677
+ .prompt-input__reference,
678
+ .prompt-input__submit {
671
679
  --sigvelo-recipe-button-height: var(--sigvelo-control-height-xl);
672
680
  }
673
681
 
@@ -69,6 +69,7 @@
69
69
  }
70
70
 
71
71
  .queue__list-scroll {
72
+ /* Scrollbar inset, not --sigvelo-layout-stack. */
72
73
  padding-inline-end: var(--sigvelo-spacing-4);
73
74
  }
74
75
 
@@ -5,13 +5,5 @@
5
5
  }
6
6
 
7
7
  .reasoning__text {
8
- padding-inline-start: var(--sigvelo-spacing-3);
9
- border-inline-start: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) * 2)
10
- var(--sigvelo-color-neutral-border-subtle);
11
- }
12
-
13
- @media (forced-colors: active) {
14
- .reasoning__text {
15
- border-inline-start: 2px solid CanvasText;
16
- }
8
+ padding-inline-start: 0;
17
9
  }
@@ -48,6 +48,10 @@
48
48
  --sigvelo-recipe-group-label-font-size: var(--sigvelo-text-xs);
49
49
  --sigvelo-recipe-group-label-font-weight: var(--sigvelo-font-weight-semibold);
50
50
  --sigvelo-recipe-group-label-line-height: inherit;
51
+ --sigvelo-recipe-layout-gutter: var(--sigvelo-layout-gutter);
52
+ --sigvelo-recipe-layout-gap: var(--sigvelo-layout-gap);
53
+ --sigvelo-recipe-layout-stack: var(--sigvelo-layout-stack);
54
+ --sigvelo-recipe-layout-cluster: var(--sigvelo-layout-cluster);
51
55
  }
52
56
 
53
57
  :where([data-slot="select-trigger"][data-size="sm"], .toggle--sm) {
@@ -92,8 +96,7 @@
92
96
  :where(
93
97
  [data-slot="dialog-footer"],
94
98
  [data-slot="alert-dialog-footer"],
95
- [data-slot="message-edit-actions"],
96
- [data-slot="subagent-run-actions"]
99
+ [data-slot="message-edit-actions"]
97
100
  ) {
98
101
  display: flex;
99
102
  flex-wrap: wrap;
@@ -137,9 +140,32 @@
137
140
  scrollbar-gutter: stable;
138
141
  }
139
142
 
143
+ /* Host-filling application surfaces. Display mode stays with the component;
144
+ this only stops a shell from inventing its own 100% / min-size contract. */
145
+ :where([data-recipe~="fill-host"]) {
146
+ min-inline-size: 0;
147
+ min-block-size: 0;
148
+ inline-size: 100%;
149
+ block-size: 100%;
150
+ }
151
+
152
+ /* Capped page column. Padding and measure come from the layout tokens so a
153
+ dossier, a run list, and a start screen sit on the same edges. */
154
+ :where([data-recipe~="page"]) {
155
+ box-sizing: border-box;
156
+ min-inline-size: 0;
157
+ inline-size: 100%;
158
+ max-inline-size: var(--sigvelo-layout-content);
159
+ margin-inline: auto;
160
+ padding-block: var(--sigvelo-recipe-layout-stack);
161
+ padding-inline: var(--sigvelo-recipe-layout-gutter);
162
+ }
163
+
140
164
  :where([data-recipe~="framed-panel"]) {
141
165
  display: flex;
142
166
  flex-direction: column;
167
+ min-inline-size: 0;
168
+ min-block-size: 0;
143
169
  inline-size: 100%;
144
170
  overflow: hidden;
145
171
  font-family: inherit;
@@ -150,13 +176,6 @@
150
176
  border-radius: var(--sigvelo-radius-md);
151
177
  }
152
178
 
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
179
  :where([data-recipe~="disclosure-stack"]) {
161
180
  display: flex;
162
181
  flex-direction: column;
@@ -196,47 +215,6 @@
196
215
  mask-repeat: no-repeat;
197
216
  }
198
217
 
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
218
  @media (any-pointer: coarse) {
241
219
  :where(:root, [data-theme="light"], [data-theme="dark"]) {
242
220
  --sigvelo-recipe-row-min-height: var(--sigvelo-control-height-xl);
@@ -452,7 +430,7 @@
452
430
  [data-slot="autocomplete-item"]
453
431
  )[data-highlighted] {
454
432
  color: var(--sigvelo-color-neutral-text-on-subtle);
455
- background-color: var(--sigvelo-color-neutral-bg-subtle);
433
+ background-color: var(--sigvelo-color-neutral-bg-selected);
456
434
  }
457
435
 
458
436
  :where(
@@ -836,13 +814,6 @@
836
814
  --sigvelo-recipe-surface-border: CanvasText;
837
815
  }
838
816
 
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
817
  :where(
847
818
  [data-slot="input"],
848
819
  [data-slot="select-trigger"],
@@ -1,15 +1,12 @@
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
- block-size: 100%;
4
- min-inline-size: 0;
5
- min-block-size: 0;
6
7
  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);
8
+ grid-template-rows: var(--sigvelo-layout-track-fill);
9
+ background: var(--sigvelo-color-surface);
13
10
  }
14
11
 
15
12
  .responsive-sidebar-shell__frame {
@@ -21,10 +18,11 @@
21
18
  min-inline-size: 0;
22
19
  min-block-size: 0;
23
20
  display: grid;
24
- grid-template-columns: var(--resizable-side-panel-size, 16rem) minmax(0, 1fr);
25
- grid-template-rows: minmax(0, 1fr);
21
+ grid-template-columns:
22
+ var(--responsive-sidebar-shell-sidebar-size, var(--sigvelo-layout-sidebar))
23
+ var(--sigvelo-layout-track-fill);
24
+ grid-template-rows: var(--sigvelo-layout-track-fill);
26
25
  overflow: hidden;
27
- background: var(--sigvelo-color-surface-under);
28
26
  color: var(--sigvelo-color-text);
29
27
  font-family: inherit;
30
28
  transition: grid-template-columns var(--sigvelo-motion-duration-layout)
@@ -45,19 +43,64 @@
45
43
  .responsive-sidebar-shell__sidebar {
46
44
  grid-column: 1;
47
45
  grid-row: 1;
46
+ /* One rail tone everywhere: the recessed step below the page. The compact
47
+ overlay drawer below carries its own raised material regardless. */
48
+ background: var(--responsive-sidebar-shell-sidebar-surface, var(--sigvelo-color-surface-under));
48
49
  }
49
50
 
50
51
  .responsive-sidebar-shell__main {
51
52
  grid-column: 2;
52
53
  grid-row: 1;
53
54
  display: grid;
54
- grid-template-rows: minmax(0, 1fr);
55
+ /* The bar's own row, so it never overlaps the content it labels. Auto, not a
56
+ reserved height: a shell with no bar keeps the whole column for content. */
57
+ grid-template-rows: auto var(--sigvelo-layout-track-fill);
55
58
  }
56
59
 
57
60
  .responsive-sidebar-shell__peek {
58
61
  display: none;
59
62
  }
60
63
 
64
+ /* Floats over the main column so an error never reflows the content it
65
+ annotates; the column stays the positioning context. */
66
+ .responsive-sidebar-shell__main {
67
+ position: relative;
68
+ }
69
+
70
+ .responsive-sidebar-shell__error {
71
+ position: absolute;
72
+ z-index: 2;
73
+ inset-block-start: var(--sigvelo-layout-gutter);
74
+ inset-inline: 50% auto;
75
+ max-inline-size: min(32rem, calc(100% - var(--sigvelo-layout-gutter) * 2));
76
+ padding: var(--sigvelo-layout-cluster) var(--sigvelo-layout-gutter);
77
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width)
78
+ var(--sigvelo-color-danger-border-subtle);
79
+ border-radius: var(--sigvelo-radius-sm);
80
+ translate: -50% 0;
81
+ display: flex;
82
+ align-items: center;
83
+ gap: var(--sigvelo-spacing-2);
84
+ color: var(--sigvelo-color-danger-text);
85
+ background: var(--sigvelo-color-danger-bg-subtle);
86
+ font-size: var(--sigvelo-text-compact);
87
+ }
88
+
89
+ .responsive-sidebar-shell__error > svg {
90
+ flex: 0 0 auto;
91
+ }
92
+
93
+ /* Wide widths show the plain title and the icon toggle; the compact trigger
94
+ only exists below the drawer breakpoint, where the title itself becomes the
95
+ control that opens the sidebar. */
96
+ .responsive-sidebar-shell__title-trigger {
97
+ display: none;
98
+ }
99
+
100
+ .responsive-sidebar-shell__compact-leading {
101
+ display: none;
102
+ }
103
+
61
104
  @media (forced-colors: active) {
62
105
  .responsive-sidebar-shell,
63
106
  .responsive-sidebar-shell__frame {
@@ -71,7 +114,7 @@
71
114
  }
72
115
 
73
116
  .responsive-sidebar-shell[data-sidebar-open="false"] > .responsive-sidebar-shell__frame {
74
- grid-template-columns: minmax(0, 1fr);
117
+ grid-template-columns: var(--sigvelo-layout-track-fill);
75
118
  }
76
119
 
77
120
  .responsive-sidebar-shell[data-sidebar-open="false"]
@@ -91,21 +134,10 @@
91
134
  grid-column: 1;
92
135
  }
93
136
 
137
+ /* 56rem matches --sigvelo-layout-break-compact. Container queries cannot read var(). */
94
138
  @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
139
  .responsive-sidebar-shell__frame {
108
- grid-template-columns: minmax(0, 1fr);
140
+ grid-template-columns: var(--sigvelo-layout-track-fill);
109
141
  }
110
142
 
111
143
  .responsive-sidebar-shell__sidebar,
@@ -118,10 +150,10 @@
118
150
  position: relative;
119
151
  z-index: calc(var(--sigvelo-z-chrome) + 3);
120
152
  inset-inline-start: 50%;
121
- inline-size: min(calc(100cqi - var(--sigvelo-spacing-3)), 34rem);
153
+ inline-size: min(calc(100cqi - var(--sigvelo-layout-gutter)), 34rem);
122
154
  max-inline-size: none;
123
155
  block-size: auto;
124
- max-block-size: min(32rem, calc(100% - var(--sigvelo-spacing-3)));
156
+ max-block-size: min(32rem, calc(100% - var(--sigvelo-layout-gutter)));
125
157
  align-self: start;
126
158
  margin-block-start: var(--sigvelo-spacing-1);
127
159
  overflow: hidden;
@@ -144,6 +176,52 @@
144
176
  display: none;
145
177
  }
146
178
 
179
+ /* The title stands in for both its own text and the icon toggle: one
180
+ labelled control that opens the drawer, instead of an anonymous icon
181
+ beside a dead title. The bar names its compact takeover once
182
+ (`data-compact-leading`) instead of tagging each hidden control. */
183
+ [data-compact-leading] .responsive-sidebar-shell__toggle,
184
+ [data-compact-leading="trigger"] .responsive-sidebar-shell__title-text {
185
+ display: none;
186
+ }
187
+
188
+ .responsive-sidebar-shell__compact-leading {
189
+ display: contents;
190
+ }
191
+
192
+ .responsive-sidebar-shell__title-trigger {
193
+ inline-size: auto;
194
+ max-inline-size: min(22rem, 58vw);
195
+ min-inline-size: 0;
196
+ min-block-size: var(--sigvelo-density-compact-control-height);
197
+ display: inline-flex;
198
+ gap: var(--sigvelo-density-compact-control-gap);
199
+ padding-inline: var(--sigvelo-density-compact-control-padding-inline);
200
+ border-radius: var(--sigvelo-radius-md);
201
+ color: var(--sigvelo-color-text);
202
+ font-size: var(--sigvelo-density-compact-control-font-size);
203
+ font-weight: var(--sigvelo-font-weight-semibold);
204
+ }
205
+
206
+ .responsive-sidebar-shell__title-trigger span {
207
+ min-inline-size: 0;
208
+ overflow: hidden;
209
+ text-overflow: ellipsis;
210
+ white-space: nowrap;
211
+ }
212
+
213
+ .responsive-sidebar-shell__title-trigger > svg {
214
+ flex: 0 0 auto;
215
+ inline-size: var(--sigvelo-density-compact-control-icon-size);
216
+ block-size: var(--sigvelo-density-compact-control-icon-size);
217
+ color: var(--sigvelo-color-text-muted);
218
+ transition: rotate var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
219
+ }
220
+
221
+ .responsive-sidebar-shell__title-trigger[aria-expanded="true"] > svg {
222
+ rotate: 180deg;
223
+ }
224
+
147
225
  .responsive-sidebar-shell[data-sidebar-open="false"]
148
226
  > .responsive-sidebar-shell__frame
149
227
  > .responsive-sidebar-shell__sidebar {
@@ -4,12 +4,12 @@
4
4
  }
5
5
 
6
6
  .separator--horizontal {
7
- width: 100%;
8
- height: 1px;
7
+ inline-size: 100%;
8
+ block-size: 1px;
9
9
  }
10
10
 
11
11
  .separator--vertical {
12
- width: 1px;
13
- height: 100%;
14
- min-height: 1rem;
12
+ inline-size: 1px;
13
+ block-size: 100%;
14
+ min-block-size: 1rem;
15
15
  }
@@ -30,7 +30,7 @@
30
30
  align-items: flex-start;
31
31
  gap: var(--sigvelo-spacing-1-5);
32
32
  padding-block: var(--sigvelo-spacing-1-5);
33
- padding-inline: var(--sigvelo-spacing-2);
33
+ padding-inline: 0;
34
34
  color: var(--sigvelo-color-text);
35
35
  background-color: var(--sigvelo-color-surface);
36
36
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -67,13 +67,13 @@
67
67
  }
68
68
 
69
69
  .sources__link-title {
70
- font-size: var(--sigvelo-text-compact);
70
+ font-size: var(--sigvelo-text-prose);
71
71
  font-weight: var(--sigvelo-font-weight-semibold);
72
72
  color: var(--sigvelo-color-text);
73
73
  }
74
74
 
75
75
  .sources__link-description {
76
- font-size: var(--sigvelo-text-xs);
76
+ font-size: var(--sigvelo-text-meta);
77
77
  color: var(--sigvelo-color-text-muted);
78
78
  line-height: var(--sigvelo-leading-snug);
79
79
  overflow: hidden;
@@ -84,7 +84,7 @@
84
84
  }
85
85
 
86
86
  .sources__link-host {
87
- font-size: var(--sigvelo-text-2xs);
87
+ font-size: var(--sigvelo-text-meta);
88
88
  color: var(--sigvelo-color-text-muted);
89
89
  font-variant-numeric: tabular-nums;
90
90
  }
@@ -189,6 +189,7 @@
189
189
  }
190
190
 
191
191
  .stepper__content[data-spacing="compact"] {
192
+ /* Explicit density variant, not --sigvelo-layout-stack. */
192
193
  gap: var(--sigvelo-spacing-4);
193
194
  }
194
195