@tangle-network/sandbox-ui 2.0.11 → 2.0.13
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/dist/{node-ui-D8dbX86X.js → AgentGraph-CqLe8WCH.js} +43 -123
- package/dist/AgentGraph-P7l-jZwo.d.ts +4 -0
- package/dist/{WorkflowGraph-BtJnA5iY.js → WorkflowGraph-s3RZ-ANZ.js} +6 -7
- package/dist/{dashboard-FMrtIe9S.js → dashboard-D3JhmRhe.js} +4 -4
- package/dist/dashboard.js +1 -1
- package/dist/globals.css +1550 -87
- package/dist/{index-BK8KKLNY.d.ts → index-CEtc2U5v.d.ts} +2 -2
- package/dist/{index-BKchjsHk.d.ts → index-q-I_XQu4.d.ts} +6 -16
- package/dist/index.d.ts +2 -2
- package/dist/index.js +6 -7
- package/dist/motion-2Ine0j_s.js +1 -0
- package/dist/primitives-znfPK9NP.js +23 -0
- package/dist/primitives.d.ts +1 -1
- package/dist/primitives.js +1 -1
- package/dist/{record-D-evY-c_.js → record-Dt9gqJee.js} +67 -24
- package/dist/run/record.js +1 -1
- package/dist/{run-CJyFiBG9.js → run-DBTbnQrC.js} +7 -6
- package/dist/run.d.ts +1 -1
- package/dist/run.js +2 -3
- package/dist/styles.css +1550 -87
- package/dist/tailwind.css +1800 -79
- package/dist/{workbench-BVnZNhP2.js → workbench-D9Bm4vMq.js} +1 -1
- package/dist/workbench.js +1 -1
- package/dist/workflows.d.ts +4 -59
- package/dist/workflows.js +62 -2
- package/dist/{workspace-CdcRUl-H.js → workspace-CJnBqCqj.js} +7 -7
- package/dist/workspace.js +1 -1
- package/package.json +5 -6
- package/dist/AgentGraph-CFlI9qta.js +0 -1380
- package/dist/AgentGraph-DzdpPFEI.d.ts +0 -132
- package/dist/AgentGraphCanvas-CmxReSqa.js +0 -1403
- package/dist/canvas-theme-aqWjGbfu.js +0 -55
- package/dist/latest-events-v_vXRyd7.js +0 -169
- package/dist/motion-Bn7ESHrj.js +0 -6
- package/dist/primitives-CCdx5Hh_.js +0 -23
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cn$1 } from "./utils-BER_bdgE.js";
|
|
2
|
-
import { a as PortsList } from "./dashboard-
|
|
2
|
+
import { a as PortsList } from "./dashboard-D3JhmRhe.js";
|
|
3
3
|
import { n as TerminalView } from "./terminal-nUCznZRj.js";
|
|
4
4
|
import { RichFileTree } from "./files.js";
|
|
5
5
|
import { a as CodeSurface, n as buildUnifiedPatch, r as computeDiffStats, t as DiffView } from "./diff-view-B9mNeTLF.js";
|
package/dist/workbench.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as DiffStatsBadge, c as PillTabs, i as FileBreadcrumb, n as SandboxArtifactPane, o as GitStatusBadge, r as CodeView, s as PanelHeader, t as ChangesPane } from "./workbench-
|
|
1
|
+
import { a as DiffStatsBadge, c as PillTabs, i as FileBreadcrumb, n as SandboxArtifactPane, o as GitStatusBadge, r as CodeView, s as PanelHeader, t as ChangesPane } from "./workbench-D9Bm4vMq.js";
|
|
2
2
|
import { a as CodeSurface, i as CODE_THEME, n as buildUnifiedPatch, r as computeDiffStats, t as DiffView } from "./diff-view-B9mNeTLF.js";
|
|
3
3
|
import { n as PreviewView, t as EmbeddedAppView } from "./embedded-app-view-DXsoPale.js";
|
|
4
4
|
export { CODE_THEME, ChangesPane, CodeSurface, CodeView, DiffStatsBadge, DiffView, EmbeddedAppView, FileBreadcrumb, GitStatusBadge, PanelHeader, PillTabs, PreviewView, SandboxArtifactPane, buildUnifiedPatch, computeDiffStats };
|
package/dist/workflows.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { n as ModelBrandStack, o as modelBrandFor, t as ModelBrandIdentity } from "./model-brand-ZwVS49Fq.js";
|
|
2
|
-
import { a as
|
|
2
|
+
import { a as AgentGraphDirection, c as AgentGraphEvent, d as AgentGraphStatus, f as AgentGraphTool, i as AgentGraphCallKind, l as AgentGraphNode, n as AgentGraphActivity, o as AgentGraphEdge, r as AgentGraphCall, s as AgentGraphEdgeKind, t as AgentGraph, u as AgentGraphProps } from "./AgentGraph-P7l-jZwo.js";
|
|
3
3
|
import { StatusTone } from "@tangle-network/ui/primitives";
|
|
4
|
-
import {
|
|
4
|
+
import { ReactElement } from "react";
|
|
5
5
|
import { LucideIcon } from "lucide-react";
|
|
6
|
+
import { ActionPathParts, LeadCase, actionPathLabel, humanizeIdentifier, parseActionPath, shortModel } from "@tangle-network/charts/react/agent-graph/presentation";
|
|
6
7
|
import "@xyflow/react";
|
|
7
8
|
import "@xyflow/react/dist/style.css";
|
|
8
9
|
/**
|
|
@@ -543,62 +544,6 @@ export declare function NodeMark({ kind, provider, model, accent, tile }: {
|
|
|
543
544
|
/** Edge length of the square the mark is centered in. */
|
|
544
545
|
tile: number;
|
|
545
546
|
}): import("react").JSX.Element;
|
|
546
|
-
/**
|
|
547
|
-
* Human-facing naming for workflow nodes. A definition addresses things by
|
|
548
|
-
* machine identifier — an action kind (`agent.run`), a hub action path
|
|
549
|
-
* (`github.pulls.reviews.create`), a profile slug (`pr-reviewer`) — and showing
|
|
550
|
-
* those verbatim on a node makes the graph read like a config file. These turn
|
|
551
|
-
* an identifier into the label a person would say out loud.
|
|
552
|
-
*
|
|
553
|
-
* Pure and dependency-free so the naming rules are unit-testable without the
|
|
554
|
-
* YAML parser or a render.
|
|
555
|
-
*/
|
|
556
|
-
/** How the first word of a humanized identifier is cased. An initialism is
|
|
557
|
-
* ALWAYS upper-cased whichever is chosen — that is the whole point of the table
|
|
558
|
-
* above, and `.toLowerCase()`ing the result afterwards silently undoes it
|
|
559
|
-
* ("List API keys" → "list api keys"). */
|
|
560
|
-
type LeadCase = "sentence" | "lower" | "title";
|
|
561
|
-
/**
|
|
562
|
-
* Humanize a machine identifier: `pr-reviewer` → "PR reviewer", `sandbox.spawn`
|
|
563
|
-
* → "Sandbox spawn", `postMessage` → "Post message". Known initialisms are
|
|
564
|
-
* upper-cased wherever they appear; `lead` picks the case of the rest.
|
|
565
|
-
*
|
|
566
|
-
* - `sentence` (default): "Create issue comment" — a label or a title.
|
|
567
|
-
* - `lower`: "create issue comment" — a fragment that sits INSIDE a phrase
|
|
568
|
-
* ("On pull request"), where a capital would read as a new sentence. An
|
|
569
|
-
* initialism still wins: `ci_run_completed` → "CI run completed", never
|
|
570
|
-
* "cI run completed".
|
|
571
|
-
* - `title`: "Google Sheets" — a brand/proper name.
|
|
572
|
-
*
|
|
573
|
-
* An identifier that carries no word characters is returned verbatim rather than
|
|
574
|
-
* blanked.
|
|
575
|
-
*/
|
|
576
|
-
export declare function humanizeIdentifier(id: string, lead?: LeadCase): string;
|
|
577
|
-
/** A model slug without its provider prefix (`anthropic/claude-sonnet-5` →
|
|
578
|
-
* `claude-sonnet-5`) — the vendor is noise on a card whose width is the scarce
|
|
579
|
-
* resource, and the full slug stays in the node's config for the detail view. */
|
|
580
|
-
export declare function shortModel(model: string): string;
|
|
581
|
-
/** The parts of a hub action path (`<provider>.<resource…>.<operation>`). */
|
|
582
|
-
interface ActionPathParts {
|
|
583
|
-
/** The connector the action runs against (`github`). */
|
|
584
|
-
provider: string;
|
|
585
|
-
/** The trailing verb (`create`). */
|
|
586
|
-
operation: string;
|
|
587
|
-
/** Everything between provider and operation (`pulls.reviews`), when present —
|
|
588
|
-
* a two-segment path (`slack.postMessage`) has no resource. */
|
|
589
|
-
resource?: string;
|
|
590
|
-
}
|
|
591
|
-
/** Split a hub action path into provider / resource / operation. Null when the
|
|
592
|
-
* value isn't a dotted path (a `${…}` expression, or a bare word), so callers
|
|
593
|
-
* fall back to showing it verbatim instead of inventing structure. */
|
|
594
|
-
export declare function parseActionPath(path: string): ActionPathParts | null;
|
|
595
|
-
/**
|
|
596
|
-
* The operation label for an action path, in n8n's `operation: resource` shape:
|
|
597
|
-
* `github.pulls.reviews.create` → "create: pulls.reviews", `slack.postMessage`
|
|
598
|
-
* → "post message". The provider names the node itself (its title + logo), so
|
|
599
|
-
* it is deliberately absent here. A path we can't split is shown verbatim.
|
|
600
|
-
*/
|
|
601
|
-
export declare function actionPathLabel(path: string): string;
|
|
602
547
|
/** The recovered shape of an output preview. */
|
|
603
548
|
type OutputShape = {
|
|
604
549
|
kind: "empty";
|
|
@@ -667,4 +612,4 @@ export declare function NodeOutputBody({ shape, rows, tone }: {
|
|
|
667
612
|
rows?: number | "none";
|
|
668
613
|
tone?: "default" | "error";
|
|
669
614
|
}): ReactElement | null;
|
|
670
|
-
export { type ActionPathParts, AgentGraph, type AgentGraphActivity, type AgentGraphCall, type AgentGraphCallKind, type AgentGraphDirection, type AgentGraphEdge, type AgentGraphEdgeKind, type AgentGraphEvent, type AgentGraphNode, type AgentGraphProps, type AgentGraphStatus, type AgentGraphTool, type BuildWorkflowGraphOptions, type LeadCase, type ModelBrandIdentity, ModelBrandStack, StatusPill as NodeStatusPill, type OutputShape, type WfEdge, type WfEdgeKind, type WfEdgeSpec, type WfGraph, type WfNode, type WfNodeData, type WfNodeState, type WfNodeStatus, type WfNodeTone, type WfProblem, type WfProblemSeverity, WorkflowGraph as WorkflowGraphLazy, type WorkflowGraphProps, modelBrandFor };
|
|
615
|
+
export { type ActionPathParts, AgentGraph, type AgentGraphActivity, type AgentGraphCall, type AgentGraphCallKind, type AgentGraphDirection, type AgentGraphEdge, type AgentGraphEdgeKind, type AgentGraphEvent, type AgentGraphNode, type AgentGraphProps, type AgentGraphStatus, type AgentGraphTool, type BuildWorkflowGraphOptions, type LeadCase, type ModelBrandIdentity, ModelBrandStack, StatusPill as NodeStatusPill, type OutputShape, type WfEdge, type WfEdgeKind, type WfEdgeSpec, type WfGraph, type WfNode, type WfNodeData, type WfNodeState, type WfNodeStatus, type WfNodeTone, type WfProblem, type WfProblemSeverity, WorkflowGraph as WorkflowGraphLazy, type WorkflowGraphProps, actionPathLabel, humanizeIdentifier, modelBrandFor, parseActionPath, shortModel };
|
package/dist/workflows.js
CHANGED
|
@@ -1,5 +1,65 @@
|
|
|
1
1
|
import { i as modelBrandFor, t as ModelBrandStack } from "./model-brand-bTcMjQtB.js";
|
|
2
|
-
import { n as
|
|
3
|
-
import { C as actionNodeId, D as triggerNodeId, M as humanizeIdentifier, N as parseActionPath, O as triggerNodeIndex, P as shortModel, S as TRIGGER_NODE_ID, T as buildWorkflowGraph, c as STATUS_COLOR, d as STATUS_TONE, j as actionPathLabel, l as STATUS_LABEL, n as KIND_ICON, p as StatusPill, r as NodeMark, u as STATUS_PILL, w as branchNodeId } from "./node-ui-D8dbX86X.js";
|
|
2
|
+
import { C as actionNodeId, D as triggerNodeId, M as humanizeIdentifier, N as parseActionPath, O as triggerNodeIndex, P as shortModel, S as TRIGGER_NODE_ID, T as buildWorkflowGraph, c as STATUS_COLOR, d as STATUS_TONE, j as actionPathLabel, l as STATUS_LABEL, n as KIND_ICON, p as StatusPill, r as NodeMark, t as AgentGraph, u as STATUS_PILL, w as branchNodeId } from "./AgentGraph-CqLe8WCH.js";
|
|
4
3
|
import { n as classifyOutput, r as condenseText, t as NodeOutputBody } from "./node-output-DlySTwxr.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Suspense, lazy, useMemo, useState } from "react";
|
|
6
|
+
import { GraphErrorBoundary, retryImport } from "@tangle-network/charts/react/agent-graph/presentation";
|
|
7
|
+
// src/workflows/WorkflowGraphLazy.tsx
|
|
8
|
+
/**
|
|
9
|
+
* Lazy + error-isolated boundary for {@link WorkflowGraph}. React Flow (~50KB)
|
|
10
|
+
* is only needed on the workflow detail page and on workflow proposal cards, so
|
|
11
|
+
* it's code-split out of the always-loaded app shell. The Suspense fallback
|
|
12
|
+
* keeps the caller's height so layout doesn't jump; the error boundary degrades
|
|
13
|
+
* to the raw YAML if the chunk fails
|
|
14
|
+
* to load (offline) or React Flow throws, instead of crashing the panel tree.
|
|
15
|
+
*
|
|
16
|
+
* The chunk import auto-retries a transient failure (a flaky network or an
|
|
17
|
+
* HMR/cache miss) before degrading, and the fallback offers a manual retry that
|
|
18
|
+
* re-attempts the import — so a recoverable failure isn't permanently pinned to
|
|
19
|
+
* the YAML view. A chunk that is gone for good (e.g. an old hash after a deploy)
|
|
20
|
+
* still degrades to the fully-legible YAML; the host can recover those globally
|
|
21
|
+
* via a Vite `vite:preloadError` reload guard.
|
|
22
|
+
*/
|
|
23
|
+
function lazyWorkflowGraph() {
|
|
24
|
+
return lazy(() => retryImport(() => import("./WorkflowGraph-s3RZ-ANZ.js").then((m) => ({ default: m.WorkflowGraph }))));
|
|
25
|
+
}
|
|
26
|
+
/** Graceful degradation when the graph can't render: the workflow is still
|
|
27
|
+
* fully legible as YAML, with a retry for a recoverable load failure. */
|
|
28
|
+
function GraphFallback({ yaml, className, onRetry }) {
|
|
29
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
30
|
+
className: `overflow-auto rounded-lg border border-border bg-background p-2 ${className ?? ""}`,
|
|
31
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
32
|
+
className: "mb-1 flex items-center justify-between gap-2",
|
|
33
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
34
|
+
className: "text-muted-foreground text-xs",
|
|
35
|
+
children: "Couldn't render the graph — showing the definition."
|
|
36
|
+
}), /* @__PURE__ */ jsx("button", {
|
|
37
|
+
type: "button",
|
|
38
|
+
onClick: onRetry,
|
|
39
|
+
className: "shrink-0 rounded border border-border px-1.5 py-0.5 text-muted-foreground text-xs transition hover:text-foreground",
|
|
40
|
+
children: "Retry"
|
|
41
|
+
})]
|
|
42
|
+
}), /* @__PURE__ */ jsx("pre", {
|
|
43
|
+
className: "text-foreground text-xs",
|
|
44
|
+
children: /* @__PURE__ */ jsx("code", { children: yaml })
|
|
45
|
+
})]
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function WorkflowGraph(props) {
|
|
49
|
+
const [attempt, setAttempt] = useState(0);
|
|
50
|
+
const Impl = useMemo(() => lazyWorkflowGraph(), [attempt]);
|
|
51
|
+
return /* @__PURE__ */ jsx(GraphErrorBoundary, {
|
|
52
|
+
fallback: /* @__PURE__ */ jsx(GraphFallback, {
|
|
53
|
+
...props,
|
|
54
|
+
onRetry: () => setAttempt((a) => a + 1)
|
|
55
|
+
}),
|
|
56
|
+
children: /* @__PURE__ */ jsx(Suspense, {
|
|
57
|
+
fallback: /* @__PURE__ */ jsx("div", {
|
|
58
|
+
className: `flex items-center justify-center rounded-lg border border-border border-dashed text-text-muted text-xs ${props.className ?? ""}`,
|
|
59
|
+
children: "Loading graph…"
|
|
60
|
+
}),
|
|
61
|
+
children: /* @__PURE__ */ jsx(Impl, { ...props })
|
|
62
|
+
})
|
|
63
|
+
}, `${props.yaml}::${attempt}`);
|
|
64
|
+
}
|
|
5
65
|
export { AgentGraph, KIND_ICON, ModelBrandStack, NodeMark, NodeOutputBody, StatusPill as NodeStatusPill, STATUS_COLOR, STATUS_LABEL, STATUS_PILL, STATUS_TONE, TRIGGER_NODE_ID, WorkflowGraph as WorkflowGraphLazy, actionNodeId, actionPathLabel, branchNodeId, buildWorkflowGraph, classifyOutput, condenseText, humanizeIdentifier, modelBrandFor, parseActionPath, shortModel, triggerNodeId, triggerNodeIndex };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cn$1 } from "./utils-BER_bdgE.js";
|
|
2
2
|
import { r as ShellHeader } from "./shell-header-CwqDzC4I.js";
|
|
3
|
-
import { t as MOTION_CONTROL } from "./motion-
|
|
3
|
+
import { t as MOTION_CONTROL } from "./motion-2Ine0j_s.js";
|
|
4
4
|
import { i as VaultTree, n as filterFileNodes, t as fileTreeFromPaths } from "./tree-data-C8CNt4WE.js";
|
|
5
5
|
import { ArtifactPane, ArtifactPane as ArtifactPane$1, Button, EmptyState, Input, SegmentedControl, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@tangle-network/ui/primitives";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1469,7 +1469,7 @@ function SessionSidebar({ title, subtitle, projectId = null, items, currentItemI
|
|
|
1469
1469
|
type: "button",
|
|
1470
1470
|
onClick: onCollapse,
|
|
1471
1471
|
"aria-label": "Hide chats",
|
|
1472
|
-
className: cn$1("flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-surface-container hover:text-foreground",
|
|
1472
|
+
className: cn$1("flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-surface-container hover:text-foreground", MOTION_CONTROL),
|
|
1473
1473
|
children: /* @__PURE__ */ jsx(PanelLeftClose, { className: "h-4 w-4" })
|
|
1474
1474
|
})
|
|
1475
1475
|
]
|
|
@@ -1499,7 +1499,7 @@ function SessionSidebar({ title, subtitle, projectId = null, items, currentItemI
|
|
|
1499
1499
|
type: "button",
|
|
1500
1500
|
onClick: onCreate,
|
|
1501
1501
|
title: createLabel,
|
|
1502
|
-
className: cn$1("flex h-7 w-7 items-center justify-center rounded-[var(--radius-sm)] border border-[var(--md3-outline-variant)] text-muted-foreground transition-colors hover:bg-[var(--accent-surface-soft)] hover:text-foreground",
|
|
1502
|
+
className: cn$1("flex h-7 w-7 items-center justify-center rounded-[var(--radius-sm)] border border-[var(--md3-outline-variant)] text-muted-foreground transition-colors hover:bg-[var(--accent-surface-soft)] hover:text-foreground", MOTION_CONTROL),
|
|
1503
1503
|
children: /* @__PURE__ */ jsx(Plus, { className: "h-3.5 w-3.5" })
|
|
1504
1504
|
})]
|
|
1505
1505
|
})]
|
|
@@ -1513,7 +1513,7 @@ function SessionSidebar({ title, subtitle, projectId = null, items, currentItemI
|
|
|
1513
1513
|
onChange: (event) => setQuery(event.target.value),
|
|
1514
1514
|
placeholder: searchPlaceholder,
|
|
1515
1515
|
"aria-label": searchPlaceholder,
|
|
1516
|
-
className: cn$1(quiet ? `h-8 w-full rounded-md border-0 bg-transparent pl-7 pr-2 text-sm text-foreground placeholder:text-muted-foreground transition-colors focus-visible:bg-surface-container ${focusRing}` : `h-8 w-full rounded-[var(--radius-sm)] border bg-surface-container-lowest pl-7 pr-2 text-sm text-foreground placeholder:text-muted-foreground ${focusField}`,
|
|
1516
|
+
className: cn$1(quiet ? `h-8 w-full rounded-md border-0 bg-transparent pl-7 pr-2 text-sm text-foreground placeholder:text-muted-foreground transition-colors focus-visible:bg-surface-container ${focusRing}` : `h-8 w-full rounded-[var(--radius-sm)] border bg-surface-container-lowest pl-7 pr-2 text-sm text-foreground placeholder:text-muted-foreground ${focusField}`, MOTION_CONTROL)
|
|
1517
1517
|
})]
|
|
1518
1518
|
}), filters.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
1519
1519
|
className: cn$1("flex flex-wrap gap-1", enableSearch && items.length > 0 && "mt-2"),
|
|
@@ -1522,7 +1522,7 @@ function SessionSidebar({ title, subtitle, projectId = null, items, currentItemI
|
|
|
1522
1522
|
return /* @__PURE__ */ jsxs("button", {
|
|
1523
1523
|
type: "button",
|
|
1524
1524
|
onClick: () => setActiveFilterId(filter.id),
|
|
1525
|
-
className: cn$1("inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-xs font-medium transition-colors",
|
|
1525
|
+
className: cn$1("inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-xs font-medium transition-colors", MOTION_CONTROL, isSelected ? "border-[var(--border-accent)] bg-[var(--accent-surface-soft)] text-primary" : "border-[var(--md3-outline-variant)] text-muted-foreground hover:text-foreground"),
|
|
1526
1526
|
children: [/* @__PURE__ */ jsx("span", { children: filter.label }), /* @__PURE__ */ jsx("span", {
|
|
1527
1527
|
className: "text-[11px] opacity-60",
|
|
1528
1528
|
children: filterCounts[filter.id] ?? 0
|
|
@@ -1574,7 +1574,7 @@ function SessionSidebar({ title, subtitle, projectId = null, items, currentItemI
|
|
|
1574
1574
|
}
|
|
1575
1575
|
navigateToHref(link.href);
|
|
1576
1576
|
},
|
|
1577
|
-
className: cn$1("flex w-full items-center gap-2 rounded-[var(--radius-sm)] px-3 py-2 text-left text-sm text-muted-foreground transition-colors hover:bg-accent/30 hover:text-foreground",
|
|
1577
|
+
className: cn$1("flex w-full items-center gap-2 rounded-[var(--radius-sm)] px-3 py-2 text-left text-sm text-muted-foreground transition-colors hover:bg-accent/30 hover:text-foreground", MOTION_CONTROL),
|
|
1578
1578
|
children: [/* @__PURE__ */ jsx(Icon, { className: "h-4 w-4 shrink-0" }), /* @__PURE__ */ jsx("span", {
|
|
1579
1579
|
className: "truncate",
|
|
1580
1580
|
children: link.label
|
|
@@ -1584,7 +1584,7 @@ function SessionSidebar({ title, subtitle, projectId = null, items, currentItemI
|
|
|
1584
1584
|
})
|
|
1585
1585
|
}),
|
|
1586
1586
|
resizable && /* @__PURE__ */ jsx("div", {
|
|
1587
|
-
className: cn$1("absolute top-0 right-0 bottom-0 w-1 cursor-col-resize hover:bg-[var(--accent-surface-soft)] active:bg-[var(--border-accent)] transition-colors",
|
|
1587
|
+
className: cn$1("absolute top-0 right-0 bottom-0 w-1 cursor-col-resize hover:bg-[var(--accent-surface-soft)] active:bg-[var(--border-accent)] transition-colors", MOTION_CONTROL),
|
|
1588
1588
|
onPointerDown: resize.onPointerDown,
|
|
1589
1589
|
onPointerMove: resize.onPointerMove,
|
|
1590
1590
|
onPointerUp: resize.onPointerUp,
|
package/dist/workspace.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { i as WorkspacePaneHeader, n as SHELL_INSET_GUTTER, r as ShellHeader, t as SHELL_HEADER_HEIGHT } from "./shell-header-CwqDzC4I.js";
|
|
2
|
-
import { C as WorkspaceSurfaceTitle, S as WorkspaceSurfaceFrame, _ as StatusBar, a as TaskBoard, b as WorkspaceLayout, c as createShellShouldRevalidate, d as SESSION_CREATED_EVENT, f as dispatchSessionCreated, g as TerminalPanel, h as RuntimePane, i as CalendarView, l as shellShouldRevalidate, m as formatRelativeAge, n as WorkspaceFilesPane, o as SandboxWorkbench, p as useOptimisticSessionItems, r as ApprovalQueue, s as WorkspaceArtifactView, t as ArtifactPane, u as SessionSidebar, v as StatusBanner, x as WorkspaceSurface, y as DirectoryPane } from "./workspace-
|
|
2
|
+
import { C as WorkspaceSurfaceTitle, S as WorkspaceSurfaceFrame, _ as StatusBar, a as TaskBoard, b as WorkspaceLayout, c as createShellShouldRevalidate, d as SESSION_CREATED_EVENT, f as dispatchSessionCreated, g as TerminalPanel, h as RuntimePane, i as CalendarView, l as shellShouldRevalidate, m as formatRelativeAge, n as WorkspaceFilesPane, o as SandboxWorkbench, p as useOptimisticSessionItems, r as ApprovalQueue, s as WorkspaceArtifactView, t as ArtifactPane, u as SessionSidebar, v as StatusBanner, x as WorkspaceSurface, y as DirectoryPane } from "./workspace-CJnBqCqj.js";
|
|
3
3
|
export { ApprovalQueue, ArtifactPane, CalendarView, DirectoryPane, RuntimePane, SESSION_CREATED_EVENT, SHELL_HEADER_HEIGHT, SHELL_INSET_GUTTER, SandboxWorkbench, SessionSidebar, ShellHeader, StatusBanner, StatusBar, TaskBoard, TerminalPanel, WorkspaceArtifactView, WorkspaceFilesPane, WorkspaceLayout, WorkspacePaneHeader, WorkspaceSurface, WorkspaceSurfaceFrame, WorkspaceSurfaceTitle, createShellShouldRevalidate, dispatchSessionCreated, formatRelativeAge, shellShouldRevalidate, useOptimisticSessionItems };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/sandbox-ui",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.13",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Unified UI component library for Tangle Sandbox — primitives, chat, dashboard, terminal, editor, and workspace components",
|
|
6
6
|
"repository": {
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
"@nanostores/react": ">=0.8.4 <2.0.0",
|
|
143
143
|
"@tangle-network/agent-interface": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^5.2.0",
|
|
144
144
|
"@tangle-network/brand": "^1.31.1",
|
|
145
|
-
"@tangle-network/charts": "^2.0.
|
|
145
|
+
"@tangle-network/charts": "^2.0.14",
|
|
146
146
|
"@tangle-network/ui": "^11.51.1",
|
|
147
147
|
"@tanstack/react-query": "^5.0.0",
|
|
148
148
|
"@tiptap/core": ">=3.20.4 <4.0.0",
|
|
@@ -241,7 +241,7 @@
|
|
|
241
241
|
"@tailwindcss/postcss": "^4.3.3",
|
|
242
242
|
"@tangle-network/agent-interface": "5.10.2",
|
|
243
243
|
"@tangle-network/brand": "^1.31.1",
|
|
244
|
-
"@tangle-network/charts": "
|
|
244
|
+
"@tangle-network/charts": "2.0.14",
|
|
245
245
|
"@tanstack/react-query": "^5.104.5",
|
|
246
246
|
"@testing-library/dom": "^10.4.2",
|
|
247
247
|
"@testing-library/jest-dom": "^7.0.1",
|
|
@@ -284,12 +284,11 @@
|
|
|
284
284
|
"storybook": "storybook dev -p 6006",
|
|
285
285
|
"build-storybook": "storybook build",
|
|
286
286
|
"test:visual": "pnpm build-storybook --quiet && playwright test --grep-invert '17 agents stream' && playwright test tests/visual/run-ui.spec.mjs --grep '17 agents stream' --workers=1 --retries=0",
|
|
287
|
-
"signoff": "pnpm
|
|
287
|
+
"signoff": "pnpm typecheck && pnpm build && pnpm test && pnpm test:package && pnpm test:bridge && pnpm test:visual",
|
|
288
288
|
"test": "vitest run",
|
|
289
289
|
"test:package": "node scripts/package-smoke.mjs && PACKAGE_OMIT_OPTIONAL_PEERS='[\"@hocuspocus/provider\",\"@tiptap/core\",\"@tiptap/extension-collaboration\",\"@tiptap/extension-collaboration-caret\",\"@tiptap/react\",\"@tiptap/starter-kit\",\"pdfjs-dist\",\"yjs\"]' node scripts/package-smoke.mjs",
|
|
290
290
|
"test:watch": "vitest",
|
|
291
291
|
"test:embedded-app-package": "node scripts/embedded-app-package-smoke.mjs",
|
|
292
|
-
"test:bridge": "pnpm build && vitest run src/__tests__/re-export-identity.test.ts"
|
|
293
|
-
"lint:motion": "node scripts/lint-run-motion.mjs"
|
|
292
|
+
"test:bridge": "pnpm build && vitest run src/__tests__/re-export-identity.test.ts"
|
|
294
293
|
}
|
|
295
294
|
}
|