@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
@@ -61,36 +61,6 @@
61
61
  block-size: 100%;
62
62
  }
63
63
 
64
- .think-routine-library__app-title {
65
- display: none;
66
- }
67
-
68
- .think-routine-library__schedule-trigger {
69
- display: inline-flex;
70
- max-inline-size: min(22rem, 58vw);
71
- min-inline-size: 0;
72
- gap: var(--sigvelo-density-compact-control-gap);
73
- color: var(--sigvelo-color-text);
74
- font-size: var(--sigvelo-density-compact-control-font-size);
75
- font-weight: var(--sigvelo-font-weight-semibold);
76
- }
77
-
78
- .think-routine-library__schedule-trigger span {
79
- min-inline-size: 0;
80
- overflow: hidden;
81
- text-overflow: ellipsis;
82
- white-space: nowrap;
83
- }
84
-
85
- .think-routine-library__schedule-trigger > svg {
86
- flex: 0 0 auto;
87
- transition: rotate var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
88
- }
89
-
90
- .think-routine-library__schedule-trigger[aria-expanded="true"] > svg {
91
- rotate: 180deg;
92
- }
93
-
94
64
  .think-routine-library__browser {
95
65
  min-inline-size: 0;
96
66
  min-block-size: 0;
@@ -208,12 +178,6 @@
208
178
  overflow: auto;
209
179
  }
210
180
 
211
- @container responsive-sidebar-shell (inline-size <= 56rem) {
212
- .think-routine-library__layout .responsive-sidebar-shell__toggle {
213
- display: none;
214
- }
215
- }
216
-
217
181
  .think-routine-library__detail {
218
182
  inline-size: min(100%, 64rem);
219
183
  margin-inline: auto;
@@ -236,10 +200,6 @@
236
200
  min-inline-size: 0;
237
201
  }
238
202
 
239
- .think-routine-library__state {
240
- margin-block-end: var(--sigvelo-spacing-2);
241
- }
242
-
243
203
  .think-routine-library__detail-header h1,
244
204
  .think-routine-library__create-header h1 {
245
205
  font-size: clamp(var(--sigvelo-text-lg), 2.5vw, var(--sigvelo-text-2xl));
@@ -6,7 +6,10 @@
6
6
  grid-template-rows: auto auto minmax(0, 1fr) auto;
7
7
  overflow: hidden;
8
8
  border-inline-end: 0;
9
- background: var(--sigvelo-color-surface-under);
9
+ /* No material of its own: it fills whatever holds it — the shell's rail, the
10
+ compact drawer, a host's own panel — and painting a colour here would
11
+ cover the one that surface chose. */
12
+ background: transparent;
10
13
  color: var(--sigvelo-color-text);
11
14
  }
12
15
 
@@ -69,7 +72,7 @@
69
72
  }
70
73
 
71
74
  .think-thread-status-indicators__item[data-status="attention"] {
72
- color: var(--sigvelo-color-warning-text);
75
+ color: var(--sigvelo-color-danger-text);
73
76
  }
74
77
 
75
78
  .think-thread-status-indicators__item[data-status="failed"] {
@@ -266,10 +269,12 @@
266
269
  color: var(--sigvelo-color-danger-text);
267
270
  }
268
271
 
272
+ /* Stopped, not wrong: aborted/interrupted/skipped stay in the muted
273
+ monotone — colour is reserved for success, failure, and needs-a-human. */
269
274
  .think-thread-picker__thread[data-thread-status="aborted"] .think-thread-picker__thread-status,
270
275
  .think-thread-picker__thread[data-thread-status="interrupted"] .think-thread-picker__thread-status,
271
276
  .think-thread-picker__thread[data-thread-status="skipped"] .think-thread-picker__thread-status {
272
- color: var(--sigvelo-color-warning-text);
277
+ color: var(--sigvelo-color-text-muted);
273
278
  }
274
279
 
