@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
@@ -6,7 +6,7 @@
6
6
  }
7
7
 
8
8
  .alert-dialog__popup {
9
- --sigvelo-recipe-surface-padding: var(--sigvelo-spacing-4);
9
+ --sigvelo-recipe-surface-padding: var(--sigvelo-layout-stack);
10
10
 
11
11
  position: fixed;
12
12
  inset-block-start: 50%;
@@ -39,16 +39,16 @@
39
39
  font-size: var(--sigvelo-text-compact);
40
40
  line-height: var(--sigvelo-leading-normal);
41
41
  color: var(--sigvelo-color-text-muted);
42
- margin: 0 0 var(--sigvelo-spacing-4);
42
+ margin: 0 0 var(--sigvelo-layout-stack);
43
43
  text-wrap: pretty;
44
44
  }
45
45
 
46
46
  .alert-dialog__header {
47
47
  display: grid;
48
48
  gap: var(--sigvelo-spacing-1);
49
- margin-block-end: var(--sigvelo-spacing-3);
49
+ margin-block-end: var(--sigvelo-layout-gutter);
50
50
  }
51
51
 
52
52
  .alert-dialog__media {
53
- margin-block-end: var(--sigvelo-spacing-3);
53
+ margin-block-end: var(--sigvelo-layout-gutter);
54
54
  }
@@ -1,8 +1,6 @@
1
1
  .app-frame {
2
- block-size: 100%;
3
- min-block-size: 0;
4
2
  display: grid;
5
- grid-template-rows: auto minmax(0, 1fr);
3
+ grid-template-rows: auto var(--sigvelo-layout-track-fill);
6
4
  overflow: hidden;
7
5
  color: var(--sigvelo-color-text);
8
6
  background: var(--sigvelo-color-canvas);
@@ -1,3 +1,6 @@
1
+ /* A mark sits flat on whatever canvas hosts it — the tile never paints its
2
+ own background. Elevation is a drop shadow that follows the mark's own
3
+ silhouette, so a transparent favicon casts its shape, not an invisible box. */
1
4
  .avatar.app-icon {
2
5
  --sigvelo-recipe-app-icon-size: var(--sigvelo-spacing-8);
3
6
  --sigvelo-recipe-app-icon-radius: 30%;
@@ -11,10 +14,11 @@
11
14
  flex: none;
12
15
  overflow: hidden;
13
16
  border-radius: var(--sigvelo-recipe-app-icon-radius);
14
- background: var(--sigvelo-color-surface-raised);
15
- box-shadow: 0 var(--sigvelo-spacing-1) var(--sigvelo-spacing-4)
16
- color-mix(in oklab, transparent, var(--sigvelo-color-shadow) 5%);
17
- corner-shape: round;
17
+ background: transparent;
18
+ filter: drop-shadow(
19
+ 0 var(--sigvelo-border-width) var(--sigvelo-spacing-0-5)
20
+ color-mix(in oklab, transparent, var(--sigvelo-color-shadow) 25%)
21
+ );
18
22
  user-select: none;
19
23
  }
20
24
 
@@ -40,24 +44,15 @@
40
44
  padding: var(--sigvelo-spacing-2);
41
45
  }
42
46
 
43
- .app-icon[data-app-icon-variant="surface"] {
44
- background: var(--sigvelo-color-surface-raised);
45
- }
47
+ /* The surface variant keeps only the inset; the mark stays flat on the canvas. */
46
48
 
47
49
  .app-icon[data-app-icon-variant="contrast"] {
48
50
  background: var(--sigvelo-color-primary-bg);
49
51
  color: var(--sigvelo-color-primary-text-on-bg);
50
52
  }
51
53
 
52
- .app-icon::after {
53
- position: absolute;
54
- inset: 0;
55
- border-radius: inherit;
56
- box-shadow: inset 0 0 0 var(--sigvelo-border-width-hairline)
57
- color-mix(in oklab, transparent, var(--sigvelo-color-shadow) 10%);
58
- content: "";
59
- pointer-events: none;
60
- }
54
+ /* Full-bleed artwork brings its own edges; a hairline ring around a flat
55
+ transparent mark would outline an invisible box, so no variant draws one. */
61
56
 
