@tangle-network/sandbox-ui 0.118.0 → 0.120.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/README.md +31 -1
- package/dist/{dashboard-D4un5GtD.js → dashboard-CnGK2S3A.js} +11 -11
- package/dist/dashboard.js +1 -1
- package/dist/files.d.ts +1 -1
- package/dist/globals.css +154 -39
- package/dist/index-B6wKsKV6.d.ts +2 -0
- package/dist/{index-CcbhfDa-.d.ts → index-BxFd7DOv.d.ts} +34 -2
- package/dist/{index-z_zNuZHm.d.ts → index-DJyIXUx9.d.ts} +1 -1
- package/dist/{index-BHopt1SR.d.ts → index-SJKueyy4.d.ts} +2 -2
- package/dist/index.d.ts +5 -5
- package/dist/index.js +5 -5
- package/dist/integrations.js +82 -47
- package/dist/pages.d.ts +22 -1
- package/dist/pages.js +270 -223
- package/dist/primitives-BQGtwZX3.js +25 -0
- package/dist/primitives.d.ts +1 -1
- package/dist/primitives.js +1 -1
- package/dist/styles.css +154 -39
- package/dist/{workbench-DxYaeFaa.js → workbench-DuIQZobw.js} +1 -1
- package/dist/workbench.d.ts +1 -1
- package/dist/workbench.js +1 -1
- package/dist/{workspace--bNv-rQy.js → workspace-iRO3GeHT.js} +156 -64
- package/dist/workspace.d.ts +2 -2
- package/dist/workspace.js +2 -2
- package/package.json +3 -3
- package/dist/index-CXX5IpH2.d.ts +0 -2
- package/dist/primitives-N-59i3-7.js +0 -25
|
@@ -7,9 +7,9 @@ import { Markdown } from "@tangle-network/ui/markdown";
|
|
|
7
7
|
import { useCallback, useEffect, useId, useImperativeHandle, useMemo, useRef, useState } from "react";
|
|
8
8
|
import { createPortal } from "react-dom";
|
|
9
9
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
10
|
-
import { Activity, AlertCircle, AlertTriangle, ArrowLeft, Binary, Bot, Boxes, CheckCircle, ChevronDown, ChevronRight, ChevronUp, FileCode2, FileText, FolderTree, LayoutPanelTop, Loader2, LoaderCircle, MessageSquareText, PanelBottomClose, PanelBottomOpen, PanelLeftClose, PanelLeftOpen, PanelRightClose, PanelRightOpen, Plus, RefreshCw, Search, Settings, Shield, ShieldCheck, Sparkles, Terminal, TerminalSquare, Upload, Wifi, X, XCircle, Zap } from "lucide-react";
|
|
10
|
+
import { Activity, AlertCircle, AlertTriangle, ArrowLeft, Binary, Bot, Boxes, CheckCircle, ChevronDown, ChevronRight, ChevronUp, FileCode2, FileText, FolderOpen, FolderTree, LayoutPanelTop, Loader2, LoaderCircle, MessageSquareText, PanelBottomClose, PanelBottomOpen, PanelLeftClose, PanelLeftOpen, PanelRightClose, PanelRightOpen, Plus, RefreshCw, Search, Settings, Shield, ShieldCheck, Sparkles, Terminal, TerminalSquare, Upload, Wifi, X, XCircle, Zap } from "lucide-react";
|
|
11
11
|
import { focusField, focusRing, focusRingInset } from "@tangle-network/ui/utils";
|
|
12
|
-
import { FileArtifactPane, FileTree, filterFileTree } from "@tangle-network/ui/files";
|
|
12
|
+
import { FileArtifactPane, FileTree, RichFileTree, filterFileTree } from "@tangle-network/ui/files";
|
|
13
13
|
import { useActiveSessions, useNavbarSessions, useProjectActivity, useTotalRunningSessions } from "@tangle-network/ui/stores";
|
|
14
14
|
import { ChatContainer } from "@tangle-network/ui/chat";
|
|
15
15
|
import { OpenUIArtifactRenderer } from "@tangle-network/ui/openui";
|
|
@@ -1627,6 +1627,69 @@ function SessionActivityMonitor({ className, compact = false, sessionsById = {},
|
|
|
1627
1627
|
});
|
|
1628
1628
|
}
|
|
1629
1629
|
//#endregion
|
|
1630
|
+
//#region src/workspace/workspace-artifact-view.tsx
|
|
1631
|
+
/** The shared technical renderer for workspace files and generated artifacts. */
|
|
1632
|
+
function WorkspaceArtifactView({ artifact }) {
|
|
1633
|
+
switch (artifact.kind) {
|
|
1634
|
+
case "file": return /* @__PURE__ */ jsx(FileArtifactPane, {
|
|
1635
|
+
path: artifact.path === artifact.filename ? void 0 : artifact.path,
|
|
1636
|
+
filename: artifact.filename,
|
|
1637
|
+
content: artifact.content,
|
|
1638
|
+
blobUrl: artifact.blobUrl,
|
|
1639
|
+
mimeType: artifact.mimeType,
|
|
1640
|
+
onDownload: artifact.onDownload,
|
|
1641
|
+
tabs: artifact.tabs,
|
|
1642
|
+
activeTabId: artifact.activeTabId,
|
|
1643
|
+
onTabSelect: artifact.onTabSelect,
|
|
1644
|
+
onTabClose: artifact.onTabClose,
|
|
1645
|
+
eyebrow: artifact.eyebrow ?? null,
|
|
1646
|
+
meta: artifact.meta,
|
|
1647
|
+
toolbar: artifact.toolbar,
|
|
1648
|
+
footer: artifact.footer,
|
|
1649
|
+
hideTitleBlock: typeof artifact.title === "string" && artifact.title === artifact.filename && artifact.path === artifact.filename && !artifact.eyebrow && !artifact.meta
|
|
1650
|
+
});
|
|
1651
|
+
case "markdown": return /* @__PURE__ */ jsx(ArtifactPane, {
|
|
1652
|
+
eyebrow: artifact.eyebrow ?? "Document",
|
|
1653
|
+
title: artifact.title,
|
|
1654
|
+
subtitle: artifact.subtitle,
|
|
1655
|
+
meta: artifact.meta,
|
|
1656
|
+
headerActions: artifact.headerActions,
|
|
1657
|
+
toolbar: artifact.toolbar,
|
|
1658
|
+
footer: artifact.footer,
|
|
1659
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
1660
|
+
className: "p-5",
|
|
1661
|
+
children: /* @__PURE__ */ jsx(Markdown, {
|
|
1662
|
+
className: "prose-sm max-w-none",
|
|
1663
|
+
children: artifact.content
|
|
1664
|
+
})
|
|
1665
|
+
})
|
|
1666
|
+
});
|
|
1667
|
+
case "openui": return /* @__PURE__ */ jsx(ArtifactPane, {
|
|
1668
|
+
eyebrow: artifact.eyebrow ?? "Structured Artifact",
|
|
1669
|
+
title: artifact.title,
|
|
1670
|
+
subtitle: artifact.subtitle,
|
|
1671
|
+
meta: artifact.meta,
|
|
1672
|
+
headerActions: artifact.headerActions,
|
|
1673
|
+
toolbar: artifact.toolbar,
|
|
1674
|
+
footer: artifact.footer,
|
|
1675
|
+
children: /* @__PURE__ */ jsx(OpenUIArtifactRenderer, {
|
|
1676
|
+
schema: artifact.schema,
|
|
1677
|
+
onAction: artifact.onAction
|
|
1678
|
+
})
|
|
1679
|
+
});
|
|
1680
|
+
case "custom": return /* @__PURE__ */ jsx(ArtifactPane, {
|
|
1681
|
+
eyebrow: artifact.eyebrow ?? "Artifact",
|
|
1682
|
+
title: artifact.title,
|
|
1683
|
+
subtitle: artifact.subtitle,
|
|
1684
|
+
meta: artifact.meta,
|
|
1685
|
+
headerActions: artifact.headerActions,
|
|
1686
|
+
toolbar: artifact.toolbar,
|
|
1687
|
+
footer: artifact.footer,
|
|
1688
|
+
children: artifact.content
|
|
1689
|
+
});
|
|
1690
|
+
}
|
|
1691
|
+
}
|
|
1692
|
+
//#endregion
|
|
1630
1693
|
//#region src/workspace/sandbox-workbench.tsx
|
|
1631
1694
|
function getArtifactTabIcon(kind) {
|
|
1632
1695
|
switch (kind) {
|
|
@@ -1709,66 +1772,6 @@ function ArtifactTabs({ artifacts, activeArtifactId, onSelect, onClose, tabIdPre
|
|
|
1709
1772
|
})
|
|
1710
1773
|
});
|
|
1711
1774
|
}
|
|
1712
|
-
function renderArtifact(artifact) {
|
|
1713
|
-
switch (artifact.kind) {
|
|
1714
|
-
case "file": return /* @__PURE__ */ jsx(FileArtifactPane, {
|
|
1715
|
-
path: artifact.path === artifact.filename ? void 0 : artifact.path,
|
|
1716
|
-
filename: artifact.filename,
|
|
1717
|
-
content: artifact.content,
|
|
1718
|
-
blobUrl: artifact.blobUrl,
|
|
1719
|
-
mimeType: artifact.mimeType,
|
|
1720
|
-
onDownload: artifact.onDownload,
|
|
1721
|
-
tabs: artifact.tabs,
|
|
1722
|
-
activeTabId: artifact.activeTabId,
|
|
1723
|
-
onTabSelect: artifact.onTabSelect,
|
|
1724
|
-
onTabClose: artifact.onTabClose,
|
|
1725
|
-
eyebrow: artifact.eyebrow ?? null,
|
|
1726
|
-
meta: artifact.meta,
|
|
1727
|
-
toolbar: artifact.toolbar,
|
|
1728
|
-
footer: artifact.footer,
|
|
1729
|
-
hideTitleBlock: typeof artifact.title === "string" && artifact.title === artifact.filename && artifact.path === artifact.filename && !artifact.eyebrow && !artifact.meta
|
|
1730
|
-
});
|
|
1731
|
-
case "markdown": return /* @__PURE__ */ jsx(ArtifactPane, {
|
|
1732
|
-
eyebrow: artifact.eyebrow ?? "Document",
|
|
1733
|
-
title: artifact.title,
|
|
1734
|
-
subtitle: artifact.subtitle,
|
|
1735
|
-
meta: artifact.meta,
|
|
1736
|
-
headerActions: artifact.headerActions,
|
|
1737
|
-
toolbar: artifact.toolbar,
|
|
1738
|
-
footer: artifact.footer,
|
|
1739
|
-
children: /* @__PURE__ */ jsx("div", {
|
|
1740
|
-
className: "p-5",
|
|
1741
|
-
children: /* @__PURE__ */ jsx(Markdown, {
|
|
1742
|
-
className: "prose-sm max-w-none",
|
|
1743
|
-
children: artifact.content
|
|
1744
|
-
})
|
|
1745
|
-
})
|
|
1746
|
-
});
|
|
1747
|
-
case "openui": return /* @__PURE__ */ jsx(ArtifactPane, {
|
|
1748
|
-
eyebrow: artifact.eyebrow ?? "Structured Artifact",
|
|
1749
|
-
title: artifact.title,
|
|
1750
|
-
subtitle: artifact.subtitle,
|
|
1751
|
-
meta: artifact.meta,
|
|
1752
|
-
headerActions: artifact.headerActions,
|
|
1753
|
-
toolbar: artifact.toolbar,
|
|
1754
|
-
footer: artifact.footer,
|
|
1755
|
-
children: /* @__PURE__ */ jsx(OpenUIArtifactRenderer, {
|
|
1756
|
-
schema: artifact.schema,
|
|
1757
|
-
onAction: artifact.onAction
|
|
1758
|
-
})
|
|
1759
|
-
});
|
|
1760
|
-
case "custom": return /* @__PURE__ */ jsx(ArtifactPane, {
|
|
1761
|
-
eyebrow: artifact.eyebrow ?? "Artifact",
|
|
1762
|
-
title: artifact.title,
|
|
1763
|
-
subtitle: artifact.subtitle,
|
|
1764
|
-
meta: artifact.meta,
|
|
1765
|
-
headerActions: artifact.headerActions,
|
|
1766
|
-
toolbar: artifact.toolbar,
|
|
1767
|
-
footer: artifact.footer,
|
|
1768
|
-
children: artifact.content
|
|
1769
|
-
});
|
|
1770
|
-
}
|
|
1771
|
-
}
|
|
1772
1775
|
function regionHeader(sections, fallback) {
|
|
1773
1776
|
if (sections.length !== 1) return fallback;
|
|
1774
1777
|
switch (sections[0]?.key) {
|
|
@@ -1895,7 +1898,7 @@ function SandboxWorkbench({ title, subtitle, status, centerHeader: centerHeaderP
|
|
|
1895
1898
|
"aria-label": activeArtifact ? void 0 : "Artifact content",
|
|
1896
1899
|
tabIndex: 0,
|
|
1897
1900
|
className: `min-h-0 flex-1 overflow-auto bg-background ${focusRingInset}`,
|
|
1898
|
-
children: activeArtifact ?
|
|
1901
|
+
children: activeArtifact ? /* @__PURE__ */ jsx(WorkspaceArtifactView, { artifact: activeArtifact }) : /* @__PURE__ */ jsx("div", {
|
|
1899
1902
|
className: "flex h-full items-center justify-center p-6",
|
|
1900
1903
|
children: emptyArtifactState ?? /* @__PURE__ */ jsx(EmptyState, {
|
|
1901
1904
|
icon: /* @__PURE__ */ jsx(Boxes, { className: "h-8 w-8" }),
|
|
@@ -2603,4 +2606,93 @@ function ApprovalQueue({ items, className, onApprove, onReject, renderItemDetail
|
|
|
2603
2606
|
});
|
|
2604
2607
|
}
|
|
2605
2608
|
//#endregion
|
|
2606
|
-
|
|
2609
|
+
//#region src/workspace/workspace-files-pane.tsx
|
|
2610
|
+
function indexNodes(root) {
|
|
2611
|
+
const nodes = /* @__PURE__ */ new Map();
|
|
2612
|
+
function visit(node) {
|
|
2613
|
+
nodes.set(node.path.replace(/\/$/, ""), node);
|
|
2614
|
+
node.children?.forEach(visit);
|
|
2615
|
+
}
|
|
2616
|
+
if (root) visit(root);
|
|
2617
|
+
return nodes;
|
|
2618
|
+
}
|
|
2619
|
+
function activeElementWithin(element) {
|
|
2620
|
+
let active = element.ownerDocument.activeElement;
|
|
2621
|
+
if (!element.contains(active)) return null;
|
|
2622
|
+
while (active?.shadowRoot?.activeElement) active = active.shadowRoot.activeElement;
|
|
2623
|
+
return active instanceof HTMLElement ? active : null;
|
|
2624
|
+
}
|
|
2625
|
+
/** Compact file navigation shared by workspace companions and standalone panes. */
|
|
2626
|
+
function WorkspaceFilesPane({ root, paths, onSelect, preview, onBack, emptyState, className, ...treeProps }) {
|
|
2627
|
+
const nodes = useMemo(() => indexNodes(root), [root]);
|
|
2628
|
+
const treeRef = useRef(null);
|
|
2629
|
+
const backRef = useRef(null);
|
|
2630
|
+
const returnFocusRef = useRef(null);
|
|
2631
|
+
const wasPreviewRef = useRef(false);
|
|
2632
|
+
const hasPreview = preview !== void 0;
|
|
2633
|
+
const isEmpty = root ? !root.path && root.type === "directory" && !root.children?.length : paths?.length === 0;
|
|
2634
|
+
useEffect(() => {
|
|
2635
|
+
if (hasPreview && !wasPreviewRef.current) backRef.current?.focus();
|
|
2636
|
+
if (!hasPreview && wasPreviewRef.current) {
|
|
2637
|
+
const target = returnFocusRef.current;
|
|
2638
|
+
if (target?.isConnected) target.focus();
|
|
2639
|
+
else treeRef.current?.focus();
|
|
2640
|
+
}
|
|
2641
|
+
wasPreviewRef.current = hasPreview;
|
|
2642
|
+
}, [hasPreview]);
|
|
2643
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
2644
|
+
className: cn$1("flex h-full min-h-0 min-w-0 flex-col bg-background", className),
|
|
2645
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
2646
|
+
ref: treeRef,
|
|
2647
|
+
hidden: hasPreview,
|
|
2648
|
+
tabIndex: -1,
|
|
2649
|
+
role: "region",
|
|
2650
|
+
"aria-label": "Workspace files",
|
|
2651
|
+
className: cn$1("min-h-0 flex-1", hasPreview && "hidden"),
|
|
2652
|
+
children: isEmpty ? emptyState !== void 0 ? emptyState : /* @__PURE__ */ jsx(EmptyState, {
|
|
2653
|
+
icon: /* @__PURE__ */ jsx(FolderOpen, { className: "h-6 w-6" }),
|
|
2654
|
+
title: "No files yet"
|
|
2655
|
+
}) : /* @__PURE__ */ jsx(RichFileTree, {
|
|
2656
|
+
...treeProps,
|
|
2657
|
+
root,
|
|
2658
|
+
paths,
|
|
2659
|
+
onSelect: (path) => {
|
|
2660
|
+
if (treeRef.current) returnFocusRef.current = activeElementWithin(treeRef.current);
|
|
2661
|
+
onSelect?.(path, nodes.get(path.replace(/\/$/, "")));
|
|
2662
|
+
},
|
|
2663
|
+
className: "h-full"
|
|
2664
|
+
})
|
|
2665
|
+
}), preview && /* @__PURE__ */ jsxs("div", {
|
|
2666
|
+
className: "flex min-h-0 flex-1 flex-col",
|
|
2667
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
2668
|
+
className: "flex min-h-10 shrink-0 flex-wrap items-center gap-2 border-b border-border px-3 py-2",
|
|
2669
|
+
children: [
|
|
2670
|
+
onBack && /* @__PURE__ */ jsxs("button", {
|
|
2671
|
+
ref: backRef,
|
|
2672
|
+
type: "button",
|
|
2673
|
+
onClick: onBack,
|
|
2674
|
+
className: cn$1("inline-flex shrink-0 items-center gap-1 rounded-md px-1 py-1 text-sm text-muted-foreground hover:text-foreground", focusRing),
|
|
2675
|
+
children: [/* @__PURE__ */ jsx(ArrowLeft, {
|
|
2676
|
+
"aria-hidden": "true",
|
|
2677
|
+
className: "h-3.5 w-3.5"
|
|
2678
|
+
}), "Back to files"]
|
|
2679
|
+
}),
|
|
2680
|
+
/* @__PURE__ */ jsx("span", {
|
|
2681
|
+
className: "min-w-0 flex-1 truncate text-sm text-muted-foreground",
|
|
2682
|
+
title: preview.path,
|
|
2683
|
+
children: preview.path
|
|
2684
|
+
}),
|
|
2685
|
+
preview.actions && /* @__PURE__ */ jsx("div", {
|
|
2686
|
+
className: "flex shrink-0 items-center gap-2",
|
|
2687
|
+
children: preview.actions
|
|
2688
|
+
})
|
|
2689
|
+
]
|
|
2690
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
2691
|
+
className: "min-h-0 flex-1 overflow-auto",
|
|
2692
|
+
children: preview.content
|
|
2693
|
+
})]
|
|
2694
|
+
})]
|
|
2695
|
+
});
|
|
2696
|
+
}
|
|
2697
|
+
//#endregion
|
|
2698
|
+
export { WorkspaceLayout as C, DirectoryPane as S, formatRelativeAge as _, TaskBoard as a, StatusBar as b, SandboxWorkbench as c, createShellShouldRevalidate as d, shellShouldRevalidate as f, useOptimisticSessionItems as g, dispatchSessionCreated as h, CalendarView as i, WorkspaceArtifactView as l, SESSION_CREATED_EVENT as m, WorkspaceFilesPane as n, AuditResults as o, SessionSidebar as p, ApprovalQueue as r, AgentWorkbench as s, ArtifactPane$1 as t, SessionActivityMonitor as u, RuntimePane as v, StatusBanner as x, TerminalPanel as y };
|
package/dist/workspace.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
export { AgentWorkbench, type ApprovalConfidenceStat, type ApprovalItem, ApprovalQueue, type ApprovalQueueProps, ArtifactPane, type ArtifactPaneProps, type AuditCheck, AuditResults, type AuditResultsProps, type BannerType, type CalendarEvent, CalendarView, type CalendarViewProps, type ContextBadge, DirectoryPane, type DirectoryPaneProps, type FormAudit, RuntimePane, type RuntimePaneProps, SESSION_CREATED_EVENT, SandboxWorkbench, type SandboxWorkbenchArtifact, type SandboxWorkbenchCustomArtifact, type SandboxWorkbenchFileArtifact, type SandboxWorkbenchLayoutOptions, type SandboxWorkbenchMarkdownArtifact, type SandboxWorkbenchOpenUIArtifact, type SandboxWorkbenchProps, type SandboxWorkbenchSessionProps, SessionActivityMonitor, type SessionActivityMonitorProps, type SessionCreatedDetail, type SessionOptimisticController, SessionSidebar, type SessionSidebarBadge, type SessionSidebarFilter, type SessionSidebarGroupBy, type SessionSidebarItem, type SessionSidebarLink, type SessionSidebarProps, type SessionSidebarVariant, type ShellShouldRevalidateArgs, type ShellShouldRevalidateOptions, StatusBanner, type StatusBannerProps, StatusBar, type StatusBarProps, TaskBoard, type TaskBoardColumn, type TaskBoardItem, type TaskBoardProps, type TerminalLine, TerminalPanel, type TerminalProps, type UseOptimisticSessionItemsOptions, WorkspaceLayout, type WorkspaceLayoutProps, WorkspacePaneHeader, type WorkspacePaneHeaderProps, createShellShouldRevalidate, dispatchSessionCreated, formatRelativeAge, shellShouldRevalidate, useOptimisticSessionItems };
|
|
1
|
+
import { $ as useOptimisticSessionItems, A as SandboxWorkbenchOpenUIArtifact, B as SessionSidebar, C as AgentWorkbench, D as SandboxWorkbenchFileArtifact, E as SandboxWorkbenchCustomArtifact, F as ShellShouldRevalidateArgs, G as SessionSidebarLink, H as SessionSidebarFilter, I as ShellShouldRevalidateOptions, J as SESSION_CREATED_EVENT, K as SessionSidebarProps, L as createShellShouldRevalidate, M as SandboxWorkbenchSessionProps, N as SessionActivityMonitor, O as SandboxWorkbenchLayoutOptions, P as SessionActivityMonitorProps, Q as dispatchSessionCreated, R as shellShouldRevalidate, S as FormAudit, T as SandboxWorkbenchArtifact, U as SessionSidebarGroupBy, V as SessionSidebarBadge, W as SessionSidebarItem, X as SessionOptimisticController, Y as SessionCreatedDetail, Z as UseOptimisticSessionItemsOptions, _ as TaskBoardItem, a as WorkspaceFilesPane, at as ContextBadge, b as AuditResults, c as ApprovalConfidenceStat, ct as BannerType, d as ApprovalQueueProps, dt as DirectoryPane, et as RuntimePane, f as CalendarEvent, ft as DirectoryPaneProps, g as TaskBoardColumn, gt as WorkspaceLayoutProps, h as TaskBoard, ht as WorkspaceLayout, i as WorkspaceArtifactViewProps, it as TerminalProps, j as SandboxWorkbenchProps, k as SandboxWorkbenchMarkdownArtifact, l as ApprovalItem, lt as StatusBanner, m as CalendarViewProps, mt as WorkspacePaneHeaderProps, n as ArtifactPaneProps, nt as TerminalLine, o as WorkspaceFilesPaneProps, ot as StatusBar, p as CalendarView, pt as WorkspacePaneHeader, q as SessionSidebarVariant, r as WorkspaceArtifactView, rt as TerminalPanel, s as WorkspaceFilesPreview, st as StatusBarProps, t as ArtifactPane, tt as RuntimePaneProps, u as ApprovalQueue, ut as StatusBannerProps, v as TaskBoardProps, w as SandboxWorkbench, x as AuditResultsProps, y as AuditCheck, z as formatRelativeAge } from "./index-BxFd7DOv.js";
|
|
2
|
+
export { AgentWorkbench, type ApprovalConfidenceStat, type ApprovalItem, ApprovalQueue, type ApprovalQueueProps, ArtifactPane, type ArtifactPaneProps, type AuditCheck, AuditResults, type AuditResultsProps, type BannerType, type CalendarEvent, CalendarView, type CalendarViewProps, type ContextBadge, DirectoryPane, type DirectoryPaneProps, type FormAudit, RuntimePane, type RuntimePaneProps, SESSION_CREATED_EVENT, SandboxWorkbench, type SandboxWorkbenchArtifact, type SandboxWorkbenchCustomArtifact, type SandboxWorkbenchFileArtifact, type SandboxWorkbenchLayoutOptions, type SandboxWorkbenchMarkdownArtifact, type SandboxWorkbenchOpenUIArtifact, type SandboxWorkbenchProps, type SandboxWorkbenchSessionProps, SessionActivityMonitor, type SessionActivityMonitorProps, type SessionCreatedDetail, type SessionOptimisticController, SessionSidebar, type SessionSidebarBadge, type SessionSidebarFilter, type SessionSidebarGroupBy, type SessionSidebarItem, type SessionSidebarLink, type SessionSidebarProps, type SessionSidebarVariant, type ShellShouldRevalidateArgs, type ShellShouldRevalidateOptions, StatusBanner, type StatusBannerProps, StatusBar, type StatusBarProps, TaskBoard, type TaskBoardColumn, type TaskBoardItem, type TaskBoardProps, type TerminalLine, TerminalPanel, type TerminalProps, type UseOptimisticSessionItemsOptions, WorkspaceArtifactView, type WorkspaceArtifactViewProps, WorkspaceFilesPane, type WorkspaceFilesPaneProps, type WorkspaceFilesPreview, WorkspaceLayout, type WorkspaceLayoutProps, WorkspacePaneHeader, type WorkspacePaneHeaderProps, createShellShouldRevalidate, dispatchSessionCreated, formatRelativeAge, shellShouldRevalidate, useOptimisticSessionItems };
|
package/dist/workspace.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { t as WorkspacePaneHeader } from "./workspace-pane-header-Bg1cCcHX.js";
|
|
2
|
-
import { _ as
|
|
3
|
-
export { AgentWorkbench, ApprovalQueue, ArtifactPane, AuditResults, CalendarView, DirectoryPane, RuntimePane, SESSION_CREATED_EVENT, SandboxWorkbench, SessionActivityMonitor, SessionSidebar, StatusBanner, StatusBar, TaskBoard, TerminalPanel, WorkspaceLayout, WorkspacePaneHeader, createShellShouldRevalidate, dispatchSessionCreated, formatRelativeAge, shellShouldRevalidate, useOptimisticSessionItems };
|
|
2
|
+
import { C as WorkspaceLayout, S as DirectoryPane, _ as formatRelativeAge, a as TaskBoard, b as StatusBar, c as SandboxWorkbench, d as createShellShouldRevalidate, f as shellShouldRevalidate, g as useOptimisticSessionItems, h as dispatchSessionCreated, i as CalendarView, l as WorkspaceArtifactView, m as SESSION_CREATED_EVENT, n as WorkspaceFilesPane, o as AuditResults, p as SessionSidebar, r as ApprovalQueue, s as AgentWorkbench, t as ArtifactPane, u as SessionActivityMonitor, v as RuntimePane, x as StatusBanner, y as TerminalPanel } from "./workspace-iRO3GeHT.js";
|
|
3
|
+
export { AgentWorkbench, ApprovalQueue, ArtifactPane, AuditResults, CalendarView, DirectoryPane, RuntimePane, SESSION_CREATED_EVENT, SandboxWorkbench, SessionActivityMonitor, SessionSidebar, StatusBanner, StatusBar, TaskBoard, TerminalPanel, WorkspaceArtifactView, WorkspaceFilesPane, WorkspaceLayout, WorkspacePaneHeader, createShellShouldRevalidate, dispatchSessionCreated, formatRelativeAge, shellShouldRevalidate, useOptimisticSessionItems };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/sandbox-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.120.0",
|
|
4
4
|
"description": "Unified UI component library for Tangle Sandbox — primitives, chat, dashboard, terminal, editor, and workspace components",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
"@nanostores/react": ">=0.8.4 <2.0.0",
|
|
129
129
|
"@tangle-network/agent-interface": "^1.0.0 || ^2.0.0",
|
|
130
130
|
"@tangle-network/brand": "^1.10.0",
|
|
131
|
-
"@tangle-network/ui": "^11.
|
|
131
|
+
"@tangle-network/ui": "^11.15.2",
|
|
132
132
|
"@tanstack/react-query": "^5.0.0",
|
|
133
133
|
"@tiptap/core": ">=3.20.4 <4.0.0",
|
|
134
134
|
"@tiptap/extension-collaboration": ">=3.20.4 <4.0.0",
|
|
@@ -214,7 +214,7 @@
|
|
|
214
214
|
"@tailwindcss/postcss": "^4.3.3",
|
|
215
215
|
"@tangle-network/agent-interface": "2.13.1",
|
|
216
216
|
"@tangle-network/brand": "1.10.0",
|
|
217
|
-
"@tangle-network/ui": "11.
|
|
217
|
+
"@tangle-network/ui": "11.15.2",
|
|
218
218
|
"@tanstack/react-query": "^5.104.0",
|
|
219
219
|
"@testing-library/dom": "^10.4.2",
|
|
220
220
|
"@testing-library/jest-dom": "^7.0.1",
|
package/dist/index-CXX5IpH2.d.ts
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { CSV_PREVIEW_ROW_LIMIT, FileArtifactPane as FileArtifactPane$1, FileArtifactPaneProps, FileFormat, FileNode as FileNode$1, FilePreview, FilePreviewKind, FilePreviewProps, FileTabData as FileTabData$1, FileTabs, FileTabsProps, FileTree as FileTree$1, FileTreeProps, FileTreeVisibilityOptions as FileTreeVisibilityOptions$1, RichFileTree, RichFileTreeGitEntry, RichFileTreeGitStatus, RichFileTreeProps, RichFileTreeThemeVars, detectFileFormat, fileExtension, filterFileTree as filterFileTree$1, getCodeLanguage, getFormatLabel, getSyntaxLanguage, parseCsv, resolveFilePreviewKind } from "@tangle-network/ui/files";
|
|
2
|
-
export { getCodeLanguage as C, resolveFilePreviewKind as D, parseCsv as E, filterFileTree$1 as S, getSyntaxLanguage as T, RichFileTreeGitStatus as _, FileNode$1 as a, detectFileFormat as b, FilePreviewProps as c, FileTabsProps as d, FileTree$1 as f, RichFileTreeGitEntry as g, RichFileTree as h, FileFormat as i, FileTabData$1 as l, FileTreeVisibilityOptions$1 as m, FileArtifactPane$1 as n, FilePreview as o, FileTreeProps as p, FileArtifactPaneProps as r, FilePreviewKind as s, CSV_PREVIEW_ROW_LIMIT as t, FileTabs as u, RichFileTreeProps as v, getFormatLabel as w, fileExtension as x, RichFileTreeThemeVars as y };
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ArtifactPane as ArtifactPane$1, Avatar as Avatar$1, AvatarFallback as AvatarFallback$1, AvatarImage as AvatarImage$1, Badge as Badge$1, Button as Button$1, Card as Card$1, CardContent as CardContent$1, CardDescription as CardDescription$1, CardFooter, CardHeader as CardHeader$1, CardTitle as CardTitle$1, CodeBlock, CopyButton, Dialog as Dialog$1, DialogClose, DialogContent as DialogContent$1, DialogDescription as DialogDescription$1, DialogFooter as DialogFooter$1, DialogHeader as DialogHeader$1, DialogOverlay, DialogPortal, DialogTitle as DialogTitle$1, DialogTrigger, DropZone, DropdownMenu as DropdownMenu$1, DropdownMenuCheckboxItem, DropdownMenuContent as DropdownMenuContent$1, DropdownMenuGroup, DropdownMenuItem as DropdownMenuItem$1, DropdownMenuLabel as DropdownMenuLabel$1, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator as DropdownMenuSeparator$1, DropdownMenuShortcut, DropdownMenuSub as DropdownMenuSub$1, DropdownMenuSubContent as DropdownMenuSubContent$1, DropdownMenuSubTrigger as DropdownMenuSubTrigger$1, DropdownMenuTrigger as DropdownMenuTrigger$1, EmptyState as EmptyState$1, FilterField, Heading, InlineCode, Input as Input$1, Label as Label$1, Metric, MetricStrip, PageHeader, PageHeader as PageHeader$1, PageShell, Progress as Progress$1, SegmentedControl, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarDropZone, Skeleton as Skeleton$1, SkeletonCard as SkeletonCard$1, SkeletonTable, StatCard as StatCard$1, StatusPill, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs as Tabs$1, TabsContent as TabsContent$1, TabsList as TabsList$1, TabsTrigger as TabsTrigger$1, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, Textarea as Textarea$1, ThemeToggle, ToastContainer, ToastProvider, Toolbar, UploadProgress, badgeVariants, buttonVariants, useTheme as useTheme$1, useToast } from "@tangle-network/ui/primitives";
|
|
2
|
-
import { Logo, TangleKnot as TangleKnot$1 } from "@tangle-network/brand";
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
//#region src/primitives/logo.tsx
|
|
5
|
-
/** Keep the Sandbox wordmark API while Brand owns the mark and layout. */
|
|
6
|
-
function Logo$1({ variant = "sandbox", size = "md", className, iconOnly = false }) {
|
|
7
|
-
return /* @__PURE__ */ jsx(Logo, {
|
|
8
|
-
size,
|
|
9
|
-
variant: iconOnly ? "icon" : "full",
|
|
10
|
-
suffix: variant === "sandbox" ? "Sandbox" : null,
|
|
11
|
-
className
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
Logo$1.displayName = "Logo";
|
|
15
|
-
//#endregion
|
|
16
|
-
//#region src/primitives/heading.tsx
|
|
17
|
-
/** Compatibility name for the canonical nested (h2) page header. */
|
|
18
|
-
function SectionTitle(props) {
|
|
19
|
-
return /* @__PURE__ */ jsx(PageHeader, {
|
|
20
|
-
...props,
|
|
21
|
-
level: 2
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
//#endregion
|
|
25
|
-
export { Select as $, DropdownMenuItem$1 as A, TerminalInput as At, DropdownMenuTrigger$1 as B, buttonVariants as Bt, DialogTitle$1 as C, TableRow as Ct, DropdownMenuCheckboxItem as D, TabsTrigger$1 as Dt, DropdownMenu$1 as E, TabsList$1 as Et, DropdownMenuSeparator$1 as F, ToastContainer as Ft, Input$1 as G, TangleKnot$1 as Gt, FilterField as H, useToast as Ht, DropdownMenuShortcut as I, ToastProvider as It, MetricStrip as J, Label$1 as K, DropdownMenuSub$1 as L, Toolbar as Lt, DropdownMenuPortal as M, TextShimmer as Mt, DropdownMenuRadioGroup as N, Textarea$1 as Nt, DropdownMenuContent$1 as O, TerminalCursor as Ot, DropdownMenuRadioItem as P, ThemeToggle as Pt, SegmentedControl as Q, DropdownMenuSubContent$1 as R, UploadProgress as Rt, DialogPortal as S, TableHeader as St, DropZone as T, TabsContent$1 as Tt, Heading as U, SectionTitle as Ut, EmptyState$1 as V, useTheme$1 as Vt, InlineCode as W, Logo$1 as Wt, PageShell as X, PageHeader$1 as Y, Progress$1 as Z, DialogContent$1 as _, TableBody as _t, Badge$1 as a, SelectScrollUpButton as at, DialogHeader$1 as b, TableFooter as bt, CardContent$1 as c, SelectValue as ct, CardHeader$1 as d, SkeletonCard$1 as dt, SelectContent as et, CardTitle$1 as f, SkeletonTable as ft, DialogClose as g, Table as gt, Dialog$1 as h, Switch as ht, AvatarImage$1 as i, SelectScrollDownButton as it, DropdownMenuLabel$1 as j, TerminalLine as jt, DropdownMenuGroup as k, TerminalDisplay as kt, CardDescription$1 as l, SidebarDropZone as lt, CopyButton as m, StatusPill as mt, Avatar$1 as n, SelectItem as nt, Button$1 as o, SelectSeparator as ot, CodeBlock as p, StatCard$1 as pt, Metric as q, AvatarFallback$1 as r, SelectLabel as rt, Card$1 as s, SelectTrigger as st, ArtifactPane$1 as t, SelectGroup as tt, CardFooter as u, Skeleton$1 as ut, DialogDescription$1 as v, TableCaption as vt, DialogTrigger as w, Tabs$1 as wt, DialogOverlay as x, TableHead as xt, DialogFooter$1 as y, TableCell as yt, DropdownMenuSubTrigger$1 as z, badgeVariants as zt };
|