footprint-explainable-ui 0.18.0 → 0.19.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/adapters/fromRuntimeSnapshot.d.ts +33 -4
- package/dist/adapters/fromRuntimeSnapshot.d.ts.map +1 -1
- package/dist/adapters/fromRuntimeSnapshot.js +162 -33
- package/dist/adapters/fromRuntimeSnapshot.js.map +1 -1
- package/dist/components/ExplainableShell/ExplainableShell.d.ts +157 -14
- package/dist/components/ExplainableShell/ExplainableShell.d.ts.map +1 -1
- package/dist/components/ExplainableShell/ExplainableShell.js +676 -68
- package/dist/components/ExplainableShell/ExplainableShell.js.map +1 -1
- package/dist/components/ExplainableShell/index.d.ts +1 -1
- package/dist/components/ExplainableShell/index.d.ts.map +1 -1
- package/dist/components/FlowchartView/SubflowTree.d.ts +7 -14
- package/dist/components/FlowchartView/SubflowTree.d.ts.map +1 -1
- package/dist/components/FlowchartView/SubflowTree.js +56 -46
- package/dist/components/FlowchartView/SubflowTree.js.map +1 -1
- package/dist/components/FlowchartView/index.d.ts +32 -4
- package/dist/components/FlowchartView/index.d.ts.map +1 -1
- package/dist/components/FlowchartView/index.js +22 -2
- package/dist/components/FlowchartView/index.js.map +1 -1
- package/dist/components/FlowchartView/useSubflowNavigation.d.ts +41 -16
- package/dist/components/FlowchartView/useSubflowNavigation.d.ts.map +1 -1
- package/dist/components/FlowchartView/useSubflowNavigation.js +69 -50
- package/dist/components/FlowchartView/useSubflowNavigation.js.map +1 -1
- package/dist/components/GanttTimeline/GanttTimeline.d.ts.map +1 -1
- package/dist/components/GanttTimeline/GanttTimeline.js +5 -5
- package/dist/components/GanttTimeline/GanttTimeline.js.map +1 -1
- package/dist/components/MemoryInspector/MemoryInspector.d.ts.map +1 -1
- package/dist/components/MemoryInspector/MemoryInspector.js +36 -13
- package/dist/components/MemoryInspector/MemoryInspector.js.map +1 -1
- package/dist/components/NarrativeTrace/NarrativeTrace.d.ts.map +1 -1
- package/dist/components/NarrativeTrace/NarrativeTrace.js +24 -17
- package/dist/components/NarrativeTrace/NarrativeTrace.js.map +1 -1
- package/dist/components/ScopeDiff/ScopeDiff.js +3 -3
- package/dist/components/ScopeDiff/ScopeDiff.js.map +1 -1
- package/dist/components/StageNode/StageNode.d.ts +21 -0
- package/dist/components/StageNode/StageNode.d.ts.map +1 -1
- package/dist/components/StageNode/StageNode.js +189 -9
- package/dist/components/StageNode/StageNode.js.map +1 -1
- package/dist/components/TimeTravelControls/TimeTravelControls.d.ts.map +1 -1
- package/dist/components/TimeTravelControls/TimeTravelControls.js +19 -3
- package/dist/components/TimeTravelControls/TimeTravelControls.js.map +1 -1
- package/dist/components/TimeTravelDebugger/TimeTravelDebugger.d.ts +19 -8
- package/dist/components/TimeTravelDebugger/TimeTravelDebugger.d.ts.map +1 -1
- package/dist/components/TimeTravelDebugger/TimeTravelDebugger.js +23 -8
- package/dist/components/TimeTravelDebugger/TimeTravelDebugger.js.map +1 -1
- package/dist/flowchart.cjs +3485 -1340
- package/dist/flowchart.cjs.map +1 -1
- package/dist/flowchart.d.cts +1616 -177
- package/dist/flowchart.d.ts +1616 -177
- package/dist/flowchart.d.ts.map +1 -1
- package/dist/flowchart.js +3507 -1384
- package/dist/flowchart.js.map +1 -1
- package/dist/index.cjs +749 -557
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +276 -29
- package/dist/index.d.ts +276 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +742 -547
- package/dist/index.js.map +1 -1
- package/dist/theme/ThemeProvider.d.ts +14 -0
- package/dist/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/theme/ThemeProvider.js +15 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/index.d.ts +4 -2
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +3 -2
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/presets.d.ts +3 -0
- package/dist/theme/presets.d.ts.map +1 -1
- package/dist/theme/presets.js +22 -0
- package/dist/theme/presets.js.map +1 -1
- package/dist/theme/tokens.d.ts +22 -1
- package/dist/theme/tokens.d.ts.map +1 -1
- package/dist/theme/tokens.js +23 -2
- package/dist/theme/tokens.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +25 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/components/FlowchartView/FlowchartView.d.ts +0 -20
- package/dist/components/FlowchartView/FlowchartView.d.ts.map +0 -1
- package/dist/components/FlowchartView/FlowchartView.js +0 -80
- package/dist/components/FlowchartView/FlowchartView.js.map +0 -1
- package/dist/components/FlowchartView/TracedFlowchartView.d.ts +0 -20
- package/dist/components/FlowchartView/TracedFlowchartView.d.ts.map +0 -1
- package/dist/components/FlowchartView/TracedFlowchartView.js +0 -101
- package/dist/components/FlowchartView/TracedFlowchartView.js.map +0 -1
- package/dist/components/FlowchartView/specToReactFlow.d.ts +0 -56
- package/dist/components/FlowchartView/specToReactFlow.d.ts.map +0 -1
- package/dist/components/FlowchartView/specToReactFlow.js +0 -202
- package/dist/components/FlowchartView/specToReactFlow.js.map +0 -1
|
@@ -7,6 +7,20 @@ interface FootprintThemeProps {
|
|
|
7
7
|
/**
|
|
8
8
|
* Optional theme provider — wraps children with CSS custom properties.
|
|
9
9
|
* Consumers can also just set --fp-* CSS variables directly.
|
|
10
|
+
*
|
|
11
|
+
* Wrapper div uses `display: contents` so it's invisible to the
|
|
12
|
+
* parent's layout (flex / grid / block). This matters because themed
|
|
13
|
+
* children often need to fill a parent (flex:1 / height:100% /
|
|
14
|
+
* grid cells), and a regular block `<div>` here would break that
|
|
15
|
+
* chain — descendants would resolve to 0 height when the parent is
|
|
16
|
+
* flex-column or a grid cell with minmax(0, 1fr). `display: contents`
|
|
17
|
+
* removes the box from the render tree while keeping the DOM intact,
|
|
18
|
+
* so CSS custom property inheritance (which follows the DOM) still
|
|
19
|
+
* flows to children.
|
|
20
|
+
*
|
|
21
|
+
* Trade-off: `display: contents` elements are removed from the
|
|
22
|
+
* accessibility tree in some older browser versions. Our wrapper has
|
|
23
|
+
* no semantic role, so this is fine.
|
|
10
24
|
*/
|
|
11
25
|
export declare function FootprintTheme({ tokens, children }: FootprintThemeProps): import("react/jsx-runtime").JSX.Element;
|
|
12
26
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAK5C,wBAAgB,iBAAiB,IAAI,WAAW,CAE/C;AAED,UAAU,mBAAmB;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED
|
|
1
|
+
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAK5C,wBAAgB,iBAAiB,IAAI,WAAW,CAE/C;AAED,UAAU,mBAAmB;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,EAAE,MAAW,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CAa5E"}
|
|
@@ -8,9 +8,23 @@ export function useFootprintTheme() {
|
|
|
8
8
|
/**
|
|
9
9
|
* Optional theme provider — wraps children with CSS custom properties.
|
|
10
10
|
* Consumers can also just set --fp-* CSS variables directly.
|
|
11
|
+
*
|
|
12
|
+
* Wrapper div uses `display: contents` so it's invisible to the
|
|
13
|
+
* parent's layout (flex / grid / block). This matters because themed
|
|
14
|
+
* children often need to fill a parent (flex:1 / height:100% /
|
|
15
|
+
* grid cells), and a regular block `<div>` here would break that
|
|
16
|
+
* chain — descendants would resolve to 0 height when the parent is
|
|
17
|
+
* flex-column or a grid cell with minmax(0, 1fr). `display: contents`
|
|
18
|
+
* removes the box from the render tree while keeping the DOM intact,
|
|
19
|
+
* so CSS custom property inheritance (which follows the DOM) still
|
|
20
|
+
* flows to children.
|
|
21
|
+
*
|
|
22
|
+
* Trade-off: `display: contents` elements are removed from the
|
|
23
|
+
* accessibility tree in some older browser versions. Our wrapper has
|
|
24
|
+
* no semantic role, so this is fine.
|
|
11
25
|
*/
|
|
12
26
|
export function FootprintTheme({ tokens = {}, children }) {
|
|
13
27
|
const cssVars = tokensToCSSVars(tokens);
|
|
14
|
-
return (_jsx(ThemeContext.Provider, { value: tokens, children: _jsx("div", { style: cssVars, className: "fp-theme-root", children: children }) }));
|
|
28
|
+
return (_jsx(ThemeContext.Provider, { value: tokens, children: _jsx("div", { style: { ...cssVars, display: "contents" }, className: "fp-theme-root", children: children }) }));
|
|
15
29
|
}
|
|
16
30
|
//# sourceMappingURL=ThemeProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.js","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,YAAY,GAAG,aAAa,CAAc,EAAE,CAAC,CAAC;AAEpD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAOD
|
|
1
|
+
{"version":3,"file":"ThemeProvider.js","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,YAAY,GAAG,aAAa,CAAc,EAAE,CAAC,CAAC;AAEpD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAOD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,EAAuB;IAC3E,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAExC,OAAO,CACL,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YAClC,cACE,KAAK,EAAE,EAAE,GAAI,OAA+B,EAAE,OAAO,EAAE,UAAU,EAAE,EACnE,SAAS,EAAC,eAAe,YAExB,QAAQ,GACL,GACgB,CACzB,CAAC;AACJ,CAAC"}
|
package/dist/theme/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export { FootprintTheme, useFootprintTheme } from "./ThemeProvider";
|
|
2
|
-
export { tokensToCSSVars, defaultTokens } from "./tokens";
|
|
2
|
+
export { tokensToCSSVars, defaultTokens, rawDefaults } from "./tokens";
|
|
3
3
|
export type { ThemeTokens } from "./tokens";
|
|
4
4
|
export { theme, fontSize, padding, v } from "./styles";
|
|
5
|
-
export { themePresets, coolDark, warmDark, warmLight } from "./presets";
|
|
5
|
+
export { themePresets, coolDark, coolLight, warmDark, warmLight } from "./presets";
|
|
6
6
|
export type { ThemePresetName } from "./presets";
|
|
7
|
+
export { useDarkModeTokens } from "./useDarkModeTokens";
|
|
8
|
+
export type { DarkModeTokensOptions } from "./useDarkModeTokens";
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnF,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/theme/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { FootprintTheme, useFootprintTheme } from "./ThemeProvider";
|
|
2
|
-
export { tokensToCSSVars, defaultTokens } from "./tokens";
|
|
2
|
+
export { tokensToCSSVars, defaultTokens, rawDefaults } from "./tokens";
|
|
3
3
|
export { theme, fontSize, padding, v } from "./styles";
|
|
4
|
-
export { themePresets, coolDark, warmDark, warmLight } from "./presets";
|
|
4
|
+
export { themePresets, coolDark, coolLight, warmDark, warmLight } from "./presets";
|
|
5
|
+
export { useDarkModeTokens } from "./useDarkModeTokens";
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/dist/theme/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/theme/presets.d.ts
CHANGED
|
@@ -5,9 +5,12 @@ export declare const coolDark: ThemeTokens;
|
|
|
5
5
|
export declare const warmDark: ThemeTokens;
|
|
6
6
|
/** Warm light theme — cream/peach palette */
|
|
7
7
|
export declare const warmLight: ThemeTokens;
|
|
8
|
+
/** Cool light theme — neutral grays, matches Tailwind zinc palette */
|
|
9
|
+
export declare const coolLight: ThemeTokens;
|
|
8
10
|
/** All built-in theme presets */
|
|
9
11
|
export declare const themePresets: {
|
|
10
12
|
readonly coolDark: ThemeTokens;
|
|
13
|
+
readonly coolLight: ThemeTokens;
|
|
11
14
|
readonly warmDark: ThemeTokens;
|
|
12
15
|
readonly warmLight: ThemeTokens;
|
|
13
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/theme/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,4CAA4C;AAC5C,eAAO,MAAM,QAAQ,EAAE,WAmBtB,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,QAAQ,EAAE,WAmBtB,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,SAAS,EAAE,WAmBvB,CAAC;AAEF,iCAAiC;AACjC,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/theme/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,4CAA4C;AAC5C,eAAO,MAAM,QAAQ,EAAE,WAmBtB,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,QAAQ,EAAE,WAmBtB,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,SAAS,EAAE,WAmBvB,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,SAAS,EAAE,WAmBvB,CAAC;AAEF,iCAAiC;AACjC,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,YAAY,CAAC"}
|
package/dist/theme/presets.js
CHANGED
|
@@ -61,9 +61,31 @@ export const warmLight = {
|
|
|
61
61
|
mono: "'JetBrains Mono', 'Fira Code', monospace",
|
|
62
62
|
},
|
|
63
63
|
};
|
|
64
|
+
/** Cool light theme — neutral grays, matches Tailwind zinc palette */
|
|
65
|
+
export const coolLight = {
|
|
66
|
+
colors: {
|
|
67
|
+
primary: "#6366f1",
|
|
68
|
+
success: "#22c55e",
|
|
69
|
+
error: "#ef4444",
|
|
70
|
+
warning: "#f59e0b",
|
|
71
|
+
bgPrimary: "#ffffff",
|
|
72
|
+
bgSecondary: "#f9fafb",
|
|
73
|
+
bgTertiary: "#e5e7eb",
|
|
74
|
+
textPrimary: "#18181b",
|
|
75
|
+
textSecondary: "#52525b",
|
|
76
|
+
textMuted: "#a1a1aa",
|
|
77
|
+
border: "#e5e7eb",
|
|
78
|
+
},
|
|
79
|
+
radius: "8px",
|
|
80
|
+
fontFamily: {
|
|
81
|
+
sans: "Inter, system-ui, -apple-system, sans-serif",
|
|
82
|
+
mono: "'JetBrains Mono', 'Fira Code', monospace",
|
|
83
|
+
},
|
|
84
|
+
};
|
|
64
85
|
/** All built-in theme presets */
|
|
65
86
|
export const themePresets = {
|
|
66
87
|
coolDark,
|
|
88
|
+
coolLight,
|
|
67
89
|
warmDark,
|
|
68
90
|
warmLight,
|
|
69
91
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/theme/presets.ts"],"names":[],"mappings":"AAEA,4CAA4C;AAC5C,MAAM,CAAC,MAAM,QAAQ,GAAgB;IACnC,MAAM,EAAE;QACN,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,SAAS;QACtB,aAAa,EAAE,SAAS;QACxB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAS;KAClB;IACD,MAAM,EAAE,KAAK;IACb,UAAU,EAAE;QACV,IAAI,EAAE,6CAA6C;QACnD,IAAI,EAAE,0CAA0C;KACjD;CACF,CAAC;AAEF,gDAAgD;AAChD,MAAM,CAAC,MAAM,QAAQ,GAAgB;IACnC,MAAM,EAAE;QACN,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,SAAS;QACtB,aAAa,EAAE,SAAS;QACxB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAS;KAClB;IACD,MAAM,EAAE,KAAK;IACb,UAAU,EAAE;QACV,IAAI,EAAE,6CAA6C;QACnD,IAAI,EAAE,0CAA0C;KACjD;CACF,CAAC;AAEF,6CAA6C;AAC7C,MAAM,CAAC,MAAM,SAAS,GAAgB;IACpC,MAAM,EAAE;QACN,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,SAAS;QACtB,aAAa,EAAE,SAAS;QACxB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAS;KAClB;IACD,MAAM,EAAE,KAAK;IACb,UAAU,EAAE;QACV,IAAI,EAAE,6CAA6C;QACnD,IAAI,EAAE,0CAA0C;KACjD;CACF,CAAC;AAEF,iCAAiC;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ;IACR,QAAQ;IACR,SAAS;CACD,CAAC"}
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/theme/presets.ts"],"names":[],"mappings":"AAEA,4CAA4C;AAC5C,MAAM,CAAC,MAAM,QAAQ,GAAgB;IACnC,MAAM,EAAE;QACN,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,SAAS;QACtB,aAAa,EAAE,SAAS;QACxB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAS;KAClB;IACD,MAAM,EAAE,KAAK;IACb,UAAU,EAAE;QACV,IAAI,EAAE,6CAA6C;QACnD,IAAI,EAAE,0CAA0C;KACjD;CACF,CAAC;AAEF,gDAAgD;AAChD,MAAM,CAAC,MAAM,QAAQ,GAAgB;IACnC,MAAM,EAAE;QACN,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,SAAS;QACtB,aAAa,EAAE,SAAS;QACxB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAS;KAClB;IACD,MAAM,EAAE,KAAK;IACb,UAAU,EAAE;QACV,IAAI,EAAE,6CAA6C;QACnD,IAAI,EAAE,0CAA0C;KACjD;CACF,CAAC;AAEF,6CAA6C;AAC7C,MAAM,CAAC,MAAM,SAAS,GAAgB;IACpC,MAAM,EAAE;QACN,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,SAAS;QACtB,aAAa,EAAE,SAAS;QACxB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAS;KAClB;IACD,MAAM,EAAE,KAAK;IACb,UAAU,EAAE;QACV,IAAI,EAAE,6CAA6C;QACnD,IAAI,EAAE,0CAA0C;KACjD;CACF,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,SAAS,GAAgB;IACpC,MAAM,EAAE;QACN,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,SAAS;QACtB,aAAa,EAAE,SAAS;QACxB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAS;KAClB;IACD,MAAM,EAAE,KAAK;IACb,UAAU,EAAE;QACV,IAAI,EAAE,6CAA6C;QACnD,IAAI,EAAE,0CAA0C;KACjD;CACF,CAAC;AAEF,iCAAiC;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,SAAS;CACD,CAAC"}
|
package/dist/theme/tokens.d.ts
CHANGED
|
@@ -21,7 +21,28 @@ export interface ThemeTokens {
|
|
|
21
21
|
}
|
|
22
22
|
/** Maps ThemeTokens to CSS custom property assignments. */
|
|
23
23
|
export declare function tokensToCSSVars(tokens: ThemeTokens): Record<string, string>;
|
|
24
|
-
/**
|
|
24
|
+
/** Raw fallback values — used by tokensToCSSVars() and anywhere a real color is needed. */
|
|
25
|
+
export declare const rawDefaults: {
|
|
26
|
+
readonly colors: {
|
|
27
|
+
readonly primary: "#6366f1";
|
|
28
|
+
readonly success: "#22c55e";
|
|
29
|
+
readonly error: "#ef4444";
|
|
30
|
+
readonly warning: "#f59e0b";
|
|
31
|
+
readonly bgPrimary: "#0f172a";
|
|
32
|
+
readonly bgSecondary: "#1e293b";
|
|
33
|
+
readonly bgTertiary: "#334155";
|
|
34
|
+
readonly textPrimary: "#f8fafc";
|
|
35
|
+
readonly textSecondary: "#94a3b8";
|
|
36
|
+
readonly textMuted: "#64748b";
|
|
37
|
+
readonly border: "#334155";
|
|
38
|
+
};
|
|
39
|
+
readonly radius: "8px";
|
|
40
|
+
readonly fontFamily: {
|
|
41
|
+
readonly sans: "Inter, system-ui, -apple-system, sans-serif";
|
|
42
|
+
readonly mono: "'JetBrains Mono', 'Fira Code', monospace";
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
/** Default dark theme values with CSS variable references (consumers can override via CSS). */
|
|
25
46
|
export declare const defaultTokens: Required<{
|
|
26
47
|
[K in keyof ThemeTokens]-?: Required<ThemeTokens[K]>;
|
|
27
48
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/theme/tokens.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoB3E;AAED,
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/theme/tokens.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoB3E;AAED,2FAA2F;AAC3F,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;CAmBd,CAAC;AAEX,+FAA+F;AAC/F,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC;KAClC,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CACrD,CAmBA,CAAC"}
|
package/dist/theme/tokens.js
CHANGED
|
@@ -34,8 +34,8 @@ export function tokensToCSSVars(tokens) {
|
|
|
34
34
|
vars["--fp-font-mono"] = tokens.fontFamily.mono;
|
|
35
35
|
return vars;
|
|
36
36
|
}
|
|
37
|
-
/**
|
|
38
|
-
export const
|
|
37
|
+
/** Raw fallback values — used by tokensToCSSVars() and anywhere a real color is needed. */
|
|
38
|
+
export const rawDefaults = {
|
|
39
39
|
colors: {
|
|
40
40
|
primary: "#6366f1",
|
|
41
41
|
success: "#22c55e",
|
|
@@ -55,4 +55,25 @@ export const defaultTokens = {
|
|
|
55
55
|
mono: "'JetBrains Mono', 'Fira Code', monospace",
|
|
56
56
|
},
|
|
57
57
|
};
|
|
58
|
+
/** Default dark theme values with CSS variable references (consumers can override via CSS). */
|
|
59
|
+
export const defaultTokens = {
|
|
60
|
+
colors: {
|
|
61
|
+
primary: `var(--fp-color-primary, ${rawDefaults.colors.primary})`,
|
|
62
|
+
success: `var(--fp-color-success, ${rawDefaults.colors.success})`,
|
|
63
|
+
error: `var(--fp-color-error, ${rawDefaults.colors.error})`,
|
|
64
|
+
warning: `var(--fp-color-warning, ${rawDefaults.colors.warning})`,
|
|
65
|
+
bgPrimary: `var(--fp-bg-primary, ${rawDefaults.colors.bgPrimary})`,
|
|
66
|
+
bgSecondary: `var(--fp-bg-secondary, ${rawDefaults.colors.bgSecondary})`,
|
|
67
|
+
bgTertiary: `var(--fp-bg-tertiary, ${rawDefaults.colors.bgTertiary})`,
|
|
68
|
+
textPrimary: `var(--fp-text-primary, ${rawDefaults.colors.textPrimary})`,
|
|
69
|
+
textSecondary: `var(--fp-text-secondary, ${rawDefaults.colors.textSecondary})`,
|
|
70
|
+
textMuted: `var(--fp-text-muted, ${rawDefaults.colors.textMuted})`,
|
|
71
|
+
border: `var(--fp-border, ${rawDefaults.colors.border})`,
|
|
72
|
+
},
|
|
73
|
+
radius: `var(--fp-radius, ${rawDefaults.radius})`,
|
|
74
|
+
fontFamily: {
|
|
75
|
+
sans: `var(--fp-font-sans, ${rawDefaults.fontFamily.sans})`,
|
|
76
|
+
mono: `var(--fp-font-mono, ${rawDefaults.fontFamily.mono})`,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
58
79
|
//# sourceMappingURL=tokens.js.map
|
package/dist/theme/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/theme/tokens.ts"],"names":[],"mappings":"AAsBA,2DAA2D;AAC3D,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACxB,IAAI,CAAC,CAAC,OAAO;YAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QACtD,IAAI,CAAC,CAAC,OAAO;YAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QACtD,IAAI,CAAC,CAAC,KAAK;YAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAChD,IAAI,CAAC,CAAC,OAAO;YAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QACtD,IAAI,CAAC,CAAC,SAAS;YAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;QACvD,IAAI,CAAC,CAAC,WAAW;YAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;QAC7D,IAAI,CAAC,CAAC,UAAU;YAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;QAC1D,IAAI,CAAC,CAAC,WAAW;YAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;QAC7D,IAAI,CAAC,CAAC,aAAa;YAAE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;QACnE,IAAI,CAAC,CAAC,SAAS;YAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;QACvD,IAAI,CAAC,CAAC,MAAM;YAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,CAAC,MAAM;QAAE,IAAI,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACvD,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI;QAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;IAC7E,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI;QAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;IAC7E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/theme/tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/flowchart.ts","../src/index.ts","../src/types.ts","../src/adapters/fromruntimesnapshot.ts","../src/components/explainableshell/explainableshell.tsx","../src/components/explainableshell/index.ts","../src/components/flowchartview/flowchartview.tsx","../src/components/flowchartview/subflowbreadcrumb.tsx","../src/components/flowchartview/subflowtree.tsx","../src/components/flowchartview/
|
|
1
|
+
{"root":["../src/flowchart.ts","../src/index.ts","../src/types.ts","../src/adapters/fromruntimesnapshot.ts","../src/components/compacttimeline/compacttimeline.tsx","../src/components/datatracepanel/datatracepanel.tsx","../src/components/explainableshell/explainableshell.tsx","../src/components/explainableshell/index.ts","../src/components/flowchartview/commitchainview.tsx","../src/components/flowchartview/commitinspector.tsx","../src/components/flowchartview/nodeinspector.tsx","../src/components/flowchartview/runslider.tsx","../src/components/flowchartview/subflowbreadcrumb.tsx","../src/components/flowchartview/subflowbreadcrumbbar.tsx","../src/components/flowchartview/subflowtree.tsx","../src/components/flowchartview/traceexplorershell.tsx","../src/components/flowchartview/traceflow.tsx","../src/components/flowchartview/tracedflow.tsx","../src/components/flowchartview/buildcommitchaintree.ts","../src/components/flowchartview/createcommitflowrecorder.ts","../src/components/flowchartview/createnodeviewrecorder.ts","../src/components/flowchartview/createtracebundle.ts","../src/components/flowchartview/createtraceruntimeoverlay.ts","../src/components/flowchartview/index.ts","../src/components/flowchartview/tracestructurerecorder.ts","../src/components/flowchartview/usesubflownavigation.ts","../src/components/flowchartview/walkhelpers.ts","../src/components/flowchartview/_internal/devwarn.ts","../src/components/flowchartview/_internal/keys.ts","../src/components/flowchartview/_internal/notifychange.ts","../src/components/flowchartview/_internal/overlayprojection.ts","../src/components/flowchartview/_internal/subflowdrill.ts","../src/components/flowchartview/_internal/usechartautorefit.ts","../src/components/flowchartview/_internal/usesubflowdrill.ts","../src/components/flowchartview/_internal/usetranslator.ts","../src/components/flowchartview/_internal/walksubflowspecinto.ts","../src/components/gantttimeline/gantttimeline.tsx","../src/components/gantttimeline/index.ts","../src/components/insightpanel/insightpanel.tsx","../src/components/inspectorpanel/inspectorpanel.tsx","../src/components/memoryinspector/memoryinspector.tsx","../src/components/memoryinspector/index.ts","../src/components/memorypanel/memorypanel.tsx","../src/components/memorypanel/index.ts","../src/components/narrativelog/narrativelog.tsx","../src/components/narrativelog/index.ts","../src/components/narrativepanel/narrativepanel.tsx","../src/components/narrativepanel/index.ts","../src/components/narrativetrace/narrativetrace.tsx","../src/components/narrativetrace/index.ts","../src/components/resultpanel/resultpanel.tsx","../src/components/resultpanel/index.ts","../src/components/scopediff/scopediff.tsx","../src/components/scopediff/index.ts","../src/components/snapshotpanel/snapshotpanel.tsx","../src/components/snapshotpanel/index.ts","../src/components/stagedetailpanel/stagedetailpanel.tsx","../src/components/stagedetailpanel/index.ts","../src/components/stagenode/stagenode.tsx","../src/components/stagenode/index.ts","../src/components/storynarrative/storynarrative.tsx","../src/components/storynarrative/index.ts","../src/components/timetravelcontrols/timetravelcontrols.tsx","../src/components/timetravelcontrols/index.ts","../src/components/timetraveldebugger/timetraveldebugger.tsx","../src/components/timetraveldebugger/index.ts","../src/components/traceviewer/traceviewer.tsx","../src/theme/themeprovider.tsx","../src/theme/index.ts","../src/theme/presets.ts","../src/theme/styles.ts","../src/theme/tokens.ts","../src/theme/usedarkmodetokens.ts","../src/utils/narrativesync.ts"],"version":"5.9.3"}
|
package/dist/types.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export interface StageSnapshot {
|
|
|
4
4
|
stageName: string;
|
|
5
5
|
/** Human-readable label */
|
|
6
6
|
stageLabel: string;
|
|
7
|
+
/** Unique per-execution-step identifier. Format: [subflowPath/]stageId#executionIndex. Key for recorder Map lookup. */
|
|
8
|
+
runtimeStageId?: string;
|
|
7
9
|
/** Accumulated memory state after this stage ran */
|
|
8
10
|
memory: Record<string, unknown>;
|
|
9
11
|
/** Narrative text describing what happened */
|
|
@@ -18,6 +20,29 @@ export interface StageSnapshot {
|
|
|
18
20
|
description?: string;
|
|
19
21
|
/** Subflow identifier (when this stage is inside a subflow) */
|
|
20
22
|
subflowId?: string;
|
|
23
|
+
/** Subflow execution result — present on stages that ran a subflow. */
|
|
24
|
+
subflowResult?: unknown;
|
|
25
|
+
}
|
|
26
|
+
/** Structured narrative entry — preserves type info for semantic rendering. */
|
|
27
|
+
export interface NarrativeEntry {
|
|
28
|
+
type: 'stage' | 'step' | 'condition' | 'fork' | 'selector' | 'subflow' | 'loop' | 'break' | 'error' | 'pause' | 'resume' | 'emit';
|
|
29
|
+
text: string;
|
|
30
|
+
depth: number;
|
|
31
|
+
stageName?: string;
|
|
32
|
+
/** Stable stage identifier (matches spec node id). Primary key for UI sync. */
|
|
33
|
+
stageId?: string;
|
|
34
|
+
/** Unique per-execution-step identifier. Format: [subflowPath/]stageId#executionIndex.
|
|
35
|
+
* Used for exact time-travel sync (preferred over stageId for progressive reveal). */
|
|
36
|
+
runtimeStageId?: string;
|
|
37
|
+
/** Subflow ID when this entry was generated inside a subflow. */
|
|
38
|
+
subflowId?: string;
|
|
39
|
+
/** Direction for subflow entries: 'entry' when entering, 'exit' when leaving. */
|
|
40
|
+
direction?: 'entry' | 'exit';
|
|
41
|
+
stepNumber?: number;
|
|
42
|
+
/** Scope key that was read or written. Only present on 'step' entries. */
|
|
43
|
+
key?: string;
|
|
44
|
+
/** Raw value from the scope event. Only present on 'step' entries. */
|
|
45
|
+
rawValue?: unknown;
|
|
21
46
|
}
|
|
22
47
|
/** Component size variants */
|
|
23
48
|
export type Size = "compact" | "default" | "detailed";
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACjD,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,8BAA8B;AAC9B,MAAM,MAAM,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtD,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,uHAAuH;IACvH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACjD,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,IAAI,EACA,OAAO,GACP,MAAM,GACN,WAAW,GACX,MAAM,GACN,UAAU,GACV,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;2FACuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,8BAA8B;AAC9B,MAAM,MAAM,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtD,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "footprint-explainable-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "Themeable React components for visualizing FootPrint pipeline execution",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -54,10 +54,10 @@
|
|
|
54
54
|
"@testing-library/react": "^16.3.2",
|
|
55
55
|
"@types/react": "^19.0.0",
|
|
56
56
|
"@types/react-dom": "^19.0.0",
|
|
57
|
-
"@xyflow/react": "^12.10.
|
|
57
|
+
"@xyflow/react": "^12.10.2",
|
|
58
58
|
"jsdom": "^29.0.1",
|
|
59
|
-
"react": "^19.2.
|
|
60
|
-
"react-dom": "^19.2.
|
|
59
|
+
"react": "^19.2.5",
|
|
60
|
+
"react-dom": "^19.2.5",
|
|
61
61
|
"tsup": "^8.4.0",
|
|
62
62
|
"typescript": "^5.4.0",
|
|
63
63
|
"vitest": "^4.1.0"
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Node, Edge } from "@xyflow/react";
|
|
2
|
-
import type { StageSnapshot, BaseComponentProps } from "../../types";
|
|
3
|
-
export interface FlowchartViewProps extends BaseComponentProps {
|
|
4
|
-
/** ReactFlow nodes */
|
|
5
|
-
nodes: Node[];
|
|
6
|
-
/** ReactFlow edges */
|
|
7
|
-
edges: Edge[];
|
|
8
|
-
/** Optional snapshots for state-aware rendering (done/active coloring) */
|
|
9
|
-
snapshots?: StageSnapshot[];
|
|
10
|
-
/** Currently selected snapshot index (for state coloring) */
|
|
11
|
-
selectedIndex?: number;
|
|
12
|
-
/** Callback when a node is clicked */
|
|
13
|
-
onNodeClick?: (index: number) => void;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Pipeline flowchart visualization using ReactFlow.
|
|
17
|
-
* When snapshots are provided, nodes are colored by execution state.
|
|
18
|
-
*/
|
|
19
|
-
export declare function FlowchartView({ nodes: rawNodes, edges: rawEdges, snapshots, selectedIndex, onNodeClick, unstyled, className, style, }: FlowchartViewProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
-
//# sourceMappingURL=FlowchartView.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FlowchartView.d.ts","sourceRoot":"","sources":["../../../src/components/FlowchartView/FlowchartView.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKrE,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,sBAAsB;IACtB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,sBAAsB;IACtB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,0EAA0E;IAC1E,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,QAAQ,EACf,SAAS,EACT,aAAiB,EACjB,WAAW,EACX,QAAgB,EAChB,SAAS,EACT,KAAK,GACN,EAAE,kBAAkB,2CA6GpB"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useMemo, useCallback } from "react";
|
|
3
|
-
import { ReactFlow, Background, BackgroundVariant, useNodesState, useEdgesState, } from "@xyflow/react";
|
|
4
|
-
import { StageNode } from "../StageNode";
|
|
5
|
-
import { theme } from "../../theme";
|
|
6
|
-
const nodeTypes = { stageNode: StageNode };
|
|
7
|
-
/**
|
|
8
|
-
* Pipeline flowchart visualization using ReactFlow.
|
|
9
|
-
* When snapshots are provided, nodes are colored by execution state.
|
|
10
|
-
*/
|
|
11
|
-
export function FlowchartView({ nodes: rawNodes, edges: rawEdges, snapshots, selectedIndex = 0, onNodeClick, unstyled = false, className, style, }) {
|
|
12
|
-
// Enhance nodes with execution state
|
|
13
|
-
const enhancedNodes = useMemo(() => {
|
|
14
|
-
if (!snapshots || snapshots.length === 0) {
|
|
15
|
-
return rawNodes.map((n) => ({
|
|
16
|
-
...n,
|
|
17
|
-
type: "stageNode",
|
|
18
|
-
data: {
|
|
19
|
-
...n.data,
|
|
20
|
-
label: n.data.label || n.id,
|
|
21
|
-
active: false,
|
|
22
|
-
done: false,
|
|
23
|
-
error: false,
|
|
24
|
-
},
|
|
25
|
-
}));
|
|
26
|
-
}
|
|
27
|
-
const doneNames = new Set(snapshots.slice(0, selectedIndex).map((s) => s.stageName));
|
|
28
|
-
const activeName = snapshots[selectedIndex]?.stageName;
|
|
29
|
-
return rawNodes.map((n) => ({
|
|
30
|
-
...n,
|
|
31
|
-
type: "stageNode",
|
|
32
|
-
data: {
|
|
33
|
-
...n.data,
|
|
34
|
-
label: n.data.label || n.id,
|
|
35
|
-
active: n.id === activeName,
|
|
36
|
-
done: doneNames.has(n.id),
|
|
37
|
-
error: false,
|
|
38
|
-
},
|
|
39
|
-
}));
|
|
40
|
-
}, [rawNodes, snapshots, selectedIndex]);
|
|
41
|
-
// Enhance edges with state coloring
|
|
42
|
-
const enhancedEdges = useMemo(() => {
|
|
43
|
-
if (!snapshots || snapshots.length === 0) {
|
|
44
|
-
return rawEdges.map((e) => ({
|
|
45
|
-
...e,
|
|
46
|
-
style: { stroke: theme.textMuted, strokeWidth: 1.5 },
|
|
47
|
-
animated: false,
|
|
48
|
-
}));
|
|
49
|
-
}
|
|
50
|
-
const doneNames = new Set(snapshots.slice(0, selectedIndex + 1).map((s) => s.stageName));
|
|
51
|
-
const activeName = snapshots[selectedIndex]?.stageName;
|
|
52
|
-
return rawEdges.map((e) => {
|
|
53
|
-
const sourceIsDone = doneNames.has(e.source);
|
|
54
|
-
const isFromActive = e.source === activeName;
|
|
55
|
-
return {
|
|
56
|
-
...e,
|
|
57
|
-
style: {
|
|
58
|
-
stroke: sourceIsDone ? theme.success : theme.textMuted,
|
|
59
|
-
strokeWidth: 1.5,
|
|
60
|
-
},
|
|
61
|
-
animated: isFromActive,
|
|
62
|
-
};
|
|
63
|
-
});
|
|
64
|
-
}, [rawEdges, snapshots, selectedIndex]);
|
|
65
|
-
const [nodes, , onNodesChange] = useNodesState(enhancedNodes);
|
|
66
|
-
const [edges, , onEdgesChange] = useEdgesState(enhancedEdges);
|
|
67
|
-
const handleNodeClick = useCallback((_, node) => {
|
|
68
|
-
if (!onNodeClick || !snapshots)
|
|
69
|
-
return;
|
|
70
|
-
const idx = snapshots.findIndex((s) => s.stageName === node.id);
|
|
71
|
-
if (idx >= 0)
|
|
72
|
-
onNodeClick(idx);
|
|
73
|
-
}, [onNodeClick, snapshots]);
|
|
74
|
-
return (_jsx("div", { className: className, style: {
|
|
75
|
-
width: "100%",
|
|
76
|
-
height: "100%",
|
|
77
|
-
...style,
|
|
78
|
-
}, "data-fp": "flowchart-view", children: _jsx(ReactFlow, { nodes: nodes, edges: edges, onNodesChange: onNodesChange, onEdgesChange: onEdgesChange, onNodeClick: handleNodeClick, nodeTypes: nodeTypes, fitView: true, panOnDrag: false, zoomOnScroll: false, zoomOnPinch: false, zoomOnDoubleClick: false, preventScrolling: false, nodesDraggable: false, nodesConnectable: false, elementsSelectable: !!onNodeClick, children: !unstyled && (_jsx(Background, { variant: BackgroundVariant.Dots, gap: 16, size: 1 })) }) }));
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=FlowchartView.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FlowchartView.js","sourceRoot":"","sources":["../../../src/components/FlowchartView/FlowchartView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { StageSnapshot, BaseComponentProps } from "../../types";
|
|
2
|
-
import type { SpecNode } from "./specToReactFlow";
|
|
3
|
-
export interface TracedFlowchartViewProps extends BaseComponentProps {
|
|
4
|
-
/** Pipeline spec from builder.toSpec() */
|
|
5
|
-
spec: SpecNode;
|
|
6
|
-
/** Visualization snapshots (enables trace overlay when provided) */
|
|
7
|
-
snapshots?: StageSnapshot[];
|
|
8
|
-
/** Current time-travel position */
|
|
9
|
-
snapshotIndex?: number;
|
|
10
|
-
/** Callback when a node is clicked (receives snapshot index, or node id if no snapshots) */
|
|
11
|
-
onNodeClick?: (indexOrId: number | string) => void;
|
|
12
|
-
/** Callback when subflow navigation changes (true = entered subflow) */
|
|
13
|
-
onSubflowChange?: (isInSubflow: boolean, subflowNodeName: string | null) => void;
|
|
14
|
-
/** Show collapsible subflow tree sidebar (default: false) */
|
|
15
|
-
showTree?: boolean;
|
|
16
|
-
/** Width of the tree sidebar in pixels (default: 200) */
|
|
17
|
-
treeWidth?: number;
|
|
18
|
-
}
|
|
19
|
-
export declare function TracedFlowchartView({ spec, snapshots, snapshotIndex, onNodeClick, onSubflowChange, showTree, treeWidth, unstyled, className, style, }: TracedFlowchartViewProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
-
//# sourceMappingURL=TracedFlowchartView.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TracedFlowchartView.d.ts","sourceRoot":"","sources":["../../../src/components/FlowchartView/TracedFlowchartView.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGrE,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,mBAAmB,CAAC;AAKpE,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAClE,0CAA0C;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,oEAAoE;IACpE,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4FAA4F;IAC5F,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACnD,wEAAwE;IACxE,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACjF,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,SAAS,EACT,aAAiB,EACjB,WAAW,EACX,eAAe,EACf,QAAgB,EAChB,SAAe,EACf,QAAgB,EAChB,SAAS,EACT,KAAK,GACN,EAAE,wBAAwB,2CA+K1B"}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* Self-contained flowchart with execution trace overlay.
|
|
4
|
-
*
|
|
5
|
-
* Consumer just passes `spec` and optionally `snapshots` + `snapshotIndex`.
|
|
6
|
-
* The component internally computes the overlay, handles subflow drill-down,
|
|
7
|
-
* and renders the correct nodes/edges — no manual overlay construction needed.
|
|
8
|
-
*
|
|
9
|
-
* Usage:
|
|
10
|
-
* <TracedFlowchartView spec={spec} /> // static
|
|
11
|
-
* <TracedFlowchartView spec={spec} snapshots={snaps} snapshotIndex={idx} /> // traced
|
|
12
|
-
* <TracedFlowchartView spec={spec} snapshots={snaps} snapshotIndex={idx} showTree />
|
|
13
|
-
*/
|
|
14
|
-
import { useState, useMemo, useCallback } from "react";
|
|
15
|
-
import { ReactFlow, Background, BackgroundVariant, } from "@xyflow/react";
|
|
16
|
-
import { StageNode } from "../StageNode";
|
|
17
|
-
import { specToReactFlow } from "./specToReactFlow";
|
|
18
|
-
import { useSubflowNavigation } from "./useSubflowNavigation";
|
|
19
|
-
import { SubflowBreadcrumb } from "./SubflowBreadcrumb";
|
|
20
|
-
import { SubflowTree } from "./SubflowTree";
|
|
21
|
-
const nodeTypes = { stage: StageNode };
|
|
22
|
-
export function TracedFlowchartView({ spec, snapshots, snapshotIndex = 0, onNodeClick, onSubflowChange, showTree = false, treeWidth = 200, unstyled = false, className, style, }) {
|
|
23
|
-
const [treeVisible, setTreeVisible] = useState(showTree);
|
|
24
|
-
// Subflow navigation — no overlay passed (computed synchronously below)
|
|
25
|
-
const subflowNav = useSubflowNavigation(spec);
|
|
26
|
-
// Get the current level's spec from breadcrumbs
|
|
27
|
-
const currentSpec = subflowNav.breadcrumbs.length > 0
|
|
28
|
-
? subflowNav.breadcrumbs[subflowNav.breadcrumbs.length - 1].spec
|
|
29
|
-
: null;
|
|
30
|
-
// Compute execution overlay from snapshots + index
|
|
31
|
-
const overlay = useMemo(() => {
|
|
32
|
-
if (!snapshots || snapshots.length === 0)
|
|
33
|
-
return undefined;
|
|
34
|
-
const executionOrder = snapshots
|
|
35
|
-
.slice(0, snapshotIndex + 1)
|
|
36
|
-
.map((s) => s.stageLabel);
|
|
37
|
-
const doneStages = new Set(snapshots.slice(0, snapshotIndex).map((s) => s.stageLabel));
|
|
38
|
-
const activeStage = snapshots[snapshotIndex]?.stageLabel ?? null;
|
|
39
|
-
const executedStages = new Set([...doneStages]);
|
|
40
|
-
if (activeStage)
|
|
41
|
-
executedStages.add(activeStage);
|
|
42
|
-
return { doneStages, activeStage, executedStages, executionOrder };
|
|
43
|
-
}, [snapshots, snapshotIndex]);
|
|
44
|
-
// Derive nodes/edges with overlay applied
|
|
45
|
-
const { nodes, edges } = useMemo(() => {
|
|
46
|
-
if (!currentSpec)
|
|
47
|
-
return { nodes: [], edges: [] };
|
|
48
|
-
return specToReactFlow(currentSpec, overlay);
|
|
49
|
-
}, [currentSpec, overlay]);
|
|
50
|
-
// Handle node clicks — drill into subflow or notify consumer
|
|
51
|
-
const handleNodeClick = useCallback((_, node) => {
|
|
52
|
-
// Try subflow drill-down first
|
|
53
|
-
if (subflowNav.handleNodeClick(node.id)) {
|
|
54
|
-
onSubflowChange?.(true, node.id);
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
// Otherwise notify consumer
|
|
58
|
-
if (onNodeClick && snapshots) {
|
|
59
|
-
const idx = snapshots.findIndex((s) => s.stageLabel === node.id);
|
|
60
|
-
if (idx >= 0)
|
|
61
|
-
onNodeClick(idx);
|
|
62
|
-
}
|
|
63
|
-
else if (onNodeClick) {
|
|
64
|
-
onNodeClick(node.id);
|
|
65
|
-
}
|
|
66
|
-
}, [subflowNav, onNodeClick, onSubflowChange, snapshots]);
|
|
67
|
-
// Navigate breadcrumb
|
|
68
|
-
const handleBreadcrumbNavigate = useCallback((level) => {
|
|
69
|
-
subflowNav.navigateTo(level);
|
|
70
|
-
onSubflowChange?.(level > 0, null);
|
|
71
|
-
}, [subflowNav, onSubflowChange]);
|
|
72
|
-
// Tree node click — drill into subflow or jump to snapshot
|
|
73
|
-
const handleTreeNodeSelect = useCallback((name, isSubflow) => {
|
|
74
|
-
if (isSubflow) {
|
|
75
|
-
if (subflowNav.handleNodeClick(name)) {
|
|
76
|
-
onSubflowChange?.(true, name);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
else if (onNodeClick && snapshots) {
|
|
80
|
-
const idx = snapshots.findIndex((s) => s.stageLabel === name);
|
|
81
|
-
if (idx >= 0)
|
|
82
|
-
onNodeClick(idx);
|
|
83
|
-
}
|
|
84
|
-
}, [subflowNav, onNodeClick, onSubflowChange, snapshots]);
|
|
85
|
-
return (_jsxs("div", { className: className, style: { width: "100%", height: "100%", display: "flex", flexDirection: "row", ...style }, "data-fp": "traced-flowchart", children: [showTree && treeVisible && (_jsx(SubflowTree, { spec: spec, activeStage: overlay?.activeStage, doneStages: overlay?.doneStages, onNodeSelect: handleTreeNodeSelect, unstyled: unstyled, style: { width: treeWidth, flexShrink: 0, height: "100%" } })), _jsxs("div", { style: { flex: 1, display: "flex", flexDirection: "column", minWidth: 0, height: "100%" }, children: [(subflowNav.isInSubflow || (showTree && !treeVisible)) && (_jsxs("div", { style: { display: "flex", alignItems: "stretch", flexShrink: 0 }, children: [showTree && !treeVisible && (_jsx("button", { onClick: () => setTreeVisible(true), "data-fp": "tree-toggle", style: unstyled ? {} : {
|
|
86
|
-
background: "transparent",
|
|
87
|
-
border: "none",
|
|
88
|
-
cursor: "pointer",
|
|
89
|
-
padding: "6px 8px",
|
|
90
|
-
fontSize: 10,
|
|
91
|
-
flexShrink: 0,
|
|
92
|
-
}, children: "\u25B6" })), _jsx("div", { style: { flex: 1 }, children: _jsx(SubflowBreadcrumb, { breadcrumbs: subflowNav.breadcrumbs, onNavigate: handleBreadcrumbNavigate }) })] })), showTree && treeVisible && (_jsxs("div", { style: { display: "flex", alignItems: "stretch", flexShrink: 0 }, children: [_jsx("button", { onClick: () => setTreeVisible(false), "data-fp": "tree-toggle", style: unstyled ? {} : {
|
|
93
|
-
background: "transparent",
|
|
94
|
-
border: "none",
|
|
95
|
-
cursor: "pointer",
|
|
96
|
-
padding: "6px 8px",
|
|
97
|
-
fontSize: 10,
|
|
98
|
-
flexShrink: 0,
|
|
99
|
-
}, children: "\u25C0" }), _jsx("div", { style: { flex: 1 }, children: subflowNav.isInSubflow && (_jsx(SubflowBreadcrumb, { breadcrumbs: subflowNav.breadcrumbs, onNavigate: handleBreadcrumbNavigate })) })] })), _jsx("div", { style: { flex: 1, minHeight: 0 }, children: _jsx(ReactFlow, { nodes: nodes, edges: edges, onNodeClick: handleNodeClick, nodeTypes: nodeTypes, fitView: true, panOnDrag: false, zoomOnScroll: false, zoomOnPinch: false, zoomOnDoubleClick: false, preventScrolling: false, nodesDraggable: false, nodesConnectable: false, elementsSelectable: !!onNodeClick, children: !unstyled && (_jsx(Background, { variant: BackgroundVariant.Dots, gap: 16, size: 1 })) }) })] })] }));
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=TracedFlowchartView.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TracedFlowchartView.js","sourceRoot":"","sources":["../../../src/components/FlowchartView/TracedFlowchartView.tsx"],"names":[],"mappings":"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"}
|