@tangle-network/ui 11.11.0 → 11.11.2
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 +13 -0
- package/README.md +4 -1
- package/dist/{auth-DixfCMCk.js → auth-DOETfnd9.js} +2 -2
- package/dist/auth.js +1 -1
- package/dist/{button-uhNnwdsD.js → button-C87nEe2R.js} +1 -1
- package/dist/{chat-CPLL0Fd9.js → chat-D-9Fm8A4.js} +14 -9
- package/dist/chat.js +1 -1
- package/dist/{code-block-CngSn37j.js → code-block-B36KVUSN.js} +1 -1
- package/dist/{diff-preview-cySuqowW.js → diff-preview-BcK3nRXb.js} +2 -2
- package/dist/{document-editor-pane-Cz6oEF1o.js → document-editor-pane-BxlPjaTP.js} +3 -3
- package/dist/editor.js +1 -1
- package/dist/{files-CYlOo0mE.js → files-Bug33qCl.js} +5 -5
- package/dist/files.js +1 -1
- package/dist/{focus-Cw02pNSr.js → focus-BcE_SHqz.js} +2 -1
- package/dist/hooks.js +1 -1
- package/dist/{index-b56ew9aF.d.ts → index-BgUHilZm.d.ts} +2 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +16 -16
- package/dist/{markdown-BprL96Gl.js → markdown-BGqicV82.js} +1 -1
- package/dist/markdown.js +2 -2
- package/dist/{openui-artifact-renderer-DT4xbvWt.js → openui-artifact-renderer-DrU1AdVk.js} +4 -4
- package/dist/openui.js +1 -1
- package/dist/{primitives-DE-blUz-.js → primitives-Cb8GGVKr.js} +2 -2
- package/dist/primitives.js +5 -5
- package/dist/{run-group-D1InSdQu.js → run-group-BACLbCFl.js} +3 -3
- package/dist/run.js +3 -3
- package/dist/sdk-hooks.js +1 -1
- package/dist/{table-DHyqDPbU.js → table-Bss73DhB.js} +1 -1
- package/dist/{tabs-ujuqAdtb.js → tabs-BVHR6NkO.js} +1 -1
- package/dist/{tool-call-feed-C1W1N54c.js → tool-call-feed-Djt2q11V.js} +2 -2
- package/dist/{tool-call-step-Bi3_YJRV.js → tool-call-step-DNebqhmX.js} +2 -2
- package/dist/tool-previews.js +1 -1
- package/dist/{use-sse-stream-BjVBDbxK.js → use-sse-stream-BVgO1QBN.js} +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +1 -1
- package/package.json +2 -2
- package/src/chat/agent-timeline.stories.tsx +15 -0
- package/src/chat/agent-timeline.tsx +10 -5
- package/src/lib/focus.ts +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @tangle-network/ui
|
|
2
2
|
|
|
3
|
+
## 11.11.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 658ae83: Use each colored AgentTimeline card's tone foreground for its status detail and artifact text.
|
|
8
|
+
Keep neutral cards on the normal muted foreground.
|
|
9
|
+
|
|
10
|
+
## 11.11.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- 1f0b651: Keep the native field fallback outline off borderless editors inside composite fields. The shared focusFieldWithin helper retains the rounded outer border and halo; standalone fields keep their own focus treatment.
|
|
15
|
+
|
|
3
16
|
## 11.11.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -114,4 +114,7 @@ A TypeScript consumer resolves these entries through the emitted declarations, a
|
|
|
114
114
|
|
|
115
115
|
Because the peers now resolve at first render rather than at build time, a missing one surfaces as a thrown error while React renders. Wrap the editors in an error boundary, so the install list reaches a surface you control instead of unmounting the tree.
|
|
116
116
|
|
|
117
|
-
`nanostores` and `@nanostores/react` back `./stores`, and `react-router` backs `./nav`.
|
|
117
|
+
`nanostores` and `@nanostores/react` back `./stores`, and `react-router` backs `./nav`.
|
|
118
|
+
Those entries create values at module scope, so consumers must install their peers before importing them.
|
|
119
|
+
The package root also re-exports `./stores`, so a root import requires both nanostores peers.
|
|
120
|
+
Consumers that use only other subpath entries do not need these three peers.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { i as focusRing } from "./focus-
|
|
1
|
+
import { i as focusRing } from "./focus-BcE_SHqz.js";
|
|
2
2
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
3
|
-
import { t as Button } from "./button-
|
|
3
|
+
import { t as Button } from "./button-C87nEe2R.js";
|
|
4
4
|
import { _ as AvatarFallback, a as DropdownMenuItem, g as Avatar, h as DropdownMenuTrigger, o as DropdownMenuLabel, r as DropdownMenuContent, t as DropdownMenu, u as DropdownMenuSeparator, v as AvatarImage } from "./dropdown-menu-BpcLa5vF.js";
|
|
5
5
|
import "react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
package/dist/auth.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as UserMenu, n as AuthHeader, r as GitHubLoginButton, t as LoginLayout } from "./auth-
|
|
1
|
+
import { i as UserMenu, n as AuthHeader, r as GitHubLoginButton, t as LoginLayout } from "./auth-DOETfnd9.js";
|
|
2
2
|
export { AuthHeader, GitHubLoginButton, LoginLayout, UserMenu };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { i as focusRing } from "./focus-
|
|
1
|
+
import { i as focusRing } from "./focus-BcE_SHqz.js";
|
|
2
2
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
3
3
|
import { r as getToolDisplayMetadata } from "./tool-display-BAuAVa43.js";
|
|
4
4
|
import { n as useRunCollapseState, r as useRunGroups, t as useAutoScroll } from "./use-auto-scroll-C5Pjeqon.js";
|
|
5
|
-
import { n as ToolCallStep, t as ToolCallGroup } from "./tool-call-step-
|
|
6
|
-
import { t as Markdown } from "./markdown-
|
|
7
|
-
import { n as InlineThinkingItem, t as RunGroup } from "./run-group-
|
|
8
|
-
import { t as OpenUIArtifactRenderer } from "./openui-artifact-renderer-
|
|
5
|
+
import { n as ToolCallStep, t as ToolCallGroup } from "./tool-call-step-DNebqhmX.js";
|
|
6
|
+
import { t as Markdown } from "./markdown-BGqicV82.js";
|
|
7
|
+
import { n as InlineThinkingItem, t as RunGroup } from "./run-group-BACLbCFl.js";
|
|
8
|
+
import { t as OpenUIArtifactRenderer } from "./openui-artifact-renderer-DrU1AdVk.js";
|
|
9
9
|
import { memo, useEffect, useMemo, useRef, useState } from "react";
|
|
10
10
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
11
11
|
import { AlertTriangle, ArrowDown, CheckCircle2, CircleDot, FileText, Info } from "lucide-react";
|
|
@@ -120,26 +120,31 @@ const TONE_STYLES = {
|
|
|
120
120
|
default: {
|
|
121
121
|
card: "border-border bg-card",
|
|
122
122
|
text: "text-foreground",
|
|
123
|
+
supportingText: "text-muted-foreground",
|
|
123
124
|
icon: CircleDot
|
|
124
125
|
},
|
|
125
126
|
info: {
|
|
126
127
|
card: "border-[var(--surface-info-border)] bg-[var(--surface-info-bg)]",
|
|
127
128
|
text: "text-[var(--surface-info-text)]",
|
|
129
|
+
supportingText: "text-[var(--surface-info-text)]",
|
|
128
130
|
icon: Info
|
|
129
131
|
},
|
|
130
132
|
success: {
|
|
131
133
|
card: "border-[var(--surface-success-border)] bg-[var(--surface-success-bg)]",
|
|
132
134
|
text: "text-[var(--surface-success-text)]",
|
|
135
|
+
supportingText: "text-[var(--surface-success-text)]",
|
|
133
136
|
icon: CheckCircle2
|
|
134
137
|
},
|
|
135
138
|
warning: {
|
|
136
139
|
card: "border-[var(--surface-warning-border)] bg-[var(--surface-warning-bg)]",
|
|
137
140
|
text: "text-[var(--surface-warning-text)]",
|
|
141
|
+
supportingText: "text-[var(--surface-warning-text)]",
|
|
138
142
|
icon: AlertTriangle
|
|
139
143
|
},
|
|
140
144
|
error: {
|
|
141
145
|
card: "border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)]",
|
|
142
146
|
text: "text-[var(--surface-danger-text)]",
|
|
147
|
+
supportingText: "text-[var(--surface-danger-text)]",
|
|
143
148
|
icon: AlertTriangle
|
|
144
149
|
}
|
|
145
150
|
};
|
|
@@ -190,7 +195,7 @@ function StatusCard({ item }) {
|
|
|
190
195
|
className: cn("text-sm font-medium", tone.text),
|
|
191
196
|
children: item.label
|
|
192
197
|
}), item.detail && /* @__PURE__ */ jsx("div", {
|
|
193
|
-
className: "mt-0.5 text-sm
|
|
198
|
+
className: cn("mt-0.5 text-sm", tone.supportingText),
|
|
194
199
|
children: item.detail
|
|
195
200
|
})]
|
|
196
201
|
})]
|
|
@@ -212,15 +217,15 @@ function ArtifactCard({ item }) {
|
|
|
212
217
|
className: "min-w-0 flex-1",
|
|
213
218
|
children: [
|
|
214
219
|
/* @__PURE__ */ jsx("div", {
|
|
215
|
-
className: "text-sm font-medium text
|
|
220
|
+
className: cn("text-sm font-medium", tone.text),
|
|
216
221
|
children: item.title
|
|
217
222
|
}),
|
|
218
223
|
item.description && /* @__PURE__ */ jsx("div", {
|
|
219
|
-
className: "mt-1 text-sm
|
|
224
|
+
className: cn("mt-1 text-sm", tone.supportingText),
|
|
220
225
|
children: item.description
|
|
221
226
|
}),
|
|
222
227
|
item.meta && /* @__PURE__ */ jsx("div", {
|
|
223
|
-
className: "mt-2 flex flex-wrap items-center gap-2 text-xs
|
|
228
|
+
className: cn("mt-2 flex flex-wrap items-center gap-2 text-xs", tone.supportingText),
|
|
224
229
|
children: item.meta
|
|
225
230
|
})
|
|
226
231
|
]
|
package/dist/chat.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as MessageList, i as ThinkingIndicator, n as ChatContainer, o as UserMessage, r as AgentTimeline, t as ChatMessage } from "./chat-
|
|
1
|
+
import { a as MessageList, i as ThinkingIndicator, n as ChatContainer, o as UserMessage, r as AgentTimeline, t as ChatMessage } from "./chat-D-9Fm8A4.js";
|
|
2
2
|
export { AgentTimeline, ChatContainer, ChatMessage, MessageList, ThinkingIndicator, UserMessage };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as focusRing } from "./focus-
|
|
1
|
+
import { i as focusRing } from "./focus-BcE_SHqz.js";
|
|
2
2
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
3
3
|
import { memo, useCallback, useEffect, useRef, useState } from "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { i as focusRing } from "./focus-
|
|
1
|
+
import { i as focusRing } from "./focus-BcE_SHqz.js";
|
|
2
2
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
3
|
-
import { n as CopyButton, t as CodeBlock } from "./code-block-
|
|
3
|
+
import { n as CopyButton, t as CodeBlock } from "./code-block-B36KVUSN.js";
|
|
4
4
|
import { a as getSyntaxLanguage } from "./file-format-BgXbr-Ib.js";
|
|
5
5
|
import { memo, useMemo, useState } from "react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { i as focusRing } from "./focus-
|
|
1
|
+
import { i as focusRing } from "./focus-BcE_SHqz.js";
|
|
2
2
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
3
|
-
import { i as TabsTrigger, n as TabsContent, r as TabsList, t as Tabs } from "./tabs-
|
|
3
|
+
import { i as TabsTrigger, n as TabsContent, r as TabsList, t as Tabs } from "./tabs-BVHR6NkO.js";
|
|
4
4
|
import { t as ArtifactPane } from "./artifact-pane-DMXT9a8U.js";
|
|
5
|
-
import { t as Markdown } from "./markdown-
|
|
5
|
+
import { t as Markdown } from "./markdown-BGqicV82.js";
|
|
6
6
|
import { Suspense, createContext, lazy, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { PencilLine, Save, Users, Wifi, WifiOff } from "lucide-react";
|
package/dist/editor.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as useCollaborators, c as useYjsState, d as EditorToolbar, f as EditorProvider, i as useCollaboratorPresence, l as CollaboratorsList, o as useDocumentChanges, p as useEditorContext, r as useAwareness, s as useEditorConnection, t as DocumentEditorPane, u as TiptapEditor } from "./document-editor-pane-
|
|
1
|
+
import { a as useCollaborators, c as useYjsState, d as EditorToolbar, f as EditorProvider, i as useCollaboratorPresence, l as CollaboratorsList, o as useDocumentChanges, p as useEditorContext, r as useAwareness, s as useEditorConnection, t as DocumentEditorPane, u as TiptapEditor } from "./document-editor-pane-BxlPjaTP.js";
|
|
2
2
|
export { CollaboratorsList, DocumentEditorPane, EditorProvider, EditorToolbar, TiptapEditor, useAwareness, useCollaboratorPresence, useCollaborators, useDocumentChanges, useEditorConnection, useEditorContext, useYjsState };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { a as focusRingInset, i as focusRing } from "./focus-
|
|
1
|
+
import { a as focusRingInset, i as focusRing } from "./focus-BcE_SHqz.js";
|
|
2
2
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
3
|
-
import { t as Button } from "./button-
|
|
3
|
+
import { t as Button } from "./button-C87nEe2R.js";
|
|
4
4
|
import { t as ArtifactPane } from "./artifact-pane-DMXT9a8U.js";
|
|
5
|
-
import { n as CopyButton, t as CodeBlock } from "./code-block-
|
|
5
|
+
import { n as CopyButton, t as CodeBlock } from "./code-block-B36KVUSN.js";
|
|
6
6
|
import { t as formatBytes } from "./format-DfcLWqMa.js";
|
|
7
7
|
import { i as getFormatLabel, n as fileExtension, o as resolveFilePreviewKind, r as getCodeLanguage, t as detectFileFormat } from "./file-format-BgXbr-Ib.js";
|
|
8
|
-
import { t as Markdown } from "./markdown-
|
|
8
|
+
import { t as Markdown } from "./markdown-BGqicV82.js";
|
|
9
9
|
import { Suspense, lazy, useEffect, useMemo, useState } from "react";
|
|
10
10
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
11
11
|
import { ChevronRight, Download, File, FileCode, FileImage, FileJson, FileSpreadsheet, FileText, Folder, FolderOpen, Music, X } from "lucide-react";
|
|
@@ -640,7 +640,7 @@ function FileTabs({ tabs, activeId, onSelect, onClose, className }) {
|
|
|
640
640
|
//#endregion
|
|
641
641
|
//#region src/files/file-artifact-pane.tsx
|
|
642
642
|
const LazyDocumentEditorPane = lazy(async () => {
|
|
643
|
-
return { default: (await import("./document-editor-pane-
|
|
643
|
+
return { default: (await import("./document-editor-pane-BxlPjaTP.js").then((n) => n.n)).DocumentEditorPane };
|
|
644
644
|
});
|
|
645
645
|
/**
|
|
646
646
|
* FileArtifactPane — opinionated artifact frame for file previews with tabs and
|
package/dist/files.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { a as getSyntaxLanguage, i as getFormatLabel, n as fileExtension, o as resolveFilePreviewKind, r as getCodeLanguage, t as detectFileFormat } from "./file-format-BgXbr-Ib.js";
|
|
2
|
-
import { a as parseCsv, c as filterFileTree, i as FilePreview, n as FileTabs, o as RichFileTree, r as CSV_PREVIEW_ROW_LIMIT, s as FileTree, t as FileArtifactPane } from "./files-
|
|
2
|
+
import { a as parseCsv, c as filterFileTree, i as FilePreview, n as FileTabs, o as RichFileTree, r as CSV_PREVIEW_ROW_LIMIT, s as FileTree, t as FileArtifactPane } from "./files-Bug33qCl.js";
|
|
3
3
|
export { CSV_PREVIEW_ROW_LIMIT, FileArtifactPane, FilePreview, FileTabs, FileTree, RichFileTree, detectFileFormat, fileExtension, filterFileTree, getCodeLanguage, getFormatLabel, getSyntaxLanguage, parseCsv, resolveFilePreviewKind };
|
|
@@ -39,8 +39,9 @@ const focusField = "border-border transition-[border-color,box-shadow] duration-
|
|
|
39
39
|
* therefore does not replace it. To style that container's focus differently,
|
|
40
40
|
* compose your own classes instead of this helper. The field selector is
|
|
41
41
|
* written out in full because Tailwind reads class names statically.
|
|
42
|
+
* Base styles use its marker class to clear the inner editor fallback outline.
|
|
42
43
|
*/
|
|
43
|
-
const focusFieldWithin = "border-border transition-[border-color,box-shadow] duration-150 ease-out hover:border-[var(--border-strong)] has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:border-[var(--focus-border)] has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:ring-3 has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:ring-[var(--focus-halo)]";
|
|
44
|
+
const focusFieldWithin = "focus-field-within border-border transition-[border-color,box-shadow] duration-150 ease-out hover:border-[var(--border-strong)] has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:border-[var(--focus-border)] has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:ring-3 has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:ring-[var(--focus-halo)]";
|
|
44
45
|
/** Error state for a field: a danger hairline and the same focus shape in danger. Compose after `focusField`. */
|
|
45
46
|
const focusFieldInvalid = "border-[var(--surface-danger-border)] hover:border-[var(--surface-danger-border)] focus:border-[var(--focus-border-danger)] focus:ring-[var(--focus-halo-danger)]";
|
|
46
47
|
const focusRingBase = "focus-visible:outline-1 focus-visible:outline-[var(--focus-border)] focus-visible:ring-4 focus-visible:ring-[var(--focus-halo)]";
|
package/dist/hooks.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as useRunCollapseState, r as useRunGroups, t as useAutoScroll } from "./use-auto-scroll-C5Pjeqon.js";
|
|
2
|
-
import { a as useToolCallStream, i as useRealtimeSession, n as useSdkSession, o as useDropdownMenu, r as RealtimeSessionRegistry, t as useSSEStream } from "./use-sse-stream-
|
|
2
|
+
import { a as useToolCallStream, i as useRealtimeSession, n as useSdkSession, o as useDropdownMenu, r as RealtimeSessionRegistry, t as useSSEStream } from "./use-sse-stream-BVgO1QBN.js";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
//#region src/hooks/use-live-time.ts
|
|
5
5
|
/**
|
|
@@ -91,8 +91,9 @@ declare const focusField = "border-border transition-[border-color,box-shadow] d
|
|
|
91
91
|
* therefore does not replace it. To style that container's focus differently,
|
|
92
92
|
* compose your own classes instead of this helper. The field selector is
|
|
93
93
|
* written out in full because Tailwind reads class names statically.
|
|
94
|
+
* Base styles use its marker class to clear the inner editor fallback outline.
|
|
94
95
|
*/
|
|
95
|
-
declare const focusFieldWithin = "border-border transition-[border-color,box-shadow] duration-150 ease-out hover:border-[var(--border-strong)] has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:border-[var(--focus-border)] has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:ring-3 has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:ring-[var(--focus-halo)]";
|
|
96
|
+
declare const focusFieldWithin = "focus-field-within border-border transition-[border-color,box-shadow] duration-150 ease-out hover:border-[var(--border-strong)] has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:border-[var(--focus-border)] has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:ring-3 has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:ring-[var(--focus-halo)]";
|
|
96
97
|
/** Error state for a field: a danger hairline and the same focus shape in danger. Compose after `focusField`. */
|
|
97
98
|
declare const focusFieldInvalid = "border-[var(--surface-danger-border)] hover:border-[var(--surface-danger-border)] focus:border-[var(--focus-border-danger)] focus:ring-[var(--focus-halo-danger)]";
|
|
98
99
|
/** Keyboard-only focus for a control: a 1px focus line with the halo beyond it. */
|
package/dist/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ import "./openui.js";
|
|
|
20
20
|
import { n as MarkdownProps, t as Markdown } from "./index-Cq-EJzqW.js";
|
|
21
21
|
import { addMessage, addParts, clearChat, isStreamingAtom, messagesAtom, partMapAtom, updatePart } from "./stores.js";
|
|
22
22
|
import "./types.js";
|
|
23
|
-
import { a as focusRingInset, c as getToolCategory, d as timeAgo, f as formatBytes, g as copyText, h as truncateText, i as focusRing, l as getToolDisplayMetadata, m as formatUptime, n as focusFieldInvalid, o as cn, p as formatDuration, r as focusFieldWithin, s as TOOL_CATEGORY_ICONS, t as focusField, u as getToolErrorText } from "./index-
|
|
23
|
+
import { a as focusRingInset, c as getToolCategory, d as timeAgo, f as formatBytes, g as copyText, h as truncateText, i as focusRing, l as getToolDisplayMetadata, m as formatUptime, n as focusFieldInvalid, o as cn, p as formatDuration, r as focusFieldWithin, s as TOOL_CATEGORY_ICONS, t as focusField, u as getToolErrorText } from "./index-BgUHilZm.js";
|
|
24
24
|
import { a as WebSearchPreview, c as GlobResultsPreviewProps, d as WriteFilePreview, f as WriteFilePreviewProps, i as QuestionPreviewProps, l as GrepResultsPreview, m as CommandPreviewProps, n as DiffPreviewProps, o as WebSearchPreviewProps, p as CommandPreview, r as QuestionPreview, s as GlobResultsPreview, t as DiffPreview, u as GrepResultsPreviewProps } from "./index-2UntyjBb.js";
|
|
25
25
|
import { a as RevealResult, i as RedactedDocumentProps, n as RedactedDocument, r as RedactedDocumentData, t as RedactedDocSegment } from "./index-COgqsFAQ.js";
|
|
26
26
|
export { ActiveProjectActivity, ActiveSessionActivityOptions, ActiveSessionConnectionOptions, ActiveSessionConnectionState, ActiveSessionReconnectState, ActiveSessionRecord, ActiveSessionStatus, ActiveSessionTransportMode, ActiveSessionsState, AgentBranding, AgentStreamEvent, AgentTimeline, type AgentTimelineArtifactItem, type AgentTimelineCustomItem, type AgentTimelineItem, type AgentTimelineMessageItem, type AgentTimelineProps, type AgentTimelineStatusItem, type AgentTimelineTone, type AgentTimelineToolGroupItem, type AgentTimelineToolItem, AppendUserMessageOptions, ApplySdkEventOptions, ArtifactPane, type ArtifactPaneProps, AuthHeader, type AuthHeaderProps, AuthUser, AutomationStreamEvent, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, BeginAssistantMessageOptions, BotStreamEvent, Button, type ButtonProps, CSV_PREVIEW_ROW_LIMIT, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChatContainer, type ChatContainerProps, ChatMessage, type ChatMessageProps, CodeBlock, type CodeBlockProps, CommandPreview, type CommandPreviewProps, CompleteAssistantMessageOptions, ConnectionState, CopyButton, CustomToolRenderer, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffPreview, type DiffPreviewProps, DisplayVariant, DropZone, type DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, ExpandedToolDetail, type ExpandedToolDetailProps, type FeedSegment, FileArtifactPane, type FileArtifactPaneProps, type FileFormat, type FileNode, FilePreview, type FilePreviewKind, type FilePreviewProps, type FileTabData, FileTabs, type FileTabsProps, FileTree, type FileTreeProps, type FileTreeVisibilityOptions, FilterField, type FilterFieldProps, FinalTextPart, GitHubLoginButton, type GitHubLoginButtonProps, GlobResultsPreview, type GlobResultsPreviewProps, GrepResultsPreview, type GrepResultsPreviewProps, GroupedMessage, InlineCode, type InlineCodeProps, InlineThinkingItem, type InlineThinkingItemProps, InlineToolItem, type InlineToolItemProps, Input, type InputProps, Label, LiveDuration, LoginLayout, type LoginLayoutProps, Logo, type LogoProps, Markdown, type MarkdownProps, MessageList, type MessageListProps, type MessageRole, MessageRun, MessageUser, Metric, type MetricProps, MetricStrip, type MetricStripProps, type OpenUIAction, type OpenUIActionsNode, OpenUIArtifactRenderer, type OpenUIArtifactRendererProps, type OpenUIBadgeNode, type OpenUICardNode, type OpenUICodeNode, type OpenUIComponentNode, type OpenUIGridNode, type OpenUIHeadingNode, type OpenUIKeyValueNode, type OpenUIMarkdownNode, type OpenUIPrimitive, type OpenUISeparatorNode, type OpenUIStackNode, type OpenUIStatNode, type OpenUITableNode, type OpenUITextNode, PageHeader, type PageHeaderProps, Progress, QuestionPreview, type QuestionPreviewProps, RealtimeSessionOptions, RealtimeSessionRegistry, RealtimeSessionRegistryProps, RealtimeSessionState, RealtimeSessionTarget, ReasoningPart, type RedactedDocSegment, RedactedDocument, type RedactedDocumentData, type RedactedDocumentProps, RegisterActiveSessionOptions, type RevealResult, RichFileTree, type RichFileTreeGitEntry, type RichFileTreeGitStatus, type RichFileTreeProps, type RichFileTreeThemeVars, Run, RunGroup, type RunGroupProps, RunRowShell, type RunRowShellProps, type RunRowStatus, RunRowStatusDot, RunStats, SSEEvent, SdkSessionAttachment, SdkSessionEvent, SdkSessionSeed, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SessionMessage, SessionPart, SessionProjectKey, type SessionUser, SidebarDropZone, type SidebarDropZoneProps, Skeleton, SkeletonCard, SkeletonTable, StatCard, type StatCardProps, StatusPill, type StatusPillProps, type StatusTone, Switch, TOOL_CATEGORY_ICONS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TangleKnot, TaskStreamEvent, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TerminalStreamEvent, TextPart, TextShimmer, type TextShimmerProps, Textarea, type TextareaProps, ThemeToggle, ThinkingIndicator, type ThinkingIndicatorProps, type Toast, ToastContainer, ToastProvider, type ToolCallData, ToolCallFeed, type ToolCallFeedProps, type ToolCallStatus, type ToolCallType, ToolCategory, ToolDisplayMetadata, ToolPart, ToolState, ToolStatus, ToolTime, Toolbar, type ToolbarProps, type UploadFile, UploadProgress, type UploadProgressProps, UseAuthOptions, UseAuthResult, UseRunGroupsOptions, UseSSEStreamOptions, UseSSEStreamResult, UseSdkSessionOptions, UseSdkSessionReturn, UseToolCallStreamReturn, UserMenu, type UserMenuProps, UserMessage, type UserMessageProps, WebSearchPreview, type WebSearchPreviewProps, WriteFilePreview, type WriteFilePreviewProps, activeSessionsAtom, addMessage, addParts, badgeVariants, bumpActiveSessionActivity, buttonVariants, clearChat, cn, copyText, createAuthFetcher, detectFileFormat, fileExtension, filterFileTree, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatUptime, getActiveSession, getAllActiveSessions, getAllProjectActivity, getCodeLanguage, getFormatLabel, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getSyntaxLanguage, getToolCategory, getToolDisplayMetadata, getToolErrorText, getTotalRunningSessionCount, hasBackgroundRunningSessions, isStreamingAtom, messagesAtom, parseCsv, parseToolEvent, partMapAtom, registerActiveSession, resetActiveSessions, resolveFilePreviewKind, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, timeAgo, truncateText, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useApiKey, useAuth, useAutoScroll, useDropdownMenu, useHasBackgroundRunningSessions, useLiveTime, useNavbarSessions, useProjectActivity, useProjectSessions, useRealtimeSession, useRunCollapseState, useRunGroups, useSSEStream, useSdkSession, useSessionsByActivity, useTheme, useToast, useToolCallStream, useTotalRunningSessions };
|
package/dist/index.js
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import { a as focusRingInset, i as focusRing, n as focusFieldInvalid, r as focusFieldWithin, t as focusField } from "./focus-
|
|
1
|
+
import { a as focusRingInset, i as focusRing, n as focusFieldInvalid, r as focusFieldWithin, t as focusField } from "./focus-BcE_SHqz.js";
|
|
2
2
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
3
|
-
import { n as buttonVariants, t as Button } from "./button-
|
|
4
|
-
import { a as TableFooter, c as TableRow, d as Card, f as CardContent, g as CardTitle, h as CardHeader, i as TableCell, l as Badge, m as CardFooter, n as TableBody, o as TableHead, p as CardDescription, r as TableCaption, s as TableHeader, t as Table, u as badgeVariants } from "./table-
|
|
5
|
-
import { A as SegmentedControl, B as SelectValue, C as ToastProvider, D as SkeletonTable, E as SkeletonCard, F as SelectLabel, G as DialogContent, H as Textarea, I as SelectScrollDownButton, J as DialogHeader, K as DialogDescription, L as SelectScrollUpButton, M as SelectContent, N as SelectGroup, O as Switch, P as SelectItem, Q as DialogTrigger, R as SelectSeparator, S as ToastContainer, T as Skeleton, U as Dialog, V as Input, W as DialogClose, X as DialogPortal, Y as DialogOverlay, Z as DialogTitle, _ as TerminalInput, a as Metric, b as EmptyState, c as PageHeader, d as InlineCode, f as SidebarDropZone, g as TerminalDisplay, h as TerminalCursor, i as Toolbar, j as Select, k as Progress, l as ThemeToggle, m as DropZone, n as TangleKnot, o as MetricStrip, p as UploadProgress, q as DialogFooter, r as FilterField, s as StatusPill, t as Logo, u as useTheme, v as TerminalLine, w as useToast, x as Label, y as StatCard, z as SelectTrigger } from "./primitives-
|
|
3
|
+
import { n as buttonVariants, t as Button } from "./button-C87nEe2R.js";
|
|
4
|
+
import { a as TableFooter, c as TableRow, d as Card, f as CardContent, g as CardTitle, h as CardHeader, i as TableCell, l as Badge, m as CardFooter, n as TableBody, o as TableHead, p as CardDescription, r as TableCaption, s as TableHeader, t as Table, u as badgeVariants } from "./table-Bss73DhB.js";
|
|
5
|
+
import { A as SegmentedControl, B as SelectValue, C as ToastProvider, D as SkeletonTable, E as SkeletonCard, F as SelectLabel, G as DialogContent, H as Textarea, I as SelectScrollDownButton, J as DialogHeader, K as DialogDescription, L as SelectScrollUpButton, M as SelectContent, N as SelectGroup, O as Switch, P as SelectItem, Q as DialogTrigger, R as SelectSeparator, S as ToastContainer, T as Skeleton, U as Dialog, V as Input, W as DialogClose, X as DialogPortal, Y as DialogOverlay, Z as DialogTitle, _ as TerminalInput, a as Metric, b as EmptyState, c as PageHeader, d as InlineCode, f as SidebarDropZone, g as TerminalDisplay, h as TerminalCursor, i as Toolbar, j as Select, k as Progress, l as ThemeToggle, m as DropZone, n as TangleKnot, o as MetricStrip, p as UploadProgress, q as DialogFooter, r as FilterField, s as StatusPill, t as Logo, u as useTheme, v as TerminalLine, w as useToast, x as Label, y as StatCard, z as SelectTrigger } from "./primitives-Cb8GGVKr.js";
|
|
6
6
|
import { _ as AvatarFallback, a as DropdownMenuItem, c as DropdownMenuRadioGroup, d as DropdownMenuShortcut, f as DropdownMenuSub, g as Avatar, h as DropdownMenuTrigger, i as DropdownMenuGroup, l as DropdownMenuRadioItem, m as DropdownMenuSubTrigger, n as DropdownMenuCheckboxItem, o as DropdownMenuLabel, p as DropdownMenuSubContent, r as DropdownMenuContent, s as DropdownMenuPortal, t as DropdownMenu, u as DropdownMenuSeparator, v as AvatarImage } from "./dropdown-menu-BpcLa5vF.js";
|
|
7
|
-
import { i as TabsTrigger, n as TabsContent, r as TabsList, t as Tabs } from "./tabs-
|
|
7
|
+
import { i as TabsTrigger, n as TabsContent, r as TabsList, t as Tabs } from "./tabs-BVHR6NkO.js";
|
|
8
8
|
import { t as TextShimmer } from "./text-shimmer-BUUo6I-g.js";
|
|
9
9
|
import { t as ArtifactPane } from "./artifact-pane-DMXT9a8U.js";
|
|
10
|
-
import { n as CopyButton, t as CodeBlock } from "./code-block-
|
|
10
|
+
import { n as CopyButton, t as CodeBlock } from "./code-block-B36KVUSN.js";
|
|
11
11
|
import { i as getToolErrorText, n as getToolCategory, r as getToolDisplayMetadata, t as TOOL_CATEGORY_ICONS } from "./tool-display-BAuAVa43.js";
|
|
12
12
|
import { n as useRunCollapseState, r as useRunGroups, t as useAutoScroll } from "./use-auto-scroll-C5Pjeqon.js";
|
|
13
13
|
import { i as truncateText, n as formatDuration, r as formatUptime, t as formatBytes } from "./format-DfcLWqMa.js";
|
|
14
|
-
import { a as GrepResultsPreview, i as GlobResultsPreview, n as QuestionPreview, o as WriteFilePreview, r as WebSearchPreview, s as CommandPreview, t as DiffPreview } from "./diff-preview-
|
|
14
|
+
import { a as GrepResultsPreview, i as GlobResultsPreview, n as QuestionPreview, o as WriteFilePreview, r as WebSearchPreview, s as CommandPreview, t as DiffPreview } from "./diff-preview-BcK3nRXb.js";
|
|
15
15
|
import { a as getSyntaxLanguage, i as getFormatLabel, n as fileExtension, o as resolveFilePreviewKind, r as getCodeLanguage, t as detectFileFormat } from "./file-format-BgXbr-Ib.js";
|
|
16
|
-
import { a as RunRowStatusDot, i as RunRowShell, o as ExpandedToolDetail, r as InlineToolItem } from "./tool-call-step-
|
|
17
|
-
import { t as Markdown } from "./markdown-
|
|
18
|
-
import { n as InlineThinkingItem, t as RunGroup } from "./run-group-
|
|
19
|
-
import { t as OpenUIArtifactRenderer } from "./openui-artifact-renderer-
|
|
20
|
-
import { a as MessageList, i as ThinkingIndicator, n as ChatContainer, o as UserMessage, r as AgentTimeline, t as ChatMessage } from "./chat-
|
|
16
|
+
import { a as RunRowStatusDot, i as RunRowShell, o as ExpandedToolDetail, r as InlineToolItem } from "./tool-call-step-DNebqhmX.js";
|
|
17
|
+
import { t as Markdown } from "./markdown-BGqicV82.js";
|
|
18
|
+
import { n as InlineThinkingItem, t as RunGroup } from "./run-group-BACLbCFl.js";
|
|
19
|
+
import { t as OpenUIArtifactRenderer } from "./openui-artifact-renderer-DrU1AdVk.js";
|
|
20
|
+
import { a as MessageList, i as ThinkingIndicator, n as ChatContainer, o as UserMessage, r as AgentTimeline, t as ChatMessage } from "./chat-D-9Fm8A4.js";
|
|
21
21
|
import { t as LiveDuration } from "./run-ZsIKPA6J.js";
|
|
22
|
-
import { n as parseToolEvent, t as ToolCallFeed } from "./tool-call-feed-
|
|
22
|
+
import { n as parseToolEvent, t as ToolCallFeed } from "./tool-call-feed-Djt2q11V.js";
|
|
23
23
|
import "./openui.js";
|
|
24
|
-
import { a as parseCsv, c as filterFileTree, i as FilePreview, n as FileTabs, o as RichFileTree, r as CSV_PREVIEW_ROW_LIMIT, s as FileTree, t as FileArtifactPane } from "./files-
|
|
24
|
+
import { a as parseCsv, c as filterFileTree, i as FilePreview, n as FileTabs, o as RichFileTree, r as CSV_PREVIEW_ROW_LIMIT, s as FileTree, t as FileArtifactPane } from "./files-Bug33qCl.js";
|
|
25
25
|
import "./markdown.js";
|
|
26
|
-
import { i as UserMenu, n as AuthHeader, r as GitHubLoginButton, t as LoginLayout } from "./auth-
|
|
27
|
-
import { a as useToolCallStream, i as useRealtimeSession, n as useSdkSession, o as useDropdownMenu, r as RealtimeSessionRegistry, t as useSSEStream } from "./use-sse-stream-
|
|
26
|
+
import { i as UserMenu, n as AuthHeader, r as GitHubLoginButton, t as LoginLayout } from "./auth-DOETfnd9.js";
|
|
27
|
+
import { a as useToolCallStream, i as useRealtimeSession, n as useSdkSession, o as useDropdownMenu, r as RealtimeSessionRegistry, t as useSSEStream } from "./use-sse-stream-BVgO1QBN.js";
|
|
28
28
|
import { C as useHasBackgroundRunningSessions, D as useSessionsByActivity, E as useProjectSessions, O as useTotalRunningSessions, S as useActiveSessionsState, T as useProjectActivity, _ as setForegroundActiveSession, a as getAllProjectActivity, b as useActiveSession, c as getSessionsForProject, d as registerActiveSession, f as resetActiveSessions, g as setActiveSessionRunning, h as setActiveSessionError, i as getAllActiveSessions, l as getTotalRunningSessionCount, m as setActiveSessionConnection, n as bumpActiveSessionActivity, o as getSessionsByActivity, p as setActiveSessionAttention, r as getActiveSession, s as getSessionsForNavbar, t as activeSessionsAtom, u as hasBackgroundRunningSessions, v as unregisterActiveSession, w as useNavbarSessions, x as useActiveSessions, y as updateActiveSessionMeta } from "./active-sessions-store-Gt1R0rFG.js";
|
|
29
29
|
import { createAuthFetcher, useApiKey, useAuth, useLiveTime } from "./hooks.js";
|
|
30
30
|
import { addMessage, addParts, clearChat, isStreamingAtom, messagesAtom, partMapAtom, updatePart } from "./stores.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
2
|
-
import { n as CopyButton, t as CodeBlock } from "./code-block-
|
|
2
|
+
import { n as CopyButton, t as CodeBlock } from "./code-block-B36KVUSN.js";
|
|
3
3
|
import { memo } from "react";
|
|
4
4
|
import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
|
|
5
5
|
import ReactMarkdown from "react-markdown";
|
package/dist/markdown.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as CopyButton, t as CodeBlock } from "./code-block-
|
|
2
|
-
import { t as Markdown } from "./markdown-
|
|
1
|
+
import { n as CopyButton, t as CodeBlock } from "./code-block-B36KVUSN.js";
|
|
2
|
+
import { t as Markdown } from "./markdown-BGqicV82.js";
|
|
3
3
|
export { CodeBlock, CopyButton, Markdown };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
2
|
-
import { t as Button } from "./button-
|
|
3
|
-
import { c as TableRow, d as Card, f as CardContent, g as CardTitle, h as CardHeader, i as TableCell, l as Badge, n as TableBody, o as TableHead, p as CardDescription, s as TableHeader, t as Table } from "./table-
|
|
4
|
-
import { t as CodeBlock } from "./code-block-
|
|
5
|
-
import { t as Markdown } from "./markdown-
|
|
2
|
+
import { t as Button } from "./button-C87nEe2R.js";
|
|
3
|
+
import { c as TableRow, d as Card, f as CardContent, g as CardTitle, h as CardHeader, i as TableCell, l as Badge, n as TableBody, o as TableHead, p as CardDescription, s as TableHeader, t as Table } from "./table-Bss73DhB.js";
|
|
4
|
+
import { t as CodeBlock } from "./code-block-B36KVUSN.js";
|
|
5
|
+
import { t as Markdown } from "./markdown-BGqicV82.js";
|
|
6
6
|
import { Fragment } from "react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { Minus } from "lucide-react";
|
package/dist/openui.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as OpenUIArtifactRenderer } from "./openui-artifact-renderer-
|
|
1
|
+
import { t as OpenUIArtifactRenderer } from "./openui-artifact-renderer-DrU1AdVk.js";
|
|
2
2
|
export { OpenUIArtifactRenderer };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as focusRingInset, i as focusRing, n as focusFieldInvalid, r as focusFieldWithin, t as focusField } from "./focus-
|
|
1
|
+
import { a as focusRingInset, i as focusRing, n as focusFieldInvalid, r as focusFieldWithin, t as focusField } from "./focus-BcE_SHqz.js";
|
|
2
2
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
3
|
-
import { d as Card } from "./table-
|
|
3
|
+
import { d as Card } from "./table-Bss73DhB.js";
|
|
4
4
|
import { cva } from "class-variance-authority";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { useCallback, useEffect, useRef, useState } from "react";
|
package/dist/primitives.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { n as buttonVariants, t as Button } from "./button-
|
|
2
|
-
import { a as TableFooter, c as TableRow, d as Card, f as CardContent, g as CardTitle, h as CardHeader, i as TableCell, l as Badge, m as CardFooter, n as TableBody, o as TableHead, p as CardDescription, r as TableCaption, s as TableHeader, t as Table, u as badgeVariants } from "./table-
|
|
3
|
-
import { A as SegmentedControl, B as SelectValue, C as ToastProvider, D as SkeletonTable, E as SkeletonCard, F as SelectLabel, G as DialogContent, H as Textarea, I as SelectScrollDownButton, J as DialogHeader, K as DialogDescription, L as SelectScrollUpButton, M as SelectContent, N as SelectGroup, O as Switch, P as SelectItem, Q as DialogTrigger, R as SelectSeparator, S as ToastContainer, T as Skeleton, U as Dialog, V as Input, W as DialogClose, X as DialogPortal, Y as DialogOverlay, Z as DialogTitle, _ as TerminalInput, a as Metric, b as EmptyState, c as PageHeader, d as InlineCode, f as SidebarDropZone, g as TerminalDisplay, h as TerminalCursor, i as Toolbar, j as Select, k as Progress, l as ThemeToggle, m as DropZone, n as TangleKnot, o as MetricStrip, p as UploadProgress, q as DialogFooter, r as FilterField, s as StatusPill, t as Logo, u as useTheme, v as TerminalLine, w as useToast, x as Label, y as StatCard, z as SelectTrigger } from "./primitives-
|
|
1
|
+
import { n as buttonVariants, t as Button } from "./button-C87nEe2R.js";
|
|
2
|
+
import { a as TableFooter, c as TableRow, d as Card, f as CardContent, g as CardTitle, h as CardHeader, i as TableCell, l as Badge, m as CardFooter, n as TableBody, o as TableHead, p as CardDescription, r as TableCaption, s as TableHeader, t as Table, u as badgeVariants } from "./table-Bss73DhB.js";
|
|
3
|
+
import { A as SegmentedControl, B as SelectValue, C as ToastProvider, D as SkeletonTable, E as SkeletonCard, F as SelectLabel, G as DialogContent, H as Textarea, I as SelectScrollDownButton, J as DialogHeader, K as DialogDescription, L as SelectScrollUpButton, M as SelectContent, N as SelectGroup, O as Switch, P as SelectItem, Q as DialogTrigger, R as SelectSeparator, S as ToastContainer, T as Skeleton, U as Dialog, V as Input, W as DialogClose, X as DialogPortal, Y as DialogOverlay, Z as DialogTitle, _ as TerminalInput, a as Metric, b as EmptyState, c as PageHeader, d as InlineCode, f as SidebarDropZone, g as TerminalDisplay, h as TerminalCursor, i as Toolbar, j as Select, k as Progress, l as ThemeToggle, m as DropZone, n as TangleKnot, o as MetricStrip, p as UploadProgress, q as DialogFooter, r as FilterField, s as StatusPill, t as Logo, u as useTheme, v as TerminalLine, w as useToast, x as Label, y as StatCard, z as SelectTrigger } from "./primitives-Cb8GGVKr.js";
|
|
4
4
|
import { _ as AvatarFallback, a as DropdownMenuItem, c as DropdownMenuRadioGroup, d as DropdownMenuShortcut, f as DropdownMenuSub, g as Avatar, h as DropdownMenuTrigger, i as DropdownMenuGroup, l as DropdownMenuRadioItem, m as DropdownMenuSubTrigger, n as DropdownMenuCheckboxItem, o as DropdownMenuLabel, p as DropdownMenuSubContent, r as DropdownMenuContent, s as DropdownMenuPortal, t as DropdownMenu, u as DropdownMenuSeparator, v as AvatarImage } from "./dropdown-menu-BpcLa5vF.js";
|
|
5
|
-
import { i as TabsTrigger, n as TabsContent, r as TabsList, t as Tabs } from "./tabs-
|
|
5
|
+
import { i as TabsTrigger, n as TabsContent, r as TabsList, t as Tabs } from "./tabs-BVHR6NkO.js";
|
|
6
6
|
import { t as TextShimmer } from "./text-shimmer-BUUo6I-g.js";
|
|
7
7
|
import { t as ArtifactPane } from "./artifact-pane-DMXT9a8U.js";
|
|
8
|
-
import { n as CopyButton, t as CodeBlock } from "./code-block-
|
|
8
|
+
import { n as CopyButton, t as CodeBlock } from "./code-block-B36KVUSN.js";
|
|
9
9
|
export { ArtifactPane, Avatar, AvatarFallback, AvatarImage, Badge, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CodeBlock, CopyButton, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropZone, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, FilterField, InlineCode, Input, Label, Logo, Metric, MetricStrip, PageHeader, Progress, SegmentedControl, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarDropZone, Skeleton, SkeletonCard, SkeletonTable, StatCard, StatusPill, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TangleKnot, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, Textarea, ThemeToggle, ToastContainer, ToastProvider, Toolbar, UploadProgress, badgeVariants, buttonVariants, useTheme, useToast };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
2
2
|
import { t as TextShimmer } from "./text-shimmer-BUUo6I-g.js";
|
|
3
3
|
import { i as truncateText, n as formatDuration } from "./format-DfcLWqMa.js";
|
|
4
|
-
import { i as RunRowShell, r as InlineToolItem, s as ExpandableContent } from "./tool-call-step-
|
|
5
|
-
import { t as Markdown } from "./markdown-
|
|
6
|
-
import { t as OpenUIArtifactRenderer } from "./openui-artifact-renderer-
|
|
4
|
+
import { i as RunRowShell, r as InlineToolItem, s as ExpandableContent } from "./tool-call-step-DNebqhmX.js";
|
|
5
|
+
import { t as Markdown } from "./markdown-BGqicV82.js";
|
|
6
|
+
import { t as OpenUIArtifactRenderer } from "./openui-artifact-renderer-DrU1AdVk.js";
|
|
7
7
|
import { memo, useEffect, useMemo, useRef, useState } from "react";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { Bot, Brain, ChevronDown, ChevronRight, ClipboardList, FileEdit, FileSearch, Globe, Loader2, PencilLine, Search, Settings, Sparkles, Terminal } from "lucide-react";
|
package/dist/run.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as RunRowStatusDot, i as RunRowShell, o as ExpandedToolDetail, r as InlineToolItem } from "./tool-call-step-
|
|
2
|
-
import { n as InlineThinkingItem, t as RunGroup } from "./run-group-
|
|
1
|
+
import { a as RunRowStatusDot, i as RunRowShell, o as ExpandedToolDetail, r as InlineToolItem } from "./tool-call-step-DNebqhmX.js";
|
|
2
|
+
import { n as InlineThinkingItem, t as RunGroup } from "./run-group-BACLbCFl.js";
|
|
3
3
|
import { t as LiveDuration } from "./run-ZsIKPA6J.js";
|
|
4
|
-
import { n as parseToolEvent, t as ToolCallFeed } from "./tool-call-feed-
|
|
4
|
+
import { n as parseToolEvent, t as ToolCallFeed } from "./tool-call-feed-Djt2q11V.js";
|
|
5
5
|
export { ExpandedToolDetail, InlineThinkingItem, InlineToolItem, LiveDuration, RunGroup, RunRowShell, RunRowStatusDot, ToolCallFeed, parseToolEvent };
|
package/dist/sdk-hooks.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { n as useRunCollapseState, r as useRunGroups, t as useAutoScroll } from "./use-auto-scroll-C5Pjeqon.js";
|
|
2
|
-
import { a as useToolCallStream, i as useRealtimeSession, n as useSdkSession, o as useDropdownMenu, r as RealtimeSessionRegistry, t as useSSEStream } from "./use-sse-stream-
|
|
2
|
+
import { a as useToolCallStream, i as useRealtimeSession, n as useSdkSession, o as useDropdownMenu, r as RealtimeSessionRegistry, t as useSSEStream } from "./use-sse-stream-BVgO1QBN.js";
|
|
3
3
|
export { RealtimeSessionRegistry, useAutoScroll, useDropdownMenu, useRealtimeSession, useRunCollapseState, useRunGroups, useSSEStream, useSdkSession, useToolCallStream };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
2
|
-
import { n as ToolCallStep, t as ToolCallGroup } from "./tool-call-step-
|
|
3
|
-
import { t as Markdown } from "./markdown-
|
|
2
|
+
import { n as ToolCallStep, t as ToolCallGroup } from "./tool-call-step-DNebqhmX.js";
|
|
3
|
+
import { t as Markdown } from "./markdown-BGqicV82.js";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
//#region src/run/tool-call-feed.tsx
|
|
6
6
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
2
2
|
import { t as TextShimmer } from "./text-shimmer-BUUo6I-g.js";
|
|
3
|
-
import { t as CodeBlock } from "./code-block-
|
|
3
|
+
import { t as CodeBlock } from "./code-block-B36KVUSN.js";
|
|
4
4
|
import { i as getToolErrorText, n as getToolCategory, r as getToolDisplayMetadata } from "./tool-display-BAuAVa43.js";
|
|
5
5
|
import { n as formatDuration } from "./format-DfcLWqMa.js";
|
|
6
|
-
import { a as GrepResultsPreview, i as GlobResultsPreview, n as QuestionPreview, o as WriteFilePreview, r as WebSearchPreview, s as CommandPreview, t as DiffPreview } from "./diff-preview-
|
|
6
|
+
import { a as GrepResultsPreview, i as GlobResultsPreview, n as QuestionPreview, o as WriteFilePreview, r as WebSearchPreview, s as CommandPreview, t as DiffPreview } from "./diff-preview-BcK3nRXb.js";
|
|
7
7
|
import { memo, useEffect, useRef, useState } from "react";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { AlertCircle, ArrowLeft, ArrowRight, Bot, ChevronRight, ClipboardList, FileEdit, FileSearch, FileText, Globe, Loader2, PencilLine, Search, Settings, Terminal } from "lucide-react";
|
package/dist/tool-previews.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as GrepResultsPreview, i as GlobResultsPreview, n as QuestionPreview, o as WriteFilePreview, r as WebSearchPreview, s as CommandPreview, t as DiffPreview } from "./diff-preview-
|
|
1
|
+
import { a as GrepResultsPreview, i as GlobResultsPreview, n as QuestionPreview, o as WriteFilePreview, r as WebSearchPreview, s as CommandPreview, t as DiffPreview } from "./diff-preview-BcK3nRXb.js";
|
|
2
2
|
export { CommandPreview, DiffPreview, GlobResultsPreview, GrepResultsPreview, QuestionPreview, WebSearchPreview, WriteFilePreview };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as parseToolEvent } from "./tool-call-feed-
|
|
1
|
+
import { n as parseToolEvent } from "./tool-call-feed-Djt2q11V.js";
|
|
2
2
|
import { _ as setForegroundActiveSession, d as registerActiveSession, g as setActiveSessionRunning, h as setActiveSessionError, m as setActiveSessionConnection, n as bumpActiveSessionActivity, p as setActiveSessionAttention, v as unregisterActiveSession, y as updateActiveSessionMeta } from "./active-sessions-store-Gt1R0rFG.js";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { createElement, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as focusRingInset, c as getToolCategory, d as timeAgo, f as formatBytes, g as copyText, h as truncateText, i as focusRing, l as getToolDisplayMetadata, m as formatUptime, n as focusFieldInvalid, o as cn, p as formatDuration, r as focusFieldWithin, s as TOOL_CATEGORY_ICONS, t as focusField, u as getToolErrorText } from "./index-
|
|
1
|
+
import { a as focusRingInset, c as getToolCategory, d as timeAgo, f as formatBytes, g as copyText, h as truncateText, i as focusRing, l as getToolDisplayMetadata, m as formatUptime, n as focusFieldInvalid, o as cn, p as formatDuration, r as focusFieldWithin, s as TOOL_CATEGORY_ICONS, t as focusField, u as getToolErrorText } from "./index-BgUHilZm.js";
|
|
2
2
|
export { TOOL_CATEGORY_ICONS, cn, copyText, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatUptime, getToolCategory, getToolDisplayMetadata, getToolErrorText, timeAgo, truncateText };
|
package/dist/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as focusRingInset, i as focusRing, n as focusFieldInvalid, r as focusFieldWithin, t as focusField } from "./focus-
|
|
1
|
+
import { a as focusRingInset, i as focusRing, n as focusFieldInvalid, r as focusFieldWithin, t as focusField } from "./focus-BcE_SHqz.js";
|
|
2
2
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
3
3
|
import { i as getToolErrorText, n as getToolCategory, r as getToolDisplayMetadata, t as TOOL_CATEGORY_ICONS } from "./tool-display-BAuAVa43.js";
|
|
4
4
|
import { i as truncateText, n as formatDuration, r as formatUptime, t as formatBytes } from "./format-DfcLWqMa.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/ui",
|
|
3
|
-
"version": "11.11.
|
|
3
|
+
"version": "11.11.2",
|
|
4
4
|
"description": "Generic React UI components for Tangle products — primitives, chat, run, files, editor, markdown.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
"peerDependencies": {
|
|
135
135
|
"@hocuspocus/provider": ">=2.15.0 <5.0.0",
|
|
136
136
|
"@nanostores/react": ">=0.8.4 <3.0.0",
|
|
137
|
-
"@tangle-network/brand": "^1.8.
|
|
137
|
+
"@tangle-network/brand": "^1.8.2",
|
|
138
138
|
"@tiptap/core": ">=3.20.4 <4.0.0",
|
|
139
139
|
"@tiptap/extension-collaboration": ">=3.20.4 <4.0.0",
|
|
140
140
|
"@tiptap/extension-collaboration-caret": ">=3.7.0 <4.0.0",
|
|
@@ -450,6 +450,21 @@ export const StatusTones: Story = {
|
|
|
450
450
|
},
|
|
451
451
|
}
|
|
452
452
|
|
|
453
|
+
export const ErrorArtifact: Story = {
|
|
454
|
+
args: {
|
|
455
|
+
items: [
|
|
456
|
+
{
|
|
457
|
+
id: 'artifact-error',
|
|
458
|
+
kind: 'artifact',
|
|
459
|
+
title: 'Build output',
|
|
460
|
+
description: 'The compiler stopped before writing the bundle.',
|
|
461
|
+
meta: 'Exit code 1',
|
|
462
|
+
tone: 'error',
|
|
463
|
+
},
|
|
464
|
+
],
|
|
465
|
+
},
|
|
466
|
+
}
|
|
467
|
+
|
|
453
468
|
// ---------------------------------------------------------------------------
|
|
454
469
|
// Full transcript through ChatContainer — the real consumer path. Tool titles
|
|
455
470
|
// and descriptions come from `getToolDisplayMetadata`, so this story shows the
|
|
@@ -101,30 +101,35 @@ export interface AgentTimelineProps {
|
|
|
101
101
|
collapseAfter?: number;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
const TONE_STYLES: Record<AgentTimelineTone, { card: string; text: string; icon: typeof Info }> = {
|
|
104
|
+
const TONE_STYLES: Record<AgentTimelineTone, { card: string; text: string; supportingText: string; icon: typeof Info }> = {
|
|
105
105
|
default: {
|
|
106
106
|
card: "border-border bg-card",
|
|
107
107
|
text: "text-foreground",
|
|
108
|
+
supportingText: "text-muted-foreground",
|
|
108
109
|
icon: CircleDot,
|
|
109
110
|
},
|
|
110
111
|
info: {
|
|
111
112
|
card: "border-[var(--surface-info-border)] bg-[var(--surface-info-bg)]",
|
|
112
113
|
text: "text-[var(--surface-info-text)]",
|
|
114
|
+
supportingText: "text-[var(--surface-info-text)]",
|
|
113
115
|
icon: Info,
|
|
114
116
|
},
|
|
115
117
|
success: {
|
|
116
118
|
card: "border-[var(--surface-success-border)] bg-[var(--surface-success-bg)]",
|
|
117
119
|
text: "text-[var(--surface-success-text)]",
|
|
120
|
+
supportingText: "text-[var(--surface-success-text)]",
|
|
118
121
|
icon: CheckCircle2,
|
|
119
122
|
},
|
|
120
123
|
warning: {
|
|
121
124
|
card: "border-[var(--surface-warning-border)] bg-[var(--surface-warning-bg)]",
|
|
122
125
|
text: "text-[var(--surface-warning-text)]",
|
|
126
|
+
supportingText: "text-[var(--surface-warning-text)]",
|
|
123
127
|
icon: AlertTriangle,
|
|
124
128
|
},
|
|
125
129
|
error: {
|
|
126
130
|
card: "border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)]",
|
|
127
131
|
text: "text-[var(--surface-danger-text)]",
|
|
132
|
+
supportingText: "text-[var(--surface-danger-text)]",
|
|
128
133
|
icon: AlertTriangle,
|
|
129
134
|
},
|
|
130
135
|
};
|
|
@@ -191,7 +196,7 @@ function StatusCard({ item }: { item: AgentTimelineStatusItem }) {
|
|
|
191
196
|
<div className="min-w-0">
|
|
192
197
|
<div className={cn("text-sm font-medium", tone.text)}>{item.label}</div>
|
|
193
198
|
{item.detail && (
|
|
194
|
-
<div className="mt-0.5 text-sm
|
|
199
|
+
<div className={cn("mt-0.5 text-sm", tone.supportingText)}>{item.detail}</div>
|
|
195
200
|
)}
|
|
196
201
|
</div>
|
|
197
202
|
</div>
|
|
@@ -208,12 +213,12 @@ function ArtifactCard({ item }: { item: AgentTimelineArtifactItem }) {
|
|
|
208
213
|
{item.icon ?? <FileText className="h-4 w-4" />}
|
|
209
214
|
</div>
|
|
210
215
|
<div className="min-w-0 flex-1">
|
|
211
|
-
<div className="text-sm font-medium text
|
|
216
|
+
<div className={cn("text-sm font-medium", tone.text)}>{item.title}</div>
|
|
212
217
|
{item.description && (
|
|
213
|
-
<div className="mt-1 text-sm
|
|
218
|
+
<div className={cn("mt-1 text-sm", tone.supportingText)}>{item.description}</div>
|
|
214
219
|
)}
|
|
215
220
|
{item.meta && (
|
|
216
|
-
<div className="mt-2 flex flex-wrap items-center gap-2 text-xs
|
|
221
|
+
<div className={cn("mt-2 flex flex-wrap items-center gap-2 text-xs", tone.supportingText)}>
|
|
217
222
|
{item.meta}
|
|
218
223
|
</div>
|
|
219
224
|
)}
|
package/src/lib/focus.ts
CHANGED
|
@@ -41,9 +41,10 @@ export const focusField =
|
|
|
41
41
|
* therefore does not replace it. To style that container's focus differently,
|
|
42
42
|
* compose your own classes instead of this helper. The field selector is
|
|
43
43
|
* written out in full because Tailwind reads class names statically.
|
|
44
|
+
* Base styles use its marker class to clear the inner editor fallback outline.
|
|
44
45
|
*/
|
|
45
46
|
export const focusFieldWithin =
|
|
46
|
-
"border-border transition-[border-color,box-shadow] duration-150 ease-out hover:border-[var(--border-strong)] has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:border-[var(--focus-border)] has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:ring-3 has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:ring-[var(--focus-halo)]";
|
|
47
|
+
"focus-field-within border-border transition-[border-color,box-shadow] duration-150 ease-out hover:border-[var(--border-strong)] has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:border-[var(--focus-border)] has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:ring-3 has-[:is(textarea,select,[contenteditable]:not([contenteditable=false]),input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file])):focus]:ring-[var(--focus-halo)]";
|
|
47
48
|
|
|
48
49
|
/** Error state for a field: a danger hairline and the same focus shape in danger. Compose after `focusField`. */
|
|
49
50
|
export const focusFieldInvalid =
|