@assistant-ui/mcp-docs-server 0.1.20 → 0.1.21
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.
- package/.docs/organized/code-examples/with-ag-ui.md +112 -16
- package/.docs/organized/code-examples/with-ai-sdk-v6.md +5 -5
- package/.docs/organized/code-examples/with-assistant-transport.md +3 -3
- package/.docs/organized/code-examples/with-cloud.md +5 -5
- package/.docs/organized/code-examples/with-custom-thread-list.md +5 -5
- package/.docs/organized/code-examples/with-elevenlabs-scribe.md +8 -8
- package/.docs/organized/code-examples/with-external-store.md +4 -4
- package/.docs/organized/code-examples/with-ffmpeg.md +5 -5
- package/.docs/organized/code-examples/with-langgraph.md +3 -3
- package/.docs/organized/code-examples/with-parent-id-grouping.md +4 -4
- package/.docs/organized/code-examples/with-react-hook-form.md +6 -6
- package/.docs/organized/code-examples/with-react-router.md +4 -4
- package/.docs/organized/code-examples/with-store.md +3 -3
- package/.docs/organized/code-examples/with-tanstack.md +6 -6
- package/.docs/organized/code-examples/with-tap-runtime.md +812 -0
- package/.docs/raw/docs/(docs)/copilots/make-assistant-tool-ui.mdx +0 -1
- package/.docs/raw/docs/(docs)/copilots/make-assistant-tool.mdx +0 -1
- package/.docs/raw/docs/(docs)/devtools.mdx +0 -1
- package/.docs/raw/docs/(docs)/guides/attachments.mdx +0 -1
- package/.docs/raw/docs/(docs)/installation.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/context-providers/assistant-runtime-provider.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/context-providers/text-message-part-provider.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-data-stream.mdx +1 -2
- package/.docs/raw/docs/(reference)/api-reference/integrations/react-hook-form.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/integrations/vercel-ai-sdk.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar-more.mdx +13 -45
- package/.docs/raw/docs/(reference)/api-reference/primitives/action-bar.mdx +12 -35
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-if.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/primitives/assistant-modal.mdx +3 -11
- package/.docs/raw/docs/(reference)/api-reference/primitives/attachment.mdx +0 -3
- package/.docs/raw/docs/(reference)/api-reference/primitives/branch-picker.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/primitives/composer.mdx +5 -16
- package/.docs/raw/docs/(reference)/api-reference/primitives/composition.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/primitives/error.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/primitives/message-part.mdx +1 -2
- package/.docs/raw/docs/(reference)/api-reference/primitives/message.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/primitives/suggestion.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item-more.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list-item.mdx +1 -2
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread-list.mdx +1 -2
- package/.docs/raw/docs/(reference)/api-reference/primitives/thread.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/runtimes/assistant-runtime.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/runtimes/attachment-runtime.mdx +1 -2
- package/.docs/raw/docs/(reference)/api-reference/runtimes/composer-runtime.mdx +2 -3
- package/.docs/raw/docs/(reference)/api-reference/runtimes/message-part-runtime.mdx +1 -2
- package/.docs/raw/docs/(reference)/api-reference/runtimes/message-runtime.mdx +1 -2
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-item-runtime.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-list-runtime.mdx +0 -1
- package/.docs/raw/docs/(reference)/api-reference/runtimes/thread-runtime.mdx +1 -2
- package/.docs/raw/docs/(reference)/legacy/styled/assistant-modal.mdx +0 -1
- package/.docs/raw/docs/(reference)/legacy/styled/markdown.mdx +0 -1
- package/.docs/raw/docs/(reference)/legacy/styled/thread.mdx +0 -1
- package/.docs/raw/docs/(reference)/react-compatibility.mdx +0 -1
- package/.docs/raw/docs/cloud/persistence/ai-sdk.mdx +0 -1
- package/.docs/raw/docs/cloud/persistence/langgraph.mdx +0 -1
- package/.docs/raw/docs/runtimes/ai-sdk/v4-legacy.mdx +0 -1
- package/.docs/raw/docs/runtimes/ai-sdk/v5-legacy.mdx +118 -0
- package/.docs/raw/docs/runtimes/ai-sdk/v6.mdx +198 -0
- package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +0 -1
- package/.docs/raw/docs/runtimes/custom/external-store.mdx +9 -11
- package/.docs/raw/docs/runtimes/custom/local.mdx +0 -2
- package/.docs/raw/docs/runtimes/data-stream.mdx +0 -1
- package/.docs/raw/docs/runtimes/langgraph/index.mdx +1 -2
- package/.docs/raw/docs/runtimes/langgraph/tutorial/part-3.mdx +0 -1
- package/.docs/raw/docs/runtimes/langserve.mdx +0 -1
- package/.docs/raw/docs/runtimes/mastra/full-stack-integration.mdx +0 -1
- package/.docs/raw/docs/runtimes/mastra/separate-server-integration.mdx +0 -1
- package/.docs/raw/docs/ui/accordion.mdx +0 -2
- package/.docs/raw/docs/ui/assistant-modal.mdx +1 -3
- package/.docs/raw/docs/ui/assistant-sidebar.mdx +1 -3
- package/.docs/raw/docs/ui/attachment.mdx +0 -2
- package/.docs/raw/docs/ui/badge.mdx +0 -2
- package/.docs/raw/docs/ui/diff-viewer.mdx +279 -0
- package/.docs/raw/docs/ui/file.mdx +0 -1
- package/.docs/raw/docs/ui/image.mdx +0 -1
- package/.docs/raw/docs/ui/markdown.mdx +0 -1
- package/.docs/raw/docs/ui/mermaid.mdx +0 -1
- package/.docs/raw/docs/ui/model-selector.mdx +0 -2
- package/.docs/raw/docs/ui/part-grouping.mdx +2 -3
- package/.docs/raw/docs/ui/reasoning.mdx +2 -3
- package/.docs/raw/docs/ui/scrollbar.mdx +26 -9
- package/.docs/raw/docs/ui/select.mdx +0 -2
- package/.docs/raw/docs/ui/sources.mdx +0 -1
- package/.docs/raw/docs/ui/syntax-highlighting.mdx +8 -63
- package/.docs/raw/docs/ui/tabs.mdx +0 -2
- package/.docs/raw/docs/ui/thread-list.mdx +98 -16
- package/.docs/raw/docs/ui/thread.mdx +1 -3
- package/.docs/raw/docs/ui/tool-fallback.mdx +0 -1
- package/.docs/raw/docs/ui/tool-group.mdx +1 -3
- package/package.json +2 -2
- package/.docs/raw/docs/runtimes/ai-sdk/use-chat.mdx +0 -219
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Diff Viewer"
|
|
3
|
+
description: Render code diffs with syntax highlighting for additions and deletions.
|
|
4
|
+
links:
|
|
5
|
+
- label: parse-diff
|
|
6
|
+
url: https://github.com/sergeyt/parse-diff
|
|
7
|
+
- label: diff
|
|
8
|
+
url: https://github.com/kpdecker/jsdiff
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
import { PreviewCode } from "@/components/docs/preview-code.server";
|
|
12
|
+
import {
|
|
13
|
+
DiffViewerSample,
|
|
14
|
+
DiffViewerSplitSample,
|
|
15
|
+
DiffViewerViewModesSample,
|
|
16
|
+
DiffViewerVariantsSample,
|
|
17
|
+
DiffViewerSizesSample,
|
|
18
|
+
} from "@/components/docs/samples/diff-viewer";
|
|
19
|
+
|
|
20
|
+
<Callout>
|
|
21
|
+
This is a **standalone component** that does not depend on the assistant-ui runtime.
|
|
22
|
+
</Callout>
|
|
23
|
+
|
|
24
|
+
<DiffViewerViewModesSample />
|
|
25
|
+
|
|
26
|
+
## Installation
|
|
27
|
+
|
|
28
|
+
<InstallCommand shadcn={["diff-viewer"]} />
|
|
29
|
+
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
import { DiffViewer } from "@/components/assistant-ui/diff-viewer";
|
|
34
|
+
|
|
35
|
+
// With a unified diff patch
|
|
36
|
+
<DiffViewer patch={diffString} />
|
|
37
|
+
|
|
38
|
+
// With file comparison
|
|
39
|
+
<DiffViewer
|
|
40
|
+
oldFile={{ content: "old content", name: "file.txt" }}
|
|
41
|
+
newFile={{ content: "new content", name: "file.txt" }}
|
|
42
|
+
/>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### As Markdown Language Override
|
|
46
|
+
|
|
47
|
+
Integrate with `MarkdownTextPrimitive` to render diff code blocks:
|
|
48
|
+
|
|
49
|
+
```tsx title="/components/assistant-ui/markdown-text.tsx"
|
|
50
|
+
import { DiffViewer } from "@/components/assistant-ui/diff-viewer"; // [!code ++]
|
|
51
|
+
|
|
52
|
+
const MarkdownTextImpl = () => {
|
|
53
|
+
return (
|
|
54
|
+
<MarkdownTextPrimitive
|
|
55
|
+
remarkPlugins={[remarkGfm]}
|
|
56
|
+
className="aui-md"
|
|
57
|
+
components={defaultComponents}
|
|
58
|
+
componentsByLanguage={{ // [!code ++]
|
|
59
|
+
diff: { // [!code ++]
|
|
60
|
+
SyntaxHighlighter: ({ code }) => <DiffViewer patch={code} /> // [!code ++]
|
|
61
|
+
}, // [!code ++]
|
|
62
|
+
}} // [!code ++]
|
|
63
|
+
/>
|
|
64
|
+
);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export const MarkdownText = memo(MarkdownTextImpl);
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Examples
|
|
71
|
+
|
|
72
|
+
### Unified View
|
|
73
|
+
|
|
74
|
+
Shows all changes in a single column with `+`/`-` indicators. This is the default mode.
|
|
75
|
+
|
|
76
|
+
<DiffViewerSample />
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
<DiffViewer patch={diffString} viewMode="unified" />
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Split View
|
|
83
|
+
|
|
84
|
+
Shows old content on the left, new content on the right side-by-side.
|
|
85
|
+
|
|
86
|
+
<DiffViewerSplitSample />
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
<DiffViewer patch={diffString} viewMode="split" />
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Interactive Mode Toggle
|
|
93
|
+
|
|
94
|
+
<PreviewCode file="components/docs/samples/diff-viewer" name="DiffViewerViewModesSample">
|
|
95
|
+
<DiffViewerViewModesSample />
|
|
96
|
+
</PreviewCode>
|
|
97
|
+
|
|
98
|
+
### Variants
|
|
99
|
+
|
|
100
|
+
<DiffViewerVariantsSample />
|
|
101
|
+
|
|
102
|
+
### Sizes
|
|
103
|
+
|
|
104
|
+
<DiffViewerSizesSample />
|
|
105
|
+
|
|
106
|
+
### Theming
|
|
107
|
+
|
|
108
|
+
DiffViewer uses CSS variables for colors. Override them in your CSS:
|
|
109
|
+
|
|
110
|
+
```css
|
|
111
|
+
[data-slot="diff-viewer"] {
|
|
112
|
+
--diff-add-bg: rgba(46, 160, 67, 0.15);
|
|
113
|
+
--diff-add-text: #1a7f37;
|
|
114
|
+
--diff-add-text-dark: #3fb950;
|
|
115
|
+
--diff-del-bg: rgba(248, 81, 73, 0.15);
|
|
116
|
+
--diff-del-text: #cf222e;
|
|
117
|
+
--diff-del-text-dark: #f85149;
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
| Variable | Description |
|
|
122
|
+
|----------|-------------|
|
|
123
|
+
| `--diff-add-bg` | Background for added lines |
|
|
124
|
+
| `--diff-add-text` | Text color for added lines (light mode) |
|
|
125
|
+
| `--diff-add-text-dark` | Text color for added lines (dark mode) |
|
|
126
|
+
| `--diff-del-bg` | Background for deleted lines |
|
|
127
|
+
| `--diff-del-text` | Text color for deleted lines (light mode) |
|
|
128
|
+
| `--diff-del-text-dark` | Text color for deleted lines (dark mode) |
|
|
129
|
+
|
|
130
|
+
## API Reference
|
|
131
|
+
|
|
132
|
+
### DiffViewer
|
|
133
|
+
|
|
134
|
+
The main component for rendering diffs.
|
|
135
|
+
|
|
136
|
+
<ParametersTable
|
|
137
|
+
type="DiffViewerProps"
|
|
138
|
+
parameters={[
|
|
139
|
+
{
|
|
140
|
+
name: "patch",
|
|
141
|
+
type: "string",
|
|
142
|
+
description: "Unified diff string (e.g., output from git diff).",
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
name: "code",
|
|
146
|
+
type: "string",
|
|
147
|
+
description: "Alias for patch (for markdown integration).",
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
name: "oldFile",
|
|
151
|
+
type: "{ content: string; name?: string }",
|
|
152
|
+
description: "Old file for direct comparison.",
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: "newFile",
|
|
156
|
+
type: "{ content: string; name?: string }",
|
|
157
|
+
description: "New file for direct comparison.",
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
name: "viewMode",
|
|
161
|
+
type: '"unified" | "split"',
|
|
162
|
+
default: '"unified"',
|
|
163
|
+
description: "Display mode for the diff.",
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
name: "variant",
|
|
167
|
+
type: '"default" | "ghost" | "muted"',
|
|
168
|
+
default: '"default"',
|
|
169
|
+
description: "Visual style variant.",
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
name: "size",
|
|
173
|
+
type: '"sm" | "default" | "lg"',
|
|
174
|
+
default: '"default"',
|
|
175
|
+
description: "Font size.",
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
name: "showLineNumbers",
|
|
179
|
+
type: "boolean",
|
|
180
|
+
default: "true",
|
|
181
|
+
description: "Show line numbers.",
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
name: "showIcon",
|
|
185
|
+
type: "boolean",
|
|
186
|
+
default: "true",
|
|
187
|
+
description: "Show file extension badge in header.",
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
name: "showStats",
|
|
191
|
+
type: "boolean",
|
|
192
|
+
default: "true",
|
|
193
|
+
description: "Show addition/deletion counts in header.",
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
name: "className",
|
|
197
|
+
type: "string",
|
|
198
|
+
description: "Additional CSS classes.",
|
|
199
|
+
},
|
|
200
|
+
]}
|
|
201
|
+
/>
|
|
202
|
+
|
|
203
|
+
### Composable API
|
|
204
|
+
|
|
205
|
+
| Component | Description |
|
|
206
|
+
|-----------|-------------|
|
|
207
|
+
| `DiffViewer` | Main component that renders the diff. |
|
|
208
|
+
| `DiffViewerFile` | Wrapper for each file in multi-file diffs. |
|
|
209
|
+
| `DiffViewerHeader` | File name header with icon and stats. |
|
|
210
|
+
| `DiffViewerContent` | Scrollable content area. |
|
|
211
|
+
| `DiffViewerLine` | Individual line in unified mode. |
|
|
212
|
+
| `DiffViewerSplitLine` | Side-by-side line pair in split mode. |
|
|
213
|
+
| `DiffViewerFileBadge` | File extension badge (e.g., "TS"). |
|
|
214
|
+
| `DiffViewerStats` | Addition/deletion count display. |
|
|
215
|
+
|
|
216
|
+
### Style Variants (CVA)
|
|
217
|
+
|
|
218
|
+
| Export | Description |
|
|
219
|
+
|--------|-------------|
|
|
220
|
+
| `diffViewerVariants` | Styles for the root container. |
|
|
221
|
+
| `diffLineVariants` | Background styles for diff lines. |
|
|
222
|
+
| `diffLineTextVariants` | Text color styles for diff lines. |
|
|
223
|
+
|
|
224
|
+
```tsx
|
|
225
|
+
import {
|
|
226
|
+
diffViewerVariants,
|
|
227
|
+
diffLineVariants,
|
|
228
|
+
diffLineTextVariants,
|
|
229
|
+
} from "@/components/assistant-ui/diff-viewer";
|
|
230
|
+
|
|
231
|
+
// Use variants directly
|
|
232
|
+
<div className={diffViewerVariants({ variant: "ghost", size: "sm" })}>
|
|
233
|
+
Custom diff container
|
|
234
|
+
</div>
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Utilities
|
|
238
|
+
|
|
239
|
+
| Export | Description |
|
|
240
|
+
|--------|-------------|
|
|
241
|
+
| `parsePatch(patch)` | Parse unified diff string into structured data. |
|
|
242
|
+
| `computeDiff(old, new)` | Compute diff between two strings. |
|
|
243
|
+
| `ParsedLine` | Type for a single diff line. |
|
|
244
|
+
| `ParsedFile` | Type for a parsed file with lines and stats. |
|
|
245
|
+
| `SplitLinePair` | Type for a side-by-side line pair. |
|
|
246
|
+
|
|
247
|
+
## Styling
|
|
248
|
+
|
|
249
|
+
### Data Attributes
|
|
250
|
+
|
|
251
|
+
Use data attributes for custom styling:
|
|
252
|
+
|
|
253
|
+
| Attribute | Values | Description |
|
|
254
|
+
|-----------|--------|-------------|
|
|
255
|
+
| `data-slot` | `"diff-viewer"`, `"diff-viewer-header"`, `"diff-viewer-line"`, etc. | Component identification |
|
|
256
|
+
| `data-type` | `"add"`, `"del"`, `"normal"`, `"empty"` | Line type |
|
|
257
|
+
| `data-view-mode` | `"unified"`, `"split"` | Current view mode |
|
|
258
|
+
| `data-variant` | `"default"`, `"ghost"`, `"muted"` | Current variant |
|
|
259
|
+
|
|
260
|
+
### Custom CSS Example
|
|
261
|
+
|
|
262
|
+
```css
|
|
263
|
+
[data-slot="diff-viewer"][data-view-mode="split"] {
|
|
264
|
+
/* Custom split view styles */
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
[data-slot="diff-viewer-line"][data-type="add"] {
|
|
268
|
+
/* Custom addition styles */
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
[data-slot="diff-viewer-line"][data-type="del"] {
|
|
272
|
+
/* Custom deletion styles */
|
|
273
|
+
}
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
## Related Components
|
|
277
|
+
|
|
278
|
+
- [Markdown](/docs/ui/markdown) - Rich text rendering where diff viewer can be integrated
|
|
279
|
+
- [Syntax Highlighting](/docs/ui/syntax-highlighting) - Code highlighting for other languages
|
|
@@ -3,7 +3,6 @@ title: File
|
|
|
3
3
|
description: Display file message parts with icon, name, size, and download button.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import { InstallCommand } from "@/components/docs/fumadocs/install/install-command";
|
|
7
6
|
import { FileSample } from "@/components/docs/samples/file";
|
|
8
7
|
|
|
9
8
|
<FileSample />
|
|
@@ -3,7 +3,6 @@ title: Image
|
|
|
3
3
|
description: Display image message parts with preview, loading states, and fullscreen dialog.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import { InstallCommand } from "@/components/docs/fumadocs/install/install-command";
|
|
7
6
|
import { ImageSample } from "@/components/docs/samples/image";
|
|
8
7
|
|
|
9
8
|
<ImageSample />
|
|
@@ -3,7 +3,6 @@ title: Markdown
|
|
|
3
3
|
description: Display rich text with headings, lists, links, and code blocks.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import { InstallCommand } from "@/components/docs/fumadocs/install/install-command";
|
|
7
6
|
import { MarkdownSample } from "@/components/docs/samples/markdown";
|
|
8
7
|
|
|
9
8
|
<MarkdownSample />
|
|
@@ -3,7 +3,6 @@ title: "Mermaid Diagrams"
|
|
|
3
3
|
description: Render Mermaid diagrams in chat messages with streaming support.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import { InstallCommand } from "@/components/docs/fumadocs/install/install-command";
|
|
7
6
|
import { MermaidSample } from "@/components/docs/samples/mermaid";
|
|
8
7
|
|
|
9
8
|
<MermaidSample />
|
|
@@ -3,8 +3,6 @@ title: ModelSelector
|
|
|
3
3
|
description: Model picker with unified overlay positioning and runtime integration.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import { InstallCommand } from "@/components/docs/fumadocs/install/install-command";
|
|
7
|
-
import { ParametersTable } from "@/components/docs/tables/ParametersTable";
|
|
8
6
|
import { ModelSelectorSample } from "@/components/docs/samples/model-selector";
|
|
9
7
|
|
|
10
8
|
A select component that lets users switch between AI models. Uses item-aligned positioning so the selected model overlays the trigger for a unified look. Integrates with assistant-ui's `ModelContext` system to automatically propagate the selected model to your backend.
|
|
@@ -3,7 +3,6 @@ title: Message Part Grouping
|
|
|
3
3
|
description: Organize message parts into custom groups with flexible grouping functions.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import { ParametersTable } from "@/components/docs/tables/ParametersTable";
|
|
7
6
|
import { PartGroupingSample } from "@/components/docs/samples/part-grouping";
|
|
8
7
|
|
|
9
8
|
<PartGroupingSample />
|
|
@@ -464,7 +463,7 @@ type MessagePartGroup = {
|
|
|
464
463
|
|
|
465
464
|
### Group Component Props
|
|
466
465
|
|
|
467
|
-
The Group component receives:
|
|
466
|
+
The `Group` component receives:
|
|
468
467
|
|
|
469
468
|
- `groupKey`: The group identifier (or `undefined` for ungrouped parts)
|
|
470
469
|
- `indices`: Array of indices for the parts in this group
|
|
@@ -535,4 +534,4 @@ const DynamicGroup: FC<
|
|
|
535
534
|
</div>
|
|
536
535
|
);
|
|
537
536
|
};
|
|
538
|
-
```
|
|
537
|
+
```
|
|
@@ -3,7 +3,6 @@ title: Reasoning
|
|
|
3
3
|
description: Collapsible UI for displaying AI reasoning and thinking messages.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import { InstallCommand } from "@/components/docs/fumadocs/install/install-command";
|
|
7
6
|
import { ReasoningSample, ReasoningGroupSample } from "@/components/docs/samples/reasoning";
|
|
8
7
|
|
|
9
8
|
<ReasoningSample />
|
|
@@ -55,8 +54,8 @@ const AssistantMessage: FC = () => {
|
|
|
55
54
|
|
|
56
55
|
The component consists of two parts:
|
|
57
56
|
|
|
58
|
-
1.
|
|
59
|
-
2.
|
|
57
|
+
1. `Reasoning`: Renders individual reasoning message part content (with markdown support)
|
|
58
|
+
2. `ReasoningGroup`: Wraps consecutive reasoning parts in a collapsible container
|
|
60
59
|
|
|
61
60
|
Consecutive reasoning parts are automatically grouped together by the `ReasoningGroup` component.
|
|
62
61
|
|
|
@@ -3,19 +3,28 @@ title: Custom Scrollbar
|
|
|
3
3
|
description: Replace the default scrollbar with a custom Radix UI scroll area.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import { InstallCommand } from "@/components/docs/fumadocs/install/install-command";
|
|
7
6
|
import { ScrollbarSample } from "@/components/docs/samples/scrollbar";
|
|
8
7
|
|
|
9
8
|
<ScrollbarSample />
|
|
10
9
|
|
|
11
|
-
If you want to show a custom scrollbar UI of the
|
|
10
|
+
If you want to show a custom scrollbar UI of the `ThreadPrimitive.Viewport` in place of the system default, you can integrate `@radix-ui/react-scroll-area`.
|
|
12
11
|
An example implementation of this is [shadcn/ui's Scroll Area](https://ui.shadcn.com/docs/components/scroll-area).
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
<Steps>
|
|
15
14
|
|
|
16
|
-
<
|
|
15
|
+
<Step>
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
### Add shadcn Scroll Area
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx shadcn@latest add scroll-area
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
</Step>
|
|
24
|
+
|
|
25
|
+
<Step>
|
|
26
|
+
|
|
27
|
+
### Add Additional Styles
|
|
19
28
|
|
|
20
29
|
The Radix UI Viewport component adds an intermediate `<div data-radix-scroll-area-content>` element.
|
|
21
30
|
Add the following CSS to your `globals.css`:
|
|
@@ -26,11 +35,15 @@ Add the following CSS to your `globals.css`:
|
|
|
26
35
|
}
|
|
27
36
|
```
|
|
28
37
|
|
|
29
|
-
|
|
38
|
+
</Step>
|
|
30
39
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
40
|
+
<Step>
|
|
41
|
+
|
|
42
|
+
### Integrate with Thread
|
|
43
|
+
|
|
44
|
+
- Wrap `ThreadPrimitive.Root` with `<ScrollAreaPrimitive.Root asChild>`
|
|
45
|
+
- Wrap `ThreadPrimitive.Viewport` with `<ScrollAreaPrimitive.Viewport className="thread-viewport" asChild>`
|
|
46
|
+
- Add shadcn's `<ScrollBar />` to `ThreadPrimitive.Root`
|
|
34
47
|
|
|
35
48
|
The resulting MyThread component should look like this:
|
|
36
49
|
|
|
@@ -54,6 +67,10 @@ const MyThread: FC = () => {
|
|
|
54
67
|
};
|
|
55
68
|
```
|
|
56
69
|
|
|
70
|
+
</Step>
|
|
71
|
+
|
|
72
|
+
</Steps>
|
|
73
|
+
|
|
57
74
|
## Related Components
|
|
58
75
|
|
|
59
76
|
- [Thread](/docs/ui/thread) - The main chat interface where the scrollbar is used
|
|
@@ -6,8 +6,6 @@ links:
|
|
|
6
6
|
url: https://www.radix-ui.com/primitives/docs/components/select
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
import { InstallCommand } from "@/components/docs/fumadocs/install/install-command";
|
|
10
|
-
import { ParametersTable } from "@/components/docs/tables/ParametersTable";
|
|
11
9
|
import { PreviewCode } from "@/components/docs/preview-code.server";
|
|
12
10
|
import {
|
|
13
11
|
SelectSample,
|
|
@@ -3,7 +3,6 @@ title: Sources
|
|
|
3
3
|
description: Display URL sources with favicon, title, and external link.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import { InstallCommand } from "@/components/docs/fumadocs/install/install-command";
|
|
7
6
|
import { SourcesSample } from "@/components/docs/samples/sources";
|
|
8
7
|
|
|
9
8
|
<SourcesSample />
|
|
@@ -3,7 +3,6 @@ title: Syntax Highlighting
|
|
|
3
3
|
description: Code block syntax highlighting with react-shiki or react-syntax-highlighter.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import { InstallCommand } from "@/components/docs/fumadocs/install/install-command";
|
|
7
6
|
import { SyntaxHighlightingSample } from "@/components/docs/samples/syntax-highlighting";
|
|
8
7
|
|
|
9
8
|
<SyntaxHighlightingSample />
|
|
@@ -51,68 +50,14 @@ export const defaultComponents = memoizeMarkdownComponents({
|
|
|
51
50
|
|
|
52
51
|
### Options
|
|
53
52
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
"https://github.com/AVGVSTVS96/react-shiki/blob/694433ef697c9791b3816cf94d12d571e8abbb3a/package/src/types.ts#L51",
|
|
63
|
-
default: "github-dark",
|
|
64
|
-
required: true,
|
|
65
|
-
},
|
|
66
|
-
language: {
|
|
67
|
-
description:
|
|
68
|
-
"Shiki built-in or custom textmate grammar object for highlighting",
|
|
69
|
-
type: "Language (string | object)",
|
|
70
|
-
typeDescriptionLink:
|
|
71
|
-
"https://github.com/AVGVSTVS96/react-shiki/blob/694433ef697c9791b3816cf94d12d571e8abbb3a/package/src/types.ts#L24",
|
|
72
|
-
default: "text",
|
|
73
|
-
required: true,
|
|
74
|
-
},
|
|
75
|
-
as: {
|
|
76
|
-
description: "The code block container element type",
|
|
77
|
-
type: "React.ElementType",
|
|
78
|
-
default: "pre",
|
|
79
|
-
},
|
|
80
|
-
className: {
|
|
81
|
-
description: "Custom CSS classes for the code block container element",
|
|
82
|
-
type: "string",
|
|
83
|
-
default: "",
|
|
84
|
-
},
|
|
85
|
-
style: {
|
|
86
|
-
description: "Inline styles for the code block container element",
|
|
87
|
-
type: "React.CSSProperties",
|
|
88
|
-
default: undefined,
|
|
89
|
-
},
|
|
90
|
-
delay: {
|
|
91
|
-
description:
|
|
92
|
-
"Delay in milliseconds between consecutive highlights, useful for streamed code responses.",
|
|
93
|
-
type: "number",
|
|
94
|
-
default: 0,
|
|
95
|
-
},
|
|
96
|
-
customLanguages: {
|
|
97
|
-
description: "Custom languages to preload for highlighting",
|
|
98
|
-
type: "Language[]",
|
|
99
|
-
typeDescriptionLink:
|
|
100
|
-
"https://github.com/AVGVSTVS96/react-shiki/blob/694433ef697c9791b3816cf94d12d571e8abbb3a/package/src/types.ts#L24",
|
|
101
|
-
default: "",
|
|
102
|
-
},
|
|
103
|
-
codeToHastOptions: {
|
|
104
|
-
description: "All other options supported by Shiki's `codeToHast`",
|
|
105
|
-
type: "CodeToHastOptions",
|
|
106
|
-
typeDescriptionLink:
|
|
107
|
-
"https://github.com/shikijs/shiki/blob/main/packages/types/src/options.ts#L121",
|
|
108
|
-
default: "{}",
|
|
109
|
-
required: true,
|
|
110
|
-
},
|
|
111
|
-
// This reverts the order of the type table, fumadocs reversed the order on 4/22/25 in:
|
|
112
|
-
// https://github.com/fuma-nama/fumadocs/commit/3a5595aa65acfa5c20be2377d09c03fbb1de72a6
|
|
113
|
-
}).reverse(),
|
|
114
|
-
)}
|
|
115
|
-
/>
|
|
53
|
+
See [react-shiki documentation](https://github.com/AVGVSTVS96/react-shiki#props) for all available options.
|
|
54
|
+
|
|
55
|
+
Key options:
|
|
56
|
+
- `theme` - Shiki theme (default: `"github-dark"`)
|
|
57
|
+
- `language` - Language for highlighting (default: `"text"`)
|
|
58
|
+
- `delay` - Delay between highlights, useful for streaming (default: `0`)
|
|
59
|
+
- `customLanguages` - Custom languages to preload
|
|
60
|
+
- `codeToHastOptions` - Options passed to Shiki's `codeToHast`
|
|
116
61
|
|
|
117
62
|
### Bundle Optimization
|
|
118
63
|
|
|
@@ -6,8 +6,6 @@ links:
|
|
|
6
6
|
url: https://www.radix-ui.com/primitives/docs/components/tabs
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
import { InstallCommand } from "@/components/docs/fumadocs/install/install-command";
|
|
10
|
-
import { ParametersTable } from "@/components/docs/tables/ParametersTable";
|
|
11
9
|
import { PreviewCode } from "@/components/docs/preview-code.server";
|
|
12
10
|
import {
|
|
13
11
|
TabsSample,
|