@mcp-b/react-components 0.24.0 → 0.25.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 (109) hide show
  1. package/dist/{AgentChat-Bm1qYbOo.d.ts → AgentChat-DHxdTjwF.d.ts} +34 -7
  2. package/dist/{CodeBlock-Cp67Njo3.js → CodeBlock-B3RLU3ez.js} +1 -1
  3. package/dist/{FileTree-DW60q1w7.js → FileTree-CYr5og0q.js} +1 -1
  4. package/dist/{Message-_-bEYLAO.js → Message-KlK8tlBZ.js} +1 -1
  5. package/dist/{ModelSelector-Brvj9Cab.js → ModelSelector-YTlqkIjs.js} +1 -1
  6. package/dist/{ThinkChat-E_HrfH76.js → ThinkChat-DVhCEjq-.js} +11 -2
  7. package/dist/{ThinkChatActivity-2BobmuvR.d.ts → ThinkChatActivity-DMTHKWrI.d.ts} +11 -9
  8. package/dist/{ThinkChatContext-DrsZqdaO.d.ts → ThinkChatContext-B-Nk84Wi.d.ts} +13 -1
  9. package/dist/{ThinkRecoveryNotice-DFIcG9UX.d.ts → ThinkRecoveryNotice-D6gYcBbr.d.ts} +1 -1
  10. package/dist/{WorkspaceFileView-rUEN2iox.js → WorkspaceFileView-CuMjXYQn.js} +3 -3
  11. package/dist/components/Activity.d.ts +11 -0
  12. package/dist/components/Activity.js +16 -4
  13. package/dist/components/AgentActivity.js +1 -1
  14. package/dist/components/AgentActivityPreview.js +1 -1
  15. package/dist/components/AgentChat.d.ts +1 -1
  16. package/dist/components/AgentChat.js +174 -94
  17. package/dist/components/AgentChatStartScreen.js +1 -1
  18. package/dist/components/AgentConnection.js +2 -2
  19. package/dist/components/AgentMessageParts.js +6 -2
  20. package/dist/components/AgentToolDetail.d.ts +1 -1
  21. package/dist/components/AgentToolDetail.js +2 -2
  22. package/dist/components/Approval.js +1 -1
  23. package/dist/components/Artifact.js +1 -1
  24. package/dist/components/BrowserLiveView.js +1 -1
  25. package/dist/components/BrowserReplay.js +1 -1
  26. package/dist/components/BrowserRunPanel.js +1 -1
  27. package/dist/components/ChainOfThought.d.ts +1 -1
  28. package/dist/components/ChainOfThought.js +1 -1
  29. package/dist/components/ChatGptSignInScreen.js +2 -2
  30. package/dist/components/Checkbox.js +1 -1
  31. package/dist/components/Checkpoint.js +1 -1
  32. package/dist/components/CodeBlock.js +1 -1
  33. package/dist/components/CodexModelSelector.js +1 -1
  34. package/dist/components/Commit.js +2 -2
  35. package/dist/components/ContextMenu.js +1 -1
  36. package/dist/components/Conversation.js +1 -1
  37. package/dist/components/EnvironmentVariables.js +2 -2
  38. package/dist/components/ExpansionState.d.ts +51 -0
  39. package/dist/components/ExpansionState.js +46 -0
  40. package/dist/components/FileTree.js +1 -1
  41. package/dist/components/Goal.d.ts +87 -0
  42. package/dist/components/Goal.js +92 -0
  43. package/dist/components/McpConnectionRequest.js +1 -1
  44. package/dist/components/McpPluginCatalog.js +1 -1
  45. package/dist/components/McpServerPicker.js +1 -1
  46. package/dist/components/MediaPreviewCard.js +13 -2
  47. package/dist/components/Menubar.js +1 -1
  48. package/dist/components/Message.js +1 -1
  49. package/dist/components/MessageScroller.js +1 -1
  50. package/dist/components/MessageScrollerVirtual.d.ts +72 -0
  51. package/dist/components/MessageScrollerVirtual.js +110 -0
  52. package/dist/components/ModelSelector.js +1 -1
  53. package/dist/components/Plan.js +1 -1
  54. package/dist/components/PricingPlanCard.js +1 -1
  55. package/dist/components/PromptInput.js +1 -1
  56. package/dist/components/Queue.js +1 -1
  57. package/dist/components/Reasoning.js +2 -2
  58. package/dist/components/ResponsiveSidebarShell.js +1 -1
  59. package/dist/components/SearchField.js +1 -1
  60. package/dist/components/Select.js +1 -1
  61. package/dist/components/SessionCompaction.d.ts +58 -0
  62. package/dist/components/SessionCompaction.js +117 -0
  63. package/dist/components/Sources.js +1 -1
  64. package/dist/components/Stepper.js +1 -1
  65. package/dist/components/SubagentRunIndicator.js +1 -1
  66. package/dist/components/Task.js +1 -1
  67. package/dist/components/Terminal.js +2 -2
  68. package/dist/components/TestResults.js +1 -1
  69. package/dist/components/ThemeModeControl.js +1 -1
  70. package/dist/components/ThinkChat.d.ts +6 -6
  71. package/dist/components/ThinkChat.js +1 -1
  72. package/dist/components/ThinkChatActivity.d.ts +1 -1
  73. package/dist/components/ThinkChatActivity.js +68 -14
  74. package/dist/components/ThinkChatContext.d.ts +2 -2
  75. package/dist/components/ThinkChatContext.js +5 -1
  76. package/dist/components/ThinkChatToolPanels.js +1 -1
  77. package/dist/components/ThinkExecutionDetail.js +1 -1
  78. package/dist/components/ThinkExecutionStatus.js +1 -1
  79. package/dist/components/ThinkExecutionWorkbench.d.ts +4 -3
  80. package/dist/components/ThinkExecutionWorkbench.js +7 -10
  81. package/dist/components/ThinkFullApp.js +65 -54
  82. package/dist/components/ThinkRecoveryNotice.d.ts +1 -1
  83. package/dist/components/ThinkRoutineBrowser.js +1 -1
  84. package/dist/components/ThinkRoutineForm.js +1 -1
  85. package/dist/components/ThinkRoutineLibrary.js +1 -1
  86. package/dist/components/ThinkThreadPicker.js +1 -1
  87. package/dist/components/Toast.js +1 -1
  88. package/dist/components/ToolInvocation.d.ts +8 -1
  89. package/dist/components/ToolInvocation.js +3 -2
  90. package/dist/components/WebPreview.js +1 -1
  91. package/dist/components/WorkspaceBrowser.js +1 -1
  92. package/dist/components/WorkspaceExplorer.js +1 -1
  93. package/dist/components/WorkspaceFileView.js +1 -1
  94. package/dist/components/WorkspaceHeader.js +1 -1
  95. package/dist/components/icons.d.ts +2 -2
  96. package/dist/components/icons.js +2 -2
  97. package/dist/{copy-button-TWq8nZhc.js → copy-button-Buxmtmp9.js} +1 -1
  98. package/dist/{icons-wP1yFUXF.d.ts → icons-Cih3W-zM.d.ts} +6 -1
  99. package/dist/{icons-ua6f_GH3.js → icons-w5PpKGRz.js} +3 -2
  100. package/dist/styles/activity.css +6 -0
  101. package/dist/styles/agent-chat.css +20 -4
  102. package/dist/styles/composition-motion.css +13 -23
  103. package/dist/styles/goal.css +57 -0
  104. package/dist/styles/index.css +1 -0
  105. package/dist/styles/message-scroller.css +25 -0
  106. package/dist/styles/responsive-sidebar-shell.css +12 -0
  107. package/dist/styles/think-full-app.css +22 -14
  108. package/package.json +7 -6
  109. package/dist/view-transitions-DyUP0lSg.js +0 -77