62
57
  .app-icon__image,
63
58
  .app-icon__fallback,
@@ -80,7 +75,7 @@
80
75
  align-items: center;
81
76
  justify-content: center;
82
77
  border-radius: inherit;
83
- background: var(--sigvelo-color-surface-raised);
78
+ background: transparent;
84
79
  color: var(--sigvelo-color-text-muted);
85
80
  font-size: var(--sigvelo-text-xs);
86
81
  font-weight: var(--sigvelo-font-weight-semibold);
@@ -94,7 +89,6 @@
94
89
  .app-icon-stack {
95
90
  display: inline-flex;
96
91
  align-items: center;
97
- block-size: 0;
98
92
  isolation: isolate;
99
93
  }
100
94
 
@@ -1,23 +1,28 @@
1
1
  .app-top-bar {
2
- --app-top-bar-block-size: calc(
3
- var(--sigvelo-density-compact-control-height) + var(--sigvelo-spacing-2)
4
- );
5
-
6
2
  box-sizing: border-box;
7
3
  inline-size: 100%;
8
4
  min-inline-size: 0;
9
- min-block-size: calc(var(--app-top-bar-block-size) + env(safe-area-inset-top, 0px));
5
+ /* Hooks, not constants: declaring either here would beat every inherited
6
+ value, so the defaults live in the fallbacks. Hosts set
7
+ --app-top-bar-block-size on any ancestor to size every bar in a region at
8
+ once; the bar adds the safe-area inset itself, so the hook stays a plain
9
+ content height. */
10
+ min-block-size: calc(
11
+ var(--app-top-bar-block-size, var(--sigvelo-layout-chrome)) + env(safe-area-inset-top, 0px)
12
+ );
10
13
  display: grid;
11
- grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
14
+ grid-template-columns: var(--sigvelo-layout-track-fill) auto var(--sigvelo-layout-track-fill);
12
15
  align-items: center;
13
16
  gap: var(--sigvelo-density-compact-control-gap);
14
17
  padding-block: calc(var(--sigvelo-spacing-1) + env(safe-area-inset-top, 0px))
15
18
  var(--sigvelo-spacing-1);
16
- padding-inline: calc(var(--sigvelo-spacing-2) + env(safe-area-inset-left, 0px))
17
- calc(var(--sigvelo-spacing-2) + env(safe-area-inset-right, 0px));
19
+ padding-inline: calc(var(--sigvelo-layout-gutter) + env(safe-area-inset-left, 0px))
20
+ calc(var(--sigvelo-layout-gutter) + env(safe-area-inset-right, 0px));
18
21
  border: 0;
19
22
  border-radius: 0;
20
- background: var(--sigvelo-color-surface);
23
+ /* No surface of its own: the bar occupies a layout row, so whatever plane
24
+ it sits on shows through and can never disagree with it. */
25
+ background: transparent;
21
26
  }
22
27
 
23
28
  .app-top-bar__leading,
@@ -48,6 +53,23 @@
48
53
  justify-self: end;
49
54
  }
50
55
 
56
+ /* A panel header, not an application title bar: the symmetric track layout
57
+ would float the name in the middle of the plane instead of labelling its
58
+ leading edge. Only the trailing group still needs room of its own.
59
+ Panel chrome also sits atop scrolling content, so it separates the Ploy
60
+ way — one hairline and a breath of shadow, still no fill. */
61
+ .app-top-bar[data-title-align="start"] {
62
+ position: relative;
63
+ grid-template-columns: auto auto var(--sigvelo-layout-track-fill);
64
+ border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
65
+ var(--sigvelo-color-neutral-border-subtle);
66
+ box-shadow: var(--sigvelo-elevation-bar);
67
+ }
68
+
69
+ .app-top-bar[data-title-align="start"] .app-top-bar__title {
70
+ justify-self: start;
71
+ }
72
+
51
73
  .app-top-bar__button {
52
74
  box-sizing: border-box;
53
75
  flex: 0 0 auto;
@@ -11,6 +11,7 @@
11
11
  .approval__header {
12
12
  display: flex;
13
13
  align-items: baseline;
14
+ /* Widget density, not --sigvelo-layout-cluster. */
14
15
  gap: var(--sigvelo-spacing-2);
15
16
  line-height: var(--sigvelo-leading-snug);
16
17
  }
@@ -15,9 +15,9 @@
15
15
  display: flex;
16
16
  align-items: flex-start;
17
17
  justify-content: space-between;
18
- gap: var(--sigvelo-spacing-3);
19
- padding-block: var(--sigvelo-spacing-3);
20
- padding-inline: var(--sigvelo-spacing-4);
18
+ gap: var(--sigvelo-layout-gutter);
19
+ padding-block: var(--sigvelo-layout-cluster);
20
+ padding-inline: var(--sigvelo-layout-gutter);
21
21
  background-color: var(--sigvelo-color-surface);
22
22
  }
