@assistant-ui/mcp-docs-server 0.1.17 → 0.1.18
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 +146 -152
- package/.docs/organized/code-examples/with-ai-sdk-v5.md +96 -101
- package/.docs/organized/code-examples/with-assistant-transport.md +132 -220
- package/.docs/organized/code-examples/with-cloud.md +124 -131
- package/.docs/organized/code-examples/with-custom-thread-list.md +26 -46
- package/.docs/organized/code-examples/with-external-store.md +146 -151
- package/.docs/organized/code-examples/with-ffmpeg.md +129 -139
- package/.docs/organized/code-examples/with-langgraph.md +231 -225
- package/.docs/organized/code-examples/with-parent-id-grouping.md +146 -151
- package/.docs/organized/code-examples/with-react-hook-form.md +146 -152
- package/.docs/organized/code-examples/{store-example.md → with-store.md} +16 -20
- package/.docs/organized/code-examples/with-tanstack.md +23 -41
- package/.docs/raw/docs/runtimes/custom/custom-thread-list.mdx +36 -0
- package/.docs/raw/docs/runtimes/custom/local.mdx +31 -8
- package/.docs/raw/docs/ui/Scrollbar.mdx +0 -6
- package/dist/constants.d.ts +10 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +14 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -1
- package/dist/index.js.map +1 -0
- package/dist/prepare-docs/code-examples.d.ts +2 -0
- package/dist/prepare-docs/code-examples.d.ts.map +1 -0
- package/dist/prepare-docs/code-examples.js +129 -0
- package/dist/prepare-docs/code-examples.js.map +1 -0
- package/dist/prepare-docs/copy-raw.d.ts +2 -0
- package/dist/prepare-docs/copy-raw.d.ts.map +1 -0
- package/dist/prepare-docs/copy-raw.js +50 -0
- package/dist/prepare-docs/copy-raw.js.map +1 -0
- package/dist/prepare-docs/prepare.d.ts +2 -0
- package/dist/prepare-docs/prepare.d.ts.map +1 -0
- package/dist/prepare-docs/prepare.js +18 -195
- package/dist/prepare-docs/prepare.js.map +1 -0
- package/dist/stdio.d.ts +3 -0
- package/dist/stdio.d.ts.map +1 -0
- package/dist/stdio.js +4 -5
- package/dist/stdio.js.map +1 -0
- package/dist/tools/docs.d.ts +23 -0
- package/dist/tools/docs.d.ts.map +1 -0
- package/dist/tools/docs.js +168 -0
- package/dist/tools/docs.js.map +1 -0
- package/dist/tools/examples.d.ts +23 -0
- package/dist/tools/examples.d.ts.map +1 -0
- package/dist/tools/examples.js +95 -0
- package/dist/tools/examples.js.map +1 -0
- package/dist/tools/tests/test-setup.d.ts +4 -0
- package/dist/tools/tests/test-setup.d.ts.map +1 -0
- package/dist/tools/tests/test-setup.js +36 -0
- package/dist/tools/tests/test-setup.js.map +1 -0
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +20 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/mcp-format.d.ts +7 -0
- package/dist/utils/mcp-format.d.ts.map +1 -0
- package/dist/utils/mcp-format.js +11 -0
- package/dist/utils/mcp-format.js.map +1 -0
- package/dist/utils/mdx.d.ts +9 -0
- package/dist/utils/mdx.d.ts.map +1 -0
- package/dist/utils/mdx.js +27 -0
- package/dist/utils/mdx.js.map +1 -0
- package/dist/utils/paths.d.ts +8 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +84 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/security.d.ts +2 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js +43 -0
- package/dist/utils/security.js.map +1 -0
- package/package.json +37 -19
- package/src/constants.ts +22 -0
- package/src/index.ts +51 -0
- package/src/prepare-docs/code-examples.ts +158 -0
- package/src/prepare-docs/copy-raw.ts +55 -0
- package/src/prepare-docs/prepare.ts +24 -0
- package/src/stdio.ts +7 -0
- package/src/tools/docs.ts +207 -0
- package/src/tools/examples.ts +107 -0
- package/src/tools/tests/docs.test.ts +122 -0
- package/src/tools/tests/examples.test.ts +94 -0
- package/src/tools/tests/integration.test.ts +46 -0
- package/src/tools/tests/json-parsing.test.ts +23 -0
- package/src/tools/tests/mcp-protocol.test.ts +133 -0
- package/src/tools/tests/path-traversal.test.ts +81 -0
- package/src/tools/tests/test-setup.ts +40 -0
- package/src/utils/logger.ts +20 -0
- package/src/utils/mcp-format.ts +12 -0
- package/src/utils/mdx.ts +39 -0
- package/src/utils/paths.ts +114 -0
- package/src/utils/security.ts +52 -0
- package/src/utils/tests/security.test.ts +119 -0
- package/dist/chunk-M2RKUM66.js +0 -38
- package/dist/chunk-NVNFQ5ZO.js +0 -423
|
@@ -9,43 +9,41 @@
|
|
|
9
9
|
@custom-variant dark (&:is(.dark *));
|
|
10
10
|
|
|
11
11
|
@theme inline {
|
|
12
|
-
--color-background: var(--background);
|
|
13
|
-
--color-foreground: var(--foreground);
|
|
14
|
-
--font-sans: var(--font-geist-sans);
|
|
15
|
-
--font-mono: var(--font-geist-mono);
|
|
16
|
-
--color-sidebar-ring: var(--sidebar-ring);
|
|
17
|
-
--color-sidebar-border: var(--sidebar-border);
|
|
18
|
-
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
19
|
-
--color-sidebar-accent: var(--sidebar-accent);
|
|
20
|
-
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
21
|
-
--color-sidebar-primary: var(--sidebar-primary);
|
|
22
|
-
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
23
|
-
--color-sidebar: var(--sidebar);
|
|
24
|
-
--color-chart-5: var(--chart-5);
|
|
25
|
-
--color-chart-4: var(--chart-4);
|
|
26
|
-
--color-chart-3: var(--chart-3);
|
|
27
|
-
--color-chart-2: var(--chart-2);
|
|
28
|
-
--color-chart-1: var(--chart-1);
|
|
29
|
-
--color-ring: var(--ring);
|
|
30
|
-
--color-input: var(--input);
|
|
31
|
-
--color-border: var(--border);
|
|
32
|
-
--color-destructive: var(--destructive);
|
|
33
|
-
--color-accent-foreground: var(--accent-foreground);
|
|
34
|
-
--color-accent: var(--accent);
|
|
35
|
-
--color-muted-foreground: var(--muted-foreground);
|
|
36
|
-
--color-muted: var(--muted);
|
|
37
|
-
--color-secondary-foreground: var(--secondary-foreground);
|
|
38
|
-
--color-secondary: var(--secondary);
|
|
39
|
-
--color-primary-foreground: var(--primary-foreground);
|
|
40
|
-
--color-primary: var(--primary);
|
|
41
|
-
--color-popover-foreground: var(--popover-foreground);
|
|
42
|
-
--color-popover: var(--popover);
|
|
43
|
-
--color-card-foreground: var(--card-foreground);
|
|
44
|
-
--color-card: var(--card);
|
|
45
12
|
--radius-sm: calc(var(--radius) - 4px);
|
|
46
13
|
--radius-md: calc(var(--radius) - 2px);
|
|
47
14
|
--radius-lg: var(--radius);
|
|
48
15
|
--radius-xl: calc(var(--radius) + 4px);
|
|
16
|
+
--color-background: var(--background);
|
|
17
|
+
--color-foreground: var(--foreground);
|
|
18
|
+
--color-card: var(--card);
|
|
19
|
+
--color-card-foreground: var(--card-foreground);
|
|
20
|
+
--color-popover: var(--popover);
|
|
21
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
22
|
+
--color-primary: var(--primary);
|
|
23
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
24
|
+
--color-secondary: var(--secondary);
|
|
25
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
26
|
+
--color-muted: var(--muted);
|
|
27
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
28
|
+
--color-accent: var(--accent);
|
|
29
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
30
|
+
--color-destructive: var(--destructive);
|
|
31
|
+
--color-border: var(--border);
|
|
32
|
+
--color-input: var(--input);
|
|
33
|
+
--color-ring: var(--ring);
|
|
34
|
+
--color-chart-1: var(--chart-1);
|
|
35
|
+
--color-chart-2: var(--chart-2);
|
|
36
|
+
--color-chart-3: var(--chart-3);
|
|
37
|
+
--color-chart-4: var(--chart-4);
|
|
38
|
+
--color-chart-5: var(--chart-5);
|
|
39
|
+
--color-sidebar: var(--sidebar);
|
|
40
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
41
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
42
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
43
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
44
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
45
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
46
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
49
47
|
}
|
|
50
48
|
|
|
51
49
|
:root {
|
|
@@ -971,7 +969,7 @@ const ThreadScrollToBottom: FC = () => {
|
|
|
971
969
|
<TooltipIconButton
|
|
972
970
|
tooltip="Scroll to bottom"
|
|
973
971
|
variant="outline"
|
|
974
|
-
className="aui-thread-scroll-to-bottom -top-12
|
|
972
|
+
className="aui-thread-scroll-to-bottom absolute -top-12 z-10 self-center rounded-full p-4 disabled:invisible dark:bg-background dark:hover:bg-accent"
|
|
975
973
|
>
|
|
976
974
|
<ArrowDownIcon />
|
|
977
975
|
</TooltipIconButton>
|
|
@@ -1135,7 +1133,7 @@ const AssistantActionBar: FC = () => {
|
|
|
1135
1133
|
hideWhenRunning
|
|
1136
1134
|
autohide="not-last"
|
|
1137
1135
|
autohideFloat="single-branch"
|
|
1138
|
-
className="aui-assistant-action-bar-root
|
|
1136
|
+
className="aui-assistant-action-bar-root col-start-3 row-start-2 -ml-1 flex gap-1 text-muted-foreground data-floating:absolute data-floating:rounded-md data-floating:border data-floating:bg-background data-floating:p-1 data-floating:shadow-sm"
|
|
1139
1137
|
>
|
|
1140
1138
|
<ActionBarPrimitive.Copy asChild>
|
|
1141
1139
|
<TooltipIconButton tooltip="Copy">
|
|
@@ -1173,12 +1171,12 @@ const UserMessage: FC = () => {
|
|
|
1173
1171
|
<div className="aui-user-message-content wrap-break-word rounded-2xl bg-muted px-4 py-2.5 text-foreground">
|
|
1174
1172
|
<MessagePrimitive.Parts />
|
|
1175
1173
|
</div>
|
|
1176
|
-
<div className="aui-user-action-bar-wrapper -translate-x-full -translate-y-1/2
|
|
1174
|
+
<div className="aui-user-action-bar-wrapper absolute top-1/2 left-0 -translate-x-full -translate-y-1/2 pr-2">
|
|
1177
1175
|
<UserActionBar />
|
|
1178
1176
|
</div>
|
|
1179
1177
|
</div>
|
|
1180
1178
|
|
|
1181
|
-
<BranchPicker className="aui-user-branch-picker
|
|
1179
|
+
<BranchPicker className="aui-user-branch-picker col-span-full col-start-1 row-start-3 -mr-1 justify-end" />
|
|
1182
1180
|
</MessagePrimitive.Root>
|
|
1183
1181
|
);
|
|
1184
1182
|
};
|
|
@@ -1230,7 +1228,7 @@ const BranchPicker: FC<BranchPickerPrimitive.Root.Props> = ({
|
|
|
1230
1228
|
<BranchPickerPrimitive.Root
|
|
1231
1229
|
hideWhenSingleBranch
|
|
1232
1230
|
className={cn(
|
|
1233
|
-
"aui-branch-picker-root -
|
|
1231
|
+
"aui-branch-picker-root mr-2 -ml-2 inline-flex items-center text-muted-foreground text-xs",
|
|
1234
1232
|
className,
|
|
1235
1233
|
)}
|
|
1236
1234
|
{...rest}
|
|
@@ -1411,47 +1409,50 @@ import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
|
1411
1409
|
|
|
1412
1410
|
import { cn } from "@/lib/utils";
|
|
1413
1411
|
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
)
|
|
1454
|
-
|
|
1412
|
+
function Avatar({
|
|
1413
|
+
className,
|
|
1414
|
+
...props
|
|
1415
|
+
}: React.ComponentProps<typeof AvatarPrimitive.Root>) {
|
|
1416
|
+
return (
|
|
1417
|
+
<AvatarPrimitive.Root
|
|
1418
|
+
data-slot="avatar"
|
|
1419
|
+
className={cn(
|
|
1420
|
+
"relative flex size-8 shrink-0 overflow-hidden rounded-full",
|
|
1421
|
+
className,
|
|
1422
|
+
)}
|
|
1423
|
+
{...props}
|
|
1424
|
+
/>
|
|
1425
|
+
);
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1428
|
+
function AvatarImage({
|
|
1429
|
+
className,
|
|
1430
|
+
...props
|
|
1431
|
+
}: React.ComponentProps<typeof AvatarPrimitive.Image>) {
|
|
1432
|
+
return (
|
|
1433
|
+
<AvatarPrimitive.Image
|
|
1434
|
+
data-slot="avatar-image"
|
|
1435
|
+
className={cn("aspect-square size-full", className)}
|
|
1436
|
+
{...props}
|
|
1437
|
+
/>
|
|
1438
|
+
);
|
|
1439
|
+
}
|
|
1440
|
+
|
|
1441
|
+
function AvatarFallback({
|
|
1442
|
+
className,
|
|
1443
|
+
...props
|
|
1444
|
+
}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {
|
|
1445
|
+
return (
|
|
1446
|
+
<AvatarPrimitive.Fallback
|
|
1447
|
+
data-slot="avatar-fallback"
|
|
1448
|
+
className={cn(
|
|
1449
|
+
"flex size-full items-center justify-center rounded-full bg-muted",
|
|
1450
|
+
className,
|
|
1451
|
+
)}
|
|
1452
|
+
{...props}
|
|
1453
|
+
/>
|
|
1454
|
+
);
|
|
1455
|
+
}
|
|
1455
1456
|
|
|
1456
1457
|
export { Avatar, AvatarImage, AvatarFallback };
|
|
1457
1458
|
|
|
@@ -1460,8 +1461,6 @@ export { Avatar, AvatarImage, AvatarFallback };
|
|
|
1460
1461
|
## components/ui/button.tsx
|
|
1461
1462
|
|
|
1462
1463
|
```tsx
|
|
1463
|
-
"use client";
|
|
1464
|
-
|
|
1465
1464
|
import * as React from "react";
|
|
1466
1465
|
import { Slot } from "@radix-ui/react-slot";
|
|
1467
1466
|
import { cva, type VariantProps } from "class-variance-authority";
|
|
@@ -1469,26 +1468,28 @@ import { cva, type VariantProps } from "class-variance-authority";
|
|
|
1469
1468
|
import { cn } from "@/lib/utils";
|
|
1470
1469
|
|
|
1471
1470
|
const buttonVariants = cva(
|
|
1472
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm transition-
|
|
1471
|
+
"inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-none transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
1473
1472
|
{
|
|
1474
1473
|
variants: {
|
|
1475
1474
|
variant: {
|
|
1476
|
-
default:
|
|
1477
|
-
"bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
1475
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
1478
1476
|
destructive:
|
|
1479
|
-
"bg-destructive text-destructive
|
|
1477
|
+
"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
|
|
1480
1478
|
outline:
|
|
1481
|
-
"border
|
|
1479
|
+
"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
1482
1480
|
secondary:
|
|
1483
|
-
"bg-secondary text-secondary-foreground
|
|
1484
|
-
ghost:
|
|
1481
|
+
"bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
1482
|
+
ghost:
|
|
1483
|
+
"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
|
1485
1484
|
link: "text-primary underline-offset-4 hover:underline",
|
|
1486
1485
|
},
|
|
1487
1486
|
size: {
|
|
1488
|
-
default: "h-9 px-4 py-2",
|
|
1489
|
-
sm: "h-8 rounded-md px-3
|
|
1490
|
-
lg: "h-10 rounded-md px-
|
|
1491
|
-
icon: "
|
|
1487
|
+
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
1488
|
+
sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
|
|
1489
|
+
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
1490
|
+
icon: "size-9",
|
|
1491
|
+
"icon-sm": "size-8",
|
|
1492
|
+
"icon-lg": "size-10",
|
|
1492
1493
|
},
|
|
1493
1494
|
},
|
|
1494
1495
|
defaultVariants: {
|
|
@@ -1498,25 +1499,28 @@ const buttonVariants = cva(
|
|
|
1498
1499
|
},
|
|
1499
1500
|
);
|
|
1500
1501
|
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1502
|
+
function Button({
|
|
1503
|
+
className,
|
|
1504
|
+
variant = "default",
|
|
1505
|
+
size = "default",
|
|
1506
|
+
asChild = false,
|
|
1507
|
+
...props
|
|
1508
|
+
}: React.ComponentProps<"button"> &
|
|
1509
|
+
VariantProps<typeof buttonVariants> & {
|
|
1510
|
+
asChild?: boolean;
|
|
1511
|
+
}) {
|
|
1512
|
+
const Comp = asChild ? Slot : "button";
|
|
1506
1513
|
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
},
|
|
1518
|
-
);
|
|
1519
|
-
Button.displayName = "Button";
|
|
1514
|
+
return (
|
|
1515
|
+
<Comp
|
|
1516
|
+
data-slot="button"
|
|
1517
|
+
data-variant={variant}
|
|
1518
|
+
data-size={size}
|
|
1519
|
+
className={cn(buttonVariants({ variant, size, className }))}
|
|
1520
|
+
{...props}
|
|
1521
|
+
/>
|
|
1522
|
+
);
|
|
1523
|
+
}
|
|
1520
1524
|
|
|
1521
1525
|
export { Button, buttonVariants };
|
|
1522
1526
|
|
|
@@ -1565,7 +1569,7 @@ function DialogOverlay({
|
|
|
1565
1569
|
<DialogPrimitive.Overlay
|
|
1566
1570
|
data-slot="dialog-overlay"
|
|
1567
1571
|
className={cn(
|
|
1568
|
-
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/
|
|
1572
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=open]:animate-in",
|
|
1569
1573
|
className,
|
|
1570
1574
|
)}
|
|
1571
1575
|
{...props}
|
|
@@ -1576,24 +1580,32 @@ function DialogOverlay({
|
|
|
1576
1580
|
function DialogContent({
|
|
1577
1581
|
className,
|
|
1578
1582
|
children,
|
|
1583
|
+
showCloseButton = true,
|
|
1579
1584
|
...props
|
|
1580
|
-
}: React.ComponentProps<typeof DialogPrimitive.Content>
|
|
1585
|
+
}: React.ComponentProps<typeof DialogPrimitive.Content> & {
|
|
1586
|
+
showCloseButton?: boolean;
|
|
1587
|
+
}) {
|
|
1581
1588
|
return (
|
|
1582
1589
|
<DialogPortal data-slot="dialog-portal">
|
|
1583
1590
|
<DialogOverlay />
|
|
1584
1591
|
<DialogPrimitive.Content
|
|
1585
1592
|
data-slot="dialog-content"
|
|
1586
1593
|
className={cn(
|
|
1587
|
-
"data-[state=closed]:fade-out-0 data-[state=
|
|
1594
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg outline-none duration-200 data-[state=closed]:animate-out data-[state=open]:animate-in sm:max-w-lg",
|
|
1588
1595
|
className,
|
|
1589
1596
|
)}
|
|
1590
1597
|
{...props}
|
|
1591
1598
|
>
|
|
1592
1599
|
{children}
|
|
1593
|
-
|
|
1594
|
-
<
|
|
1595
|
-
|
|
1596
|
-
|
|
1600
|
+
{showCloseButton && (
|
|
1601
|
+
<DialogPrimitive.Close
|
|
1602
|
+
data-slot="dialog-close"
|
|
1603
|
+
className="absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0"
|
|
1604
|
+
>
|
|
1605
|
+
<XIcon />
|
|
1606
|
+
<span className="sr-only">Close</span>
|
|
1607
|
+
</DialogPrimitive.Close>
|
|
1608
|
+
)}
|
|
1597
1609
|
</DialogPrimitive.Content>
|
|
1598
1610
|
</DialogPortal>
|
|
1599
1611
|
);
|
|
@@ -1714,13 +1726,13 @@ function TooltipContent({
|
|
|
1714
1726
|
data-slot="tooltip-content"
|
|
1715
1727
|
sideOffset={sideOffset}
|
|
1716
1728
|
className={cn(
|
|
1717
|
-
"fade-in-0 zoom-in-95 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-
|
|
1729
|
+
"fade-in-0 zoom-in-95 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in text-balance rounded-md bg-foreground px-3 py-1.5 text-background text-xs data-[state=closed]:animate-out",
|
|
1718
1730
|
className,
|
|
1719
1731
|
)}
|
|
1720
1732
|
{...props}
|
|
1721
1733
|
>
|
|
1722
1734
|
{children}
|
|
1723
|
-
<TooltipPrimitive.Arrow className="z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-
|
|
1735
|
+
<TooltipPrimitive.Arrow className="z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground" />
|
|
1724
1736
|
</TooltipPrimitive.Content>
|
|
1725
1737
|
</TooltipPrimitive.Portal>
|
|
1726
1738
|
);
|
|
@@ -1760,15 +1772,15 @@ export default nextConfig;
|
|
|
1760
1772
|
```json
|
|
1761
1773
|
{
|
|
1762
1774
|
"name": "with-parent-id-grouping",
|
|
1763
|
-
"version": "0.
|
|
1775
|
+
"version": "0.0.0",
|
|
1764
1776
|
"private": true,
|
|
1777
|
+
"type": "module",
|
|
1765
1778
|
"scripts": {
|
|
1766
|
-
"dev": "next dev
|
|
1779
|
+
"dev": "next dev",
|
|
1767
1780
|
"build": "next build",
|
|
1768
1781
|
"start": "next start"
|
|
1769
1782
|
},
|
|
1770
1783
|
"dependencies": {
|
|
1771
|
-
"@ai-sdk/openai": "^2.0.84",
|
|
1772
1784
|
"@assistant-ui/react": "workspace:*",
|
|
1773
1785
|
"@assistant-ui/react-markdown": "workspace:*",
|
|
1774
1786
|
"@radix-ui/react-avatar": "^1.1.11",
|
|
@@ -1777,23 +1789,24 @@ export default nextConfig;
|
|
|
1777
1789
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
1778
1790
|
"class-variance-authority": "^0.7.1",
|
|
1779
1791
|
"clsx": "^2.1.1",
|
|
1780
|
-
"lucide-react": "^0.
|
|
1781
|
-
"next": "16.0
|
|
1792
|
+
"lucide-react": "^0.562.0",
|
|
1793
|
+
"next": "16.1.0",
|
|
1782
1794
|
"react": "19.2.3",
|
|
1783
1795
|
"react-dom": "19.2.3",
|
|
1784
1796
|
"remark-gfm": "^4.0.1",
|
|
1785
1797
|
"tailwind-merge": "^3.4.0",
|
|
1786
|
-
"tw-animate-css": "^1.4.0",
|
|
1787
1798
|
"zustand": "^5.0.9"
|
|
1788
1799
|
},
|
|
1789
1800
|
"devDependencies": {
|
|
1790
1801
|
"@assistant-ui/x-buildutils": "workspace:*",
|
|
1791
|
-
"@
|
|
1792
|
-
"@types/
|
|
1793
|
-
"@types/react
|
|
1794
|
-
"
|
|
1802
|
+
"@tailwindcss/postcss": "^4.1.18",
|
|
1803
|
+
"@types/node": "^25.0.3",
|
|
1804
|
+
"@types/react": "^19.2.7",
|
|
1805
|
+
"@types/react-dom": "^19.2.3",
|
|
1806
|
+
"postcss": "^8.5.6",
|
|
1795
1807
|
"tailwindcss": "^4.1.18",
|
|
1796
|
-
"
|
|
1808
|
+
"tw-animate-css": "^1.4.0",
|
|
1809
|
+
"typescript": "^5.9.3"
|
|
1797
1810
|
}
|
|
1798
1811
|
}
|
|
1799
1812
|
|
|
@@ -1870,29 +1883,11 @@ This pattern is useful for:
|
|
|
1870
1883
|
|
|
1871
1884
|
```json
|
|
1872
1885
|
{
|
|
1873
|
-
"extends": "@assistant-ui/x-buildutils/ts/
|
|
1886
|
+
"extends": "@assistant-ui/x-buildutils/ts/next",
|
|
1874
1887
|
"compilerOptions": {
|
|
1875
|
-
"
|
|
1876
|
-
"module": "ESNext",
|
|
1877
|
-
"incremental": true,
|
|
1878
|
-
"plugins": [
|
|
1879
|
-
{
|
|
1880
|
-
"name": "next"
|
|
1881
|
-
}
|
|
1882
|
-
],
|
|
1883
|
-
"allowJs": true,
|
|
1884
|
-
"strictNullChecks": true,
|
|
1885
|
-
"jsx": "preserve",
|
|
1886
|
-
"paths": {
|
|
1887
|
-
"@/*": ["./*"],
|
|
1888
|
-
"@assistant-ui/*": ["../../packages/*/src"],
|
|
1889
|
-
"@assistant-ui/react/*": ["../../packages/react/src/*"],
|
|
1890
|
-
"@assistant-ui/tap/*": ["../../packages/tap/src/*"],
|
|
1891
|
-
"assistant-stream": ["../../packages/assistant-stream/src"],
|
|
1892
|
-
"assistant-stream/*": ["../../packages/assistant-stream/src/*"]
|
|
1893
|
-
}
|
|
1888
|
+
"paths": { "@/*": ["./*"] }
|
|
1894
1889
|
},
|
|
1895
|
-
"include": ["
|
|
1890
|
+
"include": ["**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
|
1896
1891
|
"exclude": ["node_modules"]
|
|
1897
1892
|
}
|
|
1898
1893
|
|