@@ -178,6 +178,20 @@ body.is-resizing-side-panel .think-full-app__view-scope {
178
178
  }
179
179
 
180
180
  @container think-full-app (inline-size <= 56rem) {
181
+ /* A side panel or phone has no desktop chrome around the app, so the
182
+ floating application plane reads as a card in a frame. Flatten to one
183
+ edge-to-edge surface, app bar included — the frame never shows. */
184
+ .think-full-app > .think-full-app__view-scope,
185
+ .think-full-app[data-has-workbench-topbar="false"] > .think-full-app__view-scope {
186
+ margin: 0;
187
+ border-radius: 0;
188
+ box-shadow: none;
189
+ }
190
+
191
+ .think-full-app > .think-full-app__app-bar {
192
+ background: var(--sigvelo-color-surface);
193
+ }
194
+
181
195
  .think-full-app__workbench-view-switch {
182
196
  display: none;
183
197
  }
@@ -254,28 +268,22 @@ body.is-resizing-side-panel .think-full-app__view-scope {
254
268
  }
255
269
 
256
270
  .think-full-app .think-full-app__chat .message-scroller__viewport {
257
- --message-scroller-fade-t-size: 3rem;
258
- --message-scroller-fade-b-size: 3rem;
259
- }
260
-
261
- .think-full-app .think-full-app__chat .message-scroller__viewport[data-scrollable~="start"] {
262
- --message-scroller-fade-t: var(--message-scroller-fade-t-size);
271
+ --message-scroller-fade-size: 3rem;
263
272
  }
264
273
 
265
274
  .think-full-app .think-full-app__chat .agent-chat__transcript-content {
266
- gap: var(--sigvelo-spacing-2-5);
267
- padding-block-start: calc(var(--sigvelo-spacing-5) + env(safe-area-inset-top, 0px));
275
+ --message-scroller-virtual-block-start: calc(
276
+ var(--sigvelo-spacing-5) + env(safe-area-inset-top, 0px)
277
+ );
278
+
279
+ padding-block-start: var(--message-scroller-virtual-block-start);
280
+ /* Matches Codex's side-panel gutter (--padding-panel: 12px). */
268
281
  padding-inline: var(--sigvelo-spacing-3);
269
282
  }
270
283
 
284
+ /* The base composer scrim already dissolves the transcript above the box. */
271
285
  .think-full-app .agent-chat__composer {
272
286
  padding: var(--sigvelo-spacing-2);
273
- padding-block-start: var(--sigvelo-spacing-4);
274
- background: linear-gradient(
275
- to top,
276
- var(--sigvelo-color-surface) calc(100% - var(--sigvelo-spacing-4)),
277
- transparent
278
- );
279
287
  }
280
288
 
281
289
  .think-full-app .prompt-input {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-b/react-components",
3
- "version": "0.24.0",
3
+ "version": "0.25.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": {
@@ -47,6 +47,7 @@
47
47
  "@streamdown/code": "^1.1.1",
48
48
  "@streamdown/math": "^1.0.2",
49
49
  "@streamdown/mermaid": "^1.0.2",
50
+ "@tanstack/react-virtual": "^3.14.8",
50
51
  "agent-skills-ts-sdk": "^2.4.1",
51
52
  "anser": "^2.3.5",
52
53
  "cloudflare": "^7.0.0",
@@ -57,7 +58,7 @@
57
58
  "streamdown": "^2.5.0",
58
59
  "unist-util-visit": "^5.1.0",
59
60
  "yet-another-react-lightbox": "^3.32.1",
60
- "@mcp-b/design-tokens": "0.24.0"
61
+ "@mcp-b/design-tokens": "0.25.0"
61
62
  },
62
63
  "devDependencies": {
63
64
  "@ai-sdk/react": "^3.0.222",
@@ -83,8 +84,8 @@
83
84
  "agents": "^0.17.4",
84
85
  "ai": "^6.0.220",
85
86
  "playwright": "^1.61.0",
86
- "react": "^19.2.7",
87
- "react-dom": "^19.2.7",
87
+ "react": "19.3.0-canary-711c445b-20260722",
88
+ "react-dom": "19.3.0-canary-711c445b-20260722",
88
89
  "storybook": "^10.5.2",
89
90
  "typescript": "^6.0.3",
90
91
  "vite": "npm:@voidzero-dev/vite-plus-core@0.2.4",
@@ -100,8 +101,8 @@
100
101
  "@tanstack/react-router": "^1.170.18",
101
102
  "agents": "^0.17.4",
102
103
  "ai": "^6.0.182",
103
- "react": "^19.0.0",
104
- "react-dom": "^19.0.0"
104
+ "react": "19.3.0-canary-711c445b-20260722",
105
+ "react-dom": "19.3.0-canary-711c445b-20260722"
105
106
  },
106
107
  "peerDependenciesMeta": {
107
108
  "@ai-sdk/react": {
@@ -1,77 +0,0 @@
1
- import { flushSync } from "react-dom";
2
- //#region src/components/_internal/view-transitions.ts
3
- let documentScopeSequence = 0;
4
- let restoreActiveDocumentScope = null;
5
- /**
6
- * Reports whether motion should be suppressed, honoring both the app-level
7
- * `data-motion="reduce"` override and the `prefers-reduced-motion` media query.
8
- * Returns `true` (reduced) when there is no document, e.g. during SSR.
9
- */
10
- function motionIsReduced() {
11
- if (typeof document === "undefined") return true;
12
- if (document.documentElement.dataset.motion === "reduce") return true;
13
- return window.matchMedia?.("(prefers-reduced-motion: reduce)").matches ?? false;
14
- }
15
- function isReactTestEnvironment() {
16
- return globalThis.IS_REACT_ACT_ENVIRONMENT;
17
- }
18
- function scopeDocumentTransition(scope) {
19
- if (!(scope instanceof HTMLElement || scope instanceof SVGElement)) return null;
20
- restoreActiveDocumentScope?.();
21
- const rootStyle = document.documentElement.style;
22
- const scopeStyle = scope.style;
23
- const rootValue = rootStyle.getPropertyValue("view-transition-name");
24
- const rootPriority = rootStyle.getPropertyPriority("view-transition-name");
25
- const scopeValue = scopeStyle.getPropertyValue("view-transition-name");
26
- const scopePriority = scopeStyle.getPropertyPriority("view-transition-name");
27
- rootStyle.setProperty("view-transition-name", "none", "important");
28
- scopeStyle.setProperty("view-transition-name", `sigvelo-transition-scope-${++documentScopeSequence}`, "important");
29
- let active = true;
30
- const restore = () => {
31
- if (!active) return;
32
- active = false;
33
- if (rootValue) rootStyle.setProperty("view-transition-name", rootValue, rootPriority);
34
- else rootStyle.removeProperty("view-transition-name");
35
- if (scopeValue) scopeStyle.setProperty("view-transition-name", scopeValue, scopePriority);
36
- else scopeStyle.removeProperty("view-transition-name");
37
- if (restoreActiveDocumentScope === restore) restoreActiveDocumentScope = null;
38
- };
39
- restoreActiveDocumentScope = restore;
40
- return restore;
41
- }
42
- /**
43
- * Runs one synchronous React update inside the narrowest supported native view
44
- * transition. Unsupported and reduced-motion environments commit immediately.
45
- */
46
- function runViewTransition({ scope, update }) {
47
- let committed = false;
48
- const commitOnce = () => {
49
- if (committed) return;
50
- committed = true;
51
- flushSync(update);
52
- };
53
- if (typeof document === "undefined" || motionIsReduced() || isReactTestEnvironment()) {
54
- commitOnce();
55
- return null;
56
- }
57
- const scopedHost = scope;
58
- const documentHost = document;
59
- const useScopedHost = typeof scopedHost?.startViewTransition === "function";
60
- const host = useScopedHost ? scopedHost : typeof documentHost.startViewTransition === "function" ? documentHost : null;
61
- if (!host?.startViewTransition) {
62
- commitOnce();
63
- return null;
64
- }
65
- const restoreDocumentScope = useScopedHost ? null : scopeDocumentTransition(scope);
66
- try {
67
- const transition = host.startViewTransition(commitOnce);
68
- if (restoreDocumentScope) transition.finished.finally(restoreDocumentScope).catch(() => void 0);
69
- return transition;
70
- } catch {
71
- restoreDocumentScope?.();
72
- commitOnce();
73
- return null;
74
- }
75
- }
76
- //#endregion
77
- export { runViewTransition as n, motionIsReduced as t };