@tangle-network/ui 11.0.0 → 11.2.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.
- package/CHANGELOG.md +30 -0
- package/dist/{artifact-pane-DvJyPWV4.d.ts → artifact-pane-DpuWcAiF.d.ts} +10 -1
- package/dist/chat.d.ts +8 -2
- package/dist/chat.js +5 -5
- package/dist/{chunk-52Y3FMFI.js → chunk-3M7BPSSW.js} +1 -1
- package/dist/chunk-4ORVXSMU.js +507 -0
- package/dist/{chunk-LELGOLFV.js → chunk-GGDYWMFF.js} +15 -7
- package/dist/{chunk-CCM2KRQH.js → chunk-HW4ROISY.js} +1 -1
- package/dist/{chunk-KBOD47AW.js → chunk-J3YZIQNI.js} +2 -2
- package/dist/{chunk-CSAIKY36.js → chunk-LTEKI7YJ.js} +12 -7
- package/dist/{chunk-KHO7DYXH.js → chunk-OTZWQJ5W.js} +107 -72
- package/dist/{chunk-FJBTCTZM.js → chunk-P5F43A65.js} +1 -1
- package/dist/{chunk-SZ44QDA6.js → chunk-RADUPP44.js} +12 -5
- package/dist/{chunk-HHYUPAOJ.js → chunk-SRAKCVPO.js} +49 -81
- package/dist/{document-editor-pane-DyDEX_Zm.d.ts → document-editor-pane-C3cYEDWZ.d.ts} +2 -2
- package/dist/{document-editor-pane-WCTA3ZOE.js → document-editor-pane-OQNGM4RJ.js} +3 -3
- package/dist/editor.d.ts +3 -3
- package/dist/editor.js +3 -3
- package/dist/files.d.ts +5 -3
- package/dist/files.js +3 -3
- package/dist/hooks.js +4 -4
- package/dist/index.d.ts +2 -2
- package/dist/index.js +9 -9
- package/dist/markdown.js +1 -1
- package/dist/openui.js +2 -2
- package/dist/primitives.d.ts +1 -1
- package/dist/primitives.js +1 -1
- package/dist/run.d.ts +4 -3
- package/dist/run.js +5 -5
- package/dist/sdk-hooks.js +4 -4
- package/package.json +1 -1
- package/src/chat/agent-timeline.stories.tsx +11 -0
- package/src/chat/agent-timeline.test.tsx +34 -0
- package/src/chat/agent-timeline.tsx +65 -12
- package/src/chat/chat-container.tsx +5 -0
- package/src/editor/document-editor-pane.stories.tsx +74 -0
- package/src/editor/document-editor-pane.tsx +10 -3
- package/src/files/file-artifact-pane.tsx +14 -2
- package/src/files/file-preview.stories.tsx +22 -1
- package/src/files/file-preview.tsx +2 -2
- package/src/markdown/markdown.stories.tsx +55 -1
- package/src/markdown/markdown.test.tsx +23 -0
- package/src/markdown/markdown.tsx +1 -1
- package/src/primitives/artifact-pane.tsx +52 -26
- package/src/run/expandable-content.test.tsx +52 -0
- package/src/run/expandable-content.tsx +73 -0
- package/src/run/expanded-tool-detail.tsx +17 -12
- package/src/run/inline-thinking-item.stories.tsx +30 -1
- package/src/run/inline-thinking-item.tsx +34 -70
- package/src/run/inline-tool-item.tsx +30 -116
- package/src/run/run-row-shell.test.tsx +38 -0
- package/src/run/run-row-shell.tsx +191 -0
- package/dist/chunk-INMWNFAS.js +0 -369
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
|
+
ExpandableContent,
|
|
2
3
|
InlineToolItem,
|
|
3
|
-
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
RunRowShell
|
|
5
|
+
} from "./chunk-4ORVXSMU.js";
|
|
5
6
|
import {
|
|
6
7
|
formatDuration,
|
|
7
8
|
truncateText
|
|
8
9
|
} from "./chunk-ULDNFLIM.js";
|
|
9
10
|
import {
|
|
10
11
|
OpenUIArtifactRenderer
|
|
11
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-3M7BPSSW.js";
|
|
12
13
|
import {
|
|
13
14
|
Markdown
|
|
14
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-P5F43A65.js";
|
|
15
16
|
import {
|
|
16
17
|
cn
|
|
17
18
|
} from "./chunk-RQHJBTEU.js";
|
|
18
19
|
|
|
19
20
|
// src/run/inline-thinking-item.tsx
|
|
20
21
|
import { memo, useEffect, useRef, useState } from "react";
|
|
21
|
-
import
|
|
22
|
-
import {
|
|
23
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
22
|
+
import { Brain } from "lucide-react";
|
|
23
|
+
import { jsx } from "react/jsx-runtime";
|
|
24
24
|
var InlineThinkingItem = memo(
|
|
25
25
|
({
|
|
26
26
|
part,
|
|
@@ -33,7 +33,7 @@ var InlineThinkingItem = memo(
|
|
|
33
33
|
const autoCollapsedRef = useRef(false);
|
|
34
34
|
const startTime = part.time?.start;
|
|
35
35
|
const endTime = part.time?.end;
|
|
36
|
-
const durationMs = startTime && endTime ? endTime - startTime : void 0;
|
|
36
|
+
const durationMs = startTime != null && endTime != null ? endTime - startTime : void 0;
|
|
37
37
|
const isActive = startTime != null && endTime == null;
|
|
38
38
|
const preview = part.text ? truncateText(part.text, 120) : void 0;
|
|
39
39
|
useEffect(() => {
|
|
@@ -50,72 +50,40 @@ var InlineThinkingItem = memo(
|
|
|
50
50
|
return () => window.clearTimeout(timer);
|
|
51
51
|
}
|
|
52
52
|
}, [autoCollapse, durationMs, isActive]);
|
|
53
|
-
return /* @__PURE__ */ jsx(
|
|
54
|
-
|
|
53
|
+
return /* @__PURE__ */ jsx(
|
|
54
|
+
RunRowShell,
|
|
55
55
|
{
|
|
56
|
-
className:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
),
|
|
74
|
-
children: /* @__PURE__ */ jsx(Brain, { className: cn("h-3 w-3 shrink-0", isActive && "animate-pulse") })
|
|
75
|
-
}
|
|
76
|
-
),
|
|
77
|
-
/* @__PURE__ */ jsx("p", { className: "min-w-0 flex-1 truncate font-[var(--font-sans)] text-muted-foreground", children: preview ?? (isActive ? "Thinking\u2026" : "Reasoning") }),
|
|
78
|
-
/* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [
|
|
79
|
-
isActive && startTime ? /* @__PURE__ */ jsx(LiveDuration, { startTime }) : null,
|
|
80
|
-
!isActive && durationMs != null ? /* @__PURE__ */ jsx("span", { className: "shrink-0 text-xs tabular-nums text-muted-foreground", children: formatDuration(durationMs) }) : null,
|
|
81
|
-
/* @__PURE__ */ jsx(
|
|
82
|
-
ChevronRight,
|
|
83
|
-
{
|
|
84
|
-
className: cn(
|
|
85
|
-
"h-3 w-3 text-muted-foreground transition-transform shrink-0",
|
|
86
|
-
open && "rotate-90"
|
|
87
|
-
)
|
|
88
|
-
}
|
|
89
|
-
)
|
|
90
|
-
] })
|
|
91
|
-
]
|
|
92
|
-
}
|
|
93
|
-
) }),
|
|
94
|
-
/* @__PURE__ */ jsx(Collapsible.Content, { className: "overflow-hidden data-[state=open]:animate-slideDown data-[state=closed]:animate-slideUp", children: part.text ? /* @__PURE__ */ jsx(
|
|
95
|
-
"div",
|
|
96
|
-
{
|
|
97
|
-
className: cn(
|
|
98
|
-
"max-h-60 overflow-y-auto border-t border-border bg-muted px-3 py-3 text-sm leading-relaxed text-muted-foreground",
|
|
99
|
-
contentClassName
|
|
100
|
-
),
|
|
101
|
-
children: /* @__PURE__ */ jsx(Markdown, { children: part.text })
|
|
102
|
-
}
|
|
103
|
-
) : /* @__PURE__ */ jsx("div", { className: "border-t border-border bg-muted px-3 py-2.5 text-xs text-muted-foreground", children: "No reasoning text provided." }) })
|
|
104
|
-
]
|
|
56
|
+
icon: /* @__PURE__ */ jsx(Brain, { className: "h-3.5 w-3.5" }),
|
|
57
|
+
title: isActive ? "Thinking\u2026" : "Reasoning",
|
|
58
|
+
description: preview,
|
|
59
|
+
status: isActive ? "running" : "idle",
|
|
60
|
+
startTime,
|
|
61
|
+
durationMs,
|
|
62
|
+
open,
|
|
63
|
+
onOpenChange: setOpen,
|
|
64
|
+
className,
|
|
65
|
+
children: part.text ? /* @__PURE__ */ jsx(
|
|
66
|
+
ExpandableContent,
|
|
67
|
+
{
|
|
68
|
+
fadeClassName: "from-[var(--md3-surface-container)]",
|
|
69
|
+
className: contentClassName ? `px-3 py-3 ${contentClassName}` : "px-3 py-3",
|
|
70
|
+
children: /* @__PURE__ */ jsx("div", { className: "text-sm leading-relaxed text-foreground", children: /* @__PURE__ */ jsx(Markdown, { children: part.text }) })
|
|
71
|
+
}
|
|
72
|
+
) : /* @__PURE__ */ jsx("div", { className: "px-3 py-2.5 text-xs text-muted-foreground", children: "No reasoning text provided." })
|
|
105
73
|
}
|
|
106
|
-
)
|
|
74
|
+
);
|
|
107
75
|
}
|
|
108
76
|
);
|
|
109
77
|
InlineThinkingItem.displayName = "InlineThinkingItem";
|
|
110
78
|
|
|
111
79
|
// src/run/run-group.tsx
|
|
112
80
|
import { memo as memo2, useMemo } from "react";
|
|
113
|
-
import * as
|
|
81
|
+
import * as Collapsible from "@radix-ui/react-collapsible";
|
|
114
82
|
import {
|
|
115
83
|
Bot,
|
|
116
84
|
Loader2,
|
|
117
85
|
ChevronDown,
|
|
118
|
-
ChevronRight
|
|
86
|
+
ChevronRight,
|
|
119
87
|
Terminal,
|
|
120
88
|
FileEdit,
|
|
121
89
|
FileSearch,
|
|
@@ -126,14 +94,14 @@ import {
|
|
|
126
94
|
Settings,
|
|
127
95
|
Sparkles
|
|
128
96
|
} from "lucide-react";
|
|
129
|
-
import { jsx as jsx2, jsxs
|
|
97
|
+
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
130
98
|
function SpineRow({
|
|
131
99
|
accentClassName,
|
|
132
100
|
isLast,
|
|
133
101
|
children
|
|
134
102
|
}) {
|
|
135
|
-
return /* @__PURE__ */
|
|
136
|
-
/* @__PURE__ */
|
|
103
|
+
return /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[1.25rem_minmax(0,1fr)] gap-x-3", children: [
|
|
104
|
+
/* @__PURE__ */ jsxs("div", { className: "relative flex justify-center", children: [
|
|
137
105
|
!isLast && /* @__PURE__ */ jsx2("span", { className: "absolute top-3.5 bottom-[-0.75rem] left-1/2 w-px -translate-x-1/2 bg-[var(--border-subtle)]" }),
|
|
138
106
|
/* @__PURE__ */ jsx2(
|
|
139
107
|
"span",
|
|
@@ -163,10 +131,10 @@ function AssistantShell({
|
|
|
163
131
|
isStreaming,
|
|
164
132
|
children
|
|
165
133
|
}) {
|
|
166
|
-
return /* @__PURE__ */
|
|
167
|
-
/* @__PURE__ */
|
|
134
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
135
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-1 font-medium text-muted-foreground text-xs", children: [
|
|
168
136
|
/* @__PURE__ */ jsx2("span", { children: branding.label }),
|
|
169
|
-
isStreaming ? /* @__PURE__ */
|
|
137
|
+
isStreaming ? /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
170
138
|
/* @__PURE__ */ jsx2(Loader2, { className: "h-3 w-3 animate-spin" }),
|
|
171
139
|
"Thinking"
|
|
172
140
|
] }) : null
|
|
@@ -321,7 +289,7 @@ var RunGroup = memo2(
|
|
|
321
289
|
if (!isStreaming) {
|
|
322
290
|
return null;
|
|
323
291
|
}
|
|
324
|
-
return /* @__PURE__ */ jsx2(AssistantShell, { branding, isStreaming: true, children: /* @__PURE__ */ jsx2("div", { className: "flex items-center gap-2 px-0.5 py-0.5 text-sm text-[var(--text-muted)]", children: /* @__PURE__ */
|
|
292
|
+
return /* @__PURE__ */ jsx2(AssistantShell, { branding, isStreaming: true, children: /* @__PURE__ */ jsx2("div", { className: "flex items-center gap-2 px-0.5 py-0.5 text-sm text-[var(--text-muted)]", children: /* @__PURE__ */ jsxs("span", { className: "flex gap-[5px]", children: [
|
|
325
293
|
/* @__PURE__ */ jsx2("span", { className: "h-2 w-2 animate-bounce rounded-full bg-[var(--brand-glow)]", style: { animationDelay: "0ms" } }),
|
|
326
294
|
/* @__PURE__ */ jsx2("span", { className: "h-2 w-2 animate-bounce rounded-full bg-[var(--brand-glow)]", style: { animationDelay: "150ms" } }),
|
|
327
295
|
/* @__PURE__ */ jsx2("span", { className: "h-2 w-2 animate-bounce rounded-full bg-[var(--brand-glow)]", style: { animationDelay: "300ms" } })
|
|
@@ -344,7 +312,7 @@ var RunGroup = memo2(
|
|
|
344
312
|
const schema = extractOpenUISchema(toolPart.state.output);
|
|
345
313
|
const summary = getOpenUISummary(toolPart.state.output);
|
|
346
314
|
if (toolPart.state.status === "completed" && schema) {
|
|
347
|
-
return /* @__PURE__ */
|
|
315
|
+
return /* @__PURE__ */ jsxs(
|
|
348
316
|
"div",
|
|
349
317
|
{
|
|
350
318
|
className: "overflow-hidden rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--md3-surface-container)]",
|
|
@@ -357,7 +325,7 @@ var RunGroup = memo2(
|
|
|
357
325
|
);
|
|
358
326
|
}
|
|
359
327
|
if (toolPart.state.status === "running") {
|
|
360
|
-
return /* @__PURE__ */
|
|
328
|
+
return /* @__PURE__ */ jsxs(
|
|
361
329
|
"div",
|
|
362
330
|
{
|
|
363
331
|
className: "flex items-center gap-2 rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--md3-surface-container)] px-4 py-3 text-sm text-muted-foreground",
|
|
@@ -385,24 +353,24 @@ var RunGroup = memo2(
|
|
|
385
353
|
if (part.type === "text") return "bg-primary";
|
|
386
354
|
return "bg-[var(--border-hover)]";
|
|
387
355
|
};
|
|
388
|
-
return /* @__PURE__ */ jsx2(
|
|
389
|
-
/* @__PURE__ */
|
|
390
|
-
/* @__PURE__ */ jsx2(
|
|
356
|
+
return /* @__PURE__ */ jsx2(Collapsible.Root, { open: !collapsed, onOpenChange: () => onToggle(), children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
357
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
|
|
358
|
+
/* @__PURE__ */ jsx2(Collapsible.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
391
359
|
"button",
|
|
392
360
|
{
|
|
393
361
|
type: "button",
|
|
394
362
|
className: "group flex min-w-0 flex-1 items-center gap-2 rounded-md px-1 py-0.5 text-left transition-colors hover:bg-[var(--surface-container-high)]/40",
|
|
395
363
|
children: [
|
|
396
|
-
collapsed ? /* @__PURE__ */ jsx2(
|
|
364
|
+
collapsed ? /* @__PURE__ */ jsx2(ChevronRight, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }) : /* @__PURE__ */ jsx2(ChevronDown, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }),
|
|
397
365
|
/* @__PURE__ */ jsx2("span", { className: cn("font-semibold text-sm", branding.textClass), children: branding.label }),
|
|
398
366
|
renderSummary(run) ? /* @__PURE__ */ jsx2("span", { className: "text-[11px] text-muted-foreground", children: renderSummary(run) }) : null,
|
|
399
367
|
collapsed && run.summaryText ? /* @__PURE__ */ jsx2("span", { className: "min-w-0 truncate text-[11px] text-foreground/70", children: run.summaryText }) : null,
|
|
400
|
-
/* @__PURE__ */
|
|
368
|
+
/* @__PURE__ */ jsxs("span", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: [
|
|
401
369
|
/* @__PURE__ */ jsx2(CategoryBadges, { categories: stats.toolCategories }),
|
|
402
|
-
isStreaming ? /* @__PURE__ */
|
|
370
|
+
isStreaming ? /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 rounded-full border border-[var(--border-accent)] bg-[var(--accent-surface-soft)] px-2 py-px text-[10px] font-semibold uppercase text-[var(--accent-text)]", children: [
|
|
403
371
|
/* @__PURE__ */ jsx2(Loader2, { className: "h-2.5 w-2.5 animate-spin" }),
|
|
404
372
|
"Running"
|
|
405
|
-
] }) : /* @__PURE__ */
|
|
373
|
+
] }) : /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 rounded-full border border-border px-2 py-px text-[10px] font-semibold uppercase text-muted-foreground", children: [
|
|
406
374
|
/* @__PURE__ */ jsx2(Sparkles, { className: "h-2.5 w-2.5" }),
|
|
407
375
|
"Done"
|
|
408
376
|
] })
|
|
@@ -413,7 +381,7 @@ var RunGroup = memo2(
|
|
|
413
381
|
headerActions ? /* @__PURE__ */ jsx2("div", { className: "flex shrink-0 flex-wrap items-center justify-end gap-1.5 pt-1", children: headerActions }) : null
|
|
414
382
|
] }),
|
|
415
383
|
collapsed && run.summaryText ? /* @__PURE__ */ jsx2("div", { className: "line-clamp-2 pl-6 text-sm leading-6 text-muted-foreground", children: run.summaryText }) : null,
|
|
416
|
-
/* @__PURE__ */ jsx2(
|
|
384
|
+
/* @__PURE__ */ jsx2(Collapsible.Content, { className: "overflow-hidden data-[state=open]:animate-slideDown data-[state=closed]:animate-slideUp", children: /* @__PURE__ */ jsx2("div", { className: "pt-1.5", children: rows.map(({ part, msgId, index }, rowIndex) => {
|
|
417
385
|
const key = `${msgId}-${index}`;
|
|
418
386
|
const isLast = rowIndex === rows.length - 1;
|
|
419
387
|
let node = null;
|
|
@@ -423,12 +391,12 @@ var RunGroup = memo2(
|
|
|
423
391
|
const schema = extractOpenUISchema(toolPart.state.output);
|
|
424
392
|
const summary = getOpenUISummary(toolPart.state.output);
|
|
425
393
|
if (toolPart.state.status === "completed" && schema) {
|
|
426
|
-
node = /* @__PURE__ */
|
|
394
|
+
node = /* @__PURE__ */ jsxs("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--md3-surface-container)]", children: [
|
|
427
395
|
summary ? /* @__PURE__ */ jsx2("div", { className: "border-b border-[var(--border-subtle)] px-4 py-3 text-sm leading-6 text-foreground", children: summary }) : null,
|
|
428
396
|
/* @__PURE__ */ jsx2("div", { className: "p-4", children: /* @__PURE__ */ jsx2(OpenUIArtifactRenderer, { schema }) })
|
|
429
397
|
] });
|
|
430
398
|
} else if (toolPart.state.status === "running") {
|
|
431
|
-
node = /* @__PURE__ */
|
|
399
|
+
node = /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--md3-surface-container)] px-4 py-3 text-sm text-muted-foreground", children: [
|
|
432
400
|
/* @__PURE__ */ jsx2(Loader2, { className: "h-4 w-4 animate-spin text-primary" }),
|
|
433
401
|
"Building view\u2026"
|
|
434
402
|
] });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import { a as ArtifactPaneProps } from './artifact-pane-
|
|
3
|
+
import { a as ArtifactPaneProps } from './artifact-pane-DpuWcAiF.js';
|
|
4
4
|
import { HocuspocusProvider } from '@hocuspocus/provider';
|
|
5
5
|
import * as Y from 'yjs';
|
|
6
6
|
|
|
@@ -119,6 +119,6 @@ interface DocumentEditorPaneProps extends Omit<ArtifactPaneProps, "children" | "
|
|
|
119
119
|
* DocumentEditorPane — reusable markdown document surface with preview/edit
|
|
120
120
|
* modes and optional collaborative editing backed by Yjs/Hocuspocus.
|
|
121
121
|
*/
|
|
122
|
-
declare function DocumentEditorPane({ eyebrow, title, subtitle, meta, headerActions, footer, className, contentClassName, tabs, toolbar, markdown, mode, defaultMode, onModeChange, backend, placeholder, autoFocus, readOnly, onChange, onSave, saving, saveLabel, previewClassName, editorClassName, collaboration, }: DocumentEditorPaneProps): react_jsx_runtime.JSX.Element;
|
|
122
|
+
declare function DocumentEditorPane({ eyebrow, title, subtitle, meta, headerActions, footer, className, contentClassName, headerClassName, hideTitleBlock, tabs, toolbar, markdown, mode, defaultMode, onModeChange, backend, placeholder, autoFocus, readOnly, onChange, onSave, saving, saveLabel, previewClassName, editorClassName, collaboration, }: DocumentEditorPaneProps): react_jsx_runtime.JSX.Element;
|
|
123
123
|
|
|
124
124
|
export { type Collaborator as C, type DocumentEditorBackend as D, type EditorContextValue as E, type ConnectionState as a, type DocumentEditorMode as b, DocumentEditorPane as c, type DocumentEditorPaneCollaborationConfig as d, type DocumentEditorPaneProps as e, EditorProvider as f, type EditorProviderProps as g, type EditorTokenRefreshResult as h, type EditorUser as i, useEditorContext as u };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
DocumentEditorPane
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-RADUPP44.js";
|
|
5
5
|
import "./chunk-Q56BYXQF.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-LTEKI7YJ.js";
|
|
7
|
+
import "./chunk-P5F43A65.js";
|
|
8
8
|
import "./chunk-WUQDUBJG.js";
|
|
9
9
|
import "./chunk-RQHJBTEU.js";
|
|
10
10
|
export {
|
package/dist/editor.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { C as Collaborator, a as ConnectionState } from './document-editor-pane-
|
|
2
|
-
export { D as DocumentEditorBackend, b as DocumentEditorMode, c as DocumentEditorPane, d as DocumentEditorPaneCollaborationConfig, e as DocumentEditorPaneProps, E as EditorContextValue, f as EditorProvider, g as EditorProviderProps, h as EditorTokenRefreshResult, i as EditorUser, u as useEditorContext } from './document-editor-pane-
|
|
1
|
+
import { C as Collaborator, a as ConnectionState } from './document-editor-pane-C3cYEDWZ.js';
|
|
2
|
+
export { D as DocumentEditorBackend, b as DocumentEditorMode, c as DocumentEditorPane, d as DocumentEditorPaneCollaborationConfig, e as DocumentEditorPaneProps, E as EditorContextValue, f as EditorProvider, g as EditorProviderProps, h as EditorTokenRefreshResult, i as EditorUser, u as useEditorContext } from './document-editor-pane-C3cYEDWZ.js';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import { Editor } from '@tiptap/react';
|
|
5
5
|
import { HocuspocusProvider } from '@hocuspocus/provider';
|
|
6
6
|
import 'react';
|
|
7
|
-
import './artifact-pane-
|
|
7
|
+
import './artifact-pane-DpuWcAiF.js';
|
|
8
8
|
import 'yjs';
|
|
9
9
|
|
|
10
10
|
/**
|
package/dist/editor.js
CHANGED
|
@@ -11,10 +11,10 @@ import {
|
|
|
11
11
|
useEditorConnection,
|
|
12
12
|
useEditorContext,
|
|
13
13
|
useYjsState
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-RADUPP44.js";
|
|
15
15
|
import "./chunk-Q56BYXQF.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-LTEKI7YJ.js";
|
|
17
|
+
import "./chunk-P5F43A65.js";
|
|
18
18
|
import "./chunk-WUQDUBJG.js";
|
|
19
19
|
import "./chunk-RQHJBTEU.js";
|
|
20
20
|
export {
|
package/dist/files.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { GitStatusEntry, ContextMenuItem, ContextMenuOpenContext, GitStatus } from '@pierre/trees';
|
|
3
3
|
import { ReactNode, CSSProperties } from 'react';
|
|
4
|
-
import { b as DocumentEditorMode, D as DocumentEditorBackend, d as DocumentEditorPaneCollaborationConfig } from './document-editor-pane-
|
|
5
|
-
import { a as ArtifactPaneProps } from './artifact-pane-
|
|
4
|
+
import { b as DocumentEditorMode, D as DocumentEditorBackend, d as DocumentEditorPaneCollaborationConfig } from './document-editor-pane-C3cYEDWZ.js';
|
|
5
|
+
import { a as ArtifactPaneProps } from './artifact-pane-DpuWcAiF.js';
|
|
6
6
|
import '@hocuspocus/provider';
|
|
7
7
|
import 'yjs';
|
|
8
8
|
|
|
@@ -164,13 +164,15 @@ interface FileArtifactPaneProps extends Omit<FilePreviewProps, "className"> {
|
|
|
164
164
|
toolbar?: ArtifactPaneProps["toolbar"];
|
|
165
165
|
footer?: ArtifactPaneProps["footer"];
|
|
166
166
|
className?: string;
|
|
167
|
+
headerClassName?: ArtifactPaneProps["headerClassName"];
|
|
168
|
+
hideTitleBlock?: ArtifactPaneProps["hideTitleBlock"];
|
|
167
169
|
editor?: FileArtifactPaneEditorOptions;
|
|
168
170
|
}
|
|
169
171
|
/**
|
|
170
172
|
* FileArtifactPane — opinionated artifact frame for file previews with tabs and
|
|
171
173
|
* header actions.
|
|
172
174
|
*/
|
|
173
|
-
declare function FileArtifactPane({ filename, content, blobUrl, mimeType, onClose, onDownload, path, tabs, activeTabId, onTabSelect, onTabClose, eyebrow, meta, toolbar, footer, className, editor, }: FileArtifactPaneProps): react_jsx_runtime.JSX.Element;
|
|
175
|
+
declare function FileArtifactPane({ filename, content, blobUrl, mimeType, onClose, onDownload, path, tabs, activeTabId, onTabSelect, onTabClose, eyebrow, meta, toolbar, footer, className, headerClassName, hideTitleBlock, editor, }: FileArtifactPaneProps): react_jsx_runtime.JSX.Element;
|
|
174
176
|
|
|
175
177
|
/**
|
|
176
178
|
* Shared file-format detection for every file surface — the preview pane, the
|
package/dist/files.js
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
FileTree,
|
|
6
6
|
RichFileTree,
|
|
7
7
|
filterFileTree
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-GGDYWMFF.js";
|
|
9
9
|
import {
|
|
10
10
|
detectFileFormat,
|
|
11
11
|
fileExtension,
|
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
getFormatLabel,
|
|
14
14
|
getSyntaxLanguage
|
|
15
15
|
} from "./chunk-ZRVH3WCA.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-LTEKI7YJ.js";
|
|
17
|
+
import "./chunk-P5F43A65.js";
|
|
18
18
|
import "./chunk-WUQDUBJG.js";
|
|
19
19
|
import "./chunk-RQHJBTEU.js";
|
|
20
20
|
export {
|
package/dist/hooks.js
CHANGED
|
@@ -11,19 +11,19 @@ import {
|
|
|
11
11
|
useSSEStream,
|
|
12
12
|
useSdkSession,
|
|
13
13
|
useToolCallStream
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-HW4ROISY.js";
|
|
15
15
|
import "./chunk-OEX7NZE3.js";
|
|
16
16
|
import {
|
|
17
17
|
useAutoScroll,
|
|
18
18
|
useRunCollapseState,
|
|
19
19
|
useRunGroups
|
|
20
20
|
} from "./chunk-AZWDI2JG.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-J3YZIQNI.js";
|
|
22
|
+
import "./chunk-4ORVXSMU.js";
|
|
23
23
|
import "./chunk-ULDNFLIM.js";
|
|
24
24
|
import "./chunk-AAUNOHVL.js";
|
|
25
25
|
import "./chunk-ZRVH3WCA.js";
|
|
26
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-P5F43A65.js";
|
|
27
27
|
import "./chunk-WUQDUBJG.js";
|
|
28
28
|
import "./chunk-RQHJBTEU.js";
|
|
29
29
|
export {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { B as Button, a as ButtonProps, b as buttonVariants } from './button-CMQuQEW_.js';
|
|
2
2
|
export { Avatar, AvatarFallback, AvatarImage, Badge, BadgeProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropZone, DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateProps, InlineCode, InlineCodeProps, Input, InputProps, Label, Progress, SegmentedControl, SegmentedControlOption, SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarDropZone, SidebarDropZoneProps, Skeleton, SkeletonCard, SkeletonTable, StatCard, StatCardProps, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, Textarea, TextareaProps, ThemeToggle, Toast, ToastContainer, ToastProvider, UploadFile, UploadProgress, UploadProgressProps, badgeVariants, useTheme, useToast } from './primitives.js';
|
|
3
3
|
export { Logo, LogoProps, TangleKnot } from '@tangle-network/brand';
|
|
4
|
-
export { A as ArtifactPane, a as ArtifactPaneProps } from './artifact-pane-
|
|
4
|
+
export { A as ArtifactPane, a as ArtifactPaneProps } from './artifact-pane-DpuWcAiF.js';
|
|
5
5
|
export { AgentTimeline, AgentTimelineArtifactItem, AgentTimelineCustomItem, AgentTimelineItem, AgentTimelineMessageItem, AgentTimelineProps, AgentTimelineStatusItem, AgentTimelineTone, AgentTimelineToolGroupItem, AgentTimelineToolItem, ChatContainer, ChatContainerProps, ChatMessage, ChatMessageProps, MessageList, MessageListProps, MessageRole, ThinkingIndicator, ThinkingIndicatorProps, UserMessage, UserMessageProps } from './chat.js';
|
|
6
6
|
export { ExpandedToolDetail, ExpandedToolDetailProps, InlineThinkingItem, InlineThinkingItemProps, InlineToolItem, InlineToolItemProps, LiveDuration, RunGroup, RunGroupProps } from './run.js';
|
|
7
7
|
export { F as FeedSegment, T as ToolCallData, a as ToolCallFeed, b as ToolCallFeedProps, c as ToolCallStatus, d as ToolCallType, p as parseToolEvent } from './tool-call-feed-D9iofJgW.js';
|
|
@@ -34,7 +34,7 @@ import '@radix-ui/react-progress';
|
|
|
34
34
|
import '@radix-ui/react-switch';
|
|
35
35
|
import '@radix-ui/react-label';
|
|
36
36
|
import '@pierre/trees';
|
|
37
|
-
import './document-editor-pane-
|
|
37
|
+
import './document-editor-pane-C3cYEDWZ.js';
|
|
38
38
|
import '@hocuspocus/provider';
|
|
39
39
|
import 'yjs';
|
|
40
40
|
import 'nanostores';
|
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
useSSEStream,
|
|
18
18
|
useSdkSession,
|
|
19
19
|
useToolCallStream
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-HW4ROISY.js";
|
|
21
21
|
import {
|
|
22
22
|
addMessage,
|
|
23
23
|
addParts,
|
|
@@ -137,7 +137,7 @@ import {
|
|
|
137
137
|
MessageList,
|
|
138
138
|
ThinkingIndicator,
|
|
139
139
|
UserMessage
|
|
140
|
-
} from "./chunk-
|
|
140
|
+
} from "./chunk-OTZWQJ5W.js";
|
|
141
141
|
import {
|
|
142
142
|
useAutoScroll,
|
|
143
143
|
useRunCollapseState,
|
|
@@ -147,16 +147,16 @@ import "./chunk-47XH56SV.js";
|
|
|
147
147
|
import {
|
|
148
148
|
ToolCallFeed,
|
|
149
149
|
parseToolEvent
|
|
150
|
-
} from "./chunk-
|
|
150
|
+
} from "./chunk-J3YZIQNI.js";
|
|
151
151
|
import {
|
|
152
152
|
InlineThinkingItem,
|
|
153
153
|
RunGroup
|
|
154
|
-
} from "./chunk-
|
|
154
|
+
} from "./chunk-SRAKCVPO.js";
|
|
155
155
|
import {
|
|
156
156
|
ExpandedToolDetail,
|
|
157
157
|
InlineToolItem,
|
|
158
158
|
LiveDuration
|
|
159
|
-
} from "./chunk-
|
|
159
|
+
} from "./chunk-4ORVXSMU.js";
|
|
160
160
|
import {
|
|
161
161
|
TOOL_CATEGORY_ICONS,
|
|
162
162
|
formatBytes,
|
|
@@ -179,7 +179,7 @@ import {
|
|
|
179
179
|
import "./chunk-RQGKSCEZ.js";
|
|
180
180
|
import {
|
|
181
181
|
OpenUIArtifactRenderer
|
|
182
|
-
} from "./chunk-
|
|
182
|
+
} from "./chunk-3M7BPSSW.js";
|
|
183
183
|
import {
|
|
184
184
|
Badge,
|
|
185
185
|
Card,
|
|
@@ -210,7 +210,7 @@ import {
|
|
|
210
210
|
FileTree,
|
|
211
211
|
RichFileTree,
|
|
212
212
|
filterFileTree
|
|
213
|
-
} from "./chunk-
|
|
213
|
+
} from "./chunk-GGDYWMFF.js";
|
|
214
214
|
import {
|
|
215
215
|
detectFileFormat,
|
|
216
216
|
fileExtension,
|
|
@@ -226,11 +226,11 @@ import {
|
|
|
226
226
|
} from "./chunk-Q56BYXQF.js";
|
|
227
227
|
import {
|
|
228
228
|
ArtifactPane
|
|
229
|
-
} from "./chunk-
|
|
229
|
+
} from "./chunk-LTEKI7YJ.js";
|
|
230
230
|
import "./chunk-5Z5ZYMOJ.js";
|
|
231
231
|
import {
|
|
232
232
|
Markdown
|
|
233
|
-
} from "./chunk-
|
|
233
|
+
} from "./chunk-P5F43A65.js";
|
|
234
234
|
import {
|
|
235
235
|
CodeBlock,
|
|
236
236
|
CopyButton
|
package/dist/markdown.js
CHANGED
package/dist/openui.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import "./chunk-RQGKSCEZ.js";
|
|
2
2
|
import {
|
|
3
3
|
OpenUIArtifactRenderer
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-3M7BPSSW.js";
|
|
5
5
|
import "./chunk-GYPQXTJU.js";
|
|
6
6
|
import "./chunk-MKTSMWVD.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-P5F43A65.js";
|
|
8
8
|
import "./chunk-WUQDUBJG.js";
|
|
9
9
|
import "./chunk-RQHJBTEU.js";
|
|
10
10
|
export {
|
package/dist/primitives.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ import * as ProgressPrimitive from '@radix-ui/react-progress';
|
|
|
13
13
|
import * as SwitchPrimitives from '@radix-ui/react-switch';
|
|
14
14
|
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
15
15
|
export { Logo, LogoProps, TangleKnot } from '@tangle-network/brand';
|
|
16
|
-
export { A as ArtifactPane, a as ArtifactPaneProps } from './artifact-pane-
|
|
16
|
+
export { A as ArtifactPane, a as ArtifactPaneProps } from './artifact-pane-DpuWcAiF.js';
|
|
17
17
|
export { C as CodeBlock, a as CodeBlockProps, b as CopyButton } from './code-block-0kSpWMnf.js';
|
|
18
18
|
|
|
19
19
|
declare const Card: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & {
|
package/dist/primitives.js
CHANGED
package/dist/run.d.ts
CHANGED
|
@@ -41,9 +41,10 @@ interface InlineToolItemProps {
|
|
|
41
41
|
description?: string;
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
|
-
* Compact single-line tool call display
|
|
45
|
-
*
|
|
46
|
-
*
|
|
44
|
+
* Compact single-line tool call display. Shows a category icon, title,
|
|
45
|
+
* description, duration and status, and expands on click to show
|
|
46
|
+
* ExpandedToolDetail. Rendered through the shared RunRowShell so it stays
|
|
47
|
+
* consistent with the reasoning row.
|
|
47
48
|
*/
|
|
48
49
|
declare const InlineToolItem: React.MemoExoticComponent<({ part, renderToolDetail, groupPosition, className, contentClassName, actions, title: titleOverride, description: descriptionOverride, }: InlineToolItemProps) => react_jsx_runtime.JSX.Element>;
|
|
49
50
|
|
package/dist/run.js
CHANGED
|
@@ -2,23 +2,23 @@ import "./chunk-47XH56SV.js";
|
|
|
2
2
|
import {
|
|
3
3
|
ToolCallFeed,
|
|
4
4
|
parseToolEvent
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-J3YZIQNI.js";
|
|
6
6
|
import {
|
|
7
7
|
InlineThinkingItem,
|
|
8
8
|
RunGroup
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-SRAKCVPO.js";
|
|
10
10
|
import {
|
|
11
11
|
ExpandedToolDetail,
|
|
12
12
|
InlineToolItem,
|
|
13
13
|
LiveDuration
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-4ORVXSMU.js";
|
|
15
15
|
import "./chunk-ULDNFLIM.js";
|
|
16
16
|
import "./chunk-AAUNOHVL.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-3M7BPSSW.js";
|
|
18
18
|
import "./chunk-GYPQXTJU.js";
|
|
19
19
|
import "./chunk-MKTSMWVD.js";
|
|
20
20
|
import "./chunk-ZRVH3WCA.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-P5F43A65.js";
|
|
22
22
|
import "./chunk-WUQDUBJG.js";
|
|
23
23
|
import "./chunk-RQHJBTEU.js";
|
|
24
24
|
export {
|
package/dist/sdk-hooks.js
CHANGED
|
@@ -5,19 +5,19 @@ import {
|
|
|
5
5
|
useSSEStream,
|
|
6
6
|
useSdkSession,
|
|
7
7
|
useToolCallStream
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-HW4ROISY.js";
|
|
9
9
|
import "./chunk-OEX7NZE3.js";
|
|
10
10
|
import {
|
|
11
11
|
useAutoScroll,
|
|
12
12
|
useRunCollapseState,
|
|
13
13
|
useRunGroups
|
|
14
14
|
} from "./chunk-AZWDI2JG.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-J3YZIQNI.js";
|
|
16
|
+
import "./chunk-4ORVXSMU.js";
|
|
17
17
|
import "./chunk-ULDNFLIM.js";
|
|
18
18
|
import "./chunk-AAUNOHVL.js";
|
|
19
19
|
import "./chunk-ZRVH3WCA.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-P5F43A65.js";
|
|
21
21
|
import "./chunk-WUQDUBJG.js";
|
|
22
22
|
import "./chunk-RQHJBTEU.js";
|
|
23
23
|
export {
|
package/package.json
CHANGED
|
@@ -164,6 +164,17 @@ export const CodingSession: Story = {
|
|
|
164
164
|
},
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
+
// ---------------------------------------------------------------------------
|
|
168
|
+
// Long session collapsed to the first N spine rows behind a toggle
|
|
169
|
+
// ---------------------------------------------------------------------------
|
|
170
|
+
|
|
171
|
+
export const Collapsed: Story = {
|
|
172
|
+
args: {
|
|
173
|
+
items: codingSession,
|
|
174
|
+
collapseAfter: 3,
|
|
175
|
+
},
|
|
176
|
+
}
|
|
177
|
+
|
|
167
178
|
// ---------------------------------------------------------------------------
|
|
168
179
|
// Session with thinking indicator active
|
|
169
180
|
// ---------------------------------------------------------------------------
|