@tangle-network/sandbox-ui 0.4.0 → 0.5.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/dist/auth.js +3 -3
- package/dist/chat.d.ts +1 -1
- package/dist/chat.js +11 -9
- package/dist/{chunk-ZP6GSX4D.js → chunk-565V6JTN.js} +26 -50
- package/dist/chunk-5CEMHKBP.js +72 -0
- package/dist/{chunk-FOQTE67I.js → chunk-5F4NX5R2.js} +10 -5
- package/dist/{chunk-MUOL44AE.js → chunk-BRBTD7RH.js} +6 -6
- package/dist/{chunk-SSKVYXCR.js → chunk-DCPYTL4W.js} +62 -79
- package/dist/chunk-DLCFZDGX.js +182 -0
- package/dist/{chunk-HXEA7L2T.js → chunk-FFOXUHOF.js} +10 -10
- package/dist/chunk-H5XYSFYE.js +228 -0
- package/dist/{chunk-TQN3VR4F.js → chunk-JP725R4W.js} +2 -2
- package/dist/{chunk-CJ2RYVZH.js → chunk-NTSRY4GW.js} +68 -10
- package/dist/{chunk-DQYODCBN.js → chunk-P24K22CV.js} +57 -66
- package/dist/{chunk-GVUW4VDD.js → chunk-R3IU37AW.js} +161 -229
- package/dist/chunk-TDYQBLL5.js +127 -0
- package/dist/{chunk-HWLX5NME.js → chunk-TSE423UF.js} +12 -12
- package/dist/{chunk-YDBXQQLC.js → chunk-VBWY44UU.js} +30 -76
- package/dist/{chunk-IW2JZCOC.js → chunk-WBQ7VULC.js} +7 -7
- package/dist/{chunk-72UEKFZ2.js → chunk-WC7QTWPN.js} +65 -42
- package/dist/{chunk-HYLTXGOI.js → chunk-WQH233GF.js} +5 -5
- package/dist/{chunk-CCKNIAS7.js → chunk-XBR3IP7B.js} +2 -2
- package/dist/{chunk-OHMO7NUX.js → chunk-XTPAWK7L.js} +20 -31
- package/dist/{chunk-SULQQJPB.js → chunk-YS66Q3RC.js} +1 -1
- package/dist/{chunk-FRGMMANX.js → chunk-YYGECNZZ.js} +3 -3
- package/dist/{chunk-MVYFNPAH.js → chunk-ZOZX2U6I.js} +285 -271
- package/dist/dashboard.d.ts +2 -2
- package/dist/dashboard.js +6 -6
- package/dist/{document-editor-pane-5TN2VWGZ.js → document-editor-pane-JNXPANWM.js} +2 -2
- package/dist/editor.js +2 -2
- package/dist/files.js +2 -2
- package/dist/globals.css +129 -95
- package/dist/hooks.d.ts +2 -2
- package/dist/hooks.js +5 -5
- package/dist/{index-tTfThG0n.d.ts → index-CDt0GE4A.d.ts} +7 -8
- package/dist/index.d.ts +16 -23
- package/dist/index.js +27 -26
- package/dist/markdown.d.ts +14 -17
- package/dist/markdown.js +1 -1
- package/dist/openui.js +5 -5
- package/dist/pages.d.ts +10 -3
- package/dist/pages.js +147 -184
- package/dist/primitives.d.ts +8 -5
- package/dist/primitives.js +8 -8
- package/dist/run.d.ts +1 -1
- package/dist/run.js +4 -4
- package/dist/sdk-hooks.d.ts +1 -1
- package/dist/sdk-hooks.js +4 -4
- package/dist/styles.css +129 -95
- package/dist/terminal.d.ts +2 -2
- package/dist/terminal.js +13 -43
- package/dist/tokens.css +299 -179
- package/dist/{tool-call-feed-D5Ume-Pt.d.ts → tool-call-feed-Bs3MyQMT.d.ts} +3 -1
- package/dist/{usage-chart-CY9xo3KX.d.ts → usage-chart-XCoB_7Xu.d.ts} +1 -2
- package/dist/{use-pty-session-DeZSxOCN.d.ts → use-pty-session-COzVkhtc.d.ts} +1 -1
- package/dist/workspace.d.ts +3 -1
- package/dist/workspace.js +11 -11
- package/package.json +14 -2
- package/dist/chunk-GRYHFH5O.js +0 -110
- package/dist/chunk-LTFK464G.js +0 -103
- package/dist/chunk-MXCSSOGH.js +0 -105
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
CodeBlock,
|
|
12
12
|
CopyButton,
|
|
13
13
|
Markdown
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-H5XYSFYE.js";
|
|
15
15
|
import {
|
|
16
16
|
cn
|
|
17
17
|
} from "./chunk-RQHJBTEU.js";
|
|
@@ -43,7 +43,7 @@ function PreviewCard({
|
|
|
43
43
|
className
|
|
44
44
|
),
|
|
45
45
|
children: [
|
|
46
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3 border-b border-[var(--border-subtle)] bg-[var(--
|
|
46
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3 border-b border-[var(--border-subtle)] bg-[var(--depth-1)] px-4 py-3", children: [
|
|
47
47
|
/* @__PURE__ */ jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--radius-md)] border border-[var(--border-accent)] bg-[var(--bg-section)] text-[var(--brand-cool)]", children: icon }),
|
|
48
48
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
49
49
|
/* @__PURE__ */ jsx("div", { className: "text-sm font-semibold text-[var(--text-primary)]", children: title }),
|
|
@@ -64,7 +64,7 @@ function PreviewEmpty({
|
|
|
64
64
|
"div",
|
|
65
65
|
{
|
|
66
66
|
className: cn(
|
|
67
|
-
"rounded-[var(--radius-md)] border border-dashed border-[var(--border-subtle)] bg-[var(--bg-section)]
|
|
67
|
+
"rounded-[var(--radius-md)] border border-dashed border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-4 text-sm text-[var(--text-muted)]",
|
|
68
68
|
className
|
|
69
69
|
),
|
|
70
70
|
children: label
|
|
@@ -72,10 +72,10 @@ function PreviewEmpty({
|
|
|
72
72
|
);
|
|
73
73
|
}
|
|
74
74
|
function PreviewError({ error }) {
|
|
75
|
-
return /* @__PURE__ */ jsx("div", { className: "rounded-[var(--radius-md)] border border-
|
|
75
|
+
return /* @__PURE__ */ jsx("div", { className: "rounded-[var(--radius-md)] border border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] px-3 py-3 text-sm text-[var(--surface-danger-text)]", children: error });
|
|
76
76
|
}
|
|
77
77
|
function PreviewLoading({ label = "Running\u2026" }) {
|
|
78
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)]
|
|
78
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-3 text-sm text-[var(--text-muted)]", children: [
|
|
79
79
|
/* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin text-[var(--brand-cool)]" }),
|
|
80
80
|
/* @__PURE__ */ jsx("span", { children: label })
|
|
81
81
|
] });
|
|
@@ -115,7 +115,7 @@ var CommandPreview = memo(({ part }) => {
|
|
|
115
115
|
{
|
|
116
116
|
className: cn(
|
|
117
117
|
"inline-flex items-center rounded-full border px-2 py-0.5 font-[var(--font-mono)]",
|
|
118
|
-
isError ? "border-
|
|
118
|
+
isError ? "border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] text-[var(--surface-danger-text)]" : "border-[var(--surface-success-border)] bg-[var(--surface-success-bg)] text-[var(--surface-success-text)]"
|
|
119
119
|
),
|
|
120
120
|
children: [
|
|
121
121
|
"exit ",
|
|
@@ -128,7 +128,7 @@ var CommandPreview = memo(({ part }) => {
|
|
|
128
128
|
"button",
|
|
129
129
|
{
|
|
130
130
|
onClick: () => setExpanded((value) => !value),
|
|
131
|
-
className: "flex w-full items-center gap-2 rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)]
|
|
131
|
+
className: "flex w-full items-center gap-2 rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-2 text-left transition-colors hover:border-[var(--border-accent-hover)] hover:bg-[var(--bg-hover)]/45",
|
|
132
132
|
children: [
|
|
133
133
|
/* @__PURE__ */ jsx2("code", { className: "min-w-0 flex-1 truncate text-xs font-[var(--font-mono)] text-[var(--text-secondary)]", children: command }),
|
|
134
134
|
lineCount > 0 ? /* @__PURE__ */ jsxs2("span", { className: "shrink-0 text-xs text-[var(--text-muted)]", children: [
|
|
@@ -142,7 +142,7 @@ var CommandPreview = memo(({ part }) => {
|
|
|
142
142
|
),
|
|
143
143
|
part.state.status === "running" ? /* @__PURE__ */ jsx2(PreviewLoading, {}) : null,
|
|
144
144
|
errorText ? /* @__PURE__ */ jsx2(PreviewError, { error: errorText }) : null,
|
|
145
|
-
expanded && output ? /* @__PURE__ */ jsxs2("div", { className: "overflow-hidden rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)]
|
|
145
|
+
expanded && output ? /* @__PURE__ */ jsxs2("div", { className: "overflow-hidden rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)]", children: [
|
|
146
146
|
output.stdout ? /* @__PURE__ */ jsx2("pre", { className: "max-h-80 overflow-auto px-3 py-3 text-xs font-[var(--font-mono)] whitespace-pre-wrap break-all text-[var(--text-secondary)]", children: output.stdout }) : null,
|
|
147
147
|
output.stderr ? /* @__PURE__ */ jsx2("pre", { className: "max-h-80 overflow-auto border-t border-[var(--border-subtle)] px-3 py-3 text-xs font-[var(--font-mono)] whitespace-pre-wrap break-all text-red-200", children: output.stderr }) : null
|
|
148
148
|
] }) : null
|
|
@@ -539,7 +539,7 @@ var QuestionPreview = memo6(({ part }) => {
|
|
|
539
539
|
questions.map((question, index) => /* @__PURE__ */ jsxs7(
|
|
540
540
|
"div",
|
|
541
541
|
{
|
|
542
|
-
className: "rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)]
|
|
542
|
+
className: "rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-3",
|
|
543
543
|
children: [
|
|
544
544
|
/* @__PURE__ */ jsxs7("div", { className: "text-xs font-semibold uppercase tracking-[0.08em] text-[var(--text-muted)]", children: [
|
|
545
545
|
"Question ",
|
|
@@ -623,6 +623,35 @@ import {
|
|
|
623
623
|
FileText as FileText2
|
|
624
624
|
} from "lucide-react";
|
|
625
625
|
import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
626
|
+
var EXT_LANG = {
|
|
627
|
+
ts: "typescript",
|
|
628
|
+
tsx: "tsx",
|
|
629
|
+
js: "javascript",
|
|
630
|
+
jsx: "jsx",
|
|
631
|
+
rs: "rust",
|
|
632
|
+
py: "python",
|
|
633
|
+
go: "go",
|
|
634
|
+
rb: "ruby",
|
|
635
|
+
json: "json",
|
|
636
|
+
yaml: "yaml",
|
|
637
|
+
yml: "yaml",
|
|
638
|
+
toml: "toml",
|
|
639
|
+
md: "markdown",
|
|
640
|
+
css: "css",
|
|
641
|
+
scss: "scss",
|
|
642
|
+
html: "html",
|
|
643
|
+
sh: "bash",
|
|
644
|
+
bash: "bash",
|
|
645
|
+
zsh: "bash",
|
|
646
|
+
sql: "sql",
|
|
647
|
+
sol: "solidity",
|
|
648
|
+
proto: "protobuf"
|
|
649
|
+
};
|
|
650
|
+
function langFromPath(path) {
|
|
651
|
+
if (!path) return void 0;
|
|
652
|
+
const ext = path.split(".").pop()?.toLowerCase();
|
|
653
|
+
return ext ? EXT_LANG[ext] : void 0;
|
|
654
|
+
}
|
|
626
655
|
function formatOutput(value) {
|
|
627
656
|
if (value == null) return "";
|
|
628
657
|
if (typeof value === "string") return value;
|
|
@@ -658,7 +687,7 @@ var ExpandedToolDetail = memo8(({ part }) => {
|
|
|
658
687
|
}
|
|
659
688
|
if (meta.displayVariant === "read-file") {
|
|
660
689
|
return /* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)] shadow-[var(--shadow-card)]", children: [
|
|
661
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-3 border-b border-[var(--border-subtle)] bg-[var(--
|
|
690
|
+
/* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-3 border-b border-[var(--border-subtle)] bg-[var(--depth-1)] px-4 py-3", children: [
|
|
662
691
|
/* @__PURE__ */ jsx9("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--radius-md)] border border-[var(--border-accent)] bg-[var(--bg-section)] text-[var(--brand-cool)]", children: /* @__PURE__ */ jsx9(FileText2, { className: "h-4 w-4" }) }),
|
|
663
692
|
/* @__PURE__ */ jsxs9("div", { className: "min-w-0", children: [
|
|
664
693
|
/* @__PURE__ */ jsx9("div", { className: "text-sm font-semibold text-[var(--text-primary)]", children: "Read file" }),
|
|
@@ -666,8 +695,8 @@ var ExpandedToolDetail = memo8(({ part }) => {
|
|
|
666
695
|
] })
|
|
667
696
|
] }),
|
|
668
697
|
/* @__PURE__ */ jsxs9("div", { className: "space-y-3 px-4 py-4", children: [
|
|
669
|
-
typeof output === "string" ? /* @__PURE__ */ jsx9(CodeBlock, { code: output, language: "text", className: "rounded-[var(--radius-md)]" }) : /* @__PURE__ */ jsx9("div", { className: "rounded-[var(--radius-md)] border border-dashed border-[var(--border-subtle)] bg-[var(--bg-section)]
|
|
670
|
-
error ? /* @__PURE__ */ jsx9("div", { className: "rounded-[var(--radius-md)] border border-
|
|
698
|
+
typeof output === "string" ? /* @__PURE__ */ jsx9(CodeBlock, { code: output, language: langFromPath(meta.targetPath) ?? "text", className: "rounded-[var(--radius-md)]" }) : /* @__PURE__ */ jsx9("div", { className: "rounded-[var(--radius-md)] border border-dashed border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-4 text-sm text-[var(--text-muted)]", children: "No readable file content was returned." }),
|
|
699
|
+
error ? /* @__PURE__ */ jsx9("div", { className: "rounded-[var(--radius-md)] border border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] px-3 py-3 text-sm text-[var(--surface-danger-text)]", children: error }) : null
|
|
671
700
|
] })
|
|
672
701
|
] });
|
|
673
702
|
}
|
|
@@ -675,14 +704,14 @@ var ExpandedToolDetail = memo8(({ part }) => {
|
|
|
675
704
|
const outputStr = formatOutput(output);
|
|
676
705
|
return /* @__PURE__ */ jsxs9("div", { className: "space-y-3", children: [
|
|
677
706
|
inputStr && /* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)]", children: [
|
|
678
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 border-b border-[var(--border-subtle)] bg-[var(--
|
|
707
|
+
/* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 border-b border-[var(--border-subtle)] bg-[var(--depth-1)] px-3 py-2", children: [
|
|
679
708
|
/* @__PURE__ */ jsx9(ArrowRight, { className: "h-3 w-3 text-[var(--brand-cool)]" }),
|
|
680
709
|
/* @__PURE__ */ jsx9("span", { className: "text-xs font-medium uppercase tracking-[0.08em] text-[var(--text-muted)]", children: "Input" })
|
|
681
710
|
] }),
|
|
682
711
|
/* @__PURE__ */ jsx9(CodeBlock, { code: inputStr, language: "json", className: "rounded-none border-0" })
|
|
683
712
|
] }),
|
|
684
713
|
status === "completed" && outputStr && /* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)]", children: [
|
|
685
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 border-b border-[var(--border-subtle)] bg-[var(--
|
|
714
|
+
/* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 border-b border-[var(--border-subtle)] bg-[var(--depth-1)] px-3 py-2", children: [
|
|
686
715
|
/* @__PURE__ */ jsx9(ArrowLeft, { className: "h-3 w-3 text-[var(--brand-cool)]" }),
|
|
687
716
|
/* @__PURE__ */ jsx9("span", { className: "text-xs font-medium uppercase tracking-[0.08em] text-[var(--text-muted)]", children: "Output" })
|
|
688
717
|
] }),
|
|
@@ -695,14 +724,14 @@ var ExpandedToolDetail = memo8(({ part }) => {
|
|
|
695
724
|
}
|
|
696
725
|
)
|
|
697
726
|
] }),
|
|
698
|
-
error && /* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-
|
|
699
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 border-b border-
|
|
700
|
-
/* @__PURE__ */ jsx9(AlertCircle, { className: "h-3 w-3 text-
|
|
701
|
-
/* @__PURE__ */ jsx9("span", { className: "text-xs font-medium uppercase tracking-[0.08em] text-
|
|
727
|
+
error && /* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-[var(--surface-danger-border)]", children: [
|
|
728
|
+
/* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 border-b border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] px-3 py-2", children: [
|
|
729
|
+
/* @__PURE__ */ jsx9(AlertCircle, { className: "h-3 w-3 text-[var(--surface-danger-text)]" }),
|
|
730
|
+
/* @__PURE__ */ jsx9("span", { className: "text-xs font-medium uppercase tracking-[0.08em] text-[var(--surface-danger-text)]", children: "Error" })
|
|
702
731
|
] }),
|
|
703
|
-
/* @__PURE__ */ jsx9("pre", { className: "bg-
|
|
732
|
+
/* @__PURE__ */ jsx9("pre", { className: "bg-[var(--surface-danger-bg)] p-3 text-xs font-[var(--font-mono)] whitespace-pre-wrap break-all text-[var(--surface-danger-text)]", children: error })
|
|
704
733
|
] }),
|
|
705
|
-
(status === "pending" || status === "running") && /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)]
|
|
734
|
+
(status === "pending" || status === "running") && /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-3 text-xs text-[var(--text-muted)]", children: [
|
|
706
735
|
/* @__PURE__ */ jsx9(Loader23, { className: cn("h-3 w-3 animate-spin text-[var(--brand-cool)]") }),
|
|
707
736
|
"Running\u2026"
|
|
708
737
|
] })
|
|
@@ -793,24 +822,18 @@ var InlineToolItem = memo9(
|
|
|
793
822
|
className
|
|
794
823
|
),
|
|
795
824
|
children: [
|
|
796
|
-
/* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-
|
|
797
|
-
/* @__PURE__ */ jsx11(
|
|
798
|
-
"
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
isError && "border-red-500/30 bg-red-500/10 text-red-200",
|
|
805
|
-
!isRunning && !isComplete && !isError && "border-[var(--border-subtle)] bg-[var(--bg-section)] text-[var(--text-muted)]"
|
|
806
|
-
),
|
|
807
|
-
children: isRunning ? /* @__PURE__ */ jsx11(Loader24, { className: "h-4 w-4 animate-spin" }) : isComplete ? /* @__PURE__ */ jsx11(CheckCircle2, { className: "h-4 w-4" }) : isError ? /* @__PURE__ */ jsx11(AlertCircle2, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx11(DefaultIcon, { className: "h-4 w-4" })
|
|
808
|
-
}
|
|
809
|
-
),
|
|
825
|
+
/* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2.5 px-3 py-2", children: [
|
|
826
|
+
/* @__PURE__ */ jsx11("div", { className: cn(
|
|
827
|
+
"shrink-0",
|
|
828
|
+
isRunning && "text-[var(--brand-cool)]",
|
|
829
|
+
isComplete && "text-[var(--surface-success-text)]",
|
|
830
|
+
isError && "text-[var(--surface-danger-text)]",
|
|
831
|
+
!isRunning && !isComplete && !isError && "text-[var(--text-muted)]"
|
|
832
|
+
), children: isRunning ? /* @__PURE__ */ jsx11(Loader24, { className: "h-3.5 w-3.5 animate-spin" }) : isComplete ? /* @__PURE__ */ jsx11(CheckCircle2, { className: "h-3.5 w-3.5" }) : isError ? /* @__PURE__ */ jsx11(AlertCircle2, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx11(DefaultIcon, { className: "h-3.5 w-3.5" }) }),
|
|
810
833
|
/* @__PURE__ */ jsxs10("div", { className: "min-w-0 flex-1", children: [
|
|
811
834
|
/* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2", children: [
|
|
812
835
|
/* @__PURE__ */ jsx11("span", { className: "truncate text-sm font-medium text-[var(--text-primary)]", children: meta.title }),
|
|
813
|
-
isError ? /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-
|
|
836
|
+
isError ? /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] px-2 py-0.5 text-[11px] font-semibold uppercase tracking-[0.06em] text-[var(--surface-danger-text)]", children: "Failed" }) : null,
|
|
814
837
|
isRunning ? /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-[var(--border-accent)] bg-[var(--brand-cool)]/10 px-2 py-0.5 text-[11px] font-semibold uppercase tracking-[0.06em] text-[var(--brand-cool)]", children: "Running" }) : null
|
|
815
838
|
] }),
|
|
816
839
|
meta.description ? /* @__PURE__ */ jsx11("div", { className: "mt-1 truncate text-xs font-[var(--font-mono)] text-[var(--text-muted)]", children: meta.description }) : null
|
|
@@ -944,8 +967,8 @@ import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
|
944
967
|
var DEFAULT_BRANDING = {
|
|
945
968
|
label: "Agent",
|
|
946
969
|
accentClass: "text-[var(--brand-cool)]",
|
|
947
|
-
bgClass: "bg-[var(--
|
|
948
|
-
containerBgClass: "bg-[var(--bg-section)]
|
|
970
|
+
bgClass: "bg-[var(--accent-surface-soft)]",
|
|
971
|
+
containerBgClass: "bg-[var(--bg-section)]",
|
|
949
972
|
borderClass: "border-[var(--border-accent)]",
|
|
950
973
|
iconClass: "",
|
|
951
974
|
textClass: "text-[var(--brand-cool)]"
|
|
@@ -1054,8 +1077,8 @@ var RunGroup = memo11(
|
|
|
1054
1077
|
"button",
|
|
1055
1078
|
{
|
|
1056
1079
|
className: cn(
|
|
1057
|
-
"w-full rounded-[
|
|
1058
|
-
"bg-[
|
|
1080
|
+
"w-full rounded-[var(--radius-xl)] border px-4 py-3.5 text-left transition-colors",
|
|
1081
|
+
"bg-[var(--depth-2)] hover:bg-[var(--depth-3)]",
|
|
1059
1082
|
collapsed ? branding.borderClass : "border-[var(--border-subtle)]",
|
|
1060
1083
|
branding.bgClass
|
|
1061
1084
|
),
|
|
@@ -1064,7 +1087,7 @@ var RunGroup = memo11(
|
|
|
1064
1087
|
"div",
|
|
1065
1088
|
{
|
|
1066
1089
|
className: cn(
|
|
1067
|
-
"flex h-11 w-11 shrink-0 items-center justify-center rounded-[calc(var(--radius-lg)+2px)] border bg-[
|
|
1090
|
+
"flex h-11 w-11 shrink-0 items-center justify-center rounded-[calc(var(--radius-lg)+2px)] border bg-[var(--accent-surface-soft)] shadow-[var(--shadow-accent)]",
|
|
1068
1091
|
branding.borderClass
|
|
1069
1092
|
),
|
|
1070
1093
|
children: /* @__PURE__ */ jsx13(Bot2, { className: cn("h-4 w-4", branding.accentClass) })
|
|
@@ -1073,7 +1096,7 @@ var RunGroup = memo11(
|
|
|
1073
1096
|
/* @__PURE__ */ jsxs12("div", { className: "min-w-0 flex-1", children: [
|
|
1074
1097
|
/* @__PURE__ */ jsxs12("div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
1075
1098
|
/* @__PURE__ */ jsx13("span", { className: cn("text-sm font-semibold tracking-[0.01em]", branding.textClass), children: branding.label }),
|
|
1076
|
-
isStreaming ? /* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 rounded-full border border-[var(--border-accent)] bg-[
|
|
1099
|
+
isStreaming ? /* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 rounded-full border border-[var(--border-accent)] bg-[var(--accent-surface-soft)] px-2.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--accent-text)]", children: [
|
|
1077
1100
|
/* @__PURE__ */ jsx13(Loader25, { className: "h-3 w-3 animate-spin" }),
|
|
1078
1101
|
"Running"
|
|
1079
1102
|
] }) : /* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 rounded-full border border-[var(--border-subtle)] bg-[linear-gradient(180deg,rgba(255,255,255,0.04),transparent)] px-2.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--text-muted)]", children: [
|
|
@@ -1133,7 +1156,7 @@ var RunGroup = memo11(
|
|
|
1133
1156
|
return /* @__PURE__ */ jsx13(
|
|
1134
1157
|
"div",
|
|
1135
1158
|
{
|
|
1136
|
-
className: "rounded-[calc(var(--radius-lg)+2px)] border border-[var(--border-subtle)] bg-[
|
|
1159
|
+
className: "rounded-[calc(var(--radius-lg)+2px)] border border-[var(--border-subtle)] bg-[var(--bg-card)] px-4 py-4",
|
|
1137
1160
|
children: /* @__PURE__ */ jsx13(Markdown, { children: part.text })
|
|
1138
1161
|
},
|
|
1139
1162
|
key
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-W4LM3QYZ.js";
|
|
4
4
|
import {
|
|
5
5
|
Markdown
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-H5XYSFYE.js";
|
|
7
7
|
import {
|
|
8
8
|
cn
|
|
9
9
|
} from "./chunk-RQHJBTEU.js";
|
|
@@ -260,7 +260,7 @@ function CodePreview({ content, filename }) {
|
|
|
260
260
|
] })
|
|
261
261
|
] })
|
|
262
262
|
] }),
|
|
263
|
-
/* @__PURE__ */ jsx2("div", { className: "overflow-auto max-h-[70vh]", children: /* @__PURE__ */ jsx2("table", { className: "w-full", children: /* @__PURE__ */ jsx2("tbody", { children: lines.map((line, i) => /* @__PURE__ */ jsxs2("tr", { className: "hover:bg-[var(--bg-hover)]
|
|
263
|
+
/* @__PURE__ */ jsx2("div", { className: "overflow-auto max-h-[70vh]", children: /* @__PURE__ */ jsx2("table", { className: "w-full", children: /* @__PURE__ */ jsx2("tbody", { children: lines.map((line, i) => /* @__PURE__ */ jsxs2("tr", { className: "hover:bg-[var(--bg-hover)]", children: [
|
|
264
264
|
/* @__PURE__ */ jsx2("td", { className: "text-right pr-4 pl-4 py-0 select-none text-[var(--text-muted)] text-xs font-[var(--font-mono)] w-10 align-top leading-[1.55]", children: i + 1 }),
|
|
265
265
|
/* @__PURE__ */ jsx2("td", { className: "pr-4 py-0 font-[var(--font-mono)] text-[13px] text-[var(--text-secondary)] leading-[1.55] whitespace-pre", children: line || " " })
|
|
266
266
|
] }, i)) }) }) })
|
|
@@ -308,7 +308,7 @@ function CsvPreview({ content }) {
|
|
|
308
308
|
},
|
|
309
309
|
i
|
|
310
310
|
)) }) }),
|
|
311
|
-
/* @__PURE__ */ jsx2("tbody", { children: rows.map((row, i) => /* @__PURE__ */ jsx2("tr", { className: "border-b border-[var(--border-subtle)] hover:bg-[var(--bg-hover)]
|
|
311
|
+
/* @__PURE__ */ jsx2("tbody", { children: rows.map((row, i) => /* @__PURE__ */ jsx2("tr", { className: "border-b border-[var(--border-subtle)] hover:bg-[var(--bg-hover)]", children: row.map((cell, j) => /* @__PURE__ */ jsx2(
|
|
312
312
|
"td",
|
|
313
313
|
{
|
|
314
314
|
className: "px-3 py-1.5 text-[var(--text-secondary)] font-[var(--font-mono)] text-xs whitespace-nowrap",
|
|
@@ -484,7 +484,7 @@ import { lazy, Suspense } from "react";
|
|
|
484
484
|
import { Download as Download2, X as X3 } from "lucide-react";
|
|
485
485
|
import { Fragment, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
486
486
|
var LazyDocumentEditorPane = lazy(async () => {
|
|
487
|
-
const module = await import("./document-editor-pane-
|
|
487
|
+
const module = await import("./document-editor-pane-JNXPANWM.js");
|
|
488
488
|
return { default: module.DocumentEditorPane };
|
|
489
489
|
});
|
|
490
490
|
function FileArtifactPane({
|
|
@@ -556,7 +556,7 @@ function FileArtifactPane({
|
|
|
556
556
|
className,
|
|
557
557
|
tabs: paneTabs,
|
|
558
558
|
headerActions,
|
|
559
|
-
children: /* @__PURE__ */ jsx4("div", { className: "flex min-h-[20rem] items-center justify-center rounded-[var(--radius-lg)] border border-dashed border-[var(--border-subtle)] bg-[var(--bg-
|
|
559
|
+
children: /* @__PURE__ */ jsx4("div", { className: "flex min-h-[20rem] items-center justify-center rounded-[var(--radius-lg)] border border-dashed border-[var(--border-subtle)] bg-[var(--bg-section)] text-sm text-[var(--text-muted)]", children: "Loading editor\u2026" })
|
|
560
560
|
}
|
|
561
561
|
),
|
|
562
562
|
children: /* @__PURE__ */ jsx4(
|
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
DropdownMenuLabel,
|
|
9
9
|
DropdownMenuSeparator,
|
|
10
10
|
DropdownMenuTrigger
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-WBQ7VULC.js";
|
|
12
12
|
import {
|
|
13
13
|
Button
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-TSE423UF.js";
|
|
15
15
|
import {
|
|
16
16
|
cn
|
|
17
17
|
} from "./chunk-RQHJBTEU.js";
|
|
@@ -122,7 +122,7 @@ function UserMenu({
|
|
|
122
122
|
DropdownMenuItem,
|
|
123
123
|
{
|
|
124
124
|
onClick: handleLogout,
|
|
125
|
-
className: "text-
|
|
125
|
+
className: "text-[var(--surface-danger-text)] focus:text-[var(--surface-danger-text)]",
|
|
126
126
|
children: "Sign out"
|
|
127
127
|
}
|
|
128
128
|
)
|
|
@@ -165,10 +165,8 @@ function AuthHeader({
|
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
// src/auth/login-layout.tsx
|
|
168
|
+
import { BookOpen, HelpCircle, Terminal } from "lucide-react";
|
|
168
169
|
import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
169
|
-
function MaterialIcon({ name, className }) {
|
|
170
|
-
return /* @__PURE__ */ jsx2("span", { className: cn("material-symbols-outlined", className), style: { fontVariationSettings: "'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24" }, children: name });
|
|
171
|
-
}
|
|
172
170
|
function LoginLayout({
|
|
173
171
|
brandName = "Tangle Sandbox",
|
|
174
172
|
tagline,
|
|
@@ -185,48 +183,39 @@ function LoginLayout({
|
|
|
185
183
|
children,
|
|
186
184
|
className
|
|
187
185
|
}) {
|
|
188
|
-
return /* @__PURE__ */ jsxs2("div", { className: cn("bg-
|
|
189
|
-
/* @__PURE__ */
|
|
190
|
-
/* @__PURE__ */ jsx2("div", { className: "absolute top-[-10%] left-[-10%] w-[50%] h-[50%] bg-md3-primary/10 rounded-full blur-[120px]" }),
|
|
191
|
-
/* @__PURE__ */ jsx2("div", { className: "absolute bottom-[-10%] right-[-10%] w-[40%] h-[40%] bg-secondary-container/10 rounded-full blur-[100px]" }),
|
|
192
|
-
/* @__PURE__ */ jsx2("div", { className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full h-full opacity-20 pointer-events-none", style: { backgroundImage: "radial-gradient(#4a4455 1px, transparent 1px)", backgroundSize: "40px 40px" } })
|
|
193
|
-
] }),
|
|
186
|
+
return /* @__PURE__ */ jsxs2("div", { className: cn("bg-[var(--depth-1)] text-[var(--text-primary)] font-sans overflow-hidden", className), children: [
|
|
187
|
+
/* @__PURE__ */ jsx2("div", { className: "fixed inset-0 z-0 overflow-hidden pointer-events-none", children: /* @__PURE__ */ jsx2("div", { className: "absolute inset-0 opacity-[0.04]", style: { backgroundImage: "radial-gradient(var(--brand-cool) 1px, transparent 1px)", backgroundSize: "40px 40px" } }) }),
|
|
194
188
|
/* @__PURE__ */ jsxs2("main", { className: "relative z-10 flex flex-col md:flex-row h-screen", children: [
|
|
195
189
|
/* @__PURE__ */ jsxs2("section", { className: "hidden md:flex flex-col justify-between p-12 lg:p-20 w-1/2 h-full", children: [
|
|
196
190
|
/* @__PURE__ */ jsx2("div", { className: "space-y-4", children: /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-3", children: [
|
|
197
|
-
/* @__PURE__ */ jsx2("div", { className: "w-10 h-10 bg-
|
|
198
|
-
/* @__PURE__ */ jsx2("span", { className: "text-2xl font-extrabold tracking-tighter
|
|
191
|
+
/* @__PURE__ */ jsx2("div", { className: "w-10 h-10 bg-[var(--accent-surface-soft)] border border-[var(--border-accent)] rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx2(Terminal, { className: "h-5 w-5 text-[var(--brand-cool)]" }) }),
|
|
192
|
+
/* @__PURE__ */ jsx2("span", { className: "text-2xl font-extrabold tracking-tighter text-[var(--text-primary)]", children: brandName })
|
|
199
193
|
] }) }),
|
|
200
194
|
/* @__PURE__ */ jsxs2("div", { className: "max-w-lg space-y-6", children: [
|
|
201
|
-
tagline ? /* @__PURE__ */ jsx2("div", { className: "text-5xl lg:text-7xl font-bold tracking-tight leading-none text-
|
|
195
|
+
tagline ? /* @__PURE__ */ jsx2("div", { className: "text-5xl lg:text-7xl font-bold tracking-tight leading-none text-[var(--text-primary)]", children: tagline }) : /* @__PURE__ */ jsxs2("h1", { className: "text-5xl lg:text-7xl font-bold tracking-tight leading-none", children: [
|
|
202
196
|
"Orchestrate ",
|
|
203
197
|
/* @__PURE__ */ jsx2("br", {}),
|
|
204
|
-
/* @__PURE__ */ jsx2("span", { className: "text-
|
|
198
|
+
/* @__PURE__ */ jsx2("span", { className: "text-[var(--brand-cool)]", children: "Agents" }),
|
|
205
199
|
" in Flow."
|
|
206
200
|
] }),
|
|
207
|
-
/* @__PURE__ */ jsx2("p", { className: "text-
|
|
208
|
-
/* @__PURE__ */ jsxs2("div", { className: "mt-12 bg-
|
|
209
|
-
/* @__PURE__ */
|
|
210
|
-
/* @__PURE__ */ jsx2("div", { className: "w-3 h-3 rounded-full bg-md3-error/40" }),
|
|
211
|
-
/* @__PURE__ */ jsx2("div", { className: "w-3 h-3 rounded-full bg-md3-primary/40" }),
|
|
212
|
-
/* @__PURE__ */ jsx2("div", { className: "w-3 h-3 rounded-full bg-md3-secondary/40" }),
|
|
213
|
-
/* @__PURE__ */ jsx2("span", { className: "ml-4 font-mono text-xs text-on-surface-variant/60", children: "tangle --init-node" })
|
|
214
|
-
] }),
|
|
201
|
+
/* @__PURE__ */ jsx2("p", { className: "text-[var(--text-muted)] text-lg leading-relaxed font-light", children: subtitle }),
|
|
202
|
+
/* @__PURE__ */ jsxs2("div", { className: "mt-12 bg-[var(--depth-2)] rounded-xl border border-[var(--border-subtle)] overflow-hidden", children: [
|
|
203
|
+
/* @__PURE__ */ jsx2("div", { className: "bg-[var(--depth-1)] border-b border-[var(--border-subtle)] px-4 py-2 flex items-center gap-2", children: /* @__PURE__ */ jsx2("span", { className: "font-mono text-xs text-[var(--text-muted)]", children: "tangle --init-node" }) }),
|
|
215
204
|
/* @__PURE__ */ jsx2("div", { className: "p-6 font-mono text-xs space-y-2", children: terminalLines.map((line, i) => /* @__PURE__ */ jsxs2("div", { className: "flex gap-4", children: [
|
|
216
|
-
/* @__PURE__ */ jsx2("span", { className: "text-
|
|
205
|
+
/* @__PURE__ */ jsx2("span", { className: "text-[var(--brand-cool)] opacity-60", children: String(i + 1).padStart(2, "0") }),
|
|
217
206
|
line.startsWith("DONE") ? /* @__PURE__ */ jsxs2(Fragment, { children: [
|
|
218
|
-
/* @__PURE__ */ jsx2("span", { className: "text-
|
|
219
|
-
/* @__PURE__ */ jsx2("span", { className: "text-
|
|
220
|
-
] }) : /* @__PURE__ */ jsx2("span", { className: "text-
|
|
207
|
+
/* @__PURE__ */ jsx2("span", { className: "text-[var(--code-success)]", children: "DONE" }),
|
|
208
|
+
/* @__PURE__ */ jsx2("span", { className: "text-[var(--text-primary)]", children: line.replace("DONE ", "") })
|
|
209
|
+
] }) : /* @__PURE__ */ jsx2("span", { className: "text-[var(--text-secondary)]", children: line })
|
|
221
210
|
] }, i)) })
|
|
222
211
|
] })
|
|
223
212
|
] }),
|
|
224
|
-
/* @__PURE__ */ jsx2("nav", { className: "flex gap-8 text-sm font-medium text-
|
|
225
|
-
/* @__PURE__ */ jsx2(
|
|
213
|
+
/* @__PURE__ */ jsx2("nav", { className: "flex gap-8 text-sm font-medium text-[var(--text-muted)]", children: footerLinks.map((link) => /* @__PURE__ */ jsxs2("a", { href: link.href, className: "hover:text-[var(--brand-cool)] transition-colors flex items-center gap-2", children: [
|
|
214
|
+
link.label === "Documentation" ? /* @__PURE__ */ jsx2(BookOpen, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx2(HelpCircle, { className: "h-4 w-4" }),
|
|
226
215
|
link.label
|
|
227
216
|
] }, link.href)) })
|
|
228
217
|
] }),
|
|
229
|
-
/* @__PURE__ */ jsx2("section", { className: "w-full md:w-1/2 flex items-center justify-center p-6 lg:p-24 relative", children: /* @__PURE__ */ jsx2("div", { className: "w-full max-w-md bg-
|
|
218
|
+
/* @__PURE__ */ jsx2("section", { className: "w-full md:w-1/2 flex items-center justify-center p-6 lg:p-24 relative", children: /* @__PURE__ */ jsx2("div", { className: "w-full max-w-md bg-[var(--depth-2)] rounded-[2rem] p-8 lg:p-12 shadow-2xl border border-[var(--border-subtle)]", children }) })
|
|
230
219
|
] })
|
|
231
220
|
] });
|
|
232
221
|
}
|
|
@@ -16,7 +16,7 @@ var DialogOverlay = React.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
16
16
|
{
|
|
17
17
|
ref,
|
|
18
18
|
className: cn(
|
|
19
|
-
"fixed inset-0 z-50 bg-black/
|
|
19
|
+
"fixed inset-0 z-50 bg-black/85",
|
|
20
20
|
"data-[state=closed]:animate-out data-[state=open]:animate-in",
|
|
21
21
|
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
22
22
|
className
|
|
@@ -52,7 +52,7 @@ function Skeleton({
|
|
|
52
52
|
return /* @__PURE__ */ jsx2(
|
|
53
53
|
"div",
|
|
54
54
|
{
|
|
55
|
-
className: cn("animate-pulse rounded-lg bg-
|
|
55
|
+
className: cn("animate-pulse rounded-lg bg-[var(--depth-3)]", className),
|
|
56
56
|
...props
|
|
57
57
|
}
|
|
58
58
|
);
|
|
@@ -62,7 +62,7 @@ function SkeletonCard({ className }) {
|
|
|
62
62
|
"div",
|
|
63
63
|
{
|
|
64
64
|
className: cn(
|
|
65
|
-
"space-y-4 rounded-xl border border-border bg-card p-6",
|
|
65
|
+
"space-y-4 rounded-xl border border-[var(--border-subtle)] bg-[var(--bg-card)] p-6",
|
|
66
66
|
className
|
|
67
67
|
),
|
|
68
68
|
children: [
|
|
@@ -79,7 +79,7 @@ function SkeletonCard({ className }) {
|
|
|
79
79
|
}
|
|
80
80
|
function SkeletonTable({ rows = 5 }) {
|
|
81
81
|
return /* @__PURE__ */ jsxs2("div", { className: "space-y-3", children: [
|
|
82
|
-
/* @__PURE__ */ jsxs2("div", { className: "flex gap-4 border-border border-b pb-2", children: [
|
|
82
|
+
/* @__PURE__ */ jsxs2("div", { className: "flex gap-4 border-[var(--border-subtle)] border-b pb-2", children: [
|
|
83
83
|
/* @__PURE__ */ jsx2(Skeleton, { className: "h-4 w-1/4" }),
|
|
84
84
|
/* @__PURE__ */ jsx2(Skeleton, { className: "h-4 w-1/4" }),
|
|
85
85
|
/* @__PURE__ */ jsx2(Skeleton, { className: "h-4 w-1/4" }),
|