@mcp-b/react-components 0.6.5 → 0.7.1

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 (91) hide show
  1. package/dist/AgentChat-403mckDG.d.ts +101 -0
  2. package/dist/BrowserLiveView-ZktFZiMD.d.ts +47 -0
  3. package/dist/BrowserReplay-6G-mnwcn.d.ts +40 -0
  4. package/dist/{CodeBlock-BK0sOAbV.js → CodeBlock-D9koxDA7.js} +1 -1
  5. package/dist/{FileTree-BWQZ0FSi.js → FileTree-BdK93Uuu.js} +1 -1
  6. package/dist/ModelSelector-MQvK-pNb.js +306 -0
  7. package/dist/PromptInput-D6-G24p7.d.ts +528 -0
  8. package/dist/ThinkChatActivity-CeHzk6-K.d.ts +73 -0
  9. package/dist/ThinkChatContext-CC94HL4u.d.ts +28 -0
  10. package/dist/ThinkChatToolParts-DnUiZgCC.d.ts +83 -0
  11. package/dist/components/Activity.js +1 -1
  12. package/dist/components/AgentChat.d.ts +1 -103
  13. package/dist/components/AgentChat.js +77 -58
  14. package/dist/components/AgentConnection.d.ts +43 -2
  15. package/dist/components/AgentConnection.js +154 -3
  16. package/dist/components/Artifact.js +1 -1
  17. package/dist/components/BrowserLiveView.d.ts +1 -46
  18. package/dist/components/BrowserLiveView.js +1 -1
  19. package/dist/components/BrowserReplay.d.ts +1 -39
  20. package/dist/components/BrowserReplay.js +1 -1
  21. package/dist/components/ChainOfThought.d.ts +1 -1
  22. package/dist/components/ChainOfThought.js +1 -1
  23. package/dist/components/ChatGptSignInScreen.d.ts +38 -0
  24. package/dist/components/ChatGptSignInScreen.js +201 -0
  25. package/dist/components/CodeBlock.js +1 -1
  26. package/dist/components/Commit.js +1 -1
  27. package/dist/components/Context.d.ts +6 -10
  28. package/dist/components/Context.js +4 -2
  29. package/dist/components/ContextMenu.js +1 -1
  30. package/dist/components/Conversation.d.ts +28 -28
  31. package/dist/components/Conversation.js +36 -55
  32. package/dist/components/Dialog.js +1 -1
  33. package/dist/components/EnvironmentVariables.js +1 -1
  34. package/dist/components/FileTree.js +1 -1
  35. package/dist/components/Marker.d.ts +57 -0
  36. package/dist/components/Marker.js +89 -0
  37. package/dist/components/McpServerPicker.js +1 -1
  38. package/dist/components/Menubar.js +1 -1
  39. package/dist/components/Message.js +1 -1
  40. package/dist/components/MessageScroller.d.ts +52 -0
  41. package/dist/components/MessageScroller.js +62 -0
  42. package/dist/components/ModelSelector.js +1 -305
  43. package/dist/components/NavigationMenu.js +1 -1
  44. package/dist/components/PromptInput.d.ts +2 -534
  45. package/dist/components/PromptInput.js +18 -12
  46. package/dist/components/Queue.js +1 -1
  47. package/dist/components/Reasoning.js +1 -1
  48. package/dist/components/Select.js +1 -1
  49. package/dist/components/Sources.js +1 -1
  50. package/dist/components/Stepper.js +1 -1
  51. package/dist/components/Task.js +1 -1
  52. package/dist/components/Terminal.js +2 -2
  53. package/dist/components/TestResults.js +1 -1
  54. package/dist/components/ThinkChat.d.ts +23 -80
  55. package/dist/components/ThinkChat.js +60 -857
  56. package/dist/components/ThinkChatActivity.d.ts +3 -0
  57. package/dist/components/ThinkChatActivity.js +429 -0
  58. package/dist/components/ThinkChatContext.d.ts +2 -0
  59. package/dist/components/ThinkChatContext.js +10 -0
  60. package/dist/components/ThinkChatToolPanels.d.ts +39 -0
  61. package/dist/components/ThinkChatToolPanels.js +355 -0
  62. package/dist/components/ThinkChatToolParts.d.ts +2 -0
  63. package/dist/components/ThinkChatToolParts.js +66 -0
  64. package/dist/components/ThinkFullApp.d.ts +23 -0
  65. package/dist/components/ThinkFullApp.js +175 -0
  66. package/dist/components/WebPreview.js +1 -1
  67. package/dist/components/WorkspaceExplorer.d.ts +1 -1
  68. package/dist/components/WorkspaceExplorer.js +3 -3
  69. package/dist/components/icons.d.ts +2 -2
  70. package/dist/components/icons.js +2 -2
  71. package/dist/components/useStickToBottom.d.ts +5 -2
  72. package/dist/components/useStickToBottom.js +5 -2
  73. package/dist/{copy-button-CB2MWcau.js → copy-button-TVhDAroI.js} +1 -1
  74. package/dist/{icons-BCNawx-T.js → icons-BAlTbWWP.js} +27 -1
  75. package/dist/{icons-BYpJY6L2.d.ts → icons-BRI54ATJ.d.ts} +2 -1
  76. package/dist/styles/agent-chat.css +15 -3
  77. package/dist/styles/agent-connection.css +33 -4
  78. package/dist/styles/chatgpt-sign-in-screen.css +224 -0
  79. package/dist/styles/code-block.css +6 -4
  80. package/dist/styles/conversation.css +10 -0
  81. package/dist/styles/index.css +4 -0
  82. package/dist/styles/marker.css +95 -0
  83. package/dist/styles/message-scroller.css +113 -0
  84. package/dist/styles/message.css +2 -1
  85. package/dist/styles/prompt-input.css +1 -0
  86. package/dist/styles/scrollbars.css +10 -2
  87. package/dist/styles/streamdown.css +2 -0
  88. package/dist/styles/think-full-app.css +318 -0
  89. package/dist/utils/mcp-server-catalog.d.ts +23 -1
  90. package/dist/utils/mcp-server-catalog.js +27 -1
  91. package/package.json +3 -2
