@mcp-b/react-components 0.39.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 (188) 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-DO4Hdu1R.js → CodeBlock-BjELA-_s.js} +1 -1
  5. package/dist/{FileTree-DbQMpvxV.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/Toolbar-CBOseBQr.d.ts +152 -0
  11. package/dist/{WorkspaceFileView-D0r7xnq5.js → WorkspaceFileView-D0yFwoDr.js} +3 -3
  12. package/dist/{WorkspaceMessageResponse-Cy28WGSz.d.ts → WorkspaceMessageResponse-D66ty4FO.d.ts} +1 -1
  13. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  14. package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
  15. package/dist/components/agents-sdk/AgentChat.js +41 -18
  16. package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +1 -1
  17. package/dist/components/agents-sdk/AgentToolRunsContext.js +12 -0
  18. package/dist/components/agents-sdk/BrowserLiveScreen.d.ts +135 -0
  19. package/dist/components/agents-sdk/BrowserLiveScreen.js +637 -0
  20. package/dist/components/agents-sdk/BrowserLiveView.d.ts +2 -2
  21. package/dist/components/agents-sdk/BrowserLiveView.js +6 -9
  22. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  23. package/dist/components/agents-sdk/BrowserRunPanel.d.ts +72 -25
  24. package/dist/components/agents-sdk/BrowserRunPanel.js +111 -70
  25. package/dist/components/agents-sdk/ManagerOffice.d.ts +156 -0
  26. package/dist/components/agents-sdk/ManagerOffice.js +662 -0
  27. package/dist/components/agents-sdk/McpConnectionRequest.js +3 -3
  28. package/dist/components/agents-sdk/McpConnectorForm.d.ts +1 -38
  29. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +8 -2
  30. package/dist/components/agents-sdk/McpPluginCatalog.js +79 -61
  31. package/dist/components/agents-sdk/McpServerPicker.d.ts +1 -1
  32. package/dist/components/agents-sdk/McpServerPicker.js +2 -2
  33. package/dist/components/agents-sdk/ModelSelector.js +1 -1
  34. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  35. package/dist/components/agents-sdk/SubagentRunDetails.d.ts +1 -9
  36. package/dist/components/agents-sdk/SubagentRunDetails.js +1 -9
  37. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  38. package/dist/components/agents-sdk/SubagentRunSelector.d.ts +4 -2
  39. package/dist/components/agents-sdk/SubagentRunSelector.js +7 -6
  40. package/dist/components/agents-sdk/ThinkChat.d.ts +4 -4
  41. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  42. package/dist/components/agents-sdk/ThinkChatToolPanels.js +1 -1
  43. package/dist/components/agents-sdk/ThinkExecutionDetail.d.ts +1 -1
  44. package/dist/components/agents-sdk/ThinkExecutionDetail.js +43 -43
  45. package/dist/components/agents-sdk/ThinkExecutionRun.d.ts +2 -2
  46. package/dist/components/agents-sdk/ThinkExecutionRun.js +5 -6
  47. package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +1 -1
  48. package/dist/components/agents-sdk/ThinkExecutionStatus.js +8 -12
  49. package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +8 -1
  50. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +43 -38
  51. package/dist/components/agents-sdk/ThinkFullApp.d.ts +18 -6
  52. package/dist/components/agents-sdk/ThinkFullApp.js +112 -144
  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.js +69 -89
  58. package/dist/components/agents-sdk/ThinkRoutineRuns.d.ts +1 -1
  59. package/dist/components/agents-sdk/ThinkRoutineRuns.js +3 -10
  60. package/dist/components/agents-sdk/ThinkThreadPicker.js +1 -1
  61. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  62. package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -1
  63. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  64. package/dist/components/agents-sdk/WorkspaceHeader.js +2 -1
  65. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -1
  66. package/dist/components/agents-sdk/WorkspaceMountManager.js +11 -11
  67. package/dist/components/ai-sdk/Activity.js +1 -1
  68. package/dist/components/ai-sdk/AgentAttention.d.ts +1 -1
  69. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  70. package/dist/components/ai-sdk/Approval.js +1 -1
  71. package/dist/components/ai-sdk/Artifact.js +1 -1
  72. package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
  73. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  74. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  75. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  76. package/dist/components/ai-sdk/Conversation.js +1 -1
  77. package/dist/components/ai-sdk/Goal.js +1 -1
  78. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  79. package/dist/components/ai-sdk/Message.d.ts +2 -2
  80. package/dist/components/ai-sdk/Message.js +25 -3
  81. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  82. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
  83. package/dist/components/ai-sdk/Plan.js +1 -1
  84. package/dist/components/ai-sdk/PromptInput.js +1 -1
  85. package/dist/components/ai-sdk/Queue.d.ts +4 -4
  86. package/dist/components/ai-sdk/Queue.js +6 -15
  87. package/dist/components/ai-sdk/Reasoning.js +1 -1
  88. package/dist/components/ai-sdk/Sources.js +1 -1
  89. package/dist/components/ai-sdk/Task.d.ts +2 -2
  90. package/dist/components/ai-sdk/Task.js +2 -2
  91. package/dist/components/extension/ChatGptSignInScreen.d.ts +21 -10
  92. package/dist/components/extension/ChatGptSignInScreen.js +42 -34
  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/Toolbar.d.ts +1 -151
  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/AppTopBar.d.ts +1 -90
  111. package/dist/components/general-purpose/AppTopBar.js +2 -1
  112. package/dist/components/general-purpose/Commit.d.ts +2 -2
  113. package/dist/components/general-purpose/Commit.js +5 -13
  114. package/dist/components/general-purpose/EnvironmentVariables.d.ts +2 -2
  115. package/dist/components/general-purpose/EnvironmentVariables.js +4 -7
  116. package/dist/components/general-purpose/FileTree.js +1 -1
  117. package/dist/components/general-purpose/PricingBillingToggle.js +4 -9
  118. package/dist/components/general-purpose/PricingPlanCard.js +15 -14
  119. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +95 -2
  120. package/dist/components/general-purpose/ResponsiveSidebarShell.js +90 -34
  121. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  122. package/dist/components/general-purpose/Terminal.d.ts +1 -1
  123. package/dist/components/general-purpose/Terminal.js +4 -12
  124. package/dist/components/general-purpose/TestResults.d.ts +1 -1
  125. package/dist/components/general-purpose/TestResults.js +8 -21
  126. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  127. package/dist/components/general-purpose/WebPreview.d.ts +1 -1
  128. package/dist/components/general-purpose/WebPreview.js +4 -12
  129. package/dist/components/nanites/AgentConnection.js +2 -2
  130. package/dist/components/nanites/AgentToolDetail.d.ts +1 -1
  131. package/dist/components/nanites/AgentToolDetail.js +7 -7
  132. package/dist/components/nanites/NaniteScene.js +11 -11
  133. package/dist/{copy-button-4YvddK4e.js → copy-button-lys9N_aI.js} +1 -1
  134. package/dist/{icons-BGZ916hb.d.ts → icons-0corjfxR.d.ts} +6 -16
  135. package/dist/{icons-B4mGvCvc.js → icons-CVFSeTJn.js} +3 -5
  136. package/dist/styles/agent-attention.css +5 -5
  137. package/dist/styles/agent-chat.css +47 -12
  138. package/dist/styles/agent-tool-detail.css +2 -12
  139. package/dist/styles/app-icon.css +12 -18
  140. package/dist/styles/app-top-bar.css +32 -6
  141. package/dist/styles/avatar.css +6 -22
  142. package/dist/styles/base.css +2 -8
  143. package/dist/styles/browser-live-screen.css +38 -0
  144. package/dist/styles/browser-live-view.css +12 -4
  145. package/dist/styles/browser-run-panel.css +20 -16
  146. package/dist/styles/chatgpt-sign-in-screen.css +11 -5
  147. package/dist/styles/commit.css +24 -1
  148. package/dist/styles/environment-variables.css +3 -0
  149. package/dist/styles/index.css +5 -4
  150. package/dist/styles/manager-office.css +486 -0
  151. package/dist/styles/mcp-plugin-catalog.css +39 -35
  152. package/dist/styles/mcp-server-picker.css +1 -1
  153. package/dist/styles/message.css +41 -18
  154. package/dist/styles/nanite-scene.css +9 -9
  155. package/dist/styles/pricing-page.css +12 -8
  156. package/dist/styles/prompt-input.css +8 -13
  157. package/dist/styles/recipes.css +1 -57
  158. package/dist/styles/responsive-sidebar-shell.css +70 -20
  159. package/dist/styles/subagent-run.css +20 -3
  160. package/dist/styles/terminal.css +19 -0
  161. package/dist/styles/test-results.css +10 -1
  162. package/dist/styles/think-execution-status.css +8 -24
  163. package/dist/styles/think-execution-workbench.css +98 -105
  164. package/dist/styles/think-full-app.css +81 -185
  165. package/dist/styles/think-routine-library.css +0 -40
  166. package/dist/styles/think-thread-picker.css +8 -3
  167. package/dist/styles/transition-surface.css +7 -8
  168. package/dist/styles/utilities.css +42 -0
  169. package/dist/styles/web-preview.css +28 -5
  170. package/dist/styles/workspace-explorer.css +4 -23
  171. package/dist/styles/workspace-mount-manager.css +22 -0
  172. package/package.json +37 -35
  173. package/dist/ResponsiveSidebarShell-DWjULskY.d.ts +0 -68
  174. package/dist/components/agents-sdk/AgentActivityPreview.d.ts +0 -46
  175. package/dist/components/agents-sdk/AgentActivityPreview.js +0 -93
  176. package/dist/components/agents-sdk/ThinkThreadShell.d.ts +0 -38
  177. package/dist/components/agents-sdk/ThinkThreadShell.js +0 -27
  178. package/dist/components/foundations/Badge.d.ts +0 -62
  179. package/dist/components/foundations/Badge.js +0 -55
  180. package/dist/components/foundations/StatusPill.d.ts +0 -43
  181. package/dist/components/foundations/StatusPill.js +0 -35
  182. package/dist/components/general-purpose/Shell.d.ts +0 -149
  183. package/dist/components/general-purpose/Shell.js +0 -116
  184. package/dist/styles/agent-activity-preview-overlay.css +0 -169
  185. package/dist/styles/agent-activity-preview.css +0 -209
  186. package/dist/styles/badge.css +0 -120
  187. package/dist/styles/shell.css +0 -122
  188. package/dist/styles/status-pill.css +0 -39
@@ -1,8 +1,7 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { $ as TerminalIcon, rt as XIcon } from "../../icons-B4mGvCvc.js";
2
+ import { Z as TerminalIcon, tt as XIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { IconButton } from "../foundations/IconButton.js";
4
- import { t as CopyButton } from "../../copy-button-4YvddK4e.js";
5
- import { Badge } from "../foundations/Badge.js";
4
+ import { t as CopyButton } from "../../copy-button-lys9N_aI.js";
6
5
  import { ScrollArea } from "../foundations/ScrollArea.js";
7
6
  import * as React from "react";
8
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -123,19 +122,12 @@ function TerminalTitle({ className, children, ref, ...props }) {
123
122
  children: [/* @__PURE__ */ jsx(TerminalIcon, { "aria-hidden": "true" }), children ?? "Terminal"]
124
123
  });
125
124
  }
