@mcp-b/react-components 0.20.5 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/dist/{AgentActivity-D2SHSGFX.d.ts → AgentActivity-D3OvrC02.d.ts} +14 -1
  2. package/dist/{AgentChat-C-ZyXbJz.d.ts → AgentChat-Bm1qYbOo.d.ts} +24 -1
  3. package/dist/AgentChatStartScreen-DDZ25aax.d.ts +60 -0
  4. package/dist/{Button-yRInko9u.d.ts → Button-SBIz6Lqi.d.ts} +2 -1
  5. package/dist/{CodeBlock-ygtuzqJd.js → CodeBlock-Cp67Njo3.js} +1 -1
  6. package/dist/{CodeBlock-Bbls1CnA.d.ts → CodeBlock-yMpGqScn.d.ts} +1 -1
  7. package/dist/Dialog-BD8NBKaE.d.ts +122 -0
  8. package/dist/{FileTree-CdgfccsM.js → FileTree-DW60q1w7.js} +1 -1
  9. package/dist/IconButton-CFKhu6OR.d.ts +35 -0
  10. package/dist/{Message-DzuteocT.js → Message-_-bEYLAO.js} +9 -16
  11. package/dist/{ModelSelector-pecWyOFI.js → ModelSelector-Brvj9Cab.js} +15 -8
  12. package/dist/{PromptInput-Cq-8RoXD.d.ts → PromptInput-BjoPWaaG.d.ts} +15 -2
  13. package/dist/{ThinkChatActivity-CdbL0aoA.d.ts → ThinkChatActivity-2BobmuvR.d.ts} +8 -7
  14. package/dist/{ThinkChatActivitySummary-D1xOrNrq.d.ts → ThinkChatActivitySummary-kr5fE0wg.d.ts} +14 -5
  15. package/dist/{ToggleGroup-DNd6cDJZ.d.ts → ToggleGroup-BW1jrhAF.d.ts} +10 -0
  16. package/dist/{Workspace-CWtust-2.d.ts → Workspace-CIycQ4xE.d.ts} +1 -1
  17. package/dist/{WorkspaceExplorer-DGigwsgH.d.ts → WorkspaceExplorer-BCipn7Vd.d.ts} +1 -1
  18. package/dist/{WorkspaceFile-D8Un_xge.d.ts → WorkspaceFile-DMtRMwVv.d.ts} +1 -1
  19. package/dist/{WorkspaceFileView-Bxx4wEzJ.js → WorkspaceFileView-rUEN2iox.js} +4 -4
  20. package/dist/assets/think-browser-host.png +0 -0
  21. package/dist/components/ActionGuide.d.ts +85 -0
  22. package/dist/components/ActionGuide.js +94 -0
  23. package/dist/components/Activity.d.ts +33 -17
  24. package/dist/components/Activity.js +40 -28
  25. package/dist/components/AgentActivity.d.ts +1 -1
  26. package/dist/components/AgentActivity.js +3 -11
  27. package/dist/components/AgentActivityPreview.d.ts +1 -1
  28. package/dist/components/AgentActivityPreview.js +17 -16
  29. package/dist/components/AgentAttention.d.ts +1 -1
  30. package/dist/components/AgentChat.d.ts +1 -1
  31. package/dist/components/AgentChat.js +169 -136
  32. package/dist/components/AgentChatStartScreen.d.ts +2 -0
  33. package/dist/components/AgentChatStartScreen.js +88 -0
  34. package/dist/components/AgentConnection.d.ts +1 -1
  35. package/dist/components/AgentConnection.js +2 -2
  36. package/dist/components/AgentMessageParts.js +1 -1
  37. package/dist/components/AgentToolDetail.js +1 -1
  38. package/dist/components/AlertDialog.d.ts +2 -1
  39. package/dist/components/AlertDialog.js +8 -2
  40. package/dist/components/AppIcon.d.ts +58 -0
  41. package/dist/components/AppIcon.js +51 -0
  42. package/dist/components/AppTopBar.js +9 -10
  43. package/dist/components/Approval.js +3 -5
  44. package/dist/components/Artifact.d.ts +3 -7
  45. package/dist/components/Artifact.js +12 -18
  46. package/dist/components/Avatar.d.ts +7 -2
  47. package/dist/components/Avatar.js +4 -2
  48. package/dist/components/BrowserLiveView.js +6 -8
  49. package/dist/components/BrowserReplay.js +9 -9
  50. package/dist/components/BrowserRunPanel.js +2 -2
  51. package/dist/components/Button.d.ts +1 -1
  52. package/dist/components/ChainOfThought.d.ts +1 -1
  53. package/dist/components/ChainOfThought.js +1 -1
  54. package/dist/components/ChatGptSignInScreen.js +2 -2
  55. package/dist/components/Checkbox.js +1 -1
  56. package/dist/components/Checkpoint.js +1 -1
  57. package/dist/components/CodeBlock.d.ts +1 -1
  58. package/dist/components/CodeBlock.js +1 -1
  59. package/dist/components/CodexModelSelector.js +1 -1
  60. package/dist/components/Commit.d.ts +1 -1
  61. package/dist/components/Commit.js +3 -3
  62. package/dist/components/ContextMenu.js +1 -1
  63. package/dist/components/Conversation.d.ts +3 -24
  64. package/dist/components/Conversation.js +6 -34
  65. package/dist/components/Dialog.d.ts +1 -117
  66. package/dist/components/Dialog.js +9 -1
  67. package/dist/components/EmptyState.d.ts +46 -0
  68. package/dist/components/EmptyState.js +50 -0
  69. package/dist/components/EnvironmentVariables.d.ts +1 -1
  70. package/dist/components/EnvironmentVariables.js +2 -2
  71. package/dist/components/FileTree.js +1 -1
  72. package/dist/components/IconButton.d.ts +1 -31
  73. package/dist/components/IconButton.js +2 -1
  74. package/dist/components/Kbd.d.ts +32 -0
  75. package/dist/components/Kbd.js +34 -0
  76. package/dist/components/McpConnectionRequest.d.ts +1 -1
  77. package/dist/components/McpConnectionRequest.js +1 -1
  78. package/dist/components/McpPluginCatalog.d.ts +86 -0
  79. package/dist/components/McpPluginCatalog.js +364 -0
  80. package/dist/components/McpServerPicker.d.ts +2 -2
  81. package/dist/components/McpServerPicker.js +7 -13
  82. package/dist/components/MediaPreviewCard.js +1 -1
  83. package/dist/components/Menubar.js +1 -1
  84. package/dist/components/Message.d.ts +4 -8
  85. package/dist/components/Message.js +1 -1
  86. package/dist/components/MessageScroller.d.ts +1 -1
  87. package/dist/components/MessageScroller.js +1 -1
  88. package/dist/components/ModelSelector.d.ts +12 -6
  89. package/dist/components/ModelSelector.js +2 -2
  90. package/dist/components/Plan.js +1 -1
  91. package/dist/components/PricingBillingToggle.js +1 -0
  92. package/dist/components/PricingPlanCard.d.ts +1 -1
  93. package/dist/components/PricingPlanCard.js +10 -12
  94. package/dist/components/PromptInput.d.ts +2 -2
  95. package/dist/components/PromptInput.js +30 -12
  96. package/dist/components/Queue.d.ts +1 -1
  97. package/dist/components/Queue.js +2 -2
  98. package/dist/components/Reasoning.js +5 -10
  99. package/dist/components/ResponsiveSidebarShell.js +2 -1
  100. package/dist/components/SearchField.js +1 -1
  101. package/dist/components/Select.js +1 -1
  102. package/dist/components/Sources.js +1 -1
  103. package/dist/components/StatusPill.d.ts +43 -0
  104. package/dist/components/StatusPill.js +35 -0
  105. package/dist/components/Stepper.js +1 -1
  106. package/dist/components/SubagentRunIndicator.js +1 -1
  107. package/dist/components/SubagentRunSelector.js +1 -1
  108. package/dist/components/Task.js +1 -1
  109. package/dist/components/Terminal.d.ts +3 -3
  110. package/dist/components/Terminal.js +7 -8
  111. package/dist/components/TestResults.js +1 -1
  112. package/dist/components/ThemeModeControl.js +1 -1
  113. package/dist/components/ThinkChat.d.ts +12 -6
  114. package/dist/components/ThinkChatActivity.d.ts +2 -2
  115. package/dist/components/ThinkChatActivity.js +28 -16
  116. package/dist/components/ThinkChatActivitySummary.d.ts +2 -2
  117. package/dist/components/ThinkChatActivitySummary.js +67 -64
  118. package/dist/components/ThinkChatToolPanels.js +1 -1
  119. package/dist/components/ThinkExecutionDetail.js +5 -5
  120. package/dist/components/ThinkExecutionStatus.js +1 -1
  121. package/dist/components/ThinkExecutionWorkbench.js +19 -25
  122. package/dist/components/ThinkFullApp.d.ts +8 -4
  123. package/dist/components/ThinkFullApp.js +17 -2
  124. package/dist/components/ThinkFullAppViewSwitch.d.ts +1 -1
  125. package/dist/components/ThinkRoutineBrowser.js +3 -2
  126. package/dist/components/ThinkRoutineForm.js +3 -3
  127. package/dist/components/ThinkRoutineLibrary.js +2 -2
  128. package/dist/components/ThinkRoutineRuns.js +4 -3
  129. package/dist/components/ThinkThreadPicker.js +5 -4
  130. package/dist/components/Toast.d.ts +12 -2
  131. package/dist/components/Toast.js +14 -4
  132. package/dist/components/ToggleGroup.d.ts +1 -1
  133. package/dist/components/ToggleGroup.js +54 -7
  134. package/dist/components/ToolInvocation.js +1 -1
  135. package/dist/components/Tooltip.d.ts +6 -4
  136. package/dist/components/Tooltip.js +11 -4
  137. package/dist/components/WebPreview.d.ts +13 -6
  138. package/dist/components/WebPreview.js +55 -50
  139. package/dist/components/Workspace.d.ts +1 -1
  140. package/dist/components/WorkspaceBrowser.d.ts +1 -1
  141. package/dist/components/WorkspaceBrowser.js +1 -1
  142. package/dist/components/WorkspaceExplorer.d.ts +3 -3
  143. package/dist/components/WorkspaceExplorer.js +1 -1
  144. package/dist/components/WorkspaceFile.d.ts +1 -1
  145. package/dist/components/WorkspaceFileView.d.ts +1 -1
  146. package/dist/components/WorkspaceFileView.js +1 -1
  147. package/dist/components/WorkspaceHeader.js +1 -1
  148. package/dist/components/icons.d.ts +2 -2
  149. package/dist/components/icons.js +2 -2
  150. package/dist/{copy-button-BrvQ7z4W.d.ts → copy-button-EBv_B9F6.d.ts} +2 -2
  151. package/dist/{copy-button-vo1paUSi.js → copy-button-TWq8nZhc.js} +8 -8
  152. package/dist/{icons-DyOM0EJs.js → icons-ua6f_GH3.js} +3 -2
  153. package/dist/{icons-DkRtZmvT.d.ts → icons-wP1yFUXF.d.ts} +6 -1
  154. package/dist/mcp-server-catalog-DycejaJ5.d.ts +1077 -0
  155. package/dist/styles/action-guide.css +128 -0
  156. package/dist/styles/activity-header.css +41 -10
  157. package/dist/styles/activity.css +26 -4
  158. package/dist/styles/agent-activity-preview-overlay.css +51 -12
  159. package/dist/styles/agent-activity-preview.css +23 -53
  160. package/dist/styles/agent-attention.css +2 -2
  161. package/dist/styles/agent-chat.css +291 -57
  162. package/dist/styles/agent-connection.css +8 -8
  163. package/dist/styles/alert-dialog.css +5 -20
  164. package/dist/styles/app-icon.css +122 -0
  165. package/dist/styles/app-top-bar.css +4 -5
  166. package/dist/styles/approval.css +1 -7
  167. package/dist/styles/artifact.css +4 -4
  168. package/dist/styles/avatar.css +13 -0
  169. package/dist/styles/base-ui-motion.css +1 -1
  170. package/dist/styles/base.css +94 -3
  171. package/dist/styles/browser-control-overlay.css +16 -7
  172. package/dist/styles/browser-live-view.css +5 -38
  173. package/dist/styles/browser-replay.css +2 -6
  174. package/dist/styles/browser-run-panel.css +4 -18
  175. package/dist/styles/button.css +17 -1
  176. package/dist/styles/card.css +4 -4
  177. package/dist/styles/chain-of-thought.css +0 -1
  178. package/dist/styles/chatgpt-sign-in-screen.css +7 -5
  179. package/dist/styles/checkbox-group.css +3 -3
  180. package/dist/styles/code-block.css +4 -4
  181. package/dist/styles/context-menu.css +1 -1
  182. package/dist/styles/conversation.css +7 -42
  183. package/dist/styles/description-list.css +4 -4
  184. package/dist/styles/dialog.css +22 -7
  185. package/dist/styles/empty-state.css +48 -0
  186. package/dist/styles/environment-variables.css +4 -4
  187. package/dist/styles/field.css +2 -2
  188. package/dist/styles/index.css +6 -0
  189. package/dist/styles/inline-citation.css +1 -1
  190. package/dist/styles/kbd.css +40 -0
  191. package/dist/styles/mcp-plugin-catalog.css +296 -0
  192. package/dist/styles/mcp-server-picker.css +0 -26
  193. package/dist/styles/media-preview-card.css +5 -3
  194. package/dist/styles/message-scroller.css +4 -4
  195. package/dist/styles/message.css +11 -6
  196. package/dist/styles/model-selector.css +5 -8
  197. package/dist/styles/popover.css +1 -1
  198. package/dist/styles/preview-card.css +1 -1
  199. package/dist/styles/prompt-input.css +44 -54
  200. package/dist/styles/queue.css +2 -2
  201. package/dist/styles/recipes.css +83 -9
  202. package/dist/styles/resizable-side-panel.css +1 -1
  203. package/dist/styles/responsive-sidebar-shell.css +19 -14
  204. package/dist/styles/scrollbars.css +32 -3
  205. package/dist/styles/search-field.css +9 -0
  206. package/dist/styles/sources.css +1 -1
  207. package/dist/styles/status-pill.css +39 -0
  208. package/dist/styles/stepper.css +2 -2
  209. package/dist/styles/streamdown.css +13 -12
  210. package/dist/styles/subagent-run.css +3 -3
  211. package/dist/styles/switch.css +1 -3
  212. package/dist/styles/tabs.css +1 -1
  213. package/dist/styles/task.css +1 -1
  214. package/dist/styles/terminal.css +2 -2
  215. package/dist/styles/test-results.css +1 -2
  216. package/dist/styles/textarea.css +1 -1
  217. package/dist/styles/theme-mode-control.css +1 -1
  218. package/dist/styles/think-execution-status.css +4 -23
  219. package/dist/styles/think-execution-workbench.css +2 -3
  220. package/dist/styles/think-full-app.css +24 -4
  221. package/dist/styles/think-routine-library.css +14 -16
  222. package/dist/styles/think-thread-picker.css +9 -26
  223. package/dist/styles/toast.css +2 -23
  224. package/dist/styles/toggle-group.css +76 -3
  225. package/dist/styles/tooltip.css +1 -2
  226. package/dist/styles/utilities.css +73 -0
  227. package/dist/styles/web-preview.css +5 -0
  228. package/dist/styles/workspace-explorer.css +4 -6
  229. package/dist/utils/favicon.d.ts +10 -0
  230. package/dist/utils/favicon.js +18 -0
  231. package/dist/utils/mcp-server-catalog.d.ts +2 -1078
  232. package/dist/utils/mcp-server-catalog.js +3 -11
  233. package/dist/utils/structured-code.d.ts +1 -1
  234. package/package.json +2 -2