@@ -54,7 +54,8 @@
54
54
  }
55
55
 
56
56
  .message__content :where(pre) {
57
- overflow: auto;
57
+ overflow-x: auto;
58
+ overflow-y: clip;
58
59
  }
59
60
 
60
61
  .message__response {
@@ -205,6 +205,7 @@
205
205
 
206
206
  .prompt-input__submit {
207
207
  flex-shrink: 0;
208
+ border-radius: 999rem;
208
209
  }
209
210
 
210
211
  .prompt-input__submit-spinner {
@@ -2,13 +2,21 @@
2
2
  --scrollbar-thumb: var(--app-scrollbar-thumb, var(--sigvelo-color-neutral-border-muted));
3
3
  --scrollbar-track: var(--app-scrollbar-track, var(--sigvelo-color-neutral-bg-subtle));
4
4
 
5
- overflow: auto;
6
- overscroll-behavior: contain;
7
5
  scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
8
6
  scrollbar-gutter: stable;
9
7
  scrollbar-width: thin;
10
8
  }
11
9
 
10
+ :where(.message__content pre) {
11
+ overflow-x: auto;
12
+ overflow-y: clip;
13
+ }
14
+
15
+ :where(.observability-table-wrap) {
16
+ overflow: auto;
17
+ overscroll-behavior: contain;
18
+ }
19
+
12
20
  @media (prefers-contrast: more) {
13
21
  :where(.message__content pre, .observability-table-wrap) {
14
22
  --scrollbar-thumb: var(--sigvelo-color-text);
@@ -250,6 +250,7 @@ button[data-streamdown="link"] {
250
250
 
251
251
  [data-streamdown="code-block-body"] {
252
252
  overflow-x: auto;
253
+ overflow-y: clip;
253
254
  border-radius: var(--sigvelo-radius-md);
254
255
  }
255
256
 
@@ -261,6 +262,7 @@ button[data-streamdown="link"] {
261
262
  font-family: var(--sigvelo-font-mono);
262
263
  font-size: 0.8125rem;
263
264
  line-height: 1.55;
265
+ overflow: visible;
264
266
  }
265
267
 
266
268
  /* The code plugin emits one <span class="block"> per line with no newline
@@ -0,0 +1,318 @@
1
+ .think-full-app {
2
+ position: relative;
3
+ block-size: 100%;
4
+ min-block-size: 32rem;
5
+ min-inline-size: 0;
6
+ display: grid;
7
+ grid-template-rows: minmax(0, 1fr);
8
+ grid-template-columns: minmax(0, 1fr) var(--think-full-app-files-w, 21.25rem);
9
+ background: var(--sigvelo-color-canvas);
10
+ color: var(--sigvelo-color-text);
11
+ font-family: var(--sigvelo-font-sans);
12
+ transition: grid-template-columns 160ms ease;
13
+ }
14
+
15
+ .think-full-app[data-has-files="false"] {
16
+ grid-template-columns: minmax(0, 1fr);
17
+ }
18
+
19
+ .think-full-app__mobile-header {
20
+ display: none;
21
+ }
22
+
23
+ .think-full-app__chat-surface {
24
+ grid-column: 1;
25
+ grid-row: 1;
26
+ min-inline-size: 0;
27
+ min-block-size: 0;
28
+ display: grid;
29
+ grid-template-rows: minmax(0, 1fr);
30
+ overflow: hidden;
31
+ background: var(--sigvelo-color-surface);
32
+ }
33
+
34
+ .think-full-app__chat,
35
+ .think-full-app__chat-inner {
36
+ min-inline-size: 0;
37
+ min-block-size: 0;
38
+ display: grid;
39
+ grid-template-rows: minmax(0, 1fr);
40
+ overflow: hidden;
41
+ }
42
+
43
+ .think-full-app__chat-inner {
44
+ grid-template-rows: minmax(0, 1fr) auto;
45
+ }
46
+
47
+ .think-full-app__chat .conversation__content {
48
+ inline-size: min(100%, 46rem);
49
+ margin-inline: auto;
50
+ gap: 0.375rem;
51
+ padding-inline: clamp(0.75rem, 2vw, 1.25rem);
52
+ }
53
+
54
+ .think-full-app__chat .message__content {
55
+ max-inline-size: min(42rem, 94%);
56
+ }
57
+
58
+ .think-full-app__chat .message[data-from="assistant"] .message__content {
59
+ inline-size: min(42rem, 96%);
60
+ }
61
+
62
+ .think-full-app__chat .agent-chat__composer {
63
+ padding-inline: 1rem;
64
+ }
65
+
66
+ .think-full-app__chat .agent-chat__composer .prompt-input {
67
+ inline-size: min(100%, 46rem);
68
+ margin-inline: auto;
69
+ }
70
+
71
+ .think-full-app__error {
72
+ inline-size: min(100%, 46rem);
73
+ margin: 0 auto 0.375rem;
74
+ padding: 0.4375rem 0.625rem;
75
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width)
76
+ var(--sigvelo-color-danger-border-subtle);
77
+ border-radius: var(--sigvelo-radius-sm);
78
+ background: var(--sigvelo-color-danger-bg-subtle);
79
+ color: var(--sigvelo-color-danger-text);
80
+ font-size: 0.75rem;
81
+ }
82
+
83
+ .think-full-app__error button {
84
+ margin-inline-start: 0.5rem;
85
+ border: none;
86
+ background: none;
87
+ color: inherit;
88
+ font: inherit;
89
+ text-decoration: underline;
90
+ cursor: pointer;
91
+ }
92
+
93
+ .think-full-app__aside {
94
+ grid-column: 2;
95
+ grid-row: 1;
96
+ min-inline-size: 0;
97
+ min-block-size: 0;
98
+ display: grid;
99
+ grid-template-rows: minmax(0, 1fr);
100
+ overflow: hidden;
101
+ border-inline-start: var(--sigvelo-border-style) var(--sigvelo-border-width)
102
+ var(--sigvelo-color-neutral-border-subtle);
103
+ background: color-mix(
104
+ in oklab,
105
+ var(--sigvelo-color-canvas),
106
+ var(--sigvelo-color-primary-bg-subtle) 18%
107
+ );
108
+ }
109
+
110
+ .think-full-app__resizer {
111
+ position: absolute;
112
+ z-index: 5;
113
+ inset-block: 0;
114
+ inset-inline-end: var(--think-full-app-files-w, 21.25rem);
115
+ inline-size: 0.625rem;
116
+ margin-inline-end: -0.3125rem;
117
+ padding: 0;
118
+ border: 0;
119
+ background: transparent;
120
+ cursor: col-resize;
121
+ touch-action: pan-y;
122
+ appearance: none;
123
+ }
124
+
125
+ .think-full-app__resizer::before {
126
+ content: "";
127
+ position: absolute;
128
+ inset-block: 0;
129
+ inset-inline-start: 50%;
130
+ inline-size: 1px;
131
+ transform: translateX(-50%);
132
+ background: transparent;
133
+ transition: background 120ms ease;
134
+ }
135
+
136
+ .think-full-app__resizer:hover::before,
137
+ .think-full-app__resizer:focus-visible::before,
138
+ body.is-resizing-columns .think-full-app__resizer::before {
139
+ background: color-mix(in srgb, var(--sigvelo-color-primary-text) 38%, transparent);
140
+ }
141
+
142
+ .think-full-app__resizer:focus-visible {
143
+ outline: 2px solid var(--sigvelo-color-focus);
144
+ outline-offset: -2px;
145
+ }
146
+
147
+ body.is-resizing-columns {
148
+ cursor: col-resize;
149
+ user-select: none;
150
+ }
151
+
152
+ body.is-resizing-columns .think-full-app {
153
+ transition: none;
154
+ }
155
+
156
+ .think-full-app__files-slot,
157
+ .think-full-app__workbench {
158
+ min-inline-size: 0;
159
+ min-block-size: 0;
160
+ display: flex;
161
+ flex: 1;
162
+ flex-direction: column;
163
+ overflow: hidden;
164
+ }
165
+
166
+ .think-full-app__workbench {
167
+ background: color-mix(
168
+ in oklab,
169
+ var(--sigvelo-color-canvas),
170
+ var(--sigvelo-color-primary-bg-subtle) 18%
171
+ );
172
+ }
173
+
174
+ .think-full-app__workspace-title {
175
+ display: inline-flex;
176
+ align-items: center;
177
+ min-inline-size: 0;
178
+ gap: 0.375rem;
179
+ }
180
+
181
+ .think-full-app__workspace-back {
182
+ display: none;
183
+ }
184
+
185
+ @media (width <= 56rem) {
186
+ .think-full-app {
187
+ min-block-size: 0;
188
+ grid-template-columns: minmax(0, 1fr);
189
+ grid-template-rows: minmax(0, 1fr);
190
+ }
191
+
192
+ .think-full-app[data-has-files="false"] {
193
+ grid-template-rows: minmax(0, 1fr);
194
+ }
195
+
196
+ .think-full-app__mobile-header {
197
+ position: absolute;
198
+ z-index: 30;
199
+ inset-block-start: 0;
200
+ inset-inline: 0;
201
+ display: flex;
202
+ align-items: center;
203
+ justify-content: flex-end;
204
+ min-block-size: calc(2.5rem + env(safe-area-inset-top, 0px));
205
+ padding-block: calc(0.25rem + env(safe-area-inset-top, 0px)) 0.25rem;
206
+ padding-inline: calc(0.625rem + env(safe-area-inset-left, 0px))
207
+ calc(0.625rem + env(safe-area-inset-right, 0px));
208
+ pointer-events: none;
209
+ }
210
+
211
+ .think-full-app__mobile-action {
212
+ pointer-events: auto;
213
+ border-radius: 999rem;
214
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width)
215
+ color-mix(in oklab, var(--sigvelo-color-neutral-border-subtle), transparent 36%);
216
+ background: color-mix(in oklab, var(--sigvelo-color-surface), transparent 26%);
217
+ color: var(--sigvelo-color-text);
218
+ box-shadow: var(--sigvelo-shadow-xs);
219
+ backdrop-filter: blur(14px) saturate(1.18);
220
+ -webkit-backdrop-filter: blur(14px) saturate(1.18);
221
+ }
222
+
223
+ .think-full-app__mobile-action:hover:not([data-disabled]),
224
+ .think-full-app__mobile-action:focus-visible {
225
+ background: color-mix(in oklab, var(--sigvelo-color-surface), transparent 12%);
226
+ color: var(--sigvelo-color-primary-text);
227
+ }
228
+
229
+ .think-full-app[data-mobile-view="files"] .think-full-app__workspace-back {
230
+ display: inline-flex;
231
+ flex: 0 0 auto;
232
+ border-radius: 999rem;
233
+ background: transparent;
234
+ color: var(--sigvelo-color-text);
235
+ }
236
+
237
+ .think-full-app[data-mobile-view="files"]
238
+ .think-full-app__workspace-back:hover:not([data-disabled]),
239
+ .think-full-app[data-mobile-view="files"] .think-full-app__workspace-back:focus-visible {
240
+ background: color-mix(in srgb, var(--sigvelo-color-surface) 76%, transparent);
241
+ color: var(--sigvelo-color-primary-text);
242
+ }
243
+
244
+ .think-full-app__chat-surface,
245
+ .think-full-app__files-slot,
246
+ .think-full-app__workbench {
247
+ grid-column: 1;
248
+ grid-row: 1;
249
+ min-block-size: 0;
250
+ display: none;
251
+ }
252
+
253
+ .think-full-app__aside {
254
+ display: contents;
255
+ border-inline-start: 0;
256
+ }
257
+
258
+ .think-full-app__resizer {
259
+ display: none;
260
+ }
261
+
262
+ .think-full-app[data-mobile-view="chat"] .think-full-app__chat-surface {
263
+ display: grid;
264
+ }
265
+
266
+ .think-full-app[data-has-files="false"] .think-full-app__chat-surface {
267
+ grid-row: 1;
268
+ }
269
+
270
+ .think-full-app[data-mobile-view="files"] .think-full-app__files-slot,
271
+ .think-full-app[data-mobile-view="files"] .think-full-app__workbench {
272
+ display: flex;
273
+ }
274
+
275
+ .think-full-app__chat .conversation__content {
276
+ inline-size: min(100%, 34rem);
277
+ padding-inline: 1.5rem;
278
+ }
279
+
280
+ .think-full-app[data-has-files="true"] .think-full-app__chat .message-scroller__viewport {
281
+ --message-scroller-fade-t-size: 3rem;
282
+ --message-scroller-fade-b-size: 3rem;
283
+ }
284
+
285
+ .think-full-app[data-has-files="true"]
286
+ .think-full-app__chat
287
+ .message-scroller__viewport[data-scrollable~="start"] {
288
+ --message-scroller-fade-t: var(--message-scroller-fade-t-size);
289
+ }
290
+
291
+ .think-full-app[data-has-files="true"] .think-full-app__chat .agent-chat__transcript-content {
292
+ padding-block-start: calc(2.5rem + env(safe-area-inset-top, 0px));
293
+ }
294
+
295
+ .think-full-app__chat .message__content,
296
+ .think-full-app__chat .message[data-from="assistant"] .message__content {
297
+ max-inline-size: 100%;
298
+ inline-size: min(100%, 34rem);
299
+ }
300
+ }
301
+
302
+ @media (prefers-reduced-motion: reduce) {
303
+ .think-full-app,
304
+ .think-full-app__resizer::before {
305
+ transition: none;
306
+ }
307
+ }
308
+
309
+ @media (forced-colors: active) {
310
+ .think-full-app__chat-surface,
311
+ .think-full-app__aside,
312
+ .think-full-app__workbench {
313
+ border: 1px solid canvastext;
314
+ background: canvas;
315
+ color: canvastext;
316
+ box-shadow: none;
317
+ }
318
+ }
@@ -98,6 +98,27 @@ declare const MCP_SERVER_SETUP_AUTH: {
98
98
  readonly fields: readonly [];
99
99
  };
100
100
  };
101
+ declare const CUSTOM_MCP_SERVER_CARD: {
102
+ readonly id: "localMcp";
103
+ readonly name: "Custom MCP";
104
+ readonly url: "";
105
+ readonly description: "Connect any Streamable HTTP MCP server";
106
+ readonly category: "Manual";
107
+ readonly manualSetup: {
108
+ readonly auth: {
109
+ readonly type: "bearer";
110
+ readonly label: "Optional bearer / API key";
111
+ readonly fields: readonly [{
112
+ readonly name: "bearerToken";
113
+ readonly label: "Bearer";
114
+ readonly inputType: "password";
115
+ readonly placeholder: "Paste token";
116
+ }];
117
+ };
118
+ readonly description: "Enter a server URL and optional bearer token.";
119
+ readonly links: readonly [];
120
+ };
121
+ };
101
122
  declare function getMcpServerIconSrc(server: Pick<McpServerCard, "icon" | "url">): string | undefined;
102
123
  declare function inferMcpServerFaviconUrl(url: string): string | undefined;
103
124
  /** Remote MCP servers whose OAuth metadata exposes a registration_endpoint. */
@@ -907,5 +928,6 @@ declare const MANUAL_MCP_SERVER_CARDS: readonly [{
907
928
  }];
908
929
  };
909
930
  }];
931
+ declare const DEFAULT_MCP_SERVER_CARDS: readonly McpServerCard[];
910
932
  //#endregion
911
- export { DCR_MCP_SERVER_CARDS, MANUAL_MCP_SERVER_CARDS, MCP_SERVER_SETUP_AUTH, McpServerCard, McpServerCardIcon, McpServerManualSetup, McpServerPickerStatus, McpServerSetupAuth, McpServerSetupAuthField, McpServerSetupAuthFieldName, McpServerSetupLink, getMcpServerIconSrc, inferMcpServerFaviconUrl };
933
+ export { CUSTOM_MCP_SERVER_CARD, DCR_MCP_SERVER_CARDS, DEFAULT_MCP_SERVER_CARDS, MANUAL_MCP_SERVER_CARDS, MCP_SERVER_SETUP_AUTH, McpServerCard, McpServerCardIcon, McpServerManualSetup, McpServerPickerStatus, McpServerSetupAuth, McpServerSetupAuthField, McpServerSetupAuthFieldName, McpServerSetupLink, getMcpServerIconSrc, inferMcpServerFaviconUrl };
@@ -72,6 +72,27 @@ const MCP_SERVER_SETUP_AUTH = {
72
72
  fields: []
73
73
  }
74
74
  };