23
23
 
@@ -54,8 +54,8 @@
54
54
  }
55
55
 
56
56
  .artifact__content {
57
- padding-block: var(--sigvelo-spacing-4);
58
- padding-inline: var(--sigvelo-spacing-4);
57
+ padding-block: var(--sigvelo-layout-stack);
58
+ padding-inline: var(--sigvelo-layout-gutter);
59
59
  font-size: var(--sigvelo-text-sm);
60
60
  line-height: var(--sigvelo-leading-normal);
61
61
  overflow-wrap: anywhere;
@@ -104,7 +104,7 @@
104
104
  justify-content: center;
105
105
  flex-wrap: wrap;
106
106
  gap: var(--sigvelo-spacing-2);
107
- padding: var(--sigvelo-spacing-4);
107
+ padding: var(--sigvelo-layout-stack);
108
108
  color: var(--sigvelo-color-text-muted);
109
109
  text-align: center;
110
110
  }
@@ -2,14 +2,15 @@
2
2
  Scoped as .dialog__popup.attachment-preview so it beats the base dialog
3
3
  sizing regardless of import order. */
4
4
  .dialog__popup.attachment-preview {
5
- width: fit-content;
6
- max-width: min(90vw, 56rem);
5
+ inline-size: fit-content;
6
+ /* Lightbox measure. Not --sigvelo-layout-break-compact. */
7
+ max-inline-size: min(90dvi, 56rem);
7
8
  }
8
9
 
9
10
  .attachment-preview__image {
10
11
  display: block;
11
- max-width: 100%;
12
- max-height: 70vh;
12
+ max-inline-size: 100%;
13
+ max-block-size: 70dvb;
13
14
  border-radius: var(--sigvelo-radius-md);
14
15
  }
15
16
 
@@ -1,6 +1,5 @@
1
1
  .avatar {
2
2
  --sigvelo-recipe-avatar-size: var(--sigvelo-control-height-sm);
3
- --sigvelo-recipe-avatar-badge-size: var(--sigvelo-spacing-2-5);
4
3
 
5
4
  position: relative;
6
5
  display: inline-flex;
@@ -12,23 +11,23 @@
12
11
  overflow: hidden;
13
12
  font-family: inherit;
14
13
  background-color: var(--sigvelo-color-neutral-bg-subtle);
15
- border-radius: var(--sigvelo-radius-full);
16
14
  user-select: none;
17
15
  }
18
16
 
17
+ .avatar[data-shape="circle"] {
18
+ border-radius: var(--sigvelo-radius-full);
19
+ }
20
+
19
21
  .avatar[data-size="sm"] {
20
22
  --sigvelo-recipe-avatar-size: var(--sigvelo-spacing-6);
21
- --sigvelo-recipe-avatar-badge-size: var(--sigvelo-spacing-2);
22
23
  }
23
24
 
24
25
  .avatar[data-size="lg"] {
25
26
  --sigvelo-recipe-avatar-size: var(--sigvelo-control-height-lg);
26
- --sigvelo-recipe-avatar-badge-size: var(--sigvelo-spacing-3);
27
27
  }
28
28
 
29
29
  .avatar[data-size="xl"] {
30
30
  --sigvelo-recipe-avatar-size: var(--sigvelo-spacing-14);
31
- --sigvelo-recipe-avatar-badge-size: var(--sigvelo-spacing-4);
32
31
  }