@@ -0,0 +1,128 @@
1
+ .action-guide {
2
+ container: action-guide / inline-size;
3
+ display: grid;
4
+ gap: var(--sigvelo-spacing-8);
5
+ inline-size: 100%;
6
+ padding: var(--sigvelo-spacing-2) var(--sigvelo-spacing-2) var(--sigvelo-spacing-8);
7
+ color: var(--sigvelo-color-text);
8
+ }
9
+
10
+ .action-guide__header {
11
+ display: grid;
12
+ gap: var(--sigvelo-spacing-4);
13
+ }
14
+
15
+ .action-guide__title,
16
+ .action-guide__description,
17
+ .action-guide__section-title {
18
+ margin: 0;
19
+ font-size: var(--sigvelo-text-base);
20
+ }
21
+
22
+ .action-guide__title,
23
+ .action-guide__section-title {
24
+ font-weight: var(--sigvelo-font-weight-semibold);
25
+ line-height: var(--sigvelo-text-lg-leading);
26
+ }
27
+
28
+ .action-guide__description {
29
+ max-inline-size: var(--sigvelo-measure-prose);
30
+ line-height: var(--sigvelo-text-lg-leading);
31
+ }
32
+
33
+ .action-guide__section {
34
+ display: grid;
35
+ gap: var(--sigvelo-spacing-4);
36
+ }
37
+
38
+ .action-guide__list {
39
+ display: grid;
40
+ grid-template-columns: minmax(0, 1fr);
41
+ gap: var(--sigvelo-spacing-3);
42
+ margin: 0;
43
+ padding: 0;
44
+ list-style: none;
45
+ }
46
+
47
+ .action-guide__list[data-layout="compact"] {
48
+ display: flex;
49
+ flex-wrap: wrap;
50
+ }
51
+
52
+ .action-guide__list[data-layout="list"] {
53
+ gap: 0;
54
+ }
55
+
56
+ .action-guide__item,
57
+ .action-guide__action {
58
+ min-inline-size: 0;
59
+ }
60
+
61
+ .action-guide__action {
62
+ inline-size: 100%;
63
+ justify-content: flex-start;
64
+ color: var(--sigvelo-color-text);
65
+ font-size: var(--sigvelo-text-base);
66
+ font-weight: var(--sigvelo-font-weight-normal);
67
+ letter-spacing: var(--sigvelo-tracking-tight);
68
+ line-height: var(--sigvelo-text-base-leading);
69
+ white-space: normal;
70
+ text-align: start;
71
+ }
72
+
73
+ .action-guide__action-icon {
74
+ display: inline-flex;
75
+ flex: none;
76
+ color: var(--sigvelo-color-primary-text);
77
+ }
78
+
79
+ .action-guide__action-icon svg {
80
+ inline-size: var(--sigvelo-control-icon-size-md);
81
+ block-size: var(--sigvelo-control-icon-size-md);
82
+ }
83
+
84
+ .action-guide__action-label {
85
+ min-inline-size: 0;
86
+ overflow-wrap: anywhere;
87
+ }
88
+
89
+ .action-guide__list[data-layout="compact"] .action-guide__action {
90
+ inline-size: auto;
91
+ max-inline-size: 100%;
92
+ min-block-size: var(--sigvelo-spacing-12);
93
+ gap: var(--sigvelo-spacing-3);
94
+ padding-inline: var(--sigvelo-spacing-4);
95
+ border-radius: var(--sigvelo-radius-lg);
96
+ }
97
+
98
+ .action-guide__list[data-layout="cards"] .action-guide__action {
99
+ flex-direction: column;
100
+ align-items: flex-start;
101
+ min-block-size: calc(var(--sigvelo-spacing-24) + var(--sigvelo-spacing-2));
102
+ gap: var(--sigvelo-spacing-4);
103
+ padding: var(--sigvelo-spacing-4);
104
+ border-radius: var(--sigvelo-radius-lg);
105
+ }
106
+
107
+ .action-guide__list[data-layout="cards"] .action-guide__action-label {
108
+ margin-block-start: auto;
109
+ }
110
+
111
+ .action-guide__list[data-layout="list"] .action-guide__action {
112
+ min-block-size: calc(var(--sigvelo-control-height-xl) + var(--sigvelo-spacing-2));
113
+ gap: var(--sigvelo-spacing-3);
114
+ padding-inline: var(--sigvelo-spacing-2-5);
115
+ border-radius: var(--sigvelo-radius-lg);
116
+ }
117
+
118
+ @container action-guide (width > 30rem) {
119
+ .action-guide__list[data-layout="cards"] {
120
+ grid-template-columns: repeat(2, minmax(0, 1fr));
121
+ }
122
+ }
123
+
124
+ @media (forced-colors: active) {
125
+ .action-guide__action-icon {
126
+ color: ButtonText;
127
+ }
128
+ }
@@ -11,13 +11,44 @@
11
11
  text-align: start;