75
+ const CUSTOM_MCP_SERVER_CARD = {
76
+ id: "localMcp",
77
+ name: "Custom MCP",
78
+ url: "",
79
+ description: "Connect any Streamable HTTP MCP server",
80
+ category: MANUAL_CATEGORY,
81
+ manualSetup: {
82
+ auth: {
83
+ type: "bearer",
84
+ label: "Optional bearer / API key",
85
+ fields: [{
86
+ name: "bearerToken",
87
+ label: "Bearer",
88
+ inputType: "password",
89
+ placeholder: "Paste token"
90
+ }]
91
+ },
92
+ description: "Enter a server URL and optional bearer token.",
93
+ links: []
94
+ }
95
+ };
75
96
  function getMcpServerIconSrc(server) {
76
97
  if (typeof server.icon === "string") return server.icon;
77
98
  if (server.icon?.src) return server.icon.src;
@@ -724,5 +745,10 @@ const MANUAL_MCP_SERVER_CARDS = [
724
745
  }
725
746
  }
726
747
  ];
748
+ const DEFAULT_MCP_SERVER_CARDS = [
749
+ ...DCR_MCP_SERVER_CARDS,
750
+ CUSTOM_MCP_SERVER_CARD,
751
+ ...MANUAL_MCP_SERVER_CARDS
752
+ ];
727
753
  //#endregion