33
32
 
34
33
  .avatar[data-shape="rounded"] {
@@ -68,7 +67,7 @@
68
67
  color: var(--sigvelo-color-text-muted);
69
68
  text-transform: uppercase;
70
69
  background-color: var(--sigvelo-color-neutral-bg-subtle);
71
- border-radius: var(--sigvelo-radius-full);
70
+ border-radius: inherit;
72
71
  }
73
72
 
74
73
  .avatar[data-size="sm"] .avatar__fallback {
@@ -89,8 +88,7 @@
89
88
  margin-inline-start: 0;
90
89
  }
91
90
 
92
- .avatar-group__count,
93
- .avatar__badge {
91
+ .avatar-group__count {
94
92
  display: inline-flex;
95
93
  align-items: center;
96
94
  justify-content: center;
@@ -122,17 +120,3 @@
122
120
  .avatar-group:has(.avatar[data-size="lg"]) .avatar-group__count {
123
121
  --sigvelo-recipe-avatar-count-size: var(--sigvelo-control-height-lg);
124
122
  }
125
-
126
- .avatar__badge {
127
- position: absolute;
128
- inset-inline-end: 0;
129
- inset-block-end: 0;
130
- z-index: 10;
131
- inline-size: var(--sigvelo-recipe-avatar-badge-size);
132
- block-size: var(--sigvelo-recipe-avatar-badge-size);
133
- color: var(--sigvelo-color-primary-text-on-bg);
134
- background-color: var(--sigvelo-color-primary-bg);
135
- border: 2px solid var(--sigvelo-color-canvas);
136
- border-radius: var(--sigvelo-radius-full);
137
- user-select: none;
138
- }
@@ -33,15 +33,9 @@
33
33
 
34
34
  /* sigvelo-pill-shapes:start */
35
35
  :where(
36
- .agent-activity-preview__badge,
37
- .agent-activity-preview__dismiss,
38
- .agent-activity-preview__unviewed-dot,
39
36
  .approval__key,
40
- .avatar,
37
+ .avatar[data-shape="circle"],
41
38
  .avatar-group__count,
42
- .avatar__badge,
43
- .avatar__fallback,
44
- .badge,
45
39
  .browser-run-panel__tab-glyph,
46
40
  .chain-of-thought__search-result,
47
41
  .chain-of-thought__step-indicator,
@@ -50,6 +44,7 @@
50
44
  .empty-state__icon,
51
45
  .inline-citation__trigger,
52
46
  .media-preview-card__play,
47
+ .manager-office__unread-dot,
53
48
  .menu__radio-indicator::before,
54
49
  .message-scroller__button,
55
50
  .plan-summary__trigger,
@@ -68,7 +63,6 @@
68
63
  .slider__indicator,
69
64
  .slider__thumb,
70
65
  .slider__track,
71
- .status-pill__dot,
72
66
  .stepper__indicator,
73
67
  .stepper__separator,
74
68
  .stepper__trigger,
@@ -0,0 +1,38 @@
1
+ .browser-live-screen__input {
2
+ position: absolute;
3
+ inset: 0;
4
+ box-sizing: border-box;
5
+ inline-size: 100%;
6
+ block-size: 100%;
7
+ overflow: hidden;
8
+ resize: none;
9
+ border: 0;
10
+ padding: 0;
11
+ appearance: none;
12
+ background: transparent;
13
+ caret-color: transparent;
14
+ color: transparent;
15
+ cursor: default;
16
+ touch-action: none;
17
+ }
18
+
19
+ .browser-live-screen__input:focus-visible {
20
+ outline: none;
21
+ box-shadow: var(--sigvelo-recipe-focus-shadow-inset);
22
+ }
23
+
24
+ .browser-live-screen__keyboard {
25
+ display: none;
26
+ position: absolute;
27
+ inset-block-end: var(--sigvelo-spacing-2);
28
+ inset-inline-end: var(--sigvelo-spacing-2);
29
+ z-index: 1;
30
+ background-color: var(--sigvelo-color-surface-raised);
31
+ box-shadow: var(--sigvelo-elevation-floating);
32
+ }
33
+
34
+ @media (pointer: coarse) {
35
+ .browser-live-screen__keyboard {
36
+ display: inline-flex;
37
+ }
38
+ }
@@ -39,17 +39,25 @@
39
39
  opacity: 1;
40
40
  }
41
41
 
42
- /* The chip itself is the library StatusPill (sm/destructive/busy) — only the
43
- overlay placement lives here. */
44
- .browser-live-view__badge {
42
+ .browser-live-view__status {
45
43
  position: absolute;
46
44
  inset-block-start: var(--sigvelo-spacing-2);
47
45
  inset-inline-end: var(--sigvelo-spacing-2);
48
46
  z-index: 1;
49
- box-shadow: var(--sigvelo-elevation-raised);
47
+ display: inline-flex;
48
+ align-items: center;
49
+ gap: var(--sigvelo-spacing-1);
50
+ color: var(--sigvelo-color-danger-text);
51
+ font-size: var(--sigvelo-text-xs);
52
+ font-weight: var(--sigvelo-font-weight-semibold);
50
53
  pointer-events: none;
51
54
  }
52
55
 
56
+ .browser-live-view__status > svg {
57
+ inline-size: var(--sigvelo-control-icon-size-sm);
58
+ block-size: var(--sigvelo-control-icon-size-sm);
59
+ }
60
+
53
61
  /* Ended state: quiet fill, same footprint so the layout never jumps */
54
62
  .browser-live-view__ended {
55
63
  display: flex;
@@ -4,7 +4,7 @@
4
4
  .browser-replay {
5
5
  display: flex;
6
6
  flex-direction: column;
7
- width: 100%;
7
+ inline-size: 100%;
8
8
  font-family: inherit;
9
9
  color: var(--sigvelo-color-text);
10
10
  background-color: var(--sigvelo-color-surface);
@@ -16,7 +16,7 @@
16
16
 
17
17
  .browser-replay__stage-wrap {
18
18
  position: relative;
19
- width: 100%;
19
+ inline-size: 100%;
20
20
  aspect-ratio: 16 / 10;
21
21
  background-color: var(--sigvelo-color-neutral-bg-subtle);
22
22
  overflow: hidden;
@@ -44,9 +44,9 @@
44
44
  .browser-replay__controls {
45
45
  display: flex;
46
46
  align-items: center;
47
- gap: var(--sigvelo-spacing-2-5);
48
- padding-block: var(--sigvelo-spacing-2);
49
- padding-inline: var(--sigvelo-spacing-3);
47
+ gap: var(--sigvelo-layout-cluster);
48
+ padding-block: var(--sigvelo-layout-cluster);
49
+ padding-inline: var(--sigvelo-layout-gutter);
50
50
  border-block-start: var(--sigvelo-border-style) var(--sigvelo-border-width)
51
51
  var(--sigvelo-color-neutral-border-subtle);
52
52
  background-color: var(--sigvelo-color-surface);
@@ -60,7 +60,7 @@
60
60
 
61
61
  .browser-replay__scrubber {
62
62
  flex: 1;
63
- min-width: 0;
63
+ min-inline-size: 0;
64
64
  }
65
65
 
66
66
  .browser-replay__time {
@@ -2,15 +2,18 @@
2
2
  min-inline-size: 0;
3
3
  min-block-size: 0;
4
4
  block-size: 100%;
5
+ border: 0;
6
+ border-radius: 0;
5
7
  }
6
8
 
9
+ /* The tab strip and the address row are one chrome group: only the bottom
10
+ row draws the group's edge. */
7
11
  .browser-run-panel .web-preview__nav:has(.browser-run-panel__tabs) {
8
- min-block-size: var(--sigvelo-spacing-12);
9
12
  gap: 0;
10
13
  padding-block: 0;
11
14
  padding-inline: var(--sigvelo-spacing-1-5);
12
15
  border-block-end: 0;
13
- background: var(--sigvelo-color-canvas);
16
+ box-shadow: none;
14
17
  }
15
18
 
16
19
  .browser-run-panel__tabs {
@@ -29,20 +32,27 @@
29
32
  display: none;
30
33
  }
31
34
 
32
- .browser-run-panel__tab.button {
35
+ /* Not drawn browser chrome: a tab is the same muted control as every other
36
+ row in the card's bar, selection the same subtle fill. */
37
+ .browser-run-panel__tab {
33
38
  min-inline-size: min(11rem, 45vw);
34
- min-block-size: var(--sigvelo-control-height-xl);
35
39
  max-inline-size: 13rem;
40
+ min-block-size: var(--sigvelo-control-height-sm);
36
41
  flex: 0 0 auto;
37
42
  gap: var(--sigvelo-spacing-2);
38
- padding-inline: var(--sigvelo-spacing-3);
39
- border-radius: var(--sigvelo-radius-md) var(--sigvelo-radius-md) 0 0;
43
+ padding-inline: var(--sigvelo-spacing-2);
44
+ border-radius: var(--sigvelo-radius-sm);
40
45
  text-align: start;
41
46
  white-space: nowrap;
42
47
  }
43
48
 
49
+ .browser-run-panel__tab:hover:not([data-disabled]) {
50
+ background-color: color-mix(in oklab, transparent, var(--sigvelo-color-text) 5%);
51
+ }
52
+
44
53
  .browser-run-panel__tab[data-active] {
45
- background: var(--sigvelo-color-surface);
54
+ border-block-end-color: transparent;
55
+ background: var(--sigvelo-color-neutral-bg-subtle);
46
56
  color: var(--sigvelo-color-text);
47
57
  }
48
58
 
@@ -66,24 +76,17 @@
66
76
  line-height: var(--sigvelo-leading-tight);
67
77
  }
68
78
 
69
- .browser-run-panel__address-bar {
70
- min-block-size: var(--sigvelo-spacing-12);
71
- background: var(--sigvelo-color-surface);
72
- }
73
-
74
79
  .browser-run-panel .browser-run-panel__body {
75
80
  min-block-size: 0;
76
81
  display: flex;
77
- padding: var(--sigvelo-spacing-2-5);
82
+ padding: 0;
78
83
  }
79
84
 
80
- /* Whichever live surface the body holds the panel's own embedded view or a
81
- * host-fed stream fills the frame the same way. */
82
- .browser-run-panel__body > .browser-live-view {
85
+ /* The panel owns the space allotted to whichever direct surface it hosts. */
86
+ .browser-run-panel__body > * {
83
87
  flex: 1;
88
+ /* Hosted preview floor. Not --sigvelo-layout-sidebar. */
84
89
  min-block-size: 16rem;
85
- aspect-ratio: auto;
86
- border-radius: var(--sigvelo-radius-md);
87
90
  }
88
91
 
89
92
  .browser-run-panel__state {
@@ -38,10 +38,7 @@
38
38
  flex: none;
39
39
  }
40
40
 
41
- /* ponytail: one brightness rule covers press feedback for every variant;
42
- upgrade to per-variant color-mix rules if filter side effects ever bite */
43
41
  .button:active:not([data-disabled]) {
44
- filter: brightness(0.94);
45
42
  translate: 0 var(--sigvelo-motion-distance-xs);
46
43
  }
47
44
 
@@ -65,7 +62,11 @@
65
62
  }
66
63
 
67
64
  .button--normal.button--primary:hover:not([data-disabled]) {
68
- background-color: color-mix(in oklab, var(--sigvelo-color-primary-bg), black 5%);
65
+ background-color: var(--sigvelo-color-primary-bg-hover);
66
+ }
67
+
68
+ .button--normal.button--primary:active:not([data-disabled]) {
69
+ background-color: var(--sigvelo-color-primary-bg-press);
69
70
  }
70
71
 
71
72
  .button--normal.button--neutral {
@@ -74,7 +75,11 @@
74
75
  }
75
76
 
76
77
  .button--normal.button--neutral:hover:not([data-disabled]) {
77
- background-color: color-mix(in oklab, var(--sigvelo-color-neutral-bg-subtle), black 5%);
78
+ background-color: var(--sigvelo-color-neutral-bg-hover);
79
+ }
80
+
81
+ .button--normal.button--neutral:active:not([data-disabled]) {
82
+ background-color: var(--sigvelo-color-neutral-bg-press);
78
83
  }
79
84
 
80
85
  .button--normal.button--destructive {
@@ -83,7 +88,11 @@
83
88
  }
84
89
 
85
90
  .button--normal.button--destructive:hover:not([data-disabled]) {
86
- background-color: color-mix(in oklab, var(--sigvelo-color-danger-bg), black 5%);
91
+ background-color: var(--sigvelo-color-danger-bg-hover);
92
+ }
93
+
94
+ .button--normal.button--destructive:active:not([data-disabled]) {
95
+ background-color: var(--sigvelo-color-danger-bg-press);
87
96
  }
88
97
 
89
98
  /* Outline appearance */
@@ -3,14 +3,14 @@
3
3
  color: var(--sigvelo-color-text);
4
4
  /* Shadow-led elevation: the hairline ring in the stack is the perimeter. */
5
5
  border-radius: var(--sigvelo-radius-lg);
6
- padding: var(--sigvelo-spacing-4);
6
+ padding: var(--sigvelo-layout-stack);
7
7
  box-shadow: var(--sigvelo-elevation-raised);
8
8
  transition: box-shadow var(--sigvelo-motion-duration-interaction)
9
9
  var(--sigvelo-motion-ease-change);
10
10
  }
11
11
 
12
12
  .card[data-size="sm"] {
13
- padding: var(--sigvelo-spacing-3);
13
+ padding: var(--sigvelo-layout-gutter);
14
14
  border-radius: var(--sigvelo-radius-md);
15
15
  }
16
16
 
@@ -39,13 +39,13 @@
39
39
  .card__header {
40
40
  display: grid;
41
41
  grid-template-rows: auto auto;
42
- grid-template-columns: minmax(0, 1fr);
42
+ grid-template-columns: var(--sigvelo-layout-track-fill);
43
43
  align-items: start;
44
- margin-block-end: var(--sigvelo-spacing-3);
44
+ margin-block-end: var(--sigvelo-layout-gutter);
45
45
  }
46
46
 
47
47
  .card__header:has(.card__action) {
48
- grid-template-columns: minmax(0, 1fr) auto;
48
+ grid-template-columns: var(--sigvelo-layout-track-fill) auto;
49
49
  }
50
50
 
51
51
  .card__action {
@@ -1,7 +1,4 @@
1
1
  .chatgpt-sign-in {
2
- --chatgpt-sign-in-pointer-x: 50%;
3
- --chatgpt-sign-in-pointer-y: 58%;
4
-
5
2
  position: relative;
6
3
  isolation: isolate;
7
4
  overflow-x: hidden;
@@ -33,14 +30,17 @@
33
30
  position: absolute;
34
31
  z-index: 0;
35
32
  inset: 0;
33
+ /* The pointer position arrives as an inline style from the component's own
34
+ mousemove handler; the fallbacks are only the resting spot before the
35
+ first move. */
36
36
  background:
37
37
  radial-gradient(
38
- circle at var(--chatgpt-sign-in-pointer-x) var(--chatgpt-sign-in-pointer-y),
38
+ circle at var(--chatgpt-sign-in-pointer-x, 50%) var(--chatgpt-sign-in-pointer-y, 58%),
39
39
  color-mix(in oklab, var(--sigvelo-color-primary-bg), transparent 72%),
40
40
  transparent 12rem
41
41
  ),
42
42
  radial-gradient(
43
- circle at var(--chatgpt-sign-in-pointer-x) var(--chatgpt-sign-in-pointer-y),
43
+ circle at var(--chatgpt-sign-in-pointer-x, 50%) var(--chatgpt-sign-in-pointer-y, 58%),
44
44
  color-mix(in oklab, var(--sigvelo-color-primary-bg-muted), transparent 86%),
45
45
  transparent 18rem
46
46
  );
@@ -67,7 +67,7 @@
67
67
  z-index: 1;
68
68
  display: flex;
69
69
  justify-content: center;
70
- margin-block-start: var(--sigvelo-spacing-4);
70
+ margin-block-start: var(--sigvelo-layout-stack);
71
71
  }
72
72
 
73
73
  .chatgpt-sign-in__error {