@tangle-network/sandbox-ui 0.123.1 → 0.123.3
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/{WorkflowGraph-B4mkYGe3.js → WorkflowGraph-i6XZ90Ae.js} +15 -5
- package/dist/{dashboard-C2VXLIQC.js → dashboard-2z8THYrD.js} +13 -1
- package/dist/dashboard.js +1 -1
- package/dist/globals.css +2 -2
- package/dist/index.js +2 -2
- package/dist/{node-output-D-fYilAu.js → node-output-D_m-vmHB.js} +31 -2
- package/dist/styles.css +2 -2
- package/dist/tokens.css +2 -2
- package/dist/{workbench-BAPaCOCB.js → workbench-HbWxUqrR.js} +1 -1
- package/dist/workbench.js +1 -1
- package/dist/workflows.js +2 -2
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { A as worstSeverity, E as isStructuralKind, F as clampPreview, I as fmtCost, L as fmtDuration, O as triggerNodeIndex, P as shortModel, R as fmtTokens, T as buildWorkflowGraph, _ as problemBorder, a as NodeMark, b as statusBorder, c as RESTING_SHADOW, f as StatusFooter, g as kindAccent, h as emptySlotLabel, k as wfEdgeId, l as STATUS_COLOR, m as edgeColor, n as classifyOutput, o as ProblemMarker, p as StatusPill, s as ProblemMessages, t as NodeOutputBody, u as STATUS_LABEL, v as problemSurface, x as COMPACT_NODE_SIZE, y as problemTitle } from "./node-output-D_m-vmHB.js";
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { createContext, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { Maximize2, Minimize2, Plus, X } from "lucide-react";
|
|
@@ -591,7 +591,7 @@ function WorkflowNode({ id, data, sourcePosition, targetPosition }) {
|
|
|
591
591
|
const isLR = direction === "LR";
|
|
592
592
|
const targetPos = targetPosition ?? (isLR ? Position.Left : Position.Top);
|
|
593
593
|
const sourcePos = sourcePosition ?? (isLR ? Position.Right : Position.Bottom);
|
|
594
|
-
const accent =
|
|
594
|
+
const accent = kindAccent(d.tone, d.kind);
|
|
595
595
|
const isAgent = d.kind === "agent.run";
|
|
596
596
|
const subtitle = isAgent && state?.model ? shortModel(state.model) : d.subtitle;
|
|
597
597
|
const markModel = isAgent && state?.model ? state.model : d.model;
|
|
@@ -667,7 +667,10 @@ function WorkflowNode({ id, data, sourcePosition, targetPosition }) {
|
|
|
667
667
|
style: {
|
|
668
668
|
width: 76,
|
|
669
669
|
height: 76,
|
|
670
|
-
...state ? statusBorder(state.status) : problemSeverity ? problemBorder(problemSeverity) : {
|
|
670
|
+
...state ? statusBorder(state.status) : problemSeverity ? problemBorder(problemSeverity) : {
|
|
671
|
+
borderColor: `color-mix(in srgb, ${accent} 45%, hsl(var(--border)))`,
|
|
672
|
+
boxShadow: RESTING_SHADOW
|
|
673
|
+
},
|
|
671
674
|
...selected ? SELECTION_OUTLINE : {}
|
|
672
675
|
},
|
|
673
676
|
children: [
|
|
@@ -729,7 +732,10 @@ function WorkflowNode({ id, data, sourcePosition, targetPosition }) {
|
|
|
729
732
|
"data-testid": "wf-node-card",
|
|
730
733
|
className: "relative flex h-full w-full flex-col overflow-hidden rounded-xl border bg-card shadow-sm transition-colors",
|
|
731
734
|
style: {
|
|
732
|
-
...runStatus ? statusBorder(runStatus) : problemSeverity ? problemBorder(problemSeverity) : {
|
|
735
|
+
...runStatus ? statusBorder(runStatus) : problemSeverity ? problemBorder(problemSeverity) : {
|
|
736
|
+
borderColor: `color-mix(in srgb, ${accent} 45%, hsl(var(--border)))`,
|
|
737
|
+
boxShadow: RESTING_SHADOW
|
|
738
|
+
},
|
|
733
739
|
...selected ? SELECTION_OUTLINE : {}
|
|
734
740
|
},
|
|
735
741
|
children: [handles, children]
|
|
@@ -1407,7 +1413,11 @@ function WorkflowGraph({ yaml, variant = "full", direction = "LR", defaultCompac
|
|
|
1407
1413
|
preventScrolling: false,
|
|
1408
1414
|
minZoom: .2,
|
|
1409
1415
|
maxZoom: 1.5,
|
|
1410
|
-
children: [/* @__PURE__ */ jsx(Background, {
|
|
1416
|
+
children: [/* @__PURE__ */ jsx(Background, {
|
|
1417
|
+
gap: 18,
|
|
1418
|
+
size: 1.4,
|
|
1419
|
+
color: "hsl(var(--muted-foreground) / 0.38)"
|
|
1420
|
+
}), !isPreview && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Controls, {
|
|
1411
1421
|
showInteractive: false,
|
|
1412
1422
|
position: "bottom-right",
|
|
1413
1423
|
fitViewOptions: { padding: FIT_VIEW.padding }
|
|
@@ -2632,6 +2632,13 @@ function HarnessPicker({ value, onChange, available, optionsOverride, label = "A
|
|
|
2632
2632
|
* control flipped it — so apps no longer each reimplement this sync. Observing
|
|
2633
2633
|
* the `class` attribute (rather than reading `useTheme`) catches every writer,
|
|
2634
2634
|
* including an app's pre-React no-flash script.
|
|
2635
|
+
*
|
|
2636
|
+
* A Brand NAMED theme (`data-theme="aubergine"`, `"intelligence"`,
|
|
2637
|
+
* `"tangle-light"`, …) belongs to the app that selected it. The hook still
|
|
2638
|
+
* mirrors `.light`, but it never rewrites a named `data-theme` to plain
|
|
2639
|
+
* `dark`/`light`: doing so drops the named scope's tokens and renders the app in
|
|
2640
|
+
* the default palette. It writes `data-theme` only when the attribute is absent
|
|
2641
|
+
* or already `dark`/`light`.
|
|
2635
2642
|
*/
|
|
2636
2643
|
function useBrandThemeSync() {
|
|
2637
2644
|
React$1.useEffect(() => {
|
|
@@ -2640,8 +2647,10 @@ function useBrandThemeSync() {
|
|
|
2640
2647
|
const sync = () => {
|
|
2641
2648
|
const dark = el.classList.contains("dark");
|
|
2642
2649
|
el.classList.toggle("light", !dark);
|
|
2650
|
+
const current = el.getAttribute("data-theme");
|
|
2651
|
+
if (!isPlainTheme(current)) return;
|
|
2643
2652
|
const next = dark ? "dark" : "light";
|
|
2644
|
-
if (
|
|
2653
|
+
if (current !== next) el.setAttribute("data-theme", next);
|
|
2645
2654
|
};
|
|
2646
2655
|
sync();
|
|
2647
2656
|
const observer = new MutationObserver(sync);
|
|
@@ -2652,6 +2661,9 @@ function useBrandThemeSync() {
|
|
|
2652
2661
|
return () => observer.disconnect();
|
|
2653
2662
|
}, []);
|
|
2654
2663
|
}
|
|
2664
|
+
function isPlainTheme(value) {
|
|
2665
|
+
return value === null || value === "" || value === "dark" || value === "light";
|
|
2666
|
+
}
|
|
2655
2667
|
//#endregion
|
|
2656
2668
|
//#region src/dashboard/dashboard-layout.tsx
|
|
2657
2669
|
function MenuIcon$1({ className }) {
|
package/dist/dashboard.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as SidebarRailHeader, A as ResourceSnapshot, B as RailExpandable, C as PlanCards, D as SandboxCard, E as NewSandboxCard, F as parseInsufficientBalance, G as RailThemeToggle, H as RailHeader, I as CreditBalance, J as SidebarPanel, K as Sidebar, L as ProfileAvatar, M as ClusterStatusBar, N as INSUFFICIENT_BALANCE_CODE, O as canAdminSandbox, P as OutOfCreditsModal, Q as SidebarRailFooter, R as RailButton, S as BackendSelector, T as SandboxTable, U as RailModeButton, V as RailFlyout, W as RailSeparator, X as SidebarPanelHeader, Y as SidebarPanelContent, Z as SidebarRail, _ as HARNESS_OPTIONS, a as NetworkConfig, at as SIDEBAR_RAIL_WIDTH, b as HARNESS_BRAND, c as GitPanel, ct as useSidebar, d as VariantList, et as SidebarRailNav, f as MetricAreaChart, g as DashboardLayout, h as SidebarLayout, i as BackendConfig, it as SIDEBAR_RAIL_LABELED_WIDTH, j as ResourceMeter, k as ActivityFeed, l as UsageSummary, m as ProfileSelector, n as PromoBanner, nt as SIDEBAR_MOBILE_WIDTH, o as ProcessList, ot as SIDEBAR_TOTAL_WIDTH, p as ProfileComparison, q as SidebarContent, r as SnapshotList, rt as SIDEBAR_PANEL_WIDTH, s as PortsList, st as SidebarProvider, t as InfoPanel, tt as RailTooltip, u as SystemLogsViewer, v as HarnessPicker, w as InvoiceTable, x as HarnessLogo, y as chatCapableHarnesses, z as RailCollapseToggle } from "./dashboard-
|
|
1
|
+
import { $ as SidebarRailHeader, A as ResourceSnapshot, B as RailExpandable, C as PlanCards, D as SandboxCard, E as NewSandboxCard, F as parseInsufficientBalance, G as RailThemeToggle, H as RailHeader, I as CreditBalance, J as SidebarPanel, K as Sidebar, L as ProfileAvatar, M as ClusterStatusBar, N as INSUFFICIENT_BALANCE_CODE, O as canAdminSandbox, P as OutOfCreditsModal, Q as SidebarRailFooter, R as RailButton, S as BackendSelector, T as SandboxTable, U as RailModeButton, V as RailFlyout, W as RailSeparator, X as SidebarPanelHeader, Y as SidebarPanelContent, Z as SidebarRail, _ as HARNESS_OPTIONS, a as NetworkConfig, at as SIDEBAR_RAIL_WIDTH, b as HARNESS_BRAND, c as GitPanel, ct as useSidebar, d as VariantList, et as SidebarRailNav, f as MetricAreaChart, g as DashboardLayout, h as SidebarLayout, i as BackendConfig, it as SIDEBAR_RAIL_LABELED_WIDTH, j as ResourceMeter, k as ActivityFeed, l as UsageSummary, m as ProfileSelector, n as PromoBanner, nt as SIDEBAR_MOBILE_WIDTH, o as ProcessList, ot as SIDEBAR_TOTAL_WIDTH, p as ProfileComparison, q as SidebarContent, r as SnapshotList, rt as SIDEBAR_PANEL_WIDTH, s as PortsList, st as SidebarProvider, t as InfoPanel, tt as RailTooltip, u as SystemLogsViewer, v as HarnessPicker, w as InvoiceTable, x as HarnessLogo, y as chatCapableHarnesses, z as RailCollapseToggle } from "./dashboard-2z8THYrD.js";
|
|
2
2
|
import { n as canonicalModelId, r as modelBrandFor, t as ModelBrandStack } from "./model-brand-hMyDTUqB.js";
|
|
3
3
|
import { a as PricingPage, i as UsageChart, n as SandboxPageShell, o as formatPrice, r as TemplateCard, s as BillingDashboard, t as DashboardPageHeader } from "./page-layout-DJV7cbxx.js";
|
|
4
4
|
export { ActivityFeed, BackendConfig, BackendSelector, BillingDashboard, ClusterStatusBar, CreditBalance, DashboardLayout, DashboardPageHeader, GitPanel, HARNESS_BRAND, HARNESS_OPTIONS, HarnessLogo, HarnessPicker, INSUFFICIENT_BALANCE_CODE, InfoPanel, InvoiceTable, MetricAreaChart, ModelBrandStack, NetworkConfig, NewSandboxCard, OutOfCreditsModal, PlanCards, PortsList, PricingPage, ProcessList, ProfileAvatar, ProfileComparison, ProfileSelector, PromoBanner, RailButton, RailCollapseToggle, RailExpandable, RailFlyout, RailHeader, RailModeButton, RailSeparator, RailThemeToggle, RailTooltip, ResourceMeter, ResourceSnapshot, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_LABELED_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, SandboxCard, SandboxPageShell, SandboxTable, Sidebar, SidebarContent, SidebarLayout, SidebarPanel, SidebarPanelContent, SidebarPanelHeader, SidebarProvider, SidebarRail, SidebarRailFooter, SidebarRailHeader, SidebarRailNav, SnapshotList, SystemLogsViewer, TemplateCard, UsageChart, UsageSummary, VariantList, canAdminSandbox, canonicalModelId, chatCapableHarnesses, formatPrice, modelBrandFor, parseInsufficientBalance, useSidebar };
|
package/dist/globals.css
CHANGED
|
@@ -5592,8 +5592,8 @@
|
|
|
5592
5592
|
--surface-warning-bg: #4b4232;
|
|
5593
5593
|
--surface-warning-border: #7a6236;
|
|
5594
5594
|
--surface-warning-text: #f4c14f;
|
|
5595
|
-
--surface-danger-bg: #
|
|
5596
|
-
--surface-danger-border: #
|
|
5595
|
+
--surface-danger-bg: #5a3b40;
|
|
5596
|
+
--surface-danger-border: #7d4d53;
|
|
5597
5597
|
--surface-danger-text: #ffada9;
|
|
5598
5598
|
--surface-info-bg: #2d4e67;
|
|
5599
5599
|
--surface-info-border: #3d7292;
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { a as computeDiffStats, c as BRAND_PRISM_THEME, d as DiffStatsBadge, f as GitStatusBadge, i as buildUnifiedPatch, l as CodeSurface, m as PillTabs, n as SandboxArtifactPane, o as CodeView, p as PanelHeader, r as DiffView, s as FileBreadcrumb, t as ChangesPane, u as resolveLanguage } from "./workbench-
|
|
1
|
+
import { a as computeDiffStats, c as BRAND_PRISM_THEME, d as DiffStatsBadge, f as GitStatusBadge, i as buildUnifiedPatch, l as CodeSurface, m as PillTabs, n as SandboxArtifactPane, o as CodeView, p as PanelHeader, r as DiffView, s as FileBreadcrumb, t as ChangesPane, u as resolveLanguage } from "./workbench-HbWxUqrR.js";
|
|
2
2
|
import { $ as Select, A as DropdownMenuItem, B as DropdownMenuTrigger, Bt as buttonVariants, C as DialogTitle, Ct as TableRow, D as DropdownMenuCheckboxItem, Dt as TabsTrigger, E as DropdownMenu, Et as TabsList, F as DropdownMenuSeparator, Ft as ToastContainer, G as Input, Gt as TangleKnot, H as FilterField, Ht as useToast, I as DropdownMenuShortcut, It as ToastProvider, J as MetricStrip, K as Label, L as DropdownMenuSub, Lt as Toolbar, M as DropdownMenuPortal, Mt as TextShimmer, N as DropdownMenuRadioGroup, Nt as Textarea, O as DropdownMenuContent, P as DropdownMenuRadioItem, Pt as ThemeToggle, Q as SegmentedControl, R as DropdownMenuSubContent, Rt as UploadProgress, S as DialogPortal, St as TableHeader, T as DropZone, Tt as TabsContent, U as Heading, Ut as SectionTitle, V as EmptyState, Vt as useTheme, W as InlineCode, Wt as Logo, X as PageShell, Y as PageHeader, Z as Progress, _ as DialogContent, _t as TableBody, a as Badge, at as SelectScrollUpButton, b as DialogHeader, bt as TableFooter, c as CardContent, ct as SelectValue, d as CardHeader, dt as SkeletonCard, et as SelectContent, f as CardTitle, ft as SkeletonTable, g as DialogClose, gt as Table, h as Dialog, ht as Switch, i as AvatarImage, it as SelectScrollDownButton, j as DropdownMenuLabel, k as DropdownMenuGroup, kt as TerminalDisplay, l as CardDescription, lt as SidebarDropZone, m as CopyButton, mt as StatusPill, n as Avatar, nt as SelectItem, o as Button, ot as SelectSeparator, p as CodeBlock, pt as StatCard, q as Metric, r as AvatarFallback, rt as SelectLabel, s as Card, st as SelectTrigger, tt as SelectGroup, u as CardFooter, ut as Skeleton, v as DialogDescription, vt as TableCaption, w as DialogTrigger, wt as Tabs, x as DialogOverlay, xt as TableHead, y as DialogFooter, yt as TableCell, z as DropdownMenuSubTrigger, zt as badgeVariants } from "./primitives-Db_ASpuT.js";
|
|
3
3
|
import { t as WorkspacePaneHeader } from "./workspace-pane-header-Bg1cCcHX.js";
|
|
4
4
|
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-CjeZTLPQ.js";
|
|
5
|
-
import { $ as SidebarRailHeader, A as ResourceSnapshot, B as RailExpandable, C as PlanCards, D as SandboxCard, E as NewSandboxCard, F as parseInsufficientBalance, G as RailThemeToggle, H as RailHeader, I as CreditBalance, J as SidebarPanel, K as Sidebar, L as ProfileAvatar, M as ClusterStatusBar, N as INSUFFICIENT_BALANCE_CODE, O as canAdminSandbox, P as OutOfCreditsModal, Q as SidebarRailFooter, R as RailButton, S as BackendSelector, T as SandboxTable, U as RailModeButton, V as RailFlyout, W as RailSeparator, X as SidebarPanelHeader, Y as SidebarPanelContent, Z as SidebarRail, _ as HARNESS_OPTIONS, a as NetworkConfig, at as SIDEBAR_RAIL_WIDTH, b as HARNESS_BRAND, c as GitPanel, ct as useSidebar, d as VariantList, et as SidebarRailNav, f as MetricAreaChart, g as DashboardLayout, h as SidebarLayout, i as BackendConfig, it as SIDEBAR_RAIL_LABELED_WIDTH, j as ResourceMeter, k as ActivityFeed, l as UsageSummary, m as ProfileSelector, n as PromoBanner, nt as SIDEBAR_MOBILE_WIDTH, o as ProcessList, ot as SIDEBAR_TOTAL_WIDTH, p as ProfileComparison, q as SidebarContent, r as SnapshotList, rt as SIDEBAR_PANEL_WIDTH, s as PortsList, st as SidebarProvider, t as InfoPanel, tt as RailTooltip, u as SystemLogsViewer, v as HarnessPicker, w as InvoiceTable, x as HarnessLogo, y as chatCapableHarnesses, z as RailCollapseToggle } from "./dashboard-
|
|
5
|
+
import { $ as SidebarRailHeader, A as ResourceSnapshot, B as RailExpandable, C as PlanCards, D as SandboxCard, E as NewSandboxCard, F as parseInsufficientBalance, G as RailThemeToggle, H as RailHeader, I as CreditBalance, J as SidebarPanel, K as Sidebar, L as ProfileAvatar, M as ClusterStatusBar, N as INSUFFICIENT_BALANCE_CODE, O as canAdminSandbox, P as OutOfCreditsModal, Q as SidebarRailFooter, R as RailButton, S as BackendSelector, T as SandboxTable, U as RailModeButton, V as RailFlyout, W as RailSeparator, X as SidebarPanelHeader, Y as SidebarPanelContent, Z as SidebarRail, _ as HARNESS_OPTIONS, a as NetworkConfig, at as SIDEBAR_RAIL_WIDTH, b as HARNESS_BRAND, c as GitPanel, ct as useSidebar, d as VariantList, et as SidebarRailNav, f as MetricAreaChart, g as DashboardLayout, h as SidebarLayout, i as BackendConfig, it as SIDEBAR_RAIL_LABELED_WIDTH, j as ResourceMeter, k as ActivityFeed, l as UsageSummary, m as ProfileSelector, n as PromoBanner, nt as SIDEBAR_MOBILE_WIDTH, o as ProcessList, ot as SIDEBAR_TOTAL_WIDTH, p as ProfileComparison, q as SidebarContent, r as SnapshotList, rt as SIDEBAR_PANEL_WIDTH, s as PortsList, st as SidebarProvider, t as InfoPanel, tt as RailTooltip, u as SystemLogsViewer, v as HarnessPicker, w as InvoiceTable, x as HarnessLogo, y as chatCapableHarnesses, z as RailCollapseToggle } from "./dashboard-2z8THYrD.js";
|
|
6
6
|
import { n as canonicalModelId, r as modelBrandFor, t as ModelBrandStack } from "./model-brand-hMyDTUqB.js";
|
|
7
7
|
import { a as PricingPage, i as UsageChart, n as SandboxPageShell, o as formatPrice, r as TemplateCard, s as BillingDashboard, t as DashboardPageHeader } from "./page-layout-DJV7cbxx.js";
|
|
8
8
|
import { t as usePtySession } from "./use-pty-session-Bf4hBLXJ.js";
|
|
@@ -1279,6 +1279,35 @@ const TONE_ACCENT = {
|
|
|
1279
1279
|
structural: "var(--surface-warning-text)",
|
|
1280
1280
|
action: "hsl(var(--muted-foreground))"
|
|
1281
1281
|
};
|
|
1282
|
+
/** Per-KIND resting accents. A tone is layout vocabulary; a kind is identity:
|
|
1283
|
+
* without this map every action node rests in the same neutral gray, and a
|
|
1284
|
+
* pipeline of agent steps reads as one flat field against the canvas. Each
|
|
1285
|
+
* accent is a semantic token (theme-reactive, defined by the host app), never
|
|
1286
|
+
* a palette literal:
|
|
1287
|
+
* agent.run primary indigo — the workhorse carries the brand
|
|
1288
|
+
* script.run info — code/compute
|
|
1289
|
+
* sandbox.* success — provisioned infrastructure
|
|
1290
|
+
* integration/notify info — the outside world
|
|
1291
|
+
* Run state still wins when a run is live: statusBorder recolors the border
|
|
1292
|
+
* and the glow, so the resting identity never competes with the run's front. */
|
|
1293
|
+
const KIND_ACCENT = {
|
|
1294
|
+
"agent.run": "hsl(var(--primary))",
|
|
1295
|
+
"script.run": "var(--surface-info-text)",
|
|
1296
|
+
"sandbox.spawn": "var(--surface-success-text)",
|
|
1297
|
+
"sandbox.snapshot": "var(--surface-success-text)",
|
|
1298
|
+
"integration.invoke": "var(--surface-info-text)",
|
|
1299
|
+
"line.send": "var(--surface-info-text)",
|
|
1300
|
+
notify: "var(--surface-info-text)"
|
|
1301
|
+
};
|
|
1302
|
+
/** The accent a node presents at rest: its kind's identity when it has one,
|
|
1303
|
+
* its tone otherwise (trigger/structural keep their tone-driven accents). */
|
|
1304
|
+
function kindAccent(tone, kind) {
|
|
1305
|
+
return (kind !== void 0 ? KIND_ACCENT[kind] : void 0) ?? TONE_ACCENT[tone];
|
|
1306
|
+
}
|
|
1307
|
+
/** Resting elevation: the quiet card still sits ON the canvas rather than in
|
|
1308
|
+
* it. Foreground-token shadows so both themes get depth without a dark-mode
|
|
1309
|
+
* black box. */
|
|
1310
|
+
const RESTING_SHADOW = "0 1px 2px hsl(var(--foreground) / 0.08), 0 10px 28px -16px hsl(var(--foreground) / 0.28)";
|
|
1282
1311
|
const STATUS_QUEUED = "hsl(var(--muted-foreground))";
|
|
1283
1312
|
const STATUS_COLOR = {
|
|
1284
1313
|
queued: STATUS_QUEUED,
|
|
@@ -1577,7 +1606,7 @@ function NodeMark({ kind, provider, model, accent, tile }) {
|
|
|
1577
1606
|
style: {
|
|
1578
1607
|
width: tile,
|
|
1579
1608
|
height: tile,
|
|
1580
|
-
background: `color-mix(in srgb, ${accent}
|
|
1609
|
+
background: `color-mix(in srgb, ${accent} 14%, hsl(var(--card)))`
|
|
1581
1610
|
},
|
|
1582
1611
|
children: provider ? /* @__PURE__ */ jsx(ProviderIcon, {
|
|
1583
1612
|
id: provider,
|
|
@@ -1772,4 +1801,4 @@ function NodeOutputBody({ shape, rows = 2, tone = "default" }) {
|
|
|
1772
1801
|
});
|
|
1773
1802
|
}
|
|
1774
1803
|
//#endregion
|
|
1775
|
-
export {
|
|
1804
|
+
export { worstSeverity as A, actionNodeId as C, triggerNodeId as D, isStructuralKind as E, clampPreview as F, fmtCost as I, fmtDuration as L, humanizeIdentifier as M, parseActionPath as N, triggerNodeIndex as O, shortModel as P, fmtTokens as R, TRIGGER_NODE_ID as S, buildWorkflowGraph as T, problemBorder as _, NodeMark as a, statusBorder as b, RESTING_SHADOW as c, STATUS_PILL as d, StatusFooter as f, kindAccent as g, emptySlotLabel as h, KIND_ICON as i, actionPathLabel as j, wfEdgeId as k, STATUS_COLOR as l, edgeColor as m, classifyOutput as n, ProblemMarker as o, StatusPill as p, condenseText as r, ProblemMessages as s, NodeOutputBody as t, STATUS_LABEL as u, problemSurface as v, branchNodeId as w, COMPACT_NODE_SIZE as x, problemTitle as y };
|
package/dist/styles.css
CHANGED
|
@@ -5592,8 +5592,8 @@
|
|
|
5592
5592
|
--surface-warning-bg: #4b4232;
|
|
5593
5593
|
--surface-warning-border: #7a6236;
|
|
5594
5594
|
--surface-warning-text: #f4c14f;
|
|
5595
|
-
--surface-danger-bg: #
|
|
5596
|
-
--surface-danger-border: #
|
|
5595
|
+
--surface-danger-bg: #5a3b40;
|
|
5596
|
+
--surface-danger-border: #7d4d53;
|
|
5597
5597
|
--surface-danger-text: #ffada9;
|
|
5598
5598
|
--surface-info-bg: #2d4e67;
|
|
5599
5599
|
--surface-info-border: #3d7292;
|
package/dist/tokens.css
CHANGED
|
@@ -200,8 +200,8 @@
|
|
|
200
200
|
--surface-warning-bg: #4b4232;
|
|
201
201
|
--surface-warning-border: #7a6236;
|
|
202
202
|
--surface-warning-text: #f4c14f;
|
|
203
|
-
--surface-danger-bg: #
|
|
204
|
-
--surface-danger-border: #
|
|
203
|
+
--surface-danger-bg: #5a3b40;
|
|
204
|
+
--surface-danger-border: #7d4d53;
|
|
205
205
|
--surface-danger-text: #ffada9;
|
|
206
206
|
--surface-info-bg: #2d4e67;
|
|
207
207
|
--surface-info-border: #3d7292;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cn$1 } from "./utils-DzWbktWG.js";
|
|
2
|
-
import { s as PortsList } from "./dashboard-
|
|
2
|
+
import { s as PortsList } from "./dashboard-2z8THYrD.js";
|
|
3
3
|
import { n as TerminalView } from "./terminal-DmSUfGha.js";
|
|
4
4
|
import { RichFileTree } from "./files.js";
|
|
5
5
|
import { n as PreviewView } from "./embedded-app-view-CMRPEvon.js";
|
package/dist/workbench.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as computeDiffStats, c as BRAND_PRISM_THEME, d as DiffStatsBadge, f as GitStatusBadge, i as buildUnifiedPatch, l as CodeSurface, m as PillTabs, n as SandboxArtifactPane, o as CodeView, p as PanelHeader, r as DiffView, s as FileBreadcrumb, t as ChangesPane, u as resolveLanguage } from "./workbench-
|
|
1
|
+
import { a as computeDiffStats, c as BRAND_PRISM_THEME, d as DiffStatsBadge, f as GitStatusBadge, i as buildUnifiedPatch, l as CodeSurface, m as PillTabs, n as SandboxArtifactPane, o as CodeView, p as PanelHeader, r as DiffView, s as FileBreadcrumb, t as ChangesPane, u as resolveLanguage } from "./workbench-HbWxUqrR.js";
|
|
2
2
|
import { n as PreviewView, t as EmbeddedAppView } from "./embedded-app-view-CMRPEvon.js";
|
|
3
3
|
export { BRAND_PRISM_THEME, ChangesPane, CodeSurface, CodeView, DiffStatsBadge, DiffView, EmbeddedAppView, FileBreadcrumb, GitStatusBadge, PanelHeader, PillTabs, PreviewView, SandboxArtifactPane, buildUnifiedPatch, computeDiffStats, resolveLanguage };
|
package/dist/workflows.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as modelBrandFor, t as ModelBrandStack } from "./model-brand-hMyDTUqB.js";
|
|
2
|
-
import {
|
|
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, a as NodeMark, d as STATUS_PILL, i as KIND_ICON, j as actionPathLabel, l as STATUS_COLOR, n as classifyOutput, p as StatusPill, r as condenseText, t as NodeOutputBody, u as STATUS_LABEL, w as branchNodeId } from "./node-output-D_m-vmHB.js";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { Component, Suspense, lazy, useMemo, useState } from "react";
|
|
5
5
|
//#region src/workflows/WorkflowGraphLazy.tsx
|
|
@@ -30,7 +30,7 @@ function retryImport(factory, retries = 2, delayMs = 350) {
|
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
function lazyWorkflowGraph() {
|
|
33
|
-
return lazy(() => retryImport(() => import("./WorkflowGraph-
|
|
33
|
+
return lazy(() => retryImport(() => import("./WorkflowGraph-i6XZ90Ae.js").then((m) => ({ default: m.WorkflowGraph }))));
|
|
34
34
|
}
|
|
35
35
|
var GraphErrorBoundary = class extends Component {
|
|
36
36
|
state = { hasError: false };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/sandbox-ui",
|
|
3
|
-
"version": "0.123.
|
|
3
|
+
"version": "0.123.3",
|
|
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",
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
"@hocuspocus/provider": ">=2.15.0 <5.0.0",
|
|
128
128
|
"@nanostores/react": ">=0.8.4 <2.0.0",
|
|
129
129
|
"@tangle-network/agent-interface": "^1.0.0 || ^2.0.0",
|
|
130
|
-
"@tangle-network/brand": "^1.10.
|
|
130
|
+
"@tangle-network/brand": "^1.10.3",
|
|
131
131
|
"@tangle-network/ui": "^11.16.6",
|
|
132
132
|
"@tanstack/react-query": "^5.0.0",
|
|
133
133
|
"@tiptap/core": ">=3.20.4 <4.0.0",
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
"@storybook/react-vite": "^10.6.0",
|
|
214
214
|
"@tailwindcss/postcss": "^4.3.3",
|
|
215
215
|
"@tangle-network/agent-interface": "2.13.1",
|
|
216
|
-
"@tangle-network/brand": "1.10.
|
|
216
|
+
"@tangle-network/brand": "1.10.3",
|
|
217
217
|
"@tangle-network/ui": "11.16.6",
|
|
218
218
|
"@tanstack/react-query": "^5.104.0",
|
|
219
219
|
"@testing-library/dom": "^10.4.2",
|