728
- export { DCR_MCP_SERVER_CARDS, MANUAL_MCP_SERVER_CARDS, MCP_SERVER_SETUP_AUTH, getMcpServerIconSrc, inferMcpServerFaviconUrl };
754
+ export { CUSTOM_MCP_SERVER_CARD, DCR_MCP_SERVER_CARDS, DEFAULT_MCP_SERVER_CARDS, MANUAL_MCP_SERVER_CARDS, MCP_SERVER_SETUP_AUTH, getMcpServerIconSrc, inferMcpServerFaviconUrl };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-b/react-components",
3
- "version": "0.6.5",
3
+ "version": "0.7.1",
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": {
@@ -42,6 +42,7 @@
42
42
  "@base-ui/react": "~1.6.0",
43
43
  "@cloudflare/codemode": "^0.4.2",
44
44
  "@rrweb/replay": "^2.1.0",
45
+ "@shadcn/react": "^0.2.0",
45
46
  "@streamdown/cjk": "^1.0.3",
46
47
  "@streamdown/code": "^1.1.1",
47
48
  "@streamdown/math": "^1.0.2",
@@ -49,7 +50,7 @@
49
50
  "anser": "^2.3.5",
50
51
  "shiki": "^3.23.0",
51
52
  "streamdown": "^2.5.0",
52
- "@mcp-b/design-tokens": "0.6.5"
53
+ "@mcp-b/design-tokens": "0.7.1"
53
54
  },
54
55
  "devDependencies": {
55
56
  "@ai-sdk/react": "^3.0.194",