126
- const STATUS_COLOR = {
127
- idle: "neutral",
128
- running: "primary",
129
- success: "success",
130
- error: "destructive"
131
- };
132
125
  function TerminalStatus({ className, status, ref, ...props }) {
133
- return /* @__PURE__ */ jsx(Badge, {
126
+ return /* @__PURE__ */ jsx("span", {
134
127
  ...props,
135
128
  ref,
136
- color: STATUS_COLOR[status],
137
- size: "sm",
138
129
  className: cx("terminal__status", className),
130
+ "data-status": status,
139
131
  children: status
140
132
  });
141
133
  }
@@ -30,7 +30,7 @@ interface TestResultsProps extends React.HTMLAttributes<HTMLDivElement> {
30
30
  * Built internally for CI/test output in agent and developer workflows. Use it
31
31
  * for structured test reports. Do not use it for generic status dashboards.
32
32
  *
33
- * Sigvelo changes: composes Collapsible, Badge, and Progress; maps status
33
+ * Sigvelo changes: composes Collapsible and Progress; maps status
34
34
  * color and spacing to Sigvelo CSS tokens; opens failed suites by default.
35
35
  *
36
36
  * Suite triggers inherit Collapsible keyboard behavior. Error stacks should be
@@ -1,23 +1,10 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
2
  import { Collapsible } from "../foundations/Collapsible.js";
3
- import { J as SpinnerIcon, d as CheckIcon, m as ChevronRightIcon, rt as XIcon } from "../../icons-B4mGvCvc.js";
4
- import { Badge } from "../foundations/Badge.js";
3
+ import { K as SpinnerIcon, d as CheckIcon, p as ChevronRightIcon, tt as XIcon } from "../../icons-CVFSeTJn.js";
5
4
  import { Progress } from "../foundations/Progress.js";
6
5
  import * as React from "react";
7
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
7
  //#region src/components/general-purpose/TestResults.tsx
9
- const STATUS_COLOR = {
10
- passed: "success",
11
- failed: "destructive",
12
- skipped: "warning",
13
- running: "primary"
14
- };
15
- const STATUS_LABEL = {
16
- passed: "PASS",
17
- failed: "FAIL",
18
- skipped: "SKIP",
19
- running: "RUN"
20
- };
21
8
  const TestResultsContext = React.createContext({});
22
9
  /**
23
10
  * Displays a test suite report with summary stats, progress bar, and
@@ -26,7 +13,7 @@ const TestResultsContext = React.createContext({});
26
13
  * Built internally for CI/test output in agent and developer workflows. Use it
27
14
  * for structured test reports. Do not use it for generic status dashboards.
28
15
  *
29
- * Sigvelo changes: composes Collapsible, Badge, and Progress; maps status
16
+ * Sigvelo changes: composes Collapsible and Progress; maps status
30
17
  * color and spacing to Sigvelo CSS tokens; opens failed suites by default.
31
18
  *
32
19
  * Suite triggers inherit Collapsible keyboard behavior. Error stacks should be
@@ -85,8 +72,9 @@ function TestResultsSummary({ className, children, ref, ...props }) {
85
72
  ref,
86
73
  className: cx("test-results__summary", className),
87
74
  ...props,
88
- children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Badge, {
89
- color: STATUS_COLOR[overall],
75
+ children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("strong", {
76
+ className: "test-results__outcome",
77
+ "data-status": overall,
90
78
  children: overall === "passed" ? "All tests passed" : `${summary.failed} failed`
91
79
  }), /* @__PURE__ */ jsxs("span", {
92
80
  className: "test-results__stats",
@@ -201,10 +189,9 @@ function TestSuiteName({ className, children, ref, ...props }) {
201
189
  "aria-hidden": "true",
202
190
  children: /* @__PURE__ */ jsx(ChevronRightIcon, {})
203
191
  }),
204
- /* @__PURE__ */ jsx(Badge, {
205
- color: STATUS_COLOR[status],
206
- size: "sm",
207
- children: STATUS_LABEL[status]
192
+ /* @__PURE__ */ jsx(TestStatus, {
193
+ status,
194
+ "aria-label": `${status} suite`
208
195
  }),
209
196
  /* @__PURE__ */ jsx("span", {
210
197
  className: "test-results__suite-name sigvelo-truncate",
@@ -1,4 +1,4 @@
1
- import { F as MonitorIcon, I as MoonIcon, Z as SunIcon } from "../../icons-B4mGvCvc.js";
1
+ import { N as MonitorIcon, P as MoonIcon, Y as SunIcon } from "../../icons-CVFSeTJn.js";
2
2
  import { Radio, RadioGroup } from "../foundations/RadioGroup.js";
3
3
  import { useTheme } from "../foundations/ThemeProvider.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -35,7 +35,7 @@ interface WebPreviewProps extends React.HTMLAttributes<HTMLDivElement> {
35
35
  * known URL with local navigation controls. Do not use it for trusted app
36
36
  * embedding that needs custom iframe permissions; add those explicitly here.
37
37
  *
38
- * Sigvelo changes: composes IconButton, Input, ScrollArea, and Badge; keeps a
38
+ * Sigvelo changes: composes IconButton, Input, and ScrollArea; keeps a
39
39
  * conservative sandbox; and maps navigation and console UI to Sigvelo CSS
40
40
  * tokens.
41
41
  *
@@ -1,8 +1,7 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
2
  import { Collapsible } from "../foundations/Collapsible.js";
3
- import { W as RefreshIcon, f as ChevronDownIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../../icons-B4mGvCvc.js";
3
+ import { H as RefreshIcon, f as ChevronDownIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../../icons-CVFSeTJn.js";
4
4
  import { IconButton } from "../foundations/IconButton.js";
5
- import { Badge } from "../foundations/Badge.js";
6
5
  import { ScrollArea } from "../foundations/ScrollArea.js";
7
6
  import { Input } from "../foundations/Input.js";
8
7
  import * as React from "react";
@@ -23,7 +22,7 @@ function useWebPreviewContext() {
23
22
  * known URL with local navigation controls. Do not use it for trusted app
24
23
  * embedding that needs custom iframe permissions; add those explicitly here.
25
24
  *
26
- * Sigvelo changes: composes IconButton, Input, ScrollArea, and Badge; keeps a
25
+ * Sigvelo changes: composes IconButton, Input, and ScrollArea; keeps a
27
26
  * conservative sandbox; and maps navigation and console UI to Sigvelo CSS
28
27
  * tokens.
29
28
  *
@@ -238,12 +237,6 @@ function WebPreviewBody({ className, loading, src, ref, interactive = true, ...p
238
237
  ...props
239
238
  }, iframeSrc), loading] });
240
239
  }
241
- const LEVEL_COLOR = {
242
- log: "neutral",
243
- info: "primary",
244
- warn: "warning",
245
- error: "destructive"
246
- };
247
240
  function WebPreviewConsole({ className, logs = [], children, ref, ...props }) {
248
241
  const { consoleOpen, setConsoleOpen } = useWebPreviewContext();
249
242
  return /* @__PURE__ */ jsxs(Collapsible.Root, {
@@ -272,9 +265,8 @@ function WebPreviewConsole({ className, logs = [], children, ref, ...props }) {
272
265
  }) : logs.map((log, index) => /* @__PURE__ */ jsxs("li", {
273
266
  className: cx("web-preview__console-item", `web-preview__console-item--${log.level}`),
274
267
  children: [
275
- /* @__PURE__ */ jsx(Badge, {
276
- color: LEVEL_COLOR[log.level],
277
- size: "sm",
268
+ /* @__PURE__ */ jsx("span", {
269
+ className: "web-preview__console-level",
278
270
  children: log.level
279
271
  }),
280
272
  /* @__PURE__ */ jsx("span", {
@@ -1,7 +1,7 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { k as LinkIcon } from "../../icons-B4mGvCvc.js";
2
+ import { D as LinkIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { Button } from "../foundations/Button.js";
4
- import { a as CodeBlockCopyButton, i as CodeBlockContent, n as CodeBlockActions, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock } from "../../CodeBlock-DO4Hdu1R.js";
4
+ import { a as CodeBlockCopyButton, i as CodeBlockContent, n as CodeBlockActions, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock } from "../../CodeBlock-BjELA-_s.js";
5
5
  import { Popover } from "../foundations/Popover.js";
6
6
  import { ToggleGroup } from "../foundations/ToggleGroup.js";
7
7
  import * as React from "react";
@@ -22,7 +22,7 @@ interface AgentToolDetailProps<State = unknown, MessageT extends UIMessage = UIM
22
22
  backLink?: React.ReactElement;
23
23
  /**
24
24
  * Route-owned run controls (the app's cancel callable, for example),
25
- * rendered in a `SubagentRunActions` bar pinned to the bottom edge.
25
+ * rendered in the top bar's trailing slot after the status mark.
26
26
  */
27
27
  actions?: React.ReactNode;
28
28
  }
@@ -1,11 +1,11 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { r as ArrowLeftIcon } from "../../icons-B4mGvCvc.js";
2
+ import { r as ArrowLeftIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { TransitionSurface } from "../foundations/TransitionSurface.js";
4
- import { SubagentRunActions, SubagentRunMilestone, SubagentRunMilestones, SubagentRunProgress } from "../agents-sdk/SubagentRunDetails.js";
5
- import { SubagentRunIndicator, getSubagentRunName } from "../agents-sdk/SubagentRunIndicator.js";
6
- import { t as ThinkChat } from "../../ThinkChat-BES_3Mb-.js";
7
4
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
5
+ import { SubagentRunMilestone, SubagentRunMilestones, SubagentRunProgress } from "../agents-sdk/SubagentRunDetails.js";
6
+ import { SubagentRunIndicator, getSubagentRunName } from "../agents-sdk/SubagentRunIndicator.js";
8
7
  import { NaniteMark } from "./NaniteScene.js";
8
+ import { t as ThinkChat } from "../../ThinkChat-BES_3Mb-.js";
9
9
  import * as React from "react";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
11
11
  import { useAgentChat } from "@cloudflare/think/react";
@@ -31,6 +31,7 @@ function AgentToolDetail({ actions, backLink, chat, className, messages, ref, ru
31
31
  ...props,
32
32
  children: [
33
33
  /* @__PURE__ */ jsxs(AppTopBar.Root, {
34
+ titleAlign: "start",
34
35
  "aria-label": `${name} controls`,
35
36
  children: [
36
37
  /* @__PURE__ */ jsxs(AppTopBar.Leading, { children: [backLink ? /* @__PURE__ */ jsx(AppTopBar.Link, {
@@ -43,7 +44,7 @@ function AgentToolDetail({ actions, backLink, chat, className, messages, ref, ru
43
44
  className: "agent-tool-detail__title",
44
45
  children: name
45
46
  }) }),
46
- /* @__PURE__ */ jsx(AppTopBar.Trailing, { children: /* @__PURE__ */ jsx(SubagentRunIndicator, { run }) })
47
+ /* @__PURE__ */ jsxs(AppTopBar.Trailing, { children: [/* @__PURE__ */ jsx(SubagentRunIndicator, { run }), actions] })
47
48
  ]
48
49
  }),
49
50
  progressLabel || run.milestones?.length || run.error || run.summary ? /* @__PURE__ */ jsxs("div", {
@@ -80,8 +81,7 @@ function AgentToolDetail({ actions, backLink, chat, className, messages, ref, ru
80
81
  showComposer: false,
81
82
  loading: true
82
83
  })
83
- }),
84
- actions ? /* @__PURE__ */ jsx(SubagentRunActions, { children: actions }) : null
84
+ })
85
85
  ]
86
86
  });
87
87
  }
@@ -16,8 +16,8 @@ const SCREEN_BORDER = "#3a5068";
16
16
  const SCREEN_LINE = "#2e3d50";
17
17
  const SCREEN_ICON_WARN = "#c87832";
18
18
  const GLASS_STROKE = "#8ba7b8";
19
- const BADGE_SUCCESS = "#0f7b6c";
20
- const BADGE_FAIL = "#dc2626";
19
+ const STATUS_MARK_SUCCESS = "#0f7b6c";
20
+ const STATUS_MARK_FAIL = "#dc2626";
21
21
  const TRIO_XS = [
22
22
  40,
23
23
  100,
@@ -108,8 +108,8 @@ function NaniteScene({ variant, mode = "trio", className, title }) {
108
108
  }
109
109
  const showBrowser = variant !== "idle" && variant !== "helmet";
110
110
  const showGlass = variant === "working";
111
- const showSuccessBadge = variant === "celebrating";
112
- const showFailBadge = variant === "concerned";
111
+ const showSuccessMark = variant === "celebrating";
112
+ const showFailMark = variant === "concerned";
113
113
  const soloViewBox = showBrowser ? "0 0 120 56" : "0 0 52 56";
114
114
  const soloWidth = showBrowser ? 120 : 52;
115
115
  const naniteX = 24;
@@ -265,15 +265,15 @@ function NaniteScene({ variant, mode = "trio", className, title }) {
265
265
  })]
266
266
  })
267
267
  }) : null,
268
- showSuccessBadge ? /* @__PURE__ */ jsx("g", {
268
+ showSuccessMark ? /* @__PURE__ */ jsx("g", {
269
269
  transform: `translate(96, ${screenCy - 10})`,
270
270
  children: /* @__PURE__ */ jsxs("g", {
271
- className: "nanite-scene__badge",
271
+ className: "nanite-scene__status-mark",
272
272
  children: [/* @__PURE__ */ jsx("circle", {
273
273
  cx: "0",
274
274
  cy: "0",
275
275
  r: "7",
276
- fill: BADGE_SUCCESS,
276
+ fill: STATUS_MARK_SUCCESS,
277
277
  stroke: "#ffffff",
278
278
  strokeWidth: "1.5"
279
279
  }), /* @__PURE__ */ jsx("path", {
@@ -286,16 +286,16 @@ function NaniteScene({ variant, mode = "trio", className, title }) {
286
286
  })]
287
287
  })
288
288
  }) : null,
289
- showFailBadge ? /* @__PURE__ */ jsx("g", {
289
+ showFailMark ? /* @__PURE__ */ jsx("g", {
290
290
  transform: `translate(96, ${screenCy - 10})`,
291
291
  children: /* @__PURE__ */ jsxs("g", {
292
- className: "nanite-scene__badge",
292
+ className: "nanite-scene__status-mark",
293
293
  children: [
294
294
  /* @__PURE__ */ jsx("circle", {
295
295
  cx: "0",
296
296
  cy: "0",
297
297
  r: "7",
298
- fill: BADGE_FAIL,
298
+ fill: STATUS_MARK_FAIL,
299
299
  stroke: "#ffffff",
300
300
  strokeWidth: "1.5"
301
301
  }),
@@ -320,7 +320,7 @@ function NaniteScene({ variant, mode = "trio", className, title }) {
320
320
  ]
321
321
  })
322
322
  }) : null,
323
- showSuccessBadge ? /* @__PURE__ */ jsxs("g", {
323
+ showSuccessMark ? /* @__PURE__ */ jsxs("g", {
324
324
  className: "nanite-scene__sparkles",
325
325
  children: [
326
326
  /* @__PURE__ */ jsx("circle", {
@@ -1,4 +1,4 @@
1
- import { d as CheckIcon, g as CopyIcon } from "./icons-B4mGvCvc.js";
1
+ import { d as CheckIcon, h as CopyIcon } from "./icons-CVFSeTJn.js";
2
2
  import { IconButton } from "./components/foundations/IconButton.js";
3
3
  import * as React from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -22,11 +22,6 @@ declare const ChevronDownIcon: ({
22
22
  strokeWidth,
23
23
  ...props
24
24
  }: IconProps) => import("react").JSX.Element;
25
- declare const ChevronLeftIcon: ({
26
- size,
27
- strokeWidth,
28
- ...props
29
- }: IconProps) => import("react").JSX.Element;
30
25
  declare const CheckIcon: ({
31
26
  size,
32
27
  strokeWidth,
@@ -203,6 +198,11 @@ declare const LinkIcon: ({
203
198
  strokeWidth,
204
199
  ...props
205
200
  }: IconProps) => import("react").JSX.Element;
201
+ declare const KeyboardIcon: ({
202
+ size,
203
+ strokeWidth,
204
+ ...props
205
+ }: IconProps) => import("react").JSX.Element;
206
206
  declare const QueueIcon: ({
207
207
  size,
208
208
  strokeWidth,
@@ -233,11 +233,6 @@ declare const CalendarIcon: ({
233
233
  strokeWidth,
234
234
  ...props
235
235
  }: IconProps) => import("react").JSX.Element;
236
- declare const HashIcon: ({
237
- size,
238
- strokeWidth,
239
- ...props
240
- }: IconProps) => import("react").JSX.Element;
241
236
  declare const WrenchIcon: ({
242
237
  size,
243
238
  strokeWidth,
@@ -248,11 +243,6 @@ declare const InfoIcon: ({
248
243
  strokeWidth,
249
244
  ...props
250
245
  }: IconProps) => import("react").JSX.Element;
251
- declare const ImageIcon: ({
252
- size,
253
- strokeWidth,
254
- ...props
255
- }: IconProps) => import("react").JSX.Element;
256
246
  declare const MonitorIcon: ({
257
247
  size,
258
248
  strokeWidth,
@@ -296,4 +286,4 @@ declare const MaximizeIcon: ({
296
286
  ...props
297
287
  }: IconProps) => import("react").JSX.Element;
298
288
  //#endregion
299
- export { SunIcon as $, InfoIcon as A, PaperclipIcon as B, EyeOffIcon as C, HashIcon as D, FolderOpenIcon as E, MicrophoneIcon as F, QueueIcon as G, PencilIcon as H, MinusIcon as I, SidebarIcon as J, RefreshIcon as K, MonitorIcon as L, MaximizeIcon as M, McpIcon as N, IconProps as O, MessageSquareIcon as P, StopIcon as Q, MoonIcon as R, EyeIcon as S, FolderIcon as T, PlayIcon as U, PauseIcon as V, PlusIcon as W, SpinnerIcon as X, SlackIcon as Y, SquareIcon as Z, CopyIcon as _, ArrowUpIcon as a, XIcon as at, DownloadIcon as b, BoxIcon as c, CalendarIcon as d, TargetIcon as et, CheckIcon as f, CodeIcon as g, ChevronRightIcon as h, ArrowRightIcon as i, WrenchIcon as it, LinkIcon as j, ImageIcon as k, BrainIcon as l, ChevronLeftIcon as m, ArrowDownIcon as n, TrashIcon as nt, ArrowUpRightIcon as o, ChevronDownIcon as p, SearchIcon as q, ArrowLeftIcon as r, WarningIcon as rt, BookmarkIcon as s, ArchiveIcon as t, TerminalIcon as tt, BrandIconProps as u, DiscordIcon as v, FileIcon as w, EllipsisIcon as x, DotIcon as y, MoveToFrontIcon as z };
289
+ export { TerminalIcon as $, MaximizeIcon as A, PencilIcon as B, FileIcon as C, InfoIcon as D, IconProps as E, MonitorIcon as F, SearchIcon as G, PlusIcon as H, MoonIcon as I, SpinnerIcon as J, SidebarIcon as K, MoveToFrontIcon as L, MessageSquareIcon as M, MicrophoneIcon as N, KeyboardIcon as O, MinusIcon as P, TargetIcon as Q, PaperclipIcon as R, EyeOffIcon as S, FolderOpenIcon as T, QueueIcon as U, PlayIcon as V, RefreshIcon as W, StopIcon as X, SquareIcon as Y, SunIcon as Z, DiscordIcon as _, ArrowUpIcon as a, EllipsisIcon as b, BoxIcon as c, CalendarIcon as d, TrashIcon as et, CheckIcon as f, CopyIcon as g, CodeIcon as h, ArrowRightIcon as i, McpIcon as j, LinkIcon as k, BrainIcon as l, ChevronRightIcon as m, ArrowDownIcon as n, WrenchIcon as nt, ArrowUpRightIcon as o, ChevronDownIcon as p, SlackIcon as q, ArrowLeftIcon as r, XIcon as rt, BookmarkIcon as s, ArchiveIcon as t, WarningIcon as tt, BrandIconProps as u, DotIcon as v, FolderIcon as w, EyeIcon as x, DownloadIcon as y, PauseIcon as z };
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "./class-names-BiMDVpUo.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { Archive, ArrowDown, ArrowLeft, ArrowRight, ArrowUp, ArrowUpRight, Bookmark, Box, Brain, CalendarDays, Check, ChevronDown, ChevronLeft, ChevronRight, CircleStop, CodeXml, Copy, CornerDownRight, Dot, Download, Ellipsis, Eye, EyeOff, File, Folder, FolderOpen, Hash, Image, Info, Link2, ListRestart, LoaderCircle, Maximize2, MessageSquare, Mic, Minus, Monitor, Moon, PanelLeft, Paperclip, Pause, Pencil, Play, Plus, RefreshCw, Search, Square, Sun, Target, Terminal, Trash2, TriangleAlert, Wrench, X } from "lucide-react";
3
+ import { Archive, ArrowDown, ArrowLeft, ArrowRight, ArrowUp, ArrowUpRight, Bookmark, Box, Brain, CalendarDays, Check, ChevronDown, ChevronRight, CircleStop, CodeXml, Copy, CornerDownRight, Dot, Download, Ellipsis, Eye, EyeOff, File, Folder, FolderOpen, Info, Keyboard, Link2, ListRestart, LoaderCircle, Maximize2, MessageSquare, Mic, Minus, Monitor, Moon, PanelLeft, Paperclip, Pause, Pencil, Play, Plus, RefreshCw, Search, Square, Sun, Target, Terminal, Trash2, TriangleAlert, Wrench, X } from "lucide-react";
4
4
  import { FaSlack } from "react-icons/fa6";
5
5
  import { SiDiscord, SiModelcontextprotocol } from "react-icons/si";
6
6
  //#region src/components/_internal/icons.tsx
@@ -27,7 +27,6 @@ function brandIcon(Component) {
27
27
  }
28
28
  const ChevronRightIcon = icon(ChevronRight);
29
29
  const ChevronDownIcon = icon(ChevronDown);
30
- const ChevronLeftIcon = icon(ChevronLeft);
31
30
  const CheckIcon = icon(Check);
32
31
  const CodeIcon = icon(CodeXml);
33
32
  const XIcon = icon(X);
@@ -72,16 +71,15 @@ const SearchIcon = icon(Search);
72
71
  const SidebarIcon = icon(PanelLeft);
73
72
  const TerminalIcon = icon(Terminal);
74
73
  const LinkIcon = icon(Link2);
74
+ const KeyboardIcon = icon(Keyboard);
75
75
  const QueueIcon = icon(ListRestart);
76
76
  const TrashIcon = icon(Trash2);
77
77
  const WarningIcon = icon(TriangleAlert);
78
78
  const BoxIcon = icon(Box);
79
79
  const BrainIcon = icon(Brain);
80
80
  const CalendarIcon = icon(CalendarDays);
81
- const HashIcon = icon(Hash);
82
81
  const WrenchIcon = icon(Wrench);
83
82
  const InfoIcon = icon(Info);
84
- const ImageIcon = icon(Image);
85
83
  const MonitorIcon = icon(Monitor);
86
84
  const MessageSquareIcon = icon(MessageSquare);
87
85
  const McpIcon = brandIcon(SiModelcontextprotocol);
@@ -92,4 +90,4 @@ const SunIcon = icon(Sun);
92
90
  const TargetIcon = icon(Target);
93
91
  const MaximizeIcon = icon(Maximize2);
94
92
  //#endregion
95
- export { TerminalIcon as $, MaximizeIcon as A, PencilIcon as B, FileIcon as C, ImageIcon as D, HashIcon as E, MonitorIcon as F, SearchIcon as G, PlusIcon as H, MoonIcon as I, SpinnerIcon as J, SidebarIcon as K, MoveToFrontIcon as L, MessageSquareIcon as M, MicrophoneIcon as N, InfoIcon as O, MinusIcon as P, TargetIcon as Q, PaperclipIcon as R, EyeOffIcon as S, FolderOpenIcon as T, QueueIcon as U, PlayIcon as V, RefreshIcon as W, StopIcon as X, SquareIcon as Y, SunIcon as Z, DiscordIcon as _, ArrowUpIcon as a, EllipsisIcon as b, BoxIcon as c, CheckIcon as d, TrashIcon as et, ChevronDownIcon as f, CopyIcon as g, CodeIcon as h, ArrowRightIcon as i, McpIcon as j, LinkIcon as k, BrainIcon as l, ChevronRightIcon as m, ArrowDownIcon as n, WrenchIcon as nt, ArrowUpRightIcon as o, ChevronLeftIcon as p, SlackIcon as q, ArrowLeftIcon as r, XIcon as rt, BookmarkIcon as s, ArchiveIcon as t, WarningIcon as tt, CalendarIcon as u, DotIcon as v, FolderIcon as w, EyeIcon as x, DownloadIcon as y, PauseIcon as z };
93
+ export { WarningIcon as $, MessageSquareIcon as A, PlusIcon as B, FolderIcon as C, LinkIcon as D, KeyboardIcon as E, MoveToFrontIcon as F, SlackIcon as G, RefreshIcon as H, PaperclipIcon as I, StopIcon as J, SpinnerIcon as K, PauseIcon as L, MinusIcon as M, MonitorIcon as N, MaximizeIcon as O, MoonIcon as P, TrashIcon as Q, PencilIcon as R, FileIcon as S, InfoIcon as T, SearchIcon as U, QueueIcon as V, SidebarIcon as W, TargetIcon as X, SunIcon as Y, TerminalIcon as Z, DotIcon as _, ArrowUpIcon as a, EyeIcon as b, BoxIcon as c, CheckIcon as d, WrenchIcon as et, ChevronDownIcon as f, DiscordIcon as g, CopyIcon as h, ArrowRightIcon as i, MicrophoneIcon as j, McpIcon as k, BrainIcon as l, CodeIcon as m, ArrowDownIcon as n, ArrowUpRightIcon as o, ChevronRightIcon as p, SquareIcon as q, ArrowLeftIcon as r, BookmarkIcon as s, ArchiveIcon as t, XIcon as tt, CalendarIcon as u, DownloadIcon as v, FolderOpenIcon as w, EyeOffIcon as x, EllipsisIcon as y, PlayIcon as z };
@@ -12,8 +12,8 @@
12
12
  box-shadow: var(--sigvelo-elevation-raised);
13
13
  }
14
14
 
15
- .agent-attention[data-tone="warning"] {
16
- border-color: var(--sigvelo-color-warning-border);
15
+ .agent-attention[data-tone="attention"] {
16
+ border-color: var(--sigvelo-color-danger-border);
17
17
  }
18
18
 
19
19
  .agent-attention__header,
@@ -45,9 +45,9 @@
45
45
  background: var(--sigvelo-color-neutral-bg-subtle);
46
46
  }
47
47
 
48
- .agent-attention[data-tone="warning"] .agent-attention__icon {
49
- color: var(--sigvelo-color-warning-text);
50
- background: var(--sigvelo-color-warning-bg-subtle);
48
+ .agent-attention[data-tone="attention"] .agent-attention__icon {
49
+ color: var(--sigvelo-color-danger-text);
50
+ background: var(--sigvelo-color-danger-bg-subtle);
51
51
  }
52
52
 
53
53
  .agent-attention__icon > :is(svg, img) {
@@ -1,14 +1,20 @@
1
1
  .agent-chat {
2
- --agent-chat-content-max-inline-size: 64rem;
3
- --agent-chat-composer-scrim-fade: 2.5rem;
4
-
2
+ /* Hooks, not constants: hosts set --agent-chat-content-max-inline-size or
3
+ --agent-chat-composer-scrim-fade on any ancestor. Declaring them here
4
+ would beat every inherited value, so the defaults live in the fallbacks
5
+ at each use site. */
5
6
  container: agent-chat / inline-size;
6
7
  position: relative;
7
8
  inline-size: 100%;
8
9
  block-size: 100%;
9
10
  min-inline-size: 0;
10
11
  min-block-size: 0;
11
- background-color: var(--sigvelo-color-surface);
12
+ /* The colour the lane rests on. Hosts that seat the conversation on the
13
+ underlay rather than a plane of its own inherit --agent-chat-surface down
14
+ to here, so the composer's scrim dissolves into what is actually behind
15
+ it. Declared as a fallback rather than on .agent-chat itself: a local
16
+ custom property would beat the ancestor's value. */
17
+ background-color: var(--agent-chat-surface, var(--sigvelo-color-surface));
12
18
  color: var(--sigvelo-color-text);
13
19
  font-family: inherit;
14
20
  }
@@ -34,12 +40,15 @@
34
40
  block padding), so the inline gutters land OUTSIDE this size — subtract
35
41
  them from the full-width term or the padding box overflows the viewport
36
42
  and end-aligned user rows hang past the right edge. */
37
- inline-size: min(100% - 2 * var(--sigvelo-spacing-4), var(--agent-chat-content-max-inline-size));
43
+ inline-size: min(
44
+ 100% - 2 * var(--sigvelo-spacing-4),
45
+ var(--agent-chat-content-max-inline-size, 64rem)
46
+ );
38
47
  margin-inline: auto;
39
48
  /* Clearance = composer + its scrim band, so a transcript resting at the
40
49
  bottom never sits inside the fade. */
41
50
  padding-block: var(--message-scroller-virtual-block-start)
42
- calc(var(--agent-chat-composer-size, 5rem) + var(--agent-chat-composer-scrim-fade));
51
+ calc(var(--agent-chat-composer-size, 5rem) + var(--agent-chat-composer-scrim-fade, 2.5rem));
43
52
  padding-inline: var(--sigvelo-spacing-4);
44
53
  }
45
54
 
@@ -89,7 +98,7 @@
89
98
 
90
99
  display: grid;
91
100
  grid-template-rows: minmax(0, 1fr) auto minmax(0, 1fr);
92
- inline-size: min(100%, var(--agent-chat-content-max-inline-size));
101
+ inline-size: min(100%, var(--agent-chat-content-max-inline-size, 64rem));
93
102
  min-block-size: 100%;
94
103
  margin-inline: auto;
95
104
  padding-block: max(var(--agent-chat-start-screen-padding-block), env(safe-area-inset-top, 0px))
@@ -360,24 +369,25 @@
360
369
  position: absolute;
361
370
  z-index: -1;
362
371
  inset: 0;
363
- inset-block-start: calc(-1 * var(--agent-chat-composer-scrim-fade));
372
+ inset-block-start: calc(-1 * var(--agent-chat-composer-scrim-fade, 2.5rem));
364
373
  content: "";
365
374
  pointer-events: none;
366
375
  background: linear-gradient(
367
376
  to bottom,
368
377
  transparent,
369
- var(--sigvelo-color-surface) var(--agent-chat-composer-scrim-fade)
378
+ var(--agent-chat-surface, var(--sigvelo-color-surface))
379
+ var(--agent-chat-composer-scrim-fade, 2.5rem)
370
380
  );
371
381
  }
372
382
 
373
383
  .agent-chat__composer > .prompt-input {
374
384
  z-index: 1;
375
- inline-size: min(100%, var(--agent-chat-content-max-inline-size));
385
+ inline-size: min(100%, var(--agent-chat-content-max-inline-size, 64rem));
376
386
  margin-inline: auto;
377
387
  padding-block: var(--sigvelo-spacing-3);
378
388
  }
379
389
 
380
- /* Transient status pill between transcript and composer (recovery, errors). */
390
+ /* Transient status between transcript and composer (recovery, errors). */
381
391
  .agent-chat__notice {
382
392
  display: flex;
383
393
  align-items: center;
@@ -397,7 +407,7 @@
397
407
  flex-direction: column;
398
408
  align-items: stretch;
399
409
  inline-size: calc(
400
- min(100%, var(--agent-chat-content-max-inline-size)) - var(--sigvelo-spacing-10)
410
+ min(100%, var(--agent-chat-content-max-inline-size, 64rem)) - var(--sigvelo-spacing-10)
401
411
  );
402
412
  margin-inline: auto;
403
413
  }
@@ -528,6 +538,31 @@
528
538
  spare pixels under it. Only the height query below drops the centring, and
529
539
  only where there is genuinely no room for it. */
530
540
  @container agent-chat (width <= 36rem) {
541
+ .agent-chat__transcript-content {
542
+ /* A notch pushes the first row down only as far as it must: the desktop
543
+ inset already clears shallow insets, so only deeper ones add height. */
544
+ --message-scroller-virtual-block-start: max(
545
+ var(--sigvelo-spacing-8),
546
+ calc(var(--sigvelo-spacing-5) + env(safe-area-inset-top, 0px))
547
+ );
548
+
549
+ inline-size: min(
550
+ 100% - 2 * var(--sigvelo-spacing-3),
551
+ var(--agent-chat-content-max-inline-size, 64rem)
552
+ );
553
+ padding-inline: var(--sigvelo-spacing-3);
554
+ }
555
+
556
+ .agent-chat .message[data-from="assistant"] .message__content {
557
+ inline-size: 100%;
558
+ }
559
+
560
+ .agent-chat__composer {
561
+ padding-block-end: max(var(--sigvelo-spacing-4), env(safe-area-inset-bottom, 0px));
562
+ padding-inline: max(var(--sigvelo-spacing-3), env(safe-area-inset-left, 0px))
563
+ max(var(--sigvelo-spacing-3), env(safe-area-inset-right, 0px));
564
+ }
565
+
531
566
  .agent-chat-start-screen__content {
532
567
  --agent-chat-start-screen-padding-block: var(--sigvelo-spacing-5);
533
568
  }
@@ -1,6 +1,6 @@
1
1
  .agent-tool-detail {
2
2
  display: grid;
3
- grid-template-rows: auto auto minmax(0, 1fr) auto;
3
+ grid-template-rows: auto auto minmax(0, 1fr);
4
4
  min-inline-size: 0;
5
5
  block-size: 100%;
6
6
  background-color: var(--sigvelo-color-surface);
@@ -47,18 +47,8 @@
47
47
  block-size: 100%;
48
48
  }
49
49
 
50
- .agent-tool-detail > .subagent-run__actions {
51
- grid-row: 4;
52
- display: flex;
53
- justify-content: center;
54
- padding: var(--sigvelo-spacing-2) var(--sigvelo-spacing-3);
55
- border-block-start: var(--sigvelo-border-width) var(--sigvelo-border-style)
56
- var(--sigvelo-color-neutral-border-subtle);
57
- }
58
-
59
50
  @media (forced-colors: active) {
60
- .agent-tool-detail__run-state,
61
- .agent-tool-detail > .subagent-run__actions {
51
+ .agent-tool-detail__run-state {
62
52
  border-color: CanvasText;
63
53
  }
64
54
  }
@@ -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