12
12
  }
13
13
 
14
- /* Basis 0 keeps a long label from inflating its owner; the trailing
15
- affordance stays adjacent until the available width is exhausted. */
16
- .activity__header-label {
17
- flex: 1 1 0;
14
+ /*
15
+ * The action holds its content width and the detail absorbs whatever is left,
16
+ * so the two shrink in the right order: a long path loses its tail while
17
+ * "Reading" stays legible. Basis 0 on the detail is what makes it the flexible
18
+ * one; the trailing affordance stays adjacent until the width is exhausted.
19
+ *
20
+ * With no detail present the action is the only flexible item, so a settled
21
+ * summary sentence still truncates rather than inflating its owner.
22
+ */
23
+ .activity__header-action {
24
+ flex: 0 1 auto;
18
25
  min-width: 0;
19
26
  max-width: max-content;
27
+ overflow: hidden;
20
28
  color: var(--sigvelo-color-text);
29
+ text-overflow: ellipsis;
30
+ white-space: nowrap;
31
+ }
32
+
33
+ /*
34
+ * The target of the action — a path, a command, a query. Muted, because in a
35
+ * column of activity lines the verb is what the reader scans for.
36
+ *
37
+ * Faded rather than ellipsed: this is data, and a trailing "…" reads as part of
38
+ * the value it is truncating.
39
+ *
40
+ * The fade is unconditional because it does not need a condition. Growing to
41
+ * fill the free space means the box is wider than short text, so the gradient
42
+ * lands on empty space and only bites once the text actually reaches the edge.
43
+ */
44
+ .activity__header-detail {
45
+ flex: 1 1 0;
46
+ min-width: 0;
47
+ overflow: hidden;
48
+ color: var(--sigvelo-color-text-muted);
49
+ font-weight: var(--sigvelo-font-weight-normal);
50
+ white-space: nowrap;
51
+ mask-image: linear-gradient(to right, #000 calc(100% - 1rem), transparent 100%);
21
52
  }
22
53
 
23
54
  .activity__item-icon {
@@ -26,8 +57,8 @@
26
57
  color: var(--sigvelo-color-text-muted);
27
58
  }
28
59
 
29
- .activity[data-streaming] .activity__header-label,
30
- .activity__header[data-streaming] .activity__header-label {
60
+ .activity[data-streaming] .activity__header-action,
61
+ .activity__header[data-streaming] .activity__header-action {
31
62
  --sigvelo-shimmer-base: color-mix(in oklab, var(--sigvelo-color-text-muted), transparent 20%);
32
63
  background: linear-gradient(
33
64
  90deg,
@@ -43,8 +74,8 @@
43
74
  }
44
75
 
45
76
  @media (prefers-reduced-motion: reduce) {
46
- .activity[data-streaming] .activity__header-label,
47
- .activity__header[data-streaming] .activity__header-label {
77
+ .activity[data-streaming] .activity__header-action,
78
+ .activity__header[data-streaming] .activity__header-action {
48
79
  animation: none;
49
80
  background: none;
50
81
  color: inherit;
@@ -52,8 +83,8 @@
52
83
  }
53
84
 
54
85
  @media (forced-colors: active) {
55
- .activity[data-streaming] .activity__header-label,
56
- .activity__header[data-streaming] .activity__header-label {
86
+ .activity[data-streaming] .activity__header-action,
87
+ .activity__header[data-streaming] .activity__header-action {
57
88
  animation: none;
58
89
  background: none;
59
90
  color: inherit;
@@ -91,7 +91,7 @@
91
91
  gap: var(--sigvelo-spacing-1-5);
92
92
  font-size: var(--sigvelo-text-compact);
93
93
  color: var(--sigvelo-color-text);
94
- line-height: var(--sigvelo-leading-body);
94
+ line-height: var(--sigvelo-leading-relaxed);
95
95
  }
96
96
 
97
97
  /* Second collapse level: the trigger reads as a plain item row; the panel is
@@ -118,7 +118,7 @@
118
118
  font-size: var(--sigvelo-text-compact);
119
119
  font-weight: inherit;
120
120
  color: var(--sigvelo-color-text);
121
- line-height: var(--sigvelo-leading-body);
121
+ line-height: var(--sigvelo-leading-relaxed);
122
122
  text-align: start;
123
123
  cursor: pointer;
124
124
  transition: background-color var(--sigvelo-motion-duration-interaction)
@@ -164,7 +164,7 @@
164
164
  .activity__group-text {
165
165
  margin: 0;
166
166
  font-size: var(--sigvelo-text-compact);
167
- line-height: var(--sigvelo-leading-body);
167
+ line-height: var(--sigvelo-leading-relaxed);
168
168
  color: var(--sigvelo-color-text-muted);
169
169
  white-space: pre-wrap;
170
170
  overflow-wrap: anywhere;
@@ -200,7 +200,7 @@
200
200
  margin: 0;
201
201
  font-family: var(--sigvelo-font-mono);
202
202
  font-size: var(--sigvelo-text-xs);
203
- line-height: var(--sigvelo-leading-body);
203
+ line-height: var(--sigvelo-leading-relaxed);
204
204
  color: var(--sigvelo-color-text);
205
205
  white-space: pre-wrap;
206
206
  overflow-wrap: anywhere;
@@ -323,6 +323,28 @@
323
323
  overflow-wrap: anywhere;
324
324
  }
325
325
 
326
+ /*
327
+ * The target of a row's action. Muted and shrink-first, so a column of rows
328
+ * reads down its verbs — "Read / Edited / Ran" — with the paths and commands
329
+ * present but out of the way.
330
+ */
331
+ .activity__item-detail {
332
+ flex: 1 1 0;
333
+ min-inline-size: 0;
334
+ overflow: hidden;
335
+ color: var(--sigvelo-color-text-muted);
336
+ white-space: nowrap;
337
+ mask-image: linear-gradient(to right, #000 calc(100% - 1rem), transparent 100%);
338
+ }
339
+
340
+ /* The action keeps its content width once a detail is beside it to shrink. */
341
+ .activity__item:has(.activity__item-detail) .activity__item-text,
342
+ .activity__group-trigger:has(.activity__item-detail) .activity__item-text {
343
+ flex: 0 1 auto;
344
+ overflow-wrap: normal;
345
+ white-space: nowrap;
346
+ }
347
+
326
348
  @media (hover: none) {
327
349
  .activity__group-icon {
328
350
  opacity: 1;
@@ -3,6 +3,7 @@
3
3
  * owns placement, top-layer behavior, containment, and pointer-event policy.
4
4
  */
5
5
  @import "./activity-header.css";
6
+ @import "./app-icon.css";
6
7
  @import "./agent-activity-preview.css";
7
8
 
8
9
  :host {
@@ -12,26 +13,64 @@
12
13
  color: CanvasText;
13
14
  font-family: system-ui, sans-serif;
14
15
 
15
- --sigvelo-spacing-0-5: 0.125rem;
16
- --sigvelo-spacing-1: 0.25rem;
17
- --sigvelo-spacing-1-5: 0.375rem;
18
- --sigvelo-spacing-2: 0.5rem;
19
- --sigvelo-spacing-3: 0.75rem;
20
- --sigvelo-radius-md: 0.5rem;
21
- --sigvelo-radius-lg: 0.75rem;
22
- --sigvelo-radius-xs: 0.1875rem;
23
- --sigvelo-text-compact: 0.8125rem;
16
+ /*
17
+ * `all: initial` plus a closed shadow root means nothing inherits, so every
18
+ * token the imported stylesheets read has to be restated here. A token that
19
+ * is missing does not fall back to the page value — it resolves to nothing
20
+ * and the declaration is dropped, which is silent. Keep this list in step
21
+ * with what the imported component stylesheets actually use.
22
+ *
23
+ * These are px, not rem, and that is the point. This bundle renders in an
24
+ * active-tab content script, and `rem` resolves against the host page's root
25
+ * element — a page setting `html { font-size: 10px }` would shrink the whole
26
+ * preview by a third. `all: initial` does not isolate that; nothing does.
27
+ * A surface drawn on a page we do not control has to carry its own units.
28
+ */
29
+ --sigvelo-spacing-0-5: 2px;
30
+ --sigvelo-spacing-1: 4px;
31
+ --sigvelo-spacing-1-5: 6px;
32
+ --sigvelo-spacing-2: 8px;
33
+ --sigvelo-spacing-3: 12px;
34
+ --sigvelo-spacing-4: 16px;
35
+ --sigvelo-spacing-5: 20px;
36
+ --sigvelo-spacing-6: 24px;
37
+ --sigvelo-spacing-8: 32px;
38
+ --sigvelo-spacing-10: 40px;
39
+ --sigvelo-spacing-12: 48px;
40
+ --sigvelo-spacing-14: 56px;
41
+ --sigvelo-radius-md: 8px;
42
+ --sigvelo-radius-lg: 12px;
43
+ --sigvelo-radius-xs: 3px;
44
+ --sigvelo-radius-full: 9999px;
45
+ --sigvelo-border-style: solid;
46
+ --sigvelo-border-width-hairline: 0.5px;
47
+ --sigvelo-border-width: 1px;
48
+ --sigvelo-text-compact: 13px;
49
+ --sigvelo-text-xs: 12px;
50
+ --sigvelo-font-weight-normal: 400;
24
51
  --sigvelo-font-weight-semibold: 500;
52
+ --sigvelo-control-height-sm: 32px;
53
+ --sigvelo-control-height-xl: 44px;
54
+ --sigvelo-control-icon-size-sm: 14px;
55
+ --sigvelo-control-icon-size-md: 16px;
56
+ --sigvelo-control-icon-size-lg: 18px;
25
57
  --sigvelo-duration-fast: 150ms;
26
- --sigvelo-duration-slow: 360ms;
58
+ --sigvelo-motion-duration-shimmer: 2400ms;
59
+ --sigvelo-motion-duration-spin: 900ms;
27
60
  --sigvelo-ease-standard: cubic-bezier(0.2, 0, 0, 1);
28
61
  --sigvelo-color-surface: Canvas;
62
+ --sigvelo-color-surface-raised: Canvas;
63
+ --sigvelo-color-shadow: black;
29
64
  --sigvelo-color-text: CanvasText;
30
65
  --sigvelo-color-text-muted: GrayText;
31
66
  --sigvelo-color-primary-text: LinkText;
67
+ --sigvelo-color-primary-bg: CanvasText;
68
+ --sigvelo-color-primary-text-on-bg: Canvas;
32
69
  --sigvelo-color-warning-text: #8a4b00;
33
70
  --sigvelo-color-neutral-bg-subtle: color-mix(in oklab, CanvasText 7%, Canvas);
34
- --sigvelo-shadow-sm: 0 0.125rem 0.1875rem color-mix(in oklab, CanvasText 8%, transparent);
71
+ --sigvelo-elevation-raised:
72
+ 0 0 0 0.5px color-mix(in oklab, CanvasText 8%, transparent),
73
+ 0 1px 2px -1px color-mix(in oklab, CanvasText 8%, transparent);
35
74
  --sigvelo-recipe-focus-shadow: 0 0 0 2px Canvas, 0 0 0 4px Highlight;
36
75
  }
37
76
 
@@ -51,7 +90,7 @@
51
90
  }
52
91
 
53
92
  .sigvelo-icon--spinner {
54
- animation: agent-activity-preview-spin var(--sigvelo-duration-slow) linear infinite;
93
+ animation: agent-activity-preview-spin var(--sigvelo-motion-duration-spin) linear infinite;
55
94
  transform-origin: center;
56
95
  }
57
96
 
@@ -5,8 +5,8 @@
5
5
  padding: var(--sigvelo-spacing-2);
6
6
  border-radius: var(--sigvelo-radius-lg);
7
7
  color: var(--sigvelo-color-text);
8
- background: color-mix(in oklab, var(--sigvelo-color-surface), transparent 3%);
9
- box-shadow: var(--sigvelo-shadow-xs);
8
+ background: var(--sigvelo-color-surface-raised);
9
+ box-shadow: var(--sigvelo-elevation-raised);
10
10
  }
11
11
 
12
12
  .agent-activity-preview__badge {
@@ -15,17 +15,17 @@
15
15
  inset-inline-end: var(--sigvelo-spacing-1);
16
16
  display: grid;
17
17
  place-items: center;
18
- width: 2rem;
19
- height: 2rem;
20
- border-radius: 999px;
18
+ width: var(--sigvelo-control-height-sm);
19
+ height: var(--sigvelo-control-height-sm);
20
+ border-radius: var(--sigvelo-radius-full);
21
21
  color: var(--sigvelo-color-primary-text);
22
- background: var(--sigvelo-color-surface);
23
- box-shadow: var(--sigvelo-shadow-sm);
22
+ background: var(--sigvelo-color-surface-raised);
23
+ box-shadow: var(--sigvelo-elevation-raised);
24
24
  }
25
25
 
26
26
  .agent-activity-preview__badge > svg {
27
- width: 1rem;
28
- height: 1rem;
27
+ width: var(--sigvelo-control-icon-size-md);
28
+ height: var(--sigvelo-control-icon-size-md);
29
29
  }
30
30
 
31
31
  .agent-activity-preview__dismiss {
@@ -33,17 +33,10 @@
33
33
  z-index: 1;
34
34
  inset-block-start: calc(-1 * var(--sigvelo-spacing-2));
35
35
  inset-inline-end: var(--sigvelo-spacing-1);
36
- display: grid;
37
- place-items: center;
38
- width: 2rem;
39
- height: 2rem;
40
- padding: 0;
41
- border: 0;
42
- border-radius: 999px;
36
+ border-radius: var(--sigvelo-radius-full);
43
37
  color: var(--sigvelo-color-text-muted);
44
- background: var(--sigvelo-color-surface);
45
- box-shadow: var(--sigvelo-shadow-sm);
46
- cursor: pointer;
38
+ background: var(--sigvelo-color-surface-raised);
39
+ box-shadow: var(--sigvelo-elevation-raised);
47
40
  opacity: 0;
48
41
  scale: 0.92;
49
42
  transition:
@@ -59,22 +52,17 @@
59
52
  scale: 1;
60
53
  }
61
54
 
62
- .agent-activity-preview__dismiss:hover {
55
+ .agent-activity-preview__dismiss:hover:not([data-disabled]) {
63
56
  color: var(--sigvelo-color-text);
57
+ background: var(--sigvelo-color-surface-raised);
64
58
  }
65
59
 
66
- .agent-activity-preview__dismiss:focus-visible,
67
60
  .agent-activity-preview__row:focus-visible,
68
61
  .agent-activity-preview__file-action:focus-visible {
69
62
  outline: none;
70
63
  box-shadow: var(--sigvelo-recipe-focus-shadow);
71
64
  }
72
65
 
73
- .agent-activity-preview__dismiss > svg {
74
- width: 0.875rem;
75
- height: 0.875rem;
76
- }
77
-
78
66
  .agent-activity-preview__list {
79
67
  display: grid;
80
68
  gap: var(--sigvelo-spacing-0-5);
@@ -143,15 +131,15 @@
143
131
  }
144
132
 
145
133
  .agent-activity-preview__file-action > svg {
146
- width: 1rem;
147
- height: 1rem;
134
+ width: var(--sigvelo-control-icon-size-md);
135
+ height: var(--sigvelo-control-icon-size-md);
148
136
  }
149
137
 
150
138
  .agent-activity-preview__row .activity__header {
151
139
  gap: var(--sigvelo-spacing-2);
152
140
  }
153
141
 
154
- .agent-activity-preview__row .activity__header-label {
142
+ .agent-activity-preview__row .activity__header-action {
155
143
  max-width: none;
156
144
  }
157
145
 
@@ -163,26 +151,9 @@
163
151
  min-width: 1rem;
164
152
  }
165
153
 
166
- .agent-activity-preview__favicons {
167
- display: flex;
168
- align-items: center;
169
- padding-inline-start: var(--sigvelo-spacing-1);
170
- }
171
-
172
- .agent-activity-preview__favicons img {
173
- display: block;
174
- width: 1.125rem;
175
- height: 1.125rem;
176
- margin-inline-start: -0.25rem;
177
- border: 2px solid var(--sigvelo-color-surface);
178
- border-radius: 999px;
179
- background: var(--sigvelo-color-surface);
180
- object-fit: contain;
181
- }
182
-
183
154
  .agent-activity-preview__trailing > svg {
184
- width: 1rem;
185
- height: 1rem;
155
+ width: var(--sigvelo-control-icon-size-md);
156
+ height: var(--sigvelo-control-icon-size-md);
186
157
  }
187
158
 
188
159
  .agent-activity-preview__row[data-status="running"] .agent-activity-preview__trailing > svg,
@@ -195,9 +166,9 @@
195
166
  }
196
167
 
197
168
  .agent-activity-preview__unviewed-dot {
198
- width: 0.5rem;
199
- height: 0.5rem;
200
- border-radius: 999px;
169
+ width: var(--sigvelo-spacing-2);
170
+ height: var(--sigvelo-spacing-2);
171
+ border-radius: var(--sigvelo-radius-full);
201
172
  background: currentColor;
202
173
  }
203
174
 
@@ -232,8 +203,7 @@
232
203
 
233
204
  .agent-activity-preview__badge,
234
205
  .agent-activity-preview__dismiss,
235
- .agent-activity-preview__file-action,
236
- .agent-activity-preview__favicons img {
206
+ .agent-activity-preview__file-action {
237
207
  border: var(--sigvelo-border-style) var(--sigvelo-border-width) CanvasText;
238
208
  }
239
209
  }
@@ -9,7 +9,7 @@
9
9
  border-radius: var(--sigvelo-radius-md);
10
10
  color: var(--sigvelo-color-text);
11
11
  background: var(--sigvelo-color-surface);
12
- box-shadow: var(--sigvelo-shadow-xs);
12
+ box-shadow: var(--sigvelo-elevation-raised);
13
13
  }
14
14
 
15
15
  .agent-attention[data-tone="warning"] {
@@ -58,7 +58,7 @@
58
58
  .agent-attention__text {
59
59
  display: grid;
60
60
  min-width: 0;
61
- line-height: 1.35;
61
+ line-height: var(--sigvelo-leading-snug);
62
62
  }
63
63
 
64
64
  .agent-attention__title {