275
280
  .think-thread-picker__empty {
@@ -1,8 +1,7 @@
1
+ /* The exit transform is a hook: defaults live in the fallbacks at each use
2
+ site, and picking a `data-variant` declares a value on the element itself —
3
+ the component answering its own prop, which is meant to win. */
1
4
  .transition-surface {
2
- --transition-surface-inline: 0;
3
- --transition-surface-block: 0;
4
- --transition-surface-scale: 1;
5
-
6
5
  opacity: 1;
7
6
  translate: 0;
8
7
  scale: 1;
@@ -29,16 +28,16 @@
29
28
  .transition-surface[hidden] {
30
29
  display: none;
31
30
  opacity: 0;
32
- translate: var(--transition-surface-inline) var(--transition-surface-block);
33
- scale: var(--transition-surface-scale);
31
+ translate: var(--transition-surface-inline, 0) var(--transition-surface-block, 0);
32
+ scale: var(--transition-surface-scale, 1);
34
33
  transition-timing-function: var(--sigvelo-motion-ease-exit);
35
34
  }
36
35
 
37
36
  @starting-style {
38
37
  .transition-surface {
39
38
  opacity: 0;
40
- translate: var(--transition-surface-inline) var(--transition-surface-block);
41
- scale: var(--transition-surface-scale);
39
+ translate: var(--transition-surface-inline, 0) var(--transition-surface-block, 0);
40
+ scale: var(--transition-surface-scale, 1);
42
41
  }
43
42
  }
44
43
 
@@ -97,6 +97,48 @@
97
97
  max-inline-size: var(--sigvelo-measure-wide-block);
98
98
  }
99
99
 
100
+ /*
101
+ * The chevron on a disclosure trigger a consumer composed itself. Components
102
+ * that own their own trigger anatomy (Collapsible, MenuDisclosureGroup) style
103
+ * their marker directly; this is for app code putting an icon inside a
104
+ * `Collapsible.Trigger`, which otherwise re-derives the same two rules.
105
+ */
106
+ .sigvelo-disclosure-chevron {
107
+ transition: rotate var(--sigvelo-motion-duration-disclosure) var(--sigvelo-motion-ease-change);
108
+ }
109
+
110
+ :where([data-panel-open], [aria-expanded="true"]) .sigvelo-disclosure-chevron {
111
+ rotate: 180deg;
112
+ }
113
+
114
+ /*
115
+ * A prompt that has to outlive the reader's attention: a permission ask a
116
+ * browser will only grant from a gesture, an offer to reconnect. `Toast` is the
117
+ * wrong shape for these because it schedules its own dismissal, and these leave
118
+ * only when the reader acts. The layer is inert so the page underneath stays
119
+ * usable and only the control inside it takes the pointer back; the inset clears
120
+ * whatever the app already anchors to the bottom edge.
121
+ */
122
+ .sigvelo-floating-prompt {
123
+ --sigvelo-floating-prompt-inset: var(--sigvelo-spacing-4);
124
+
125
+ position: fixed;
126
+ inset-inline: 0;
127
+ inset-block-end: calc(env(safe-area-inset-bottom, 0px) + var(--sigvelo-floating-prompt-inset));
128
+ z-index: var(--sigvelo-z-toast);
129
+ display: flex;
130
+ justify-content: center;
131
+ pointer-events: none;
132
+ }
133
+
134
+ /* Floating reads as a pill, not as a form control, so the recipe radius goes
135
+ fully round here rather than at each consumer's call site. */
136
+ .sigvelo-floating-prompt > * {
137
+ --sigvelo-recipe-button-radius: var(--sigvelo-radius-full);
138
+
139
+ pointer-events: auto;
140
+ }
141
+
100
142
  /*
101
143
  * Reader-controlled text size for prose. Scales the message body only —
102
144
  * toolbars, labels, and controls keep resolving through the rem type ramp,
@@ -1,12 +1,17 @@
1
+ /* The card's chrome row (the Ploy bar): one bar height everywhere, muted
2
+ controls resting directly on whatever plane hosts the preview, separated
3
+ from the scrolling content by one hairline and a breath of shadow. */
1
4
  .web-preview__nav {
5
+ position: relative;
2
6
  display: flex;
3
7
  align-items: center;
8
+ min-block-size: calc(var(--sigvelo-density-compact-control-height) + var(--sigvelo-spacing-2));
4
9
  gap: var(--sigvelo-spacing-1-5);
5
- padding-block: var(--sigvelo-spacing-2);
6
- padding-inline: var(--sigvelo-spacing-2-5);
7
- background-color: var(--sigvelo-color-neutral-bg-subtle);
10
+ padding-block: var(--sigvelo-spacing-1);
11
+ padding-inline: var(--sigvelo-spacing-2);
8
12
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
9
13
  var(--sigvelo-color-neutral-border-subtle);
14
+ box-shadow: var(--sigvelo-elevation-bar);
10
15
  }
11
16
 
12
17
  .web-preview__nav-button {
@@ -29,7 +34,6 @@
29
34
  min-height: 16rem;
30
35
  width: 100%;
31
36
  border: none;
32
- background-color: var(--sigvelo-color-canvas);
33
37
  }
34
38
 
35
39
  .web-preview__body--readonly {
@@ -66,7 +70,6 @@
66
70
  text-transform: uppercase;
67
71
  letter-spacing: 0.05em;
68
72
  color: var(--sigvelo-color-text-muted);
69
- background-color: var(--sigvelo-color-neutral-bg-subtle);
70
73
  cursor: pointer;
71
74
  }
72
75
 
@@ -124,6 +127,26 @@
124
127
  border-block-end: none;
125
128
  }
126
129
 
130
+ .web-preview__console-level {
131
+ min-inline-size: 2.5rem;
132
+ color: var(--sigvelo-color-text-muted);
133
+ font-size: var(--sigvelo-text-2xs);
134
+ font-weight: var(--sigvelo-font-weight-semibold);
135
+ text-transform: uppercase;
136
+ }
137
+
138
+ .web-preview__console-item--info .web-preview__console-level {
139
+ color: var(--sigvelo-color-primary-text);
140
+ }
141
+
142
+ .web-preview__console-item--warn .web-preview__console-level {
143
+ color: var(--sigvelo-color-warning-text);
144
+ }
145
+
146
+ .web-preview__console-item--error .web-preview__console-level {
147
+ color: var(--sigvelo-color-danger-text);
148
+ }
149
+
127
150
  .web-preview__console-message {
128
151
  color: var(--sigvelo-color-text);
129
152
  word-break: break-word;
@@ -10,19 +10,12 @@
10
10
  overflow: hidden;
11
11
  font-family: inherit;
12
12
  color: var(--sigvelo-color-text);
13
- background-color: var(--sigvelo-color-surface-raised);
14
- border-radius: var(--sigvelo-radius-xl);
15
- box-shadow: var(--sigvelo-elevation-raised);
16
13
  container-type: inline-size;
17
14
  }
18
15
 
19
16
  .workspace-explorer:has(> .workspace-explorer__file[data-appearance="canvas"]) {
20
17
  block-size: auto;
21
18
  overflow: visible;
22
- background: transparent;
23
- border: 0;
24
- border-radius: 0;
25
- box-shadow: none;
26
19
  }
27
20
 
28
21
  .workspace-explorer__file[data-appearance="canvas"] {
@@ -86,10 +79,6 @@
86
79
  var(--sigvelo-color-neutral-border-subtle);
87
80
  }
88
81
 
89
- .workspace-explorer__header .app-top-bar__button {
90
- padding: var(--sigvelo-spacing-1-5);
91
- }
92
-
93
82
  .workspace-explorer__heading {
94
83
  display: flex;
95
84
  align-items: baseline;
@@ -197,14 +186,13 @@
197
186
  flex: 1;
198
187
  min-block-size: 100%;
199
188
  border-radius: 0;
200
- background-color: var(--sigvelo-color-surface);
189
+ background-color: transparent;
201
190
  }
202
191
 
203
192
  .workspace-explorer__markdown-scroll {
204
193
  flex: 1;
205
194
  min-block-size: 0;
206
195
  overflow: auto;
207
- background-color: var(--sigvelo-color-surface);
208
196
  }
209
197
 
210
198
  .workspace-explorer__markdown {
@@ -255,7 +243,7 @@
255
243
  [data-streamdown="code-block-actions"],
256
244
  [data-streamdown="mermaid-block-actions"]
257
245
  ) {
258
- background-color: var(--sigvelo-color-surface);
246
+ background-color: transparent;
259
247
  }
260
248
 
261
249
  .workspace-explorer__markdown-content [data-streamdown="heading-1"] {
@@ -336,13 +324,13 @@
336
324
  }
337
325
 
338
326
  .workspace-explorer__skill-status[data-invalid] {
339
- color: var(--sigvelo-color-warning-text);
327
+ color: var(--sigvelo-color-danger-text);
340
328
  }
341
329
 
342
330
  .workspace-explorer__skill-errors {
343
331
  margin-block: var(--sigvelo-spacing-2) 0;
344
332
  padding-inline-start: var(--sigvelo-spacing-6);
345
- color: var(--sigvelo-color-warning-text);
333
+ color: var(--sigvelo-color-danger-text);
346
334
  font-size: var(--sigvelo-text-sm);
347
335
  }
348
336
 
@@ -352,7 +340,6 @@
352
340
  flex: 1;
353
341
  overflow: auto;
354
342
  color-scheme: inherit;
355
- background-color: var(--sigvelo-color-surface);
356
343
  }
357
344
 
358
345
  .workspace-explorer__media-scroll:focus-visible {
@@ -366,7 +353,6 @@
366
353
  inline-size: 100%;
367
354
  min-block-size: 100%;
368
355
  margin: 0;
369
- background-color: var(--sigvelo-color-surface);
370
356
  }
371
357
 
372
358
  .workspace-explorer__media-stage {
@@ -448,7 +434,6 @@
448
434
  padding-inline: var(--sigvelo-spacing-4);
449
435
  border-block-start: var(--sigvelo-border-style) var(--sigvelo-border-width)
450
436
  var(--sigvelo-color-neutral-border-subtle);
451
- background-color: var(--sigvelo-color-surface);
452
437
  }
453
438
 
454
439
  .workspace-explorer__media-details {
@@ -561,10 +546,6 @@
561
546
  }
562
547
 
563
548
  @container (inline-size < 24rem) {
564
- .workspace-explorer__heading {
565
- max-inline-size: 34cqi;
566
- }
567
-
568
549
  .workspace-explorer__skill-metadata {
569
550
  grid-template-columns: 1fr;
570
551
  gap: 0;
@@ -22,3 +22,25 @@
22
22
  .workspace-mount-manager__path code {
23
23
  overflow-wrap: anywhere;
24
24
  }
25
+
26
+ .workspace-mount-manager__permission {
27
+ display: inline-flex;
28
+ align-items: center;
29
+ gap: var(--sigvelo-spacing-1);
30
+ color: var(--sigvelo-color-text-muted);
31
+ font-size: var(--sigvelo-text-xs);
32
+ line-height: var(--sigvelo-leading-snug);
33
+ }
34
+
35
+ .workspace-mount-manager__permission > svg {
36
+ inline-size: var(--sigvelo-control-icon-size-sm);
37
+ block-size: var(--sigvelo-control-icon-size-sm);
38
+ }
39
+
40
+ .workspace-mount-manager__permission[data-permission="granted"] {
41
+ color: var(--sigvelo-color-success-text);
42
+ }
43
+
44
+ .workspace-mount-manager__permission[data-permission="denied"] {
45
+ color: var(--sigvelo-color-danger-text);
46
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-b/react-components",
3
- "version": "0.39.0",
3
+ "version": "0.41.0",
4
4
  "description": "MCP-B React components built on Base UI and shared design tokens, including Cloudflare Think chat primitives.",
5
5
  "homepage": "https://design-system.sigvelo.com",
6
6
  "bugs": {
@@ -39,52 +39,52 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "@base-ui/react": "~1.6.0",
42
- "@rrweb/replay": "^2.1.0",
42
+ "@rrweb/replay": "^2.1.1",
43
43
  "@shadcn/react": "^0.2.1",
44
44
  "@streamdown/cjk": "^1.0.3",
45
45
  "@streamdown/code": "^1.1.1",
46
- "@tanstack/react-virtual": "^3.14.8",
47
- "agent-skills-ts-sdk": "^2.4.1",
46
+ "@tanstack/react-virtual": "^3.14.9",
47
+ "agent-skills-ts-sdk": "^2.4.2",
48
48
  "anser": "^2.3.5",
49
- "lucide-react": "^1.24.0",
49
+ "lucide-react": "^1.31.0",
50
50
  "react-icons": "^5.7.0",
51
51
  "rehype-slug": "^6.0.0",
52
- "shiki": "^4.3.1",
52
+ "shiki": "^3.23.0",
53
53
  "streamdown": "^2.5.0",
54
54
  "unist-util-visit": "^5.1.0",
55
- "yet-another-react-lightbox": "^3.32.1",
56
- "@mcp-b/design-tokens": "0.39.0"
55
+ "yet-another-react-lightbox": "^3.32.2",
56
+ "@mcp-b/design-tokens": "0.41.0"
57
57
  },
58
58
  "devDependencies": {
59
- "@ai-sdk/react": "^3.0.230",
60
- "@cloudflare/codemode": "^0.5.0",
59
+ "@ai-sdk/react": "^3.0.249",
60
+ "@cloudflare/codemode": "^0.5.1",
61
61
  "@cloudflare/shell": "^0.4.3",
62
- "@cloudflare/think": "^0.15.0",
63
- "@cloudflare/voice": "^0.3.4",
64
- "@cloudflare/workers-types": "^5.20260715.1",
65
- "@storybook/addon-a11y": "^10.5.2",
66
- "@storybook/addon-docs": "^10.5.2",
67
- "@storybook/addon-vitest": "^10.5.2",
68
- "@storybook/tanstack-react": "^10.5.2",
69
- "@tanstack/react-form": "^1.33.2",
70
- "@tanstack/react-query": "^5.101.2",
71
- "@tanstack/react-router": "^1.170.18",
62
+ "@cloudflare/think": "^0.15.1",
63
+ "@cloudflare/voice": "^0.3.5",
64
+ "@cloudflare/workers-types": "^5.20260811.1",
65
+ "@storybook/addon-a11y": "^10.5.7",
66
+ "@storybook/addon-docs": "^10.5.7",
67
+ "@storybook/addon-vitest": "^10.5.7",
68
+ "@storybook/tanstack-react": "^10.5.7",
69
+ "@tanstack/react-form": "^1.33.4",
70
+ "@tanstack/react-query": "^5.101.4",
71
+ "@tanstack/react-router": "^1.170.25",
72
72
  "@tanstack/react-store": "^0.9.3",
73
- "@tanstack/router-core": "^1.171.15",
74
- "@types/hast": "^3.0.4",
75
- "@types/node": "^26",
76
- "@types/react": "^19.2.17",
77
- "@types/react-dom": "^19.2.3",
73
+ "@tanstack/router-core": "^1.171.21",
74
+ "@types/hast": "^3.0.5",
75
+ "@types/node": "^26.2.0",
76
+ "@types/react": "^19.2.18",
77
+ "@types/react-dom": "^19.2.4",
78
78
  "@vitest/browser-playwright": "^4.1.10",
79
79
  "@vitest/coverage-v8": "^4.1.10",
80
80
  "@vitest/mocker": "^4.1.10",
81
- "agents": "^0.19.0",
82
- "ai": "^6.0.228",
81
+ "agents": "^0.20.1",
82
+ "ai": "^6.0.247",
83
83
  "cloudflare": "^7.0.0",
84
- "playwright": "~1.61.0",
84
+ "playwright": "~1.61.1",
85
85
  "react": "19.3.0-canary-711c445b-20260722",
86
86
  "react-dom": "19.3.0-canary-711c445b-20260722",
87
- "storybook": "^10.5.2",
87
+ "storybook": "^10.5.7",
88
88
  "typescript": "^6.0.3",
89
89
  "vite": "npm:@voidzero-dev/vite-plus-core@0.2.4",
90
90
  "vite-plus": "0.2.4",
@@ -92,14 +92,13 @@
92
92
  },
93
93
  "peerDependencies": {
94
94
  "@ai-sdk/react": "^3.0.230",
95
- "@cloudflare/codemode": "^0.5.0",
95
+ "@cloudflare/codemode": "^0.5.1",
96
96
  "@cloudflare/shell": "^0.4.3",
97
- "@cloudflare/think": "^0.15.0",
98
- "@cloudflare/voice": "^0.3.4",
97
+ "@cloudflare/think": "^0.15.1",
98
+ "@cloudflare/voice": "^0.3.5",
99
99
  "@cloudflare/workers-types": "^5.20260715.1",
100
100
  "@tanstack/react-query": "^5.101.2",
101
- "@tanstack/react-router": "^1.170.18",
102
- "agents": "^0.19.0",
101
+ "agents": "^0.20.1",
103
102
  "ai": "^6.0.228",
104
103
  "cloudflare": "^7.0.0",
105
104
  "react": "19.3.0-canary-711c445b-20260722",
@@ -124,6 +123,9 @@
124
123
  "@cloudflare/workers-types": {
125
124
  "optional": true
126
125
  },
126
+ "@tanstack/react-query": {
127
+ "optional": true
128
+ },
127
129
  "agents": {
128
130
  "optional": true
129
131
  },
@@ -140,6 +142,6 @@
140
142
  "test": "vp test",
141
143
  "check": "vp check",
142
144
  "storybook": "storybook dev -p 6011",
143
- "build-storybook": "storybook build"
145
+ "build-storybook": "storybook build && node ../../scripts/audit-storybook-manifest.mjs --write-imports"
144
146
  }
145
147
  }
@@ -1,68 +0,0 @@
1
- import * as React from "react";
2
-
3
- //#region src/components/general-purpose/ResponsiveSidebarShell.d.ts
4
- interface ResponsiveSidebarShellControls {
5
- /** Close the sidebar and move focus to the main content. */
6
- closeSidebar: () => void;
7
- /** Close only when the shell is currently using its compact drawer layout. */
8
- closeSidebarOnCompact: () => void;
9
- }
10
- interface ResponsiveSidebarShellTopBarControls {
11
- /** The shell-owned, labelled sidebar toggle to place in a top-bar slot. */
12
- sidebarToggle: React.ReactNode;
13
- /** Stable id for a caller-composed compact disclosure trigger. */
14
- sidebarId: string;
15
- /** Whether the shared sidebar surface is currently visible. */
16
- sidebarOpen: boolean;
17
- /** Toggle the sidebar and remember the invoking control for Escape focus restoration. */
18
- toggleSidebar: (trigger?: HTMLElement) => void;
19
- }
20
- interface ResponsiveSidebarShellProps extends React.HTMLAttributes<HTMLDivElement> {
21
- /** Navigation or other secondary surface shown beside the selected content. */
22
- sidebar: React.ReactNode | ((controls: ResponsiveSidebarShellControls) => React.ReactNode);
23
- /**
24
- * Optional composable application bar. The render form receives the
25
- * shell-owned sidebar toggle so callers can place it beside their own icon
26
- * groups without duplicating drawer behavior.
27
- */
28
- topBar?: React.ReactNode | ((controls: ResponsiveSidebarShellTopBarControls) => React.ReactNode);
29
- /** Short noun used by the toggle and resize control, such as “threads” or “schedules”. */
30
- sidebarLabel: string;
31
- /** Whether the sidebar is open. Omit for internal state. */
32
- sidebarOpen?: boolean;
33
- /** Initial sidebar state when `sidebarOpen` is uncontrolled. */
34
- defaultSidebarOpen?: boolean;
35
- /** Initial desktop sidebar width in CSS pixels. */
36
- defaultSidebarWidth?: number;
37
- /** Called when the sidebar is opened or closed. */
38
- onSidebarOpenChange?: (open: boolean) => void;
39
- /** Accessible name for the toolbar containing the sidebar toggle. */
40
- toolbarLabel?: string;
41
- /** Accessible name for the mobile preview target that returns to the main content. */
42
- showMainLabel?: string;
43
- }
44
- /**
45
- * Responsive master-detail shell with a resizable desktop sidebar and a compact
46
- * floating sidebar that leaves the main content in place as a dismiss target.
47
- * The root exposes `data-sidebar-open="true" | "false"` as its public styling hook.
48
- */
49
- declare function ResponsiveSidebarShell({
50
- sidebar,
51
- topBar,
52
- sidebarLabel,
53
- sidebarOpen,
54
- defaultSidebarOpen,
55
- defaultSidebarWidth,
56
- onSidebarOpenChange,
57
- toolbarLabel,
58
- showMainLabel,
59
- className,
60
- children,
61
- ref,
62
- style,
63
- ...props
64
- }: ResponsiveSidebarShellProps & {
65
- ref?: React.Ref<HTMLDivElement>;
66
- }): React.JSX.Element;
67
- //#endregion
68
- export { ResponsiveSidebarShellTopBarControls as i, ResponsiveSidebarShellControls as n, ResponsiveSidebarShellProps as r, ResponsiveSidebarShell as t };
@@ -1,46 +0,0 @@
1
- import { n as WorkspaceDestination } from "../../WorkspaceLink-Bh9-Jo1r.js";
2
- import { s as AgentActivitySummary } from "../../AgentActivity-Cc_oDYum.js";
3
- import * as React from "react";
4
-
5
- //#region src/components/agents-sdk/AgentActivityPreview.d.ts
6
- /** The three conditions that make an agent relevant to the transient preview. */
7
- type AgentActivityPreviewStatus = "running" | "input-required" | "unviewed";
8
- interface AgentActivityPreviewFavicon {
9
- src: string;
10
- label: string;
11
- }
12
- type AgentActivityPreviewItem = Omit<AgentActivitySummary, "mode"> & {
13
- id: string;
14
- status: AgentActivityPreviewStatus;
15
- favicons?: readonly AgentActivityPreviewFavicon[];
16
- };
17
- interface AgentActivityPreviewProps extends Omit<React.HTMLAttributes<HTMLElement>, "children" | "onSelect"> {
18
- /** Current agent summaries to show in the transient preview. */
19
- items: readonly AgentActivityPreviewItem[];
20
- /** App-authored TanStack Router Link for every durable agent destination. */
21
- renderAgentLink: (item: AgentActivityPreviewItem) => React.ReactElement;
22
- /** App-authored TanStack Router Link for a projected workspace file destination. */
23
- renderWorkspaceFileLink?: (item: AgentActivityPreviewItem, destination: Extract<WorkspaceDestination, {
24
- kind: "file";
25
- }>) => React.ReactElement;
26
- /** Hides the complete preview when the host supports dismissal. */
27
- onDismiss?: () => void;
28
- /** Product mark shown beside the agent rows. */
29
- brandIcon?: React.ReactNode;
30
- }
31
- /** Compact multi-agent preview for a page overlay or secondary application rail. */
32
- declare function AgentActivityPreview({
33
- "aria-label": ariaLabel,
34
- brandIcon,
35
- className,
36
- items,
37
- onDismiss,
38
- renderAgentLink,
39
- renderWorkspaceFileLink,
40
- ref,
41
- ...props
42
- }: AgentActivityPreviewProps & {
43
- ref?: React.Ref<HTMLElement>;
44
- }): React.JSX.Element | null;
45
- //#endregion
46
- export { AgentActivityPreview, AgentActivityPreviewFavicon, AgentActivityPreviewItem, AgentActivityPreviewProps, AgentActivityPreviewStatus };