footprint-explainable-ui 0.19.0 → 0.20.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/flowchart.cjs +34 -8
- package/dist/flowchart.cjs.map +1 -1
- package/dist/flowchart.d.cts +72 -5
- package/dist/flowchart.d.ts +72 -5
- package/dist/flowchart.js +89 -63
- package/dist/flowchart.js.map +1 -1
- package/dist/index.cjs +18 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +18 -3
- package/dist/index.d.ts +18 -3
- package/dist/index.js +75 -61
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/flowchart.js
CHANGED
|
@@ -1138,7 +1138,7 @@ import {
|
|
|
1138
1138
|
BackgroundVariant,
|
|
1139
1139
|
MarkerType
|
|
1140
1140
|
} from "@xyflow/react";
|
|
1141
|
-
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
1141
|
+
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1142
1142
|
var Y_STEP = 100;
|
|
1143
1143
|
var X_SPREAD = 200;
|
|
1144
1144
|
var defaultTraceFlowLayout = (graph) => {
|
|
@@ -1237,8 +1237,11 @@ function styleEdge(edge, colors) {
|
|
|
1237
1237
|
}
|
|
1238
1238
|
return styled;
|
|
1239
1239
|
}
|
|
1240
|
-
var
|
|
1240
|
+
var DEFAULT_NODE_TYPES = { stageNode: StageNode };
|
|
1241
1241
|
function toStageNode(node) {
|
|
1242
|
+
if (node.type !== void 0 && node.type !== "stage") {
|
|
1243
|
+
return node;
|
|
1244
|
+
}
|
|
1242
1245
|
const data = node.data;
|
|
1243
1246
|
const stageData = {
|
|
1244
1247
|
label: data.label,
|
|
@@ -1320,6 +1323,11 @@ function TraceFlow(props) {
|
|
|
1320
1323
|
},
|
|
1321
1324
|
[onNodeClickRef]
|
|
1322
1325
|
);
|
|
1326
|
+
const { nodeTypes: userNodeTypes, edgeTypes: userEdgeTypes } = props;
|
|
1327
|
+
const mergedNodeTypes = useMemo4(
|
|
1328
|
+
() => userNodeTypes ? { ...DEFAULT_NODE_TYPES, ...userNodeTypes } : DEFAULT_NODE_TYPES,
|
|
1329
|
+
[userNodeTypes]
|
|
1330
|
+
);
|
|
1323
1331
|
return /* @__PURE__ */ jsx6(
|
|
1324
1332
|
"div",
|
|
1325
1333
|
{
|
|
@@ -1330,16 +1338,20 @@ function TraceFlow(props) {
|
|
|
1330
1338
|
minHeight: 300,
|
|
1331
1339
|
...props.style
|
|
1332
1340
|
},
|
|
1333
|
-
children: /* @__PURE__ */
|
|
1341
|
+
children: /* @__PURE__ */ jsxs5(
|
|
1334
1342
|
ReactFlow,
|
|
1335
1343
|
{
|
|
1336
1344
|
nodes: reactFlowNodes,
|
|
1337
1345
|
edges: reactFlowEdges,
|
|
1338
|
-
nodeTypes,
|
|
1346
|
+
nodeTypes: mergedNodeTypes,
|
|
1347
|
+
...userEdgeTypes && { edgeTypes: userEdgeTypes },
|
|
1339
1348
|
onNodeClick: handleNodeClick,
|
|
1340
1349
|
fitView: true,
|
|
1341
1350
|
proOptions: { hideAttribution: true },
|
|
1342
|
-
children:
|
|
1351
|
+
children: [
|
|
1352
|
+
/* @__PURE__ */ jsx6(Background, { variant: BackgroundVariant.Dots, gap: 20, size: 1 }),
|
|
1353
|
+
props.children
|
|
1354
|
+
]
|
|
1343
1355
|
}
|
|
1344
1356
|
)
|
|
1345
1357
|
}
|
|
@@ -1621,7 +1633,7 @@ function useChartAutoRefit(wrapperRef, rfInstance, options = {}) {
|
|
|
1621
1633
|
}
|
|
1622
1634
|
|
|
1623
1635
|
// src/components/FlowchartView/SubflowBreadcrumbBar.tsx
|
|
1624
|
-
import { jsx as jsx7, jsxs as
|
|
1636
|
+
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1625
1637
|
function SubflowBreadcrumbBar({ entries, onNavigate }) {
|
|
1626
1638
|
return /* @__PURE__ */ jsx7(
|
|
1627
1639
|
"div",
|
|
@@ -1639,7 +1651,7 @@ function SubflowBreadcrumbBar({ entries, onNavigate }) {
|
|
|
1639
1651
|
"aria-label": "Subflow breadcrumb",
|
|
1640
1652
|
children: entries.map((entry, i) => {
|
|
1641
1653
|
const isLast = i === entries.length - 1;
|
|
1642
|
-
return /* @__PURE__ */
|
|
1654
|
+
return /* @__PURE__ */ jsxs6(
|
|
1643
1655
|
"span",
|
|
1644
1656
|
{
|
|
1645
1657
|
style: { display: "inline-flex", alignItems: "center", gap: 6 },
|
|
@@ -1675,7 +1687,7 @@ function SubflowBreadcrumbBar({ entries, onNavigate }) {
|
|
|
1675
1687
|
}
|
|
1676
1688
|
|
|
1677
1689
|
// src/components/FlowchartView/TracedFlow.tsx
|
|
1678
|
-
import { jsx as jsx8, jsxs as
|
|
1690
|
+
import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1679
1691
|
var DEFAULT_COLORS = {
|
|
1680
1692
|
default: rawDefaults.colors.textMuted,
|
|
1681
1693
|
done: rawDefaults.colors.success,
|
|
@@ -1684,6 +1696,9 @@ var DEFAULT_COLORS = {
|
|
|
1684
1696
|
loop: rawDefaults.colors.warning
|
|
1685
1697
|
};
|
|
1686
1698
|
function toStageNodeWithOverlay(node, doneStageIds, activeStageId, errorMessage, executedOrderIds) {
|
|
1699
|
+
if (node.type !== void 0 && node.type !== "stage") {
|
|
1700
|
+
return node;
|
|
1701
|
+
}
|
|
1687
1702
|
const isDone = doneStageIds.has(node.id);
|
|
1688
1703
|
const isActive = activeStageId === node.id;
|
|
1689
1704
|
const wasExecuted = isDone || isActive;
|
|
@@ -1748,7 +1763,7 @@ function styleEdgeWithOverlay(edge, doneStageIds, activeStageId, colors) {
|
|
|
1748
1763
|
}
|
|
1749
1764
|
return styled;
|
|
1750
1765
|
}
|
|
1751
|
-
var
|
|
1766
|
+
var DEFAULT_NODE_TYPES2 = { stageNode: StageNode };
|
|
1752
1767
|
function TracedFlow({
|
|
1753
1768
|
graph,
|
|
1754
1769
|
overlay,
|
|
@@ -1757,6 +1772,9 @@ function TracedFlow({
|
|
|
1757
1772
|
colors: colorOverrides,
|
|
1758
1773
|
onNodeClick,
|
|
1759
1774
|
onSubflowChange,
|
|
1775
|
+
nodeTypes: userNodeTypes,
|
|
1776
|
+
edgeTypes: userEdgeTypes,
|
|
1777
|
+
children,
|
|
1760
1778
|
className,
|
|
1761
1779
|
style
|
|
1762
1780
|
}) {
|
|
@@ -1765,6 +1783,10 @@ function TracedFlow({
|
|
|
1765
1783
|
() => ({ ...DEFAULT_COLORS, ...colorOverrides ?? {} }),
|
|
1766
1784
|
[colorOverrides]
|
|
1767
1785
|
);
|
|
1786
|
+
const mergedNodeTypes = useMemo5(
|
|
1787
|
+
() => userNodeTypes ? { ...DEFAULT_NODE_TYPES2, ...userNodeTypes } : DEFAULT_NODE_TYPES2,
|
|
1788
|
+
[userNodeTypes]
|
|
1789
|
+
);
|
|
1768
1790
|
const drill = useSubflowDrill(graph, onSubflowChange);
|
|
1769
1791
|
const filteredGraph = useMemo5(
|
|
1770
1792
|
() => filterGraphForDrill(graph, drill.currentSubflowId),
|
|
@@ -1822,7 +1844,7 @@ function TracedFlow({
|
|
|
1822
1844
|
const wrapperRef = useRef5(null);
|
|
1823
1845
|
const [rfInstance, setRfInstance] = useState4(null);
|
|
1824
1846
|
useChartAutoRefit(wrapperRef, rfInstance);
|
|
1825
|
-
return /* @__PURE__ */
|
|
1847
|
+
return /* @__PURE__ */ jsxs7(
|
|
1826
1848
|
"div",
|
|
1827
1849
|
{
|
|
1828
1850
|
ref: wrapperRef,
|
|
@@ -1843,17 +1865,21 @@ function TracedFlow({
|
|
|
1843
1865
|
onNavigate: drill.setCurrentSubflowId
|
|
1844
1866
|
}
|
|
1845
1867
|
),
|
|
1846
|
-
/* @__PURE__ */ jsx8("div", { style: { flex: 1, minHeight: 0 }, children: /* @__PURE__ */
|
|
1868
|
+
/* @__PURE__ */ jsx8("div", { style: { flex: 1, minHeight: 0 }, children: /* @__PURE__ */ jsxs7(
|
|
1847
1869
|
ReactFlow2,
|
|
1848
1870
|
{
|
|
1849
1871
|
nodes: reactFlowNodes,
|
|
1850
1872
|
edges: reactFlowEdges,
|
|
1851
|
-
nodeTypes:
|
|
1873
|
+
nodeTypes: mergedNodeTypes,
|
|
1874
|
+
...userEdgeTypes && { edgeTypes: userEdgeTypes },
|
|
1852
1875
|
onNodeClick: handleNodeClick,
|
|
1853
1876
|
onInit: setRfInstance,
|
|
1854
1877
|
fitView: true,
|
|
1855
1878
|
proOptions: { hideAttribution: true },
|
|
1856
|
-
children:
|
|
1879
|
+
children: [
|
|
1880
|
+
/* @__PURE__ */ jsx8(Background2, { variant: BackgroundVariant2.Dots, gap: 20, size: 1 }),
|
|
1881
|
+
children
|
|
1882
|
+
]
|
|
1857
1883
|
}
|
|
1858
1884
|
) })
|
|
1859
1885
|
]
|
|
@@ -1862,7 +1888,7 @@ function TracedFlow({
|
|
|
1862
1888
|
}
|
|
1863
1889
|
|
|
1864
1890
|
// src/components/TimeTravelDebugger/TimeTravelDebugger.tsx
|
|
1865
|
-
import { jsx as jsx9, jsxs as
|
|
1891
|
+
import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1866
1892
|
function TimeTravelDebugger({
|
|
1867
1893
|
snapshots,
|
|
1868
1894
|
graph,
|
|
@@ -1910,7 +1936,7 @@ function TimeTravelDebugger({
|
|
|
1910
1936
|
}
|
|
1911
1937
|
) : /* @__PURE__ */ jsx9(TraceFlow, { graph, onNodeClick: handleNodeClick });
|
|
1912
1938
|
if (unstyled) {
|
|
1913
|
-
return /* @__PURE__ */
|
|
1939
|
+
return /* @__PURE__ */ jsxs8("div", { className, style, "data-fp": "time-travel-debugger", children: [
|
|
1914
1940
|
/* @__PURE__ */ jsx9("h3", { children: title }),
|
|
1915
1941
|
/* @__PURE__ */ jsx9(
|
|
1916
1942
|
"input",
|
|
@@ -1950,7 +1976,7 @@ function TimeTravelDebugger({
|
|
|
1950
1976
|
)
|
|
1951
1977
|
] });
|
|
1952
1978
|
}
|
|
1953
|
-
return /* @__PURE__ */
|
|
1979
|
+
return /* @__PURE__ */ jsxs8(
|
|
1954
1980
|
"div",
|
|
1955
1981
|
{
|
|
1956
1982
|
className,
|
|
@@ -1965,7 +1991,7 @@ function TimeTravelDebugger({
|
|
|
1965
1991
|
},
|
|
1966
1992
|
"data-fp": "time-travel-debugger",
|
|
1967
1993
|
children: [
|
|
1968
|
-
/* @__PURE__ */
|
|
1994
|
+
/* @__PURE__ */ jsxs8(
|
|
1969
1995
|
"div",
|
|
1970
1996
|
{
|
|
1971
1997
|
style: {
|
|
@@ -1975,7 +2001,7 @@ function TimeTravelDebugger({
|
|
|
1975
2001
|
flexShrink: 0
|
|
1976
2002
|
},
|
|
1977
2003
|
children: [
|
|
1978
|
-
/* @__PURE__ */
|
|
2004
|
+
/* @__PURE__ */ jsxs8(
|
|
1979
2005
|
"div",
|
|
1980
2006
|
{
|
|
1981
2007
|
style: {
|
|
@@ -2009,7 +2035,7 @@ function TimeTravelDebugger({
|
|
|
2009
2035
|
]
|
|
2010
2036
|
}
|
|
2011
2037
|
),
|
|
2012
|
-
/* @__PURE__ */
|
|
2038
|
+
/* @__PURE__ */ jsxs8("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
|
|
2013
2039
|
/* @__PURE__ */ jsx9(
|
|
2014
2040
|
ScrubButton,
|
|
2015
2041
|
{
|
|
@@ -2042,7 +2068,7 @@ function TimeTravelDebugger({
|
|
|
2042
2068
|
onClick: () => setSelectedIndex((i) => Math.min(snapshots.length - 1, i + 1))
|
|
2043
2069
|
}
|
|
2044
2070
|
),
|
|
2045
|
-
/* @__PURE__ */
|
|
2071
|
+
/* @__PURE__ */ jsxs8(
|
|
2046
2072
|
"span",
|
|
2047
2073
|
{
|
|
2048
2074
|
style: {
|
|
@@ -2062,7 +2088,7 @@ function TimeTravelDebugger({
|
|
|
2062
2088
|
]
|
|
2063
2089
|
}
|
|
2064
2090
|
),
|
|
2065
|
-
/* @__PURE__ */
|
|
2091
|
+
/* @__PURE__ */ jsxs8(
|
|
2066
2092
|
"div",
|
|
2067
2093
|
{
|
|
2068
2094
|
style: {
|
|
@@ -2084,7 +2110,7 @@ function TimeTravelDebugger({
|
|
|
2084
2110
|
children: chart
|
|
2085
2111
|
}
|
|
2086
2112
|
),
|
|
2087
|
-
/* @__PURE__ */
|
|
2113
|
+
/* @__PURE__ */ jsxs8("div", { style: { flex: 1, overflow: "auto" }, children: [
|
|
2088
2114
|
/* @__PURE__ */ jsx9(
|
|
2089
2115
|
MemoryInspector,
|
|
2090
2116
|
{
|
|
@@ -2170,7 +2196,7 @@ function ScrubButton({
|
|
|
2170
2196
|
|
|
2171
2197
|
// src/components/FlowchartView/SubflowBreadcrumb.tsx
|
|
2172
2198
|
import { memo as memo2 } from "react";
|
|
2173
|
-
import { jsx as jsx10, jsxs as
|
|
2199
|
+
import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2174
2200
|
var SubflowBreadcrumb = memo2(function SubflowBreadcrumb2({
|
|
2175
2201
|
breadcrumbs,
|
|
2176
2202
|
onNavigate
|
|
@@ -2193,9 +2219,9 @@ var SubflowBreadcrumb = memo2(function SubflowBreadcrumb2({
|
|
|
2193
2219
|
},
|
|
2194
2220
|
children: breadcrumbs.map((crumb, i) => {
|
|
2195
2221
|
const isLast = i === breadcrumbs.length - 1;
|
|
2196
|
-
return /* @__PURE__ */
|
|
2222
|
+
return /* @__PURE__ */ jsxs9("span", { style: { display: "flex", alignItems: "center", gap: 4 }, children: [
|
|
2197
2223
|
i > 0 && /* @__PURE__ */ jsx10("span", { style: { color: theme.textMuted, fontSize: 10 }, children: "\u203A" }),
|
|
2198
|
-
isLast ? /* @__PURE__ */
|
|
2224
|
+
isLast ? /* @__PURE__ */ jsxs9("span", { style: { display: "flex", alignItems: "center", gap: 6 }, children: [
|
|
2199
2225
|
/* @__PURE__ */ jsx10(
|
|
2200
2226
|
"span",
|
|
2201
2227
|
{
|
|
@@ -2206,7 +2232,7 @@ var SubflowBreadcrumb = memo2(function SubflowBreadcrumb2({
|
|
|
2206
2232
|
children: crumb.label
|
|
2207
2233
|
}
|
|
2208
2234
|
),
|
|
2209
|
-
crumb.description && /* @__PURE__ */
|
|
2235
|
+
crumb.description && /* @__PURE__ */ jsxs9(
|
|
2210
2236
|
"span",
|
|
2211
2237
|
{
|
|
2212
2238
|
style: {
|
|
@@ -2319,7 +2345,7 @@ function useSubflowNavigation(rootGraph) {
|
|
|
2319
2345
|
|
|
2320
2346
|
// src/components/FlowchartView/SubflowTree.tsx
|
|
2321
2347
|
import { memo as memo3, useState as useState7, useCallback as useCallback5, useMemo as useMemo7 } from "react";
|
|
2322
|
-
import { Fragment as Fragment2, jsx as jsx11, jsxs as
|
|
2348
|
+
import { Fragment as Fragment2, jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2323
2349
|
function graphToSubflowEntries(graph) {
|
|
2324
2350
|
if (!graph?.nodes?.length) return [];
|
|
2325
2351
|
const entries = [];
|
|
@@ -2352,8 +2378,8 @@ var TreeNode = memo3(function TreeNode2({
|
|
|
2352
2378
|
}
|
|
2353
2379
|
onNodeSelect?.(entry.name, !!entry.isSubflow);
|
|
2354
2380
|
}, [hasChildren, onNodeSelect, entry.name, entry.isSubflow]);
|
|
2355
|
-
return /* @__PURE__ */
|
|
2356
|
-
/* @__PURE__ */
|
|
2381
|
+
return /* @__PURE__ */ jsxs10(Fragment2, { children: [
|
|
2382
|
+
/* @__PURE__ */ jsxs10(
|
|
2357
2383
|
"button",
|
|
2358
2384
|
{
|
|
2359
2385
|
onClick: handleClick,
|
|
@@ -2412,8 +2438,8 @@ var TreeNode = memo3(function TreeNode2({
|
|
|
2412
2438
|
}
|
|
2413
2439
|
}
|
|
2414
2440
|
),
|
|
2415
|
-
/* @__PURE__ */
|
|
2416
|
-
/* @__PURE__ */
|
|
2441
|
+
/* @__PURE__ */ jsxs10("span", { style: { display: "flex", flexDirection: "column", minWidth: 0 }, children: [
|
|
2442
|
+
/* @__PURE__ */ jsxs10(
|
|
2417
2443
|
"span",
|
|
2418
2444
|
{
|
|
2419
2445
|
style: {
|
|
@@ -2486,7 +2512,7 @@ var SubflowTree = memo3(function SubflowTree2({
|
|
|
2486
2512
|
}) {
|
|
2487
2513
|
const subflowStages = useMemo7(() => graphToSubflowEntries(graph), [graph]);
|
|
2488
2514
|
if (subflowStages.length === 0) return null;
|
|
2489
|
-
return /* @__PURE__ */
|
|
2515
|
+
return /* @__PURE__ */ jsxs10(
|
|
2490
2516
|
"div",
|
|
2491
2517
|
{
|
|
2492
2518
|
className,
|
|
@@ -3310,7 +3336,7 @@ function bfsWalk(index, startId, neighborsOf, options) {
|
|
|
3310
3336
|
|
|
3311
3337
|
// src/components/FlowchartView/NodeInspector.tsx
|
|
3312
3338
|
import { useMemo as useMemo9 } from "react";
|
|
3313
|
-
import { Fragment as Fragment3, jsx as jsx12, jsxs as
|
|
3339
|
+
import { Fragment as Fragment3, jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3314
3340
|
function NodeInspector({
|
|
3315
3341
|
index,
|
|
3316
3342
|
selectedId,
|
|
@@ -3343,7 +3369,7 @@ function NodeInspector({
|
|
|
3343
3369
|
}
|
|
3344
3370
|
);
|
|
3345
3371
|
}
|
|
3346
|
-
return /* @__PURE__ */
|
|
3372
|
+
return /* @__PURE__ */ jsxs11(
|
|
3347
3373
|
"div",
|
|
3348
3374
|
{
|
|
3349
3375
|
className,
|
|
@@ -3355,9 +3381,9 @@ function NodeInspector({
|
|
|
3355
3381
|
...style
|
|
3356
3382
|
},
|
|
3357
3383
|
children: [
|
|
3358
|
-
/* @__PURE__ */
|
|
3384
|
+
/* @__PURE__ */ jsxs11("div", { style: { marginBottom: 16 }, children: [
|
|
3359
3385
|
/* @__PURE__ */ jsx12("div", { style: { fontSize: 16, fontWeight: 700, color: theme.textPrimary }, children: view.label }),
|
|
3360
|
-
/* @__PURE__ */
|
|
3386
|
+
/* @__PURE__ */ jsxs11("div", { style: { fontSize: 11, fontFamily: "monospace", color: theme.textMuted, marginTop: 2 }, children: [
|
|
3361
3387
|
view.stageId,
|
|
3362
3388
|
" \xB7 ",
|
|
3363
3389
|
view.type,
|
|
@@ -3369,9 +3395,9 @@ function NodeInspector({
|
|
|
3369
3395
|
] }),
|
|
3370
3396
|
view.description && /* @__PURE__ */ jsx12("div", { style: { fontSize: 12, color: theme.textSecondary, marginTop: 6 }, children: view.description })
|
|
3371
3397
|
] }),
|
|
3372
|
-
/* @__PURE__ */
|
|
3398
|
+
/* @__PURE__ */ jsxs11(Section, { title: "Runtime", children: [
|
|
3373
3399
|
/* @__PURE__ */ jsx12(Row, { label: "Visited", value: view.visitedInRun ? "yes" : "no" }),
|
|
3374
|
-
view.visitedInRun && /* @__PURE__ */
|
|
3400
|
+
view.visitedInRun && /* @__PURE__ */ jsxs11(Fragment3, { children: [
|
|
3375
3401
|
/* @__PURE__ */ jsx12(Row, { label: "Executions", value: String(view.executionCount) }),
|
|
3376
3402
|
view.firstExecutedAt !== null && /* @__PURE__ */ jsx12(Row, { label: "First at", value: `${view.firstExecutedAt.toFixed(1)}ms` }),
|
|
3377
3403
|
view.lastExecutedAt !== null && /* @__PURE__ */ jsx12(Row, { label: "Last at", value: `${view.lastExecutedAt.toFixed(1)}ms` }),
|
|
@@ -3401,7 +3427,7 @@ function NodeInspector({
|
|
|
3401
3427
|
);
|
|
3402
3428
|
}
|
|
3403
3429
|
function Section({ title, children }) {
|
|
3404
|
-
return /* @__PURE__ */
|
|
3430
|
+
return /* @__PURE__ */ jsxs11("div", { style: { marginBottom: 14 }, children: [
|
|
3405
3431
|
/* @__PURE__ */ jsx12(
|
|
3406
3432
|
"div",
|
|
3407
3433
|
{
|
|
@@ -3420,14 +3446,14 @@ function Section({ title, children }) {
|
|
|
3420
3446
|
] });
|
|
3421
3447
|
}
|
|
3422
3448
|
function Row({ label, value, valueColor }) {
|
|
3423
|
-
return /* @__PURE__ */
|
|
3449
|
+
return /* @__PURE__ */ jsxs11("div", { style: { display: "flex", justifyContent: "space-between", fontSize: 12, padding: "2px 0" }, children: [
|
|
3424
3450
|
/* @__PURE__ */ jsx12("span", { style: { color: theme.textMuted }, children: label }),
|
|
3425
3451
|
/* @__PURE__ */ jsx12("span", { style: { color: valueColor ?? theme.textSecondary, fontFamily: "monospace" }, children: value })
|
|
3426
3452
|
] });
|
|
3427
3453
|
}
|
|
3428
3454
|
function Crumbs({ nodes, onClick }) {
|
|
3429
3455
|
if (nodes.length === 0) return null;
|
|
3430
|
-
return /* @__PURE__ */ jsx12("div", { style: { display: "flex", flexWrap: "wrap", gap: 6 }, children: nodes.map((n, i) => /* @__PURE__ */
|
|
3456
|
+
return /* @__PURE__ */ jsx12("div", { style: { display: "flex", flexWrap: "wrap", gap: 6 }, children: nodes.map((n, i) => /* @__PURE__ */ jsxs11("span", { style: { display: "inline-flex", alignItems: "center", gap: 4 }, children: [
|
|
3431
3457
|
/* @__PURE__ */ jsx12(
|
|
3432
3458
|
"button",
|
|
3433
3459
|
{
|
|
@@ -3451,7 +3477,7 @@ function Crumbs({ nodes, onClick }) {
|
|
|
3451
3477
|
|
|
3452
3478
|
// src/components/FlowchartView/CommitInspector.tsx
|
|
3453
3479
|
import { useMemo as useMemo10 } from "react";
|
|
3454
|
-
import { jsx as jsx13, jsxs as
|
|
3480
|
+
import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3455
3481
|
function CommitInspector({
|
|
3456
3482
|
index,
|
|
3457
3483
|
selectedRuntimeStageId,
|
|
@@ -3479,7 +3505,7 @@ function CommitInspector({
|
|
|
3479
3505
|
}
|
|
3480
3506
|
);
|
|
3481
3507
|
}
|
|
3482
|
-
return /* @__PURE__ */
|
|
3508
|
+
return /* @__PURE__ */ jsxs12(
|
|
3483
3509
|
"div",
|
|
3484
3510
|
{
|
|
3485
3511
|
className,
|
|
@@ -3491,9 +3517,9 @@ function CommitInspector({
|
|
|
3491
3517
|
...style
|
|
3492
3518
|
},
|
|
3493
3519
|
children: [
|
|
3494
|
-
/* @__PURE__ */
|
|
3520
|
+
/* @__PURE__ */ jsxs12("div", { style: { marginBottom: 16 }, children: [
|
|
3495
3521
|
/* @__PURE__ */ jsx13("div", { style: { fontSize: 16, fontWeight: 700, color: theme.textPrimary }, children: view.stageId }),
|
|
3496
|
-
/* @__PURE__ */
|
|
3522
|
+
/* @__PURE__ */ jsxs12(
|
|
3497
3523
|
"div",
|
|
3498
3524
|
{
|
|
3499
3525
|
style: {
|
|
@@ -3516,9 +3542,9 @@ function CommitInspector({
|
|
|
3516
3542
|
view.runtimeNextIds.length > 0 && /* @__PURE__ */ jsx13(Section2, { title: "Runtime next (this execution)", children: /* @__PURE__ */ jsx13(RuntimeRefs, { refs: view.runtimeNextIds, onClick: onNavigate }) }),
|
|
3517
3543
|
Object.keys(view.updates).length > 0 && /* @__PURE__ */ jsx13(Section2, { title: `Updates (${Object.keys(view.updates).length})`, children: /* @__PURE__ */ jsx13(KeyValueGrid, { entries: Object.entries(view.updates) }) }),
|
|
3518
3544
|
view.reads.length > 0 && /* @__PURE__ */ jsx13(Section2, { title: `Reads (${view.reads.length})`, children: /* @__PURE__ */ jsx13(PlainTags, { labels: view.reads }) }),
|
|
3519
|
-
view.dataDependencies.length > 0 && /* @__PURE__ */ jsx13(Section2, { title: `Data dependencies (${view.dataDependencies.length})`, children: /* @__PURE__ */ jsx13("table", { style: { fontSize: 11, fontFamily: "monospace", width: "100%", borderCollapse: "collapse" }, children: /* @__PURE__ */ jsx13("tbody", { children: view.dataDependencies.map((dep) => /* @__PURE__ */
|
|
3545
|
+
view.dataDependencies.length > 0 && /* @__PURE__ */ jsx13(Section2, { title: `Data dependencies (${view.dataDependencies.length})`, children: /* @__PURE__ */ jsx13("table", { style: { fontSize: 11, fontFamily: "monospace", width: "100%", borderCollapse: "collapse" }, children: /* @__PURE__ */ jsx13("tbody", { children: view.dataDependencies.map((dep) => /* @__PURE__ */ jsxs12("tr", { children: [
|
|
3520
3546
|
/* @__PURE__ */ jsx13("td", { style: { color: theme.textSecondary, padding: "2px 8px 2px 0" }, children: dep.key }),
|
|
3521
|
-
/* @__PURE__ */ jsx13("td", { style: { color: dep.sourceRuntimeStageId ? theme.textPrimary : theme.textMuted }, children: dep.sourceRuntimeStageId ? /* @__PURE__ */
|
|
3547
|
+
/* @__PURE__ */ jsx13("td", { style: { color: dep.sourceRuntimeStageId ? theme.textPrimary : theme.textMuted }, children: dep.sourceRuntimeStageId ? /* @__PURE__ */ jsxs12(
|
|
3522
3548
|
"button",
|
|
3523
3549
|
{
|
|
3524
3550
|
onClick: onNavigate ? () => onNavigate(dep.sourceRuntimeStageId) : void 0,
|
|
@@ -3530,7 +3556,7 @@ function CommitInspector({
|
|
|
3530
3556
|
}
|
|
3531
3557
|
) : /* @__PURE__ */ jsx13("em", { children: "(no prior writer \u2014 default or external)" }) })
|
|
3532
3558
|
] }, dep.key)) }) }) }),
|
|
3533
|
-
lineage.length > 1 && /* @__PURE__ */ jsx13(Section2, { title: `Lineage chain (${lineage.length - 1} ancestor commits)`, children: /* @__PURE__ */ jsx13("div", { style: { display: "flex", flexWrap: "wrap", gap: 6 }, children: lineage.slice(0, -1).map((c, i) => /* @__PURE__ */
|
|
3559
|
+
lineage.length > 1 && /* @__PURE__ */ jsx13(Section2, { title: `Lineage chain (${lineage.length - 1} ancestor commits)`, children: /* @__PURE__ */ jsx13("div", { style: { display: "flex", flexWrap: "wrap", gap: 6 }, children: lineage.slice(0, -1).map((c, i) => /* @__PURE__ */ jsxs12("span", { style: { display: "inline-flex", alignItems: "center", gap: 4 }, children: [
|
|
3534
3560
|
/* @__PURE__ */ jsx13(
|
|
3535
3561
|
"button",
|
|
3536
3562
|
{
|
|
@@ -3546,7 +3572,7 @@ function CommitInspector({
|
|
|
3546
3572
|
);
|
|
3547
3573
|
}
|
|
3548
3574
|
function Section2({ title, children }) {
|
|
3549
|
-
return /* @__PURE__ */
|
|
3575
|
+
return /* @__PURE__ */ jsxs12("div", { style: { marginBottom: 14 }, children: [
|
|
3550
3576
|
/* @__PURE__ */ jsx13(
|
|
3551
3577
|
"div",
|
|
3552
3578
|
{
|
|
@@ -3596,7 +3622,7 @@ function RuntimeRefs({
|
|
|
3596
3622
|
)) });
|
|
3597
3623
|
}
|
|
3598
3624
|
function KeyValueGrid({ entries }) {
|
|
3599
|
-
return /* @__PURE__ */ jsx13("table", { style: { fontSize: 11, fontFamily: "monospace", width: "100%", borderCollapse: "collapse" }, children: /* @__PURE__ */ jsx13("tbody", { children: entries.map(([k, v2]) => /* @__PURE__ */
|
|
3625
|
+
return /* @__PURE__ */ jsx13("table", { style: { fontSize: 11, fontFamily: "monospace", width: "100%", borderCollapse: "collapse" }, children: /* @__PURE__ */ jsx13("tbody", { children: entries.map(([k, v2]) => /* @__PURE__ */ jsxs12("tr", { children: [
|
|
3600
3626
|
/* @__PURE__ */ jsx13("td", { style: { color: theme.textSecondary, padding: "2px 8px 2px 0", verticalAlign: "top" }, children: k }),
|
|
3601
3627
|
/* @__PURE__ */ jsx13("td", { style: { color: theme.textPrimary, wordBreak: "break-word" }, children: typeof v2 === "object" ? JSON.stringify(v2) : String(v2) })
|
|
3602
3628
|
] }, k)) }) });
|
|
@@ -3765,7 +3791,7 @@ function decorate(node, commitsByStageId) {
|
|
|
3765
3791
|
}
|
|
3766
3792
|
|
|
3767
3793
|
// src/components/FlowchartView/CommitChainView.tsx
|
|
3768
|
-
import { Fragment as Fragment4, jsx as jsx14, jsxs as
|
|
3794
|
+
import { Fragment as Fragment4, jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3769
3795
|
function CommitChainView({
|
|
3770
3796
|
chain,
|
|
3771
3797
|
selectedRuntimeStageId = null,
|
|
@@ -3834,7 +3860,7 @@ function ChainShell({ node, renderLeaf }) {
|
|
|
3834
3860
|
alignItems: "center",
|
|
3835
3861
|
gap: 0
|
|
3836
3862
|
},
|
|
3837
|
-
children: node.items.map((child, i) => /* @__PURE__ */
|
|
3863
|
+
children: node.items.map((child, i) => /* @__PURE__ */ jsxs13(
|
|
3838
3864
|
"div",
|
|
3839
3865
|
{
|
|
3840
3866
|
style: { display: "flex", flexDirection: "column", alignItems: "center" },
|
|
@@ -3848,7 +3874,7 @@ function ChainShell({ node, renderLeaf }) {
|
|
|
3848
3874
|
}
|
|
3849
3875
|
);
|
|
3850
3876
|
}
|
|
3851
|
-
return /* @__PURE__ */
|
|
3877
|
+
return /* @__PURE__ */ jsxs13(
|
|
3852
3878
|
"div",
|
|
3853
3879
|
{
|
|
3854
3880
|
style: {
|
|
@@ -3922,7 +3948,7 @@ function Leaf({
|
|
|
3922
3948
|
const label = resolveLabel ? resolveLabel(leaf.stageId) : leaf.stageId;
|
|
3923
3949
|
const commits = "commits" in leaf ? leaf.commits : [];
|
|
3924
3950
|
if (commits.length === 0) {
|
|
3925
|
-
return /* @__PURE__ */
|
|
3951
|
+
return /* @__PURE__ */ jsxs13(
|
|
3926
3952
|
"div",
|
|
3927
3953
|
{
|
|
3928
3954
|
style: {
|
|
@@ -3943,7 +3969,7 @@ function Leaf({
|
|
|
3943
3969
|
const isSelected = c.runtimeStageId === selectedRuntimeStageId;
|
|
3944
3970
|
const clickable = onSelectCommit !== void 0;
|
|
3945
3971
|
const isRevealed = revealedThroughCommitIdx === null || c.commitIdx <= revealedThroughCommitIdx;
|
|
3946
|
-
return /* @__PURE__ */
|
|
3972
|
+
return /* @__PURE__ */ jsxs13(
|
|
3947
3973
|
"button",
|
|
3948
3974
|
{
|
|
3949
3975
|
type: "button",
|
|
@@ -3964,16 +3990,16 @@ function Leaf({
|
|
|
3964
3990
|
"aria-current": isSelected ? "true" : void 0,
|
|
3965
3991
|
title: c.runtimeStageId,
|
|
3966
3992
|
children: [
|
|
3967
|
-
/* @__PURE__ */
|
|
3993
|
+
/* @__PURE__ */ jsxs13("div", { style: { fontWeight: 600 }, children: [
|
|
3968
3994
|
label,
|
|
3969
|
-
commits.length > 1 && /* @__PURE__ */
|
|
3995
|
+
commits.length > 1 && /* @__PURE__ */ jsxs13("span", { style: { color: theme.textMuted, fontWeight: 400, marginLeft: 6 }, children: [
|
|
3970
3996
|
"iter ",
|
|
3971
3997
|
i + 1,
|
|
3972
3998
|
"/",
|
|
3973
3999
|
commits.length
|
|
3974
4000
|
] })
|
|
3975
4001
|
] }),
|
|
3976
|
-
/* @__PURE__ */
|
|
4002
|
+
/* @__PURE__ */ jsxs13(
|
|
3977
4003
|
"div",
|
|
3978
4004
|
{
|
|
3979
4005
|
style: {
|
|
@@ -4050,7 +4076,7 @@ import { useMemo as useMemo12, useState as useState8, useCallback as useCallback
|
|
|
4050
4076
|
|
|
4051
4077
|
// src/components/FlowchartView/RunSlider.tsx
|
|
4052
4078
|
import { useCallback as useCallback6, useMemo as useMemo11 } from "react";
|
|
4053
|
-
import { jsx as jsx15, jsxs as
|
|
4079
|
+
import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
4054
4080
|
function RunSlider({
|
|
4055
4081
|
index,
|
|
4056
4082
|
cursorRuntimeStageId,
|
|
@@ -4085,7 +4111,7 @@ function RunSlider({
|
|
|
4085
4111
|
index
|
|
4086
4112
|
});
|
|
4087
4113
|
if (total === 0) return /* @__PURE__ */ jsx15("span", { style: { color: theme.textMuted }, children: "No commits yet" });
|
|
4088
|
-
return /* @__PURE__ */
|
|
4114
|
+
return /* @__PURE__ */ jsxs14("span", { style: { fontFamily: "monospace", fontSize: 11, color: theme.textSecondary }, children: [
|
|
4089
4115
|
"#",
|
|
4090
4116
|
cursorCommitIdx + 1,
|
|
4091
4117
|
" / ",
|
|
@@ -4095,7 +4121,7 @@ function RunSlider({
|
|
|
4095
4121
|
] });
|
|
4096
4122
|
}, [renderLabel, cursorCommitIdx, total, index, cursorRuntimeStageId]);
|
|
4097
4123
|
const disabled = total < 2;
|
|
4098
|
-
return /* @__PURE__ */
|
|
4124
|
+
return /* @__PURE__ */ jsxs14(
|
|
4099
4125
|
"div",
|
|
4100
4126
|
{
|
|
4101
4127
|
className,
|
|
@@ -4148,7 +4174,7 @@ function RunSlider({
|
|
|
4148
4174
|
}
|
|
4149
4175
|
|
|
4150
4176
|
// src/components/FlowchartView/TraceExplorerShell.tsx
|
|
4151
|
-
import { jsx as jsx16, jsxs as
|
|
4177
|
+
import { jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
4152
4178
|
function TraceExplorerShell({
|
|
4153
4179
|
bundle,
|
|
4154
4180
|
selectedRuntimeStageId: controlledSel,
|
|
@@ -4221,7 +4247,7 @@ function TraceExplorerShell({
|
|
|
4221
4247
|
() => SliderPane ? SHELL_STYLE_WITH_SLIDER : SHELL_STYLE_NO_SLIDER,
|
|
4222
4248
|
[SliderPane]
|
|
4223
4249
|
);
|
|
4224
|
-
return /* @__PURE__ */
|
|
4250
|
+
return /* @__PURE__ */ jsxs15("div", { className, style: { ...layoutStyle, ...style }, children: [
|
|
4225
4251
|
SliderPane && /* @__PURE__ */ jsx16(Pane, { area: "slider", children: /* @__PURE__ */ jsx16(
|
|
4226
4252
|
SliderPane,
|
|
4227
4253
|
{
|