@tangle-network/sandbox-ui 3.0.2 → 4.0.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 +0 -47
- package/dist/AgentTree-D4d06rfH.js +293 -0
- package/dist/{ResearchReport-vqefUbVp.js → ResearchReport-D1TFmldm.js} +2 -1
- package/dist/{VirtualList-CMynqkkh.js → VirtualList-DcSGbEtA.js} +28 -1
- package/dist/globals.css +12 -3
- package/dist/{index-gXcuwPOX.d.ts → index-Bv2iiZaN.d.ts} +135 -2
- package/dist/{index-YU_b9xCK.d.ts → index-CHA38az4.d.ts} +3 -61
- package/dist/{index-CQGMhSg0.d.ts → index-Z6RCpkmT.d.ts} +16 -1
- package/dist/index.d.ts +4 -5
- package/dist/index.js +10 -10
- package/dist/record/ResearchReport.js +1 -1
- package/dist/{record-B_4XWfUz.js → record-C-EUpK-n.js} +3 -2
- package/dist/record.js +1 -1
- package/dist/report-viewer.js +80 -80
- package/dist/run/live.js +2 -2
- package/dist/run/record.d.ts +2 -2
- package/dist/run/record.js +5 -4
- package/dist/run.d.ts +3 -3
- package/dist/run.js +6 -5
- package/dist/runtime-viewer/{AgentGraphCanvas-DGq7_u8--WPFPgd72.js → AgentGraphCanvas-DGq7_u8--C6yDfIUT.js} +67 -67
- package/dist/runtime-viewer/{latest-events-CRq9sGkK-YFXUh9qO.js → latest-events-CRq9sGkK-CfoBl1dP.js} +215 -209
- package/dist/styles.css +12 -3
- package/dist/{trace-workspace-BiJbv9WQ.js → trace-workspace-B634-EcA.js} +287 -201
- package/dist/{tree-data-9D309DqD.js → tree-data-rg5voiY8.js} +1 -1
- package/dist/{AgentTree-Cju8jn51.js → use-follow-tail-DZFn7QDO.js} +144 -385
- package/dist/vault-tree.js +1 -1
- package/dist/{workbench-Z9wbei53.js → workbench-DWQ0pm9w.js} +311 -2
- package/dist/workbench.d.ts +2 -2
- package/dist/workbench.js +2 -2
- package/dist/{workspace-BrS_rHWN.js → workspace-CJD7oOEa.js} +1 -1
- package/dist/{workspace-files-pane-Di_rn4FL.js → workspace-files-pane-D24G7H_Z.js} +1 -1
- package/dist/workspace-viewer.js +9970 -9624
- package/dist/workspace.js +2 -2
- package/package.json +5 -8
- package/dist/connections-DymjzHe_.js +0 -179
- package/dist/connections.d.ts +0 -2
- package/dist/connections.js +0 -1
- package/dist/index-DLX35YAa.d.ts +0 -59
- package/dist/use-follow-tail-Ht7fZGQQ.js +0 -1
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { t as cn$1 } from "./utils-BER_bdgE.js";
|
|
2
|
+
import { t as revealInScroller } from "./reveal-in-scroller-CzKwuqCG.js";
|
|
3
|
+
import { t as VirtualList } from "./VirtualList-DcSGbEtA.js";
|
|
2
4
|
import { a as PortsList } from "./dashboard-exTS8tta.js";
|
|
3
5
|
import { n as TerminalView } from "./terminal-nUCznZRj.js";
|
|
4
6
|
import { n as buildUnifiedPatch, r as computeDiffStats, t as DiffView } from "./diff-view-B9mNeTLF.js";
|
|
@@ -7,7 +9,8 @@ import { n as PreviewView } from "./embedded-app-view-DXsoPale.js";
|
|
|
7
9
|
import { Button, Skeleton, Textarea } from "@tangle-network/ui/primitives";
|
|
8
10
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
11
|
import * as React$1 from "react";
|
|
10
|
-
import {
|
|
12
|
+
import { useMemo, useRef, useState } from "react";
|
|
13
|
+
import { Check, ChevronRight, Code2, Copy, GitBranch, GitCompare, Globe, Network, RefreshCw, SquareTerminal } from "lucide-react";
|
|
11
14
|
import { focusRing, focusRingInset } from "@tangle-network/ui/utils";
|
|
12
15
|
// src/workbench/pill-tabs.tsx
|
|
13
16
|
/**
|
|
@@ -721,4 +724,310 @@ function ChangesPane({ branch, ahead = 0, behind = 0, files, selectedPath, onSel
|
|
|
721
724
|
]
|
|
722
725
|
});
|
|
723
726
|
}
|
|
724
|
-
|
|
727
|
+
// src/workbench/json-view.tsx
|
|
728
|
+
/** Containers open level by level while the open rows stay within this; a larger level starts collapsed. */
|
|
729
|
+
const OPEN_ROWS = 400;
|
|
730
|
+
const INDENT = 16;
|
|
731
|
+
const isContainer = (value) => typeof value === "object" && value !== null;
|
|
732
|
+
const pointer = (key) => key.replace(/~/g, "~0").replace(/\//g, "~1");
|
|
733
|
+
const keyOf = (row) => row.path;
|
|
734
|
+
function children(value, path) {
|
|
735
|
+
if (Array.isArray(value)) return value.map((child, i) => ({
|
|
736
|
+
key: String(i),
|
|
737
|
+
index: true,
|
|
738
|
+
value: child,
|
|
739
|
+
path: `${path}/${i}`
|
|
740
|
+
}));
|
|
741
|
+
if (!isContainer(value)) return [];
|
|
742
|
+
return Object.entries(value).map(([key, child]) => ({
|
|
743
|
+
key,
|
|
744
|
+
index: false,
|
|
745
|
+
value: child,
|
|
746
|
+
path: `${path}/${pointer(key)}`
|
|
747
|
+
}));
|
|
748
|
+
}
|
|
749
|
+
const count = (n, one, many) => `${n.toLocaleString("en-US")} ${n === 1 ? one : many}`;
|
|
750
|
+
const size = (value) => Array.isArray(value) ? count(value.length, "item", "items") : count(Object.keys(value).length, "key", "keys");
|
|
751
|
+
function parse(text, lines) {
|
|
752
|
+
if (!lines) try {
|
|
753
|
+
const value = JSON.parse(text);
|
|
754
|
+
return isContainer(value) ? {
|
|
755
|
+
roots: children(value, ""),
|
|
756
|
+
summary: size(value)
|
|
757
|
+
} : {
|
|
758
|
+
roots: [{
|
|
759
|
+
key: null,
|
|
760
|
+
index: false,
|
|
761
|
+
value,
|
|
762
|
+
path: "$"
|
|
763
|
+
}],
|
|
764
|
+
summary: "One value"
|
|
765
|
+
};
|
|
766
|
+
} catch (error) {
|
|
767
|
+
return { error: `This file is not valid JSON: ${error instanceof Error ? error.message : String(error)}` };
|
|
768
|
+
}
|
|
769
|
+
const roots = [];
|
|
770
|
+
const source = text.split("\n");
|
|
771
|
+
for (let i = 0; i < source.length; i++) {
|
|
772
|
+
if (!source[i].trim()) continue;
|
|
773
|
+
try {
|
|
774
|
+
roots.push({
|
|
775
|
+
key: String(i + 1),
|
|
776
|
+
index: true,
|
|
777
|
+
value: JSON.parse(source[i]),
|
|
778
|
+
path: `/${i + 1}`
|
|
779
|
+
});
|
|
780
|
+
} catch (error) {
|
|
781
|
+
return { error: `Line ${i + 1} is not valid JSON: ${error instanceof Error ? error.message : String(error)}` };
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
return {
|
|
785
|
+
roots,
|
|
786
|
+
summary: count(roots.length, "line", "lines")
|
|
787
|
+
};
|
|
788
|
+
}
|
|
789
|
+
function initiallyOpen(roots) {
|
|
790
|
+
const open = /* @__PURE__ */ new Set();
|
|
791
|
+
let shown = roots.length, level = roots.filter((entry) => isContainer(entry.value));
|
|
792
|
+
while (level.length) {
|
|
793
|
+
const next = level.flatMap((entry) => children(entry.value, entry.path));
|
|
794
|
+
if (shown + next.length > OPEN_ROWS) break;
|
|
795
|
+
for (const entry of level) open.add(entry.path);
|
|
796
|
+
shown += next.length;
|
|
797
|
+
level = next.filter((entry) => isContainer(entry.value));
|
|
798
|
+
}
|
|
799
|
+
return open;
|
|
800
|
+
}
|
|
801
|
+
function everyContainer(roots) {
|
|
802
|
+
const open = /* @__PURE__ */ new Set();
|
|
803
|
+
const visit = (entry) => {
|
|
804
|
+
if (isContainer(entry.value)) {
|
|
805
|
+
open.add(entry.path);
|
|
806
|
+
children(entry.value, entry.path).forEach(visit);
|
|
807
|
+
}
|
|
808
|
+
};
|
|
809
|
+
roots.forEach(visit);
|
|
810
|
+
return open;
|
|
811
|
+
}
|
|
812
|
+
function flatten(roots, open) {
|
|
813
|
+
const rows = [];
|
|
814
|
+
const walk = (entries, depth, parent) => entries.forEach((entry, i) => {
|
|
815
|
+
rows.push({
|
|
816
|
+
...entry,
|
|
817
|
+
depth,
|
|
818
|
+
parent,
|
|
819
|
+
posInSet: i + 1,
|
|
820
|
+
setSize: entries.length
|
|
821
|
+
});
|
|
822
|
+
if (open.has(entry.path)) walk(children(entry.value, entry.path), depth + 1, entry.path);
|
|
823
|
+
});
|
|
824
|
+
walk(roots, 0, null);
|
|
825
|
+
return rows;
|
|
826
|
+
}
|
|
827
|
+
/** A collapsed container's first fields on one line, such as `{id: "OH-31", state: "US-OH", …}`. */
|
|
828
|
+
function preview(value) {
|
|
829
|
+
const parts = [];
|
|
830
|
+
let length = 0;
|
|
831
|
+
for (const [key, child] of Array.isArray(value) ? value.map((child, i) => [String(i), child]) : Object.entries(value)) {
|
|
832
|
+
const shown = isContainer(child) ? Array.isArray(child) ? "[…]" : "{…}" : typeof child === "string" && child.length > 40 ? JSON.stringify(`${child.slice(0, 39)}…`) : JSON.stringify(child);
|
|
833
|
+
const part = Array.isArray(value) ? shown : `${key}: ${shown}`;
|
|
834
|
+
if (length + part.length > 160) {
|
|
835
|
+
parts.push("…");
|
|
836
|
+
break;
|
|
837
|
+
}
|
|
838
|
+
parts.push(part);
|
|
839
|
+
length += part.length + 2;
|
|
840
|
+
}
|
|
841
|
+
return Array.isArray(value) ? `[${parts.join(", ")}]` : `{${parts.join(", ")}}`;
|
|
842
|
+
}
|
|
843
|
+
function Value({ value, open }) {
|
|
844
|
+
if (isContainer(value)) return /* @__PURE__ */ jsxs(Fragment, { children: [!open && /* @__PURE__ */ jsx("span", {
|
|
845
|
+
className: "mr-2 opacity-80",
|
|
846
|
+
children: preview(value)
|
|
847
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
848
|
+
className: "text-muted-foreground",
|
|
849
|
+
children: size(value)
|
|
850
|
+
})] });
|
|
851
|
+
if (typeof value === "string") return /* @__PURE__ */ jsxs("span", {
|
|
852
|
+
className: "text-[var(--syntax-string,currentColor)]",
|
|
853
|
+
children: [
|
|
854
|
+
"\"",
|
|
855
|
+
value,
|
|
856
|
+
"\""
|
|
857
|
+
]
|
|
858
|
+
});
|
|
859
|
+
return /* @__PURE__ */ jsx("span", {
|
|
860
|
+
className: typeof value === "number" ? "text-[var(--syntax-number,currentColor)]" : "text-[var(--syntax-keyword,currentColor)]",
|
|
861
|
+
children: String(value)
|
|
862
|
+
});
|
|
863
|
+
}
|
|
864
|
+
/**
|
|
865
|
+
* JSON and JSON Lines as a collapsible, virtualized tree: objects and arrays open and close, small documents open
|
|
866
|
+
* whole, and long strings wrap. Rows render near the viewport of the nearest scrolling ancestor, so a file of
|
|
867
|
+
* thousands of values stays fast. Keyboard: arrows move and open or close, Home/End jump, Enter or Space toggles.
|
|
868
|
+
*/
|
|
869
|
+
function JsonView({ text, lines = false, label = lines ? "JSON Lines" : "JSON", className }) {
|
|
870
|
+
const parsed = useMemo(() => parse(text, lines), [text, lines]);
|
|
871
|
+
const roots = "roots" in parsed ? parsed.roots : [];
|
|
872
|
+
const [open, setOpen] = useState(() => initiallyOpen(roots));
|
|
873
|
+
const rows = useMemo(() => flatten(roots, open), [roots, open]);
|
|
874
|
+
const [focused, setFocused] = useState(null);
|
|
875
|
+
const [target, setTarget] = useState();
|
|
876
|
+
const rowRefs = useRef(/* @__PURE__ */ new Map());
|
|
877
|
+
const pendingFocus = useRef(null);
|
|
878
|
+
const treeRef = useRef(null), scroller = useRef(null);
|
|
879
|
+
const tabStop = rows.some((row) => row.path === focused) ? focused : rows[0]?.path ?? null;
|
|
880
|
+
const toggle = (path, value = !open.has(path)) => setOpen((current) => {
|
|
881
|
+
const next = new Set(current);
|
|
882
|
+
if (value) next.add(path);
|
|
883
|
+
else next.delete(path);
|
|
884
|
+
return next;
|
|
885
|
+
});
|
|
886
|
+
const focusRow = (path) => {
|
|
887
|
+
if (!path) return;
|
|
888
|
+
setFocused(path);
|
|
889
|
+
const element = rowRefs.current.get(path);
|
|
890
|
+
if (element) {
|
|
891
|
+
setTarget(void 0);
|
|
892
|
+
element.focus({ preventScroll: true });
|
|
893
|
+
revealInScroller(element);
|
|
894
|
+
} else {
|
|
895
|
+
pendingFocus.current = path;
|
|
896
|
+
setTarget(path);
|
|
897
|
+
}
|
|
898
|
+
};
|
|
899
|
+
const onKeyDown = (event, row, at) => {
|
|
900
|
+
const container = isContainer(row.value), expanded = open.has(row.path);
|
|
901
|
+
const moves = {
|
|
902
|
+
ArrowDown: rows[at + 1]?.path,
|
|
903
|
+
ArrowUp: rows[at - 1]?.path,
|
|
904
|
+
Home: rows[0]?.path,
|
|
905
|
+
End: rows[rows.length - 1]?.path
|
|
906
|
+
};
|
|
907
|
+
if (event.key in moves) focusRow(moves[event.key]);
|
|
908
|
+
else if (event.key === "ArrowRight" && container) {
|
|
909
|
+
if (expanded) focusRow(rows[at + 1]?.parent === row.path ? rows[at + 1].path : null);
|
|
910
|
+
else toggle(row.path, true);
|
|
911
|
+
} else if (event.key === "ArrowLeft") {
|
|
912
|
+
if (expanded) toggle(row.path, false);
|
|
913
|
+
else focusRow(row.parent);
|
|
914
|
+
} else if ((event.key === "Enter" || event.key === " ") && container) toggle(row.path);
|
|
915
|
+
else return;
|
|
916
|
+
event.preventDefault();
|
|
917
|
+
event.stopPropagation();
|
|
918
|
+
};
|
|
919
|
+
if ("error" in parsed) return /* @__PURE__ */ jsxs("div", {
|
|
920
|
+
className: cn$1("flex flex-col gap-3 p-4", className),
|
|
921
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
922
|
+
role: "alert",
|
|
923
|
+
className: "text-sm text-[var(--surface-danger-text)]",
|
|
924
|
+
children: parsed.error
|
|
925
|
+
}), /* @__PURE__ */ jsx("pre", {
|
|
926
|
+
className: "whitespace-pre-wrap font-mono text-sm leading-6 text-foreground [overflow-wrap:anywhere]",
|
|
927
|
+
children: text
|
|
928
|
+
})]
|
|
929
|
+
});
|
|
930
|
+
const render = (row, at) => {
|
|
931
|
+
const container = isContainer(row.value), expanded = container && open.has(row.path);
|
|
932
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
933
|
+
ref: (element) => {
|
|
934
|
+
if (!element) {
|
|
935
|
+
rowRefs.current.delete(row.path);
|
|
936
|
+
return;
|
|
937
|
+
}
|
|
938
|
+
rowRefs.current.set(row.path, element);
|
|
939
|
+
if (pendingFocus.current === row.path) {
|
|
940
|
+
pendingFocus.current = null;
|
|
941
|
+
element.focus({ preventScroll: true });
|
|
942
|
+
}
|
|
943
|
+
},
|
|
944
|
+
role: "treeitem",
|
|
945
|
+
"aria-level": row.depth + 1,
|
|
946
|
+
"aria-posinset": row.posInSet,
|
|
947
|
+
"aria-setsize": row.setSize,
|
|
948
|
+
"aria-expanded": container ? expanded : void 0,
|
|
949
|
+
tabIndex: row.path === tabStop ? 0 : -1,
|
|
950
|
+
"data-json-path": row.path,
|
|
951
|
+
onFocus: () => setFocused(row.path),
|
|
952
|
+
onKeyDown: (event) => onKeyDown(event, row, at),
|
|
953
|
+
onClick: () => {
|
|
954
|
+
if (container && !window.getSelection()?.toString()) toggle(row.path);
|
|
955
|
+
},
|
|
956
|
+
style: { paddingInlineStart: row.depth * INDENT + 4 },
|
|
957
|
+
className: cn$1("relative flex min-h-6 items-start gap-1 rounded-sm pr-3 font-mono text-sm leading-6 text-foreground", "hover:bg-[var(--ix-hover-bg)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring", container && "cursor-pointer"),
|
|
958
|
+
children: [
|
|
959
|
+
Array.from({ length: row.depth }, (_, level) => /* @__PURE__ */ jsx("span", {
|
|
960
|
+
"aria-hidden": "true",
|
|
961
|
+
className: "pointer-events-none absolute inset-y-0 w-px bg-border",
|
|
962
|
+
style: { left: level * INDENT + 11 }
|
|
963
|
+
}, level)),
|
|
964
|
+
/* @__PURE__ */ jsx("span", {
|
|
965
|
+
"aria-hidden": "true",
|
|
966
|
+
className: "flex h-6 w-4 shrink-0 items-center justify-center text-muted-foreground",
|
|
967
|
+
children: container && /* @__PURE__ */ jsx(ChevronRight, { className: cn$1("size-3.5 transition-transform duration-fast", expanded && "rotate-90") })
|
|
968
|
+
}),
|
|
969
|
+
/* @__PURE__ */ jsxs("span", {
|
|
970
|
+
className: cn$1("min-w-0 flex-1 whitespace-pre-wrap [overflow-wrap:anywhere]", container && !expanded && "truncate whitespace-nowrap"),
|
|
971
|
+
children: [row.key !== null && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
|
|
972
|
+
className: row.index ? "text-muted-foreground" : "text-[var(--syntax-function,currentColor)]",
|
|
973
|
+
children: row.index ? row.key : JSON.stringify(row.key)
|
|
974
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
975
|
+
className: "text-muted-foreground",
|
|
976
|
+
children: ": "
|
|
977
|
+
})] }), /* @__PURE__ */ jsx(Value, {
|
|
978
|
+
value: row.value,
|
|
979
|
+
open: expanded
|
|
980
|
+
})]
|
|
981
|
+
})
|
|
982
|
+
]
|
|
983
|
+
});
|
|
984
|
+
};
|
|
985
|
+
const containers = roots.some((entry) => isContainer(entry.value));
|
|
986
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
987
|
+
className: cn$1("flex min-w-0 flex-col", className),
|
|
988
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
989
|
+
className: "sticky top-0 z-10 flex h-9 shrink-0 items-center gap-2 bg-card px-3 text-xs text-muted-foreground shadow-[inset_0_-1px_0_hsl(var(--border))]",
|
|
990
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
991
|
+
className: "min-w-0 flex-1 truncate",
|
|
992
|
+
children: parsed.summary
|
|
993
|
+
}), containers && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Button, {
|
|
994
|
+
type: "button",
|
|
995
|
+
variant: "ghost",
|
|
996
|
+
size: "sm",
|
|
997
|
+
onClick: () => setOpen(everyContainer(roots)),
|
|
998
|
+
children: "Expand all"
|
|
999
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
1000
|
+
type: "button",
|
|
1001
|
+
variant: "ghost",
|
|
1002
|
+
size: "sm",
|
|
1003
|
+
onClick: () => setOpen(/* @__PURE__ */ new Set()),
|
|
1004
|
+
children: "Collapse all"
|
|
1005
|
+
})] })]
|
|
1006
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
1007
|
+
ref: (element) => {
|
|
1008
|
+
if (!element) return;
|
|
1009
|
+
treeRef.current = element;
|
|
1010
|
+
let parent = element.parentElement;
|
|
1011
|
+
while (parent && !/auto|scroll/.test(getComputedStyle(parent).overflowY)) parent = parent.parentElement;
|
|
1012
|
+
scroller.current = parent ?? document.scrollingElement;
|
|
1013
|
+
},
|
|
1014
|
+
role: "tree",
|
|
1015
|
+
"aria-label": label,
|
|
1016
|
+
className: "px-2 py-2",
|
|
1017
|
+
children: /* @__PURE__ */ jsx(VirtualList, {
|
|
1018
|
+
items: rows,
|
|
1019
|
+
keyOf,
|
|
1020
|
+
render,
|
|
1021
|
+
scroller,
|
|
1022
|
+
origin: treeRef,
|
|
1023
|
+
estimate: 24,
|
|
1024
|
+
overscan: 600,
|
|
1025
|
+
target,
|
|
1026
|
+
targetAlign: "nearest",
|
|
1027
|
+
virtualize: rows.length > 200,
|
|
1028
|
+
keepMounted: tabStop ?? void 0
|
|
1029
|
+
})
|
|
1030
|
+
})]
|
|
1031
|
+
});
|
|
1032
|
+
}
|
|
1033
|
+
export { GitStatusBadge as a, DiffStatsBadge as i, ChangesPane as n, PanelHeader as o, SandboxArtifactPane as r, PillTabs as s, JsonView as t };
|
package/dist/workbench.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as
|
|
1
|
+
import { C as SandboxArtifactPane, D as SandboxArtifact, E as ChangesPaneProps, O as SandboxArtifactPaneProps, S as ChangesPane, T as ChangedFile, _ as buildUnifiedPatch, a as PreviewViewProps, b as PillTabs, c as CodeView, d as FileBreadcrumbProps, f as DiffStatsBadge, g as DiffStats, h as PanelHeaderProps, i as PreviewView, k as SandboxArtifactTerminal, l as CodeViewProps, m as PanelHeader, n as CodeSurface, o as JsonView, p as GitStatusBadge, r as CodeSurfaceProps, s as JsonViewProps, t as CODE_THEME, u as FileBreadcrumb, v as computeDiffStats, w as ArtifactView, x as PillTabsProps, y as PillTabItem } from "./index-Z6RCpkmT.js";
|
|
2
2
|
import { n as DiffViewProps, t as DiffView } from "./diff-view-DDHWtR6X.js";
|
|
3
3
|
import { a as PreviewReadiness, i as PreviewAccess, n as EmbeddedAppView, r as EmbeddedAppViewProps, t as EmbeddedApp } from "./embedded-app-view-Ta5GI4hx.js";
|
|
4
|
-
export { type ArtifactView, CODE_THEME, type ChangedFile, ChangesPane, type ChangesPaneProps, CodeSurface, type CodeSurfaceProps, CodeView, type CodeViewProps, type DiffStats, DiffStatsBadge, DiffView, type DiffViewProps, type EmbeddedApp, EmbeddedAppView, type EmbeddedAppViewProps, FileBreadcrumb, type FileBreadcrumbProps, GitStatusBadge, PanelHeader, type PanelHeaderProps, type PillTabItem, PillTabs, type PillTabsProps, type PreviewAccess, type PreviewReadiness, PreviewView, type PreviewViewProps, type SandboxArtifact, SandboxArtifactPane, type SandboxArtifactPaneProps, type SandboxArtifactTerminal, buildUnifiedPatch, computeDiffStats };
|
|
4
|
+
export { type ArtifactView, CODE_THEME, type ChangedFile, ChangesPane, type ChangesPaneProps, CodeSurface, type CodeSurfaceProps, CodeView, type CodeViewProps, type DiffStats, DiffStatsBadge, DiffView, type DiffViewProps, type EmbeddedApp, EmbeddedAppView, type EmbeddedAppViewProps, FileBreadcrumb, type FileBreadcrumbProps, GitStatusBadge, JsonView, type JsonViewProps, PanelHeader, type PanelHeaderProps, type PillTabItem, PillTabs, type PillTabsProps, type PreviewAccess, type PreviewReadiness, PreviewView, type PreviewViewProps, type SandboxArtifact, SandboxArtifactPane, type SandboxArtifactPaneProps, type SandboxArtifactTerminal, buildUnifiedPatch, computeDiffStats };
|
package/dist/workbench.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as
|
|
1
|
+
import { a as GitStatusBadge, i as DiffStatsBadge, n as ChangesPane, o as PanelHeader, r as SandboxArtifactPane, s as PillTabs, t as JsonView } from "./workbench-DWQ0pm9w.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 FileBreadcrumb, t as CodeView } from "./code-view-BlhCS1SD.js";
|
|
4
4
|
import { n as PreviewView, t as EmbeddedAppView } from "./embedded-app-view-DXsoPale.js";
|
|
5
|
-
export { CODE_THEME, ChangesPane, CodeSurface, CodeView, DiffStatsBadge, DiffView, EmbeddedAppView, FileBreadcrumb, GitStatusBadge, PanelHeader, PillTabs, PreviewView, SandboxArtifactPane, buildUnifiedPatch, computeDiffStats };
|
|
5
|
+
export { CODE_THEME, ChangesPane, CodeSurface, CodeView, DiffStatsBadge, DiffView, EmbeddedAppView, FileBreadcrumb, GitStatusBadge, JsonView, PanelHeader, PillTabs, PreviewView, SandboxArtifactPane, buildUnifiedPatch, computeDiffStats };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as cn$1 } from "./utils-BER_bdgE.js";
|
|
2
2
|
import { r as ShellHeader } from "./shell-header-CwqDzC4I.js";
|
|
3
3
|
import { t as MOTION_CONTROL } from "./motion-2Ine0j_s.js";
|
|
4
|
-
import "./workspace-files-pane-
|
|
4
|
+
import "./workspace-files-pane-D24G7H_Z.js";
|
|
5
5
|
import { ArtifactPane, ArtifactPane as ArtifactPane$1, EmptyState, Input, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@tangle-network/ui/primitives";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { Markdown } from "@tangle-network/ui/markdown";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cn } from "./utils-BER_bdgE.js";
|
|
2
|
-
import { i as VaultTree, n as filterFileNodes, t as fileTreeFromPaths } from "./tree-data-
|
|
2
|
+
import { i as VaultTree, n as filterFileNodes, t as fileTreeFromPaths } from "./tree-data-rg5voiY8.js";
|
|
3
3
|
import { Button, EmptyState, Input, SegmentedControl } from "@tangle-network/ui/primitives";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { useEffect, useId, useMemo, useRef, useState } from "react";
|