@octaviaflow/core 3.0.13 → 3.0.17-beta.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/chunk-2AWVQFSC.js +2456 -0
- package/dist/chunk-2AWVQFSC.js.map +1 -0
- package/dist/chunk-2K7IQR2F.js +2432 -0
- package/dist/chunk-2K7IQR2F.js.map +1 -0
- package/dist/chunk-2YUWZPIT.js +2483 -0
- package/dist/chunk-2YUWZPIT.js.map +1 -0
- package/dist/chunk-4VCRGPYQ.js +2452 -0
- package/dist/chunk-4VCRGPYQ.js.map +1 -0
- package/dist/chunk-4WU5YAL2.js +2470 -0
- package/dist/chunk-4WU5YAL2.js.map +1 -0
- package/dist/chunk-5L4TGL74.js +2448 -0
- package/dist/chunk-5L4TGL74.js.map +1 -0
- package/dist/chunk-7M5HFY2J.js +2483 -0
- package/dist/chunk-7M5HFY2J.js.map +1 -0
- package/dist/chunk-AJ4556EH.js +2490 -0
- package/dist/chunk-AJ4556EH.js.map +1 -0
- package/dist/chunk-AOL365B3.js +2448 -0
- package/dist/chunk-AOL365B3.js.map +1 -0
- package/dist/chunk-D4X7RMGF.js +2481 -0
- package/dist/chunk-D4X7RMGF.js.map +1 -0
- package/dist/chunk-DCGXCPD4.js +2389 -0
- package/dist/chunk-DCGXCPD4.js.map +1 -0
- package/dist/chunk-DG35MIV3.js +2480 -0
- package/dist/chunk-DG35MIV3.js.map +1 -0
- package/dist/chunk-DRZ73Q5X.js +2503 -0
- package/dist/chunk-DRZ73Q5X.js.map +1 -0
- package/dist/chunk-DRZMET2G.js +2458 -0
- package/dist/chunk-DRZMET2G.js.map +1 -0
- package/dist/chunk-DYCW4TYB.js +2546 -0
- package/dist/chunk-DYCW4TYB.js.map +1 -0
- package/dist/chunk-E7WR7DMP.js +2451 -0
- package/dist/chunk-E7WR7DMP.js.map +1 -0
- package/dist/chunk-ELNQQAHD.js +2454 -0
- package/dist/chunk-ELNQQAHD.js.map +1 -0
- package/dist/chunk-FN3MFN6C.js +2389 -0
- package/dist/chunk-FN3MFN6C.js.map +1 -0
- package/dist/chunk-IBTEGHFT.js +10 -0
- package/dist/chunk-IBTEGHFT.js.map +1 -0
- package/dist/chunk-JCPM7YF2.js +2474 -0
- package/dist/chunk-JCPM7YF2.js.map +1 -0
- package/dist/chunk-JLPCCZKG.js +2459 -0
- package/dist/chunk-JLPCCZKG.js.map +1 -0
- package/dist/chunk-KY4JHPIE.js +2546 -0
- package/dist/chunk-KY4JHPIE.js.map +1 -0
- package/dist/chunk-LCQMQAWJ.js +2461 -0
- package/dist/chunk-LCQMQAWJ.js.map +1 -0
- package/dist/chunk-LSDAQCUJ.js +2546 -0
- package/dist/chunk-LSDAQCUJ.js.map +1 -0
- package/dist/chunk-LW4ZHQKL.js +2432 -0
- package/dist/chunk-LW4ZHQKL.js.map +1 -0
- package/dist/chunk-MMZW3Q26.js +2442 -0
- package/dist/chunk-MMZW3Q26.js.map +1 -0
- package/dist/chunk-MXJR2WHG.js +2470 -0
- package/dist/chunk-MXJR2WHG.js.map +1 -0
- package/dist/chunk-OK2CUIKQ.js +2447 -0
- package/dist/chunk-OK2CUIKQ.js.map +1 -0
- package/dist/chunk-OSOP2WPT.js +2456 -0
- package/dist/chunk-OSOP2WPT.js.map +1 -0
- package/dist/chunk-PNBZLLWT.js +2529 -0
- package/dist/chunk-PNBZLLWT.js.map +1 -0
- package/dist/chunk-PULX2GK5.js +2447 -0
- package/dist/chunk-PULX2GK5.js.map +1 -0
- package/dist/chunk-QDT45KF4.js +2480 -0
- package/dist/chunk-QDT45KF4.js.map +1 -0
- package/dist/chunk-QI3ITHAZ.js +2450 -0
- package/dist/chunk-QI3ITHAZ.js.map +1 -0
- package/dist/chunk-QSGJ3DNA.js +2475 -0
- package/dist/chunk-QSGJ3DNA.js.map +1 -0
- package/dist/chunk-RDGJWRHM.js +2490 -0
- package/dist/chunk-RDGJWRHM.js.map +1 -0
- package/dist/chunk-SDE3ARKY.js +2451 -0
- package/dist/chunk-SDE3ARKY.js.map +1 -0
- package/dist/chunk-SX7WRJGD.js +2441 -0
- package/dist/chunk-SX7WRJGD.js.map +1 -0
- package/dist/chunk-TZ56MSYM.js +2452 -0
- package/dist/chunk-TZ56MSYM.js.map +1 -0
- package/dist/chunk-UEQLKS2B.js +2445 -0
- package/dist/chunk-UEQLKS2B.js.map +1 -0
- package/dist/chunk-UNU6YNTL.js +2452 -0
- package/dist/chunk-UNU6YNTL.js.map +1 -0
- package/dist/chunk-UUG6XYUC.js +2482 -0
- package/dist/chunk-UUG6XYUC.js.map +1 -0
- package/dist/chunk-VEY3BP5E.js +2447 -0
- package/dist/chunk-VEY3BP5E.js.map +1 -0
- package/dist/chunk-WBTXV3Q2.js +2482 -0
- package/dist/chunk-WBTXV3Q2.js.map +1 -0
- package/dist/chunk-WILVB7XA.js +2512 -0
- package/dist/chunk-WILVB7XA.js.map +1 -0
- package/dist/chunk-WQCHABP3.js +2441 -0
- package/dist/chunk-WQCHABP3.js.map +1 -0
- package/dist/chunk-WUFAW3TB.js +2512 -0
- package/dist/chunk-WUFAW3TB.js.map +1 -0
- package/dist/chunk-WYBJKALZ.js +2458 -0
- package/dist/chunk-WYBJKALZ.js.map +1 -0
- package/dist/chunk-XZ7FELMT.js +2448 -0
- package/dist/chunk-XZ7FELMT.js.map +1 -0
- package/dist/chunk-YATCRJVF.js +2458 -0
- package/dist/chunk-YATCRJVF.js.map +1 -0
- package/dist/chunk-YSSD2T4M.js +2451 -0
- package/dist/chunk-YSSD2T4M.js.map +1 -0
- package/dist/chunk-YW6ZOYCG.js +2451 -0
- package/dist/chunk-YW6ZOYCG.js.map +1 -0
- package/dist/components/ActionsDrawer/ActionsDrawer.d.ts +89 -0
- package/dist/components/ActionsDrawer/ActionsDrawer.d.ts.map +1 -0
- package/dist/components/ActionsDrawer/index.d.ts +2 -0
- package/dist/components/ActionsDrawer/index.d.ts.map +1 -0
- package/dist/components/AgentCard/AgentCard.d.ts +1 -1
- package/dist/components/AgentCard/AgentCard.d.ts.map +1 -1
- package/dist/components/AuthCard/AuthCard.d.ts.map +1 -1
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/components/CodeEditor/CodeEditor.d.ts.map +1 -1
- package/dist/components/CodeEditor/index.d.ts +1 -1
- package/dist/components/CodeEditor/index.d.ts.map +1 -1
- package/dist/components/DataMapper/DataMapper.d.ts.map +1 -1
- package/dist/components/DataTable/DataTable.d.ts.map +1 -1
- package/dist/components/DataTable/index.d.ts +1 -1
- package/dist/components/DataTable/index.d.ts.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/components/ExecutionConsole/ExecutionConsole.d.ts +29 -3
- package/dist/components/ExecutionConsole/ExecutionConsole.d.ts.map +1 -1
- package/dist/components/FileDropzone/FileDropzone.d.ts.map +1 -1
- package/dist/components/FlowEdge/FlowEdge.d.ts +15 -14
- package/dist/components/FlowEdge/FlowEdge.d.ts.map +1 -1
- package/dist/components/Input/Input.d.ts.map +1 -1
- package/dist/components/MonacoEditor/MonacoDiffEditor.d.ts.map +1 -1
- package/dist/components/MonacoEditor/MonacoEditor.d.ts.map +1 -1
- package/dist/components/MonacoEditor/index.d.ts +1 -1
- package/dist/components/MonacoEditor/index.d.ts.map +1 -1
- package/dist/components/PromptInput/PromptInput.d.ts.map +1 -1
- package/dist/components/Radio/Radio.d.ts.map +1 -1
- package/dist/components/Resizable/Resizable.d.ts.map +1 -1
- package/dist/components/Resizable/index.d.ts +1 -1
- package/dist/components/Resizable/index.d.ts.map +1 -1
- package/dist/components/Select/Select.d.ts +16 -1
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Sortable/Sortable.d.ts.map +1 -1
- package/dist/components/Sortable/index.d.ts +1 -1
- package/dist/components/Sortable/index.d.ts.map +1 -1
- package/dist/components/Toast/Toast.d.ts.map +1 -1
- package/dist/components/ToolCard/ToolCard.d.ts +1 -1
- package/dist/components/ToolCard/ToolCard.d.ts.map +1 -1
- package/dist/components/TopBar/TopBar.d.ts +22 -1
- package/dist/components/TopBar/TopBar.d.ts.map +1 -1
- package/dist/components/TraceStep/TraceStep.d.ts.map +1 -1
- package/dist/components/TraceStep/index.d.ts +1 -1
- package/dist/components/TraceStep/index.d.ts.map +1 -1
- package/dist/components/WorkflowEditor/WorkflowEditor.d.ts +10 -2
- package/dist/components/WorkflowEditor/WorkflowEditor.d.ts.map +1 -1
- package/dist/components/XmlViewer/XmlViewer.d.ts.map +1 -1
- package/dist/components/YamlViewer/YamlViewer.d.ts.map +1 -1
- package/dist/index.cjs +6875 -3288
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3296 -2147
- package/dist/index.js.map +1 -1
- package/dist/monaco.cjs +344 -201
- package/dist/monaco.cjs.map +1 -1
- package/dist/monaco.js +348 -205
- package/dist/monaco.js.map +1 -1
- package/dist/stories/state-matrix.d.ts.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utils/a11y.d.ts.map +1 -1
- package/dist/utils/sanitizeUrl.d.ts.map +1 -1
- package/dist/workflow/components/ConfigPanel/ConfigPanel.d.ts +64 -0
- package/dist/workflow/components/ConfigPanel/ConfigPanel.d.ts.map +1 -0
- package/dist/workflow/components/FlowCanvas/FlowCanvas.d.ts +111 -0
- package/dist/workflow/components/FlowCanvas/FlowCanvas.d.ts.map +1 -0
- package/dist/workflow/components/FlowCanvas/FlowCanvasContext.d.ts +47 -0
- package/dist/workflow/components/FlowCanvas/FlowCanvasContext.d.ts.map +1 -0
- package/dist/workflow/components/FlowEdge/FlowEdge.d.ts +26 -0
- package/dist/workflow/components/FlowEdge/FlowEdge.d.ts.map +1 -0
- package/dist/workflow/components/FlowNode/FlowNode.d.ts +13 -0
- package/dist/workflow/components/FlowNode/FlowNode.d.ts.map +1 -0
- package/dist/workflow/components/FlowNode/FlowNodeContext.d.ts +9 -0
- package/dist/workflow/components/FlowNode/FlowNodeContext.d.ts.map +1 -0
- package/dist/workflow/components/FlowNode/nodeKinds.d.ts +25 -0
- package/dist/workflow/components/FlowNode/nodeKinds.d.ts.map +1 -0
- package/dist/workflow/components/Handle/Handle.d.ts +26 -0
- package/dist/workflow/components/Handle/Handle.d.ts.map +1 -0
- package/dist/workflow/components/Handle/handleRegistry.d.ts +32 -0
- package/dist/workflow/components/Handle/handleRegistry.d.ts.map +1 -0
- package/dist/workflow/components/NodeResizer/NodeResizer.d.ts +27 -0
- package/dist/workflow/components/NodeResizer/NodeResizer.d.ts.map +1 -0
- package/dist/workflow/components/NodeToolbar/NodeToolbar.d.ts +19 -0
- package/dist/workflow/components/NodeToolbar/NodeToolbar.d.ts.map +1 -0
- package/dist/workflow/components/kinds/BaseNode.d.ts +40 -0
- package/dist/workflow/components/kinds/BaseNode.d.ts.map +1 -0
- package/dist/workflow/components/kinds/index.d.ts +55 -0
- package/dist/workflow/components/kinds/index.d.ts.map +1 -0
- package/dist/workflow/editor.d.ts +181 -0
- package/dist/workflow/editor.d.ts.map +1 -0
- package/dist/workflow/hooks/useAutoLayout.d.ts +35 -0
- package/dist/workflow/hooks/useAutoLayout.d.ts.map +1 -0
- package/dist/workflow/hooks/useFlow.d.ts +61 -0
- package/dist/workflow/hooks/useFlow.d.ts.map +1 -0
- package/dist/workflow/hooks/useFlowState.d.ts +33 -0
- package/dist/workflow/hooks/useFlowState.d.ts.map +1 -0
- package/dist/workflow/index.d.ts +25 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/layout/dagre.d.ts +24 -0
- package/dist/workflow/layout/dagre.d.ts.map +1 -0
- package/dist/workflow/layout/elk.d.ts +22 -0
- package/dist/workflow/layout/elk.d.ts.map +1 -0
- package/dist/workflow/layout/types.d.ts +55 -0
- package/dist/workflow/layout/types.d.ts.map +1 -0
- package/dist/workflow/store/changes.d.ts +34 -0
- package/dist/workflow/store/changes.d.ts.map +1 -0
- package/dist/workflow/store/context.d.ts +4 -0
- package/dist/workflow/store/context.d.ts.map +1 -0
- package/dist/workflow/store/createFlowStore.d.ts +27 -0
- package/dist/workflow/store/createFlowStore.d.ts.map +1 -0
- package/dist/workflow/store/selectors.d.ts +33 -0
- package/dist/workflow/store/selectors.d.ts.map +1 -0
- package/dist/workflow/types/index.d.ts +181 -0
- package/dist/workflow/types/index.d.ts.map +1 -0
- package/dist/workflow/utils/collapse.d.ts +26 -0
- package/dist/workflow/utils/collapse.d.ts.map +1 -0
- package/dist/workflow/utils/collision.d.ts +37 -0
- package/dist/workflow/utils/collision.d.ts.map +1 -0
- package/dist/workflow/utils/geometry.d.ts +46 -0
- package/dist/workflow/utils/geometry.d.ts.map +1 -0
- package/dist/workflow/utils/parenting.d.ts +28 -0
- package/dist/workflow/utils/parenting.d.ts.map +1 -0
- package/dist/workflow/utils/paths.d.ts +19 -0
- package/dist/workflow/utils/paths.d.ts.map +1 -0
- package/dist/workflow.cjs +3562 -0
- package/dist/workflow.cjs.map +1 -0
- package/dist/workflow.js +1029 -0
- package/dist/workflow.js.map +1 -0
- package/package.json +6 -1
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import type { CSSProperties } from "react";
|
|
2
|
+
export interface Position {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
}
|
|
6
|
+
export interface Dimensions {
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
}
|
|
10
|
+
export interface Rect {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
width: number;
|
|
14
|
+
height: number;
|
|
15
|
+
}
|
|
16
|
+
export interface Viewport {
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
zoom: number;
|
|
20
|
+
}
|
|
21
|
+
export type HandleType = "source" | "target";
|
|
22
|
+
export type HandlePosition = "top" | "right" | "bottom" | "left";
|
|
23
|
+
export type BuiltInNodeKind = "action" | "trigger" | "condition" | "loop" | "parallel" | "wait" | "output" | "error" | "group" | "sticky";
|
|
24
|
+
export type NodeKind = BuiltInNodeKind | string;
|
|
25
|
+
export interface WorkflowNode<TData = unknown> {
|
|
26
|
+
id: string;
|
|
27
|
+
/** Registry key — `"action"` etc., or any custom string. */
|
|
28
|
+
type: NodeKind;
|
|
29
|
+
/** Always absolute flow-space coordinates (see ADR-003). */
|
|
30
|
+
position: Position;
|
|
31
|
+
/** Consumer payload — the node renderer reads from `data`. */
|
|
32
|
+
data: TData;
|
|
33
|
+
selected?: boolean;
|
|
34
|
+
dragging?: boolean;
|
|
35
|
+
hidden?: boolean;
|
|
36
|
+
width?: number;
|
|
37
|
+
height?: number;
|
|
38
|
+
isConnectable?: boolean;
|
|
39
|
+
parentId?: string;
|
|
40
|
+
extent?: "parent" | [Position, Position];
|
|
41
|
+
zIndex?: number;
|
|
42
|
+
sourcePosition?: HandlePosition;
|
|
43
|
+
targetPosition?: HandlePosition;
|
|
44
|
+
ariaLabel?: string;
|
|
45
|
+
className?: string;
|
|
46
|
+
style?: CSSProperties;
|
|
47
|
+
}
|
|
48
|
+
export type BuiltInEdgeKind = "default" | "conditional" | "loop" | "error" | "straight" | "smoothstep";
|
|
49
|
+
export type EdgeKind = BuiltInEdgeKind | string;
|
|
50
|
+
/**
|
|
51
|
+
* Visual routing for the edge path. Independent of `edge.type` (which
|
|
52
|
+
* carries semantics like conditional / error). Defaults to "bezier".
|
|
53
|
+
*/
|
|
54
|
+
export type EdgeRouting = "bezier" | "step" | "smoothstep" | "straight";
|
|
55
|
+
export interface WorkflowEdge<TData = unknown> {
|
|
56
|
+
id: string;
|
|
57
|
+
source: string;
|
|
58
|
+
target: string;
|
|
59
|
+
sourceHandle?: string;
|
|
60
|
+
targetHandle?: string;
|
|
61
|
+
/** Semantic type — drives stroke colour and dash pattern. */
|
|
62
|
+
type?: EdgeKind;
|
|
63
|
+
/** Visual path routing — bezier (default), step, smoothstep, straight. */
|
|
64
|
+
routing?: EdgeRouting;
|
|
65
|
+
data?: TData;
|
|
66
|
+
selected?: boolean;
|
|
67
|
+
animated?: boolean;
|
|
68
|
+
hidden?: boolean;
|
|
69
|
+
label?: string;
|
|
70
|
+
zIndex?: number;
|
|
71
|
+
/** Hit area width — default 16 px on mouse, 32 px on coarse pointers. */
|
|
72
|
+
interactionWidth?: number;
|
|
73
|
+
ariaLabel?: string;
|
|
74
|
+
className?: string;
|
|
75
|
+
style?: CSSProperties;
|
|
76
|
+
}
|
|
77
|
+
export interface Connection {
|
|
78
|
+
source: string;
|
|
79
|
+
target: string;
|
|
80
|
+
sourceHandle?: string | null;
|
|
81
|
+
targetHandle?: string | null;
|
|
82
|
+
}
|
|
83
|
+
export interface ConnectStartParams {
|
|
84
|
+
nodeId: string;
|
|
85
|
+
handleId: string | null;
|
|
86
|
+
handleType: HandleType;
|
|
87
|
+
}
|
|
88
|
+
export interface ConnectEndState {
|
|
89
|
+
/** Was the gesture cancelled (no valid target)? */
|
|
90
|
+
cancelled: boolean;
|
|
91
|
+
/** Pixel position where the user released the pointer (screen coords). */
|
|
92
|
+
position: Position;
|
|
93
|
+
/** Same position in flow coordinates. Useful for "drop on canvas to spawn a node." */
|
|
94
|
+
flowPosition: Position;
|
|
95
|
+
/** The handle the drag started from. */
|
|
96
|
+
from: ConnectStartParams;
|
|
97
|
+
/** The handle the drag landed on, if any. */
|
|
98
|
+
to?: ConnectStartParams;
|
|
99
|
+
}
|
|
100
|
+
export type NodeChange<TData = unknown> = {
|
|
101
|
+
type: "add";
|
|
102
|
+
item: WorkflowNode<TData>;
|
|
103
|
+
} | {
|
|
104
|
+
type: "remove";
|
|
105
|
+
id: string;
|
|
106
|
+
} | {
|
|
107
|
+
type: "position";
|
|
108
|
+
id: string;
|
|
109
|
+
position: Position;
|
|
110
|
+
dragging: boolean;
|
|
111
|
+
} | {
|
|
112
|
+
type: "dimensions";
|
|
113
|
+
id: string;
|
|
114
|
+
dimensions: Dimensions;
|
|
115
|
+
} | {
|
|
116
|
+
type: "select";
|
|
117
|
+
id: string;
|
|
118
|
+
selected: boolean;
|
|
119
|
+
} | {
|
|
120
|
+
type: "replace";
|
|
121
|
+
id: string;
|
|
122
|
+
item: WorkflowNode<TData>;
|
|
123
|
+
};
|
|
124
|
+
export type EdgeChange<TData = unknown> = {
|
|
125
|
+
type: "add";
|
|
126
|
+
item: WorkflowEdge<TData>;
|
|
127
|
+
} | {
|
|
128
|
+
type: "remove";
|
|
129
|
+
id: string;
|
|
130
|
+
} | {
|
|
131
|
+
type: "select";
|
|
132
|
+
id: string;
|
|
133
|
+
selected: boolean;
|
|
134
|
+
} | {
|
|
135
|
+
type: "replace";
|
|
136
|
+
id: string;
|
|
137
|
+
item: WorkflowEdge<TData>;
|
|
138
|
+
};
|
|
139
|
+
export interface SelectionState {
|
|
140
|
+
nodes: WorkflowNode[];
|
|
141
|
+
edges: WorkflowEdge[];
|
|
142
|
+
}
|
|
143
|
+
export interface FlowStoreSnapshot {
|
|
144
|
+
nodes: WorkflowNode[];
|
|
145
|
+
edges: WorkflowEdge[];
|
|
146
|
+
viewport: Viewport;
|
|
147
|
+
selectedNodeIds: ReadonlySet<string>;
|
|
148
|
+
selectedEdgeIds: ReadonlySet<string>;
|
|
149
|
+
/** In-flight connection drag, if any. */
|
|
150
|
+
connection: ConnectStartParams | null;
|
|
151
|
+
}
|
|
152
|
+
export interface FitViewOptions {
|
|
153
|
+
padding?: number;
|
|
154
|
+
maxZoom?: number;
|
|
155
|
+
minZoom?: number;
|
|
156
|
+
duration?: number;
|
|
157
|
+
/** Restrict to a subset of nodes. */
|
|
158
|
+
nodes?: {
|
|
159
|
+
id: string;
|
|
160
|
+
}[];
|
|
161
|
+
}
|
|
162
|
+
export type LayoutDirection = "TB" | "BT" | "LR" | "RL";
|
|
163
|
+
export interface LayoutOptions {
|
|
164
|
+
direction?: LayoutDirection;
|
|
165
|
+
nodeSpacing?: number;
|
|
166
|
+
rankSpacing?: number;
|
|
167
|
+
/** Engine-specific options (typed escape hatch). */
|
|
168
|
+
engine?: Record<string, unknown>;
|
|
169
|
+
}
|
|
170
|
+
export interface LayoutEngine {
|
|
171
|
+
name: string;
|
|
172
|
+
/**
|
|
173
|
+
* Compute new positions. Engines may skip nodes (e.g. those with
|
|
174
|
+
* `data.layoutLocked`); the caller patches only the returned ids.
|
|
175
|
+
*/
|
|
176
|
+
layout(nodes: WorkflowNode[], edges: WorkflowEdge[], options?: LayoutOptions): Promise<{
|
|
177
|
+
id: string;
|
|
178
|
+
position: Position;
|
|
179
|
+
}[]>;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/workflow/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { WorkflowEdge, WorkflowNode } from "../editor";
|
|
2
|
+
interface CollapseResult {
|
|
3
|
+
nodes: WorkflowNode[];
|
|
4
|
+
edges: WorkflowEdge[];
|
|
5
|
+
/** Per-collapsed-group: how many descendants got hidden. The host UI
|
|
6
|
+
* reads this to render a "N steps" badge. */
|
|
7
|
+
hiddenCountByGroupId: Map<string, number>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Given the canonical graph, return a derived graph that respects the
|
|
11
|
+
* `collapsed` flag on every group node:
|
|
12
|
+
*
|
|
13
|
+
* - Descendants of a collapsed group are marked `hidden`.
|
|
14
|
+
* - Edges that crossed the collapse boundary are rewritten: their
|
|
15
|
+
* source (or target) becomes the collapsed group's id, and the
|
|
16
|
+
* handle is reset to a synthetic perimeter handle (`__group_out` /
|
|
17
|
+
* `__group_in`). Internal-to-internal edges are dropped.
|
|
18
|
+
*/
|
|
19
|
+
export declare function collapseFor(nodes: WorkflowNode[], edges: WorkflowEdge[]): CollapseResult;
|
|
20
|
+
/**
|
|
21
|
+
* Toggle the `data.collapsed` flag on a group node. Returns the patched
|
|
22
|
+
* nodes array (immutable). Useful in event handlers.
|
|
23
|
+
*/
|
|
24
|
+
export declare function toggleGroupCollapse(groupId: string, nodes: WorkflowNode[]): WorkflowNode[];
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=collapse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collapse.d.ts","sourceRoot":"","sources":["../../../src/workflow/utils/collapse.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE5D,UAAU,cAAc;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB;kDAC8C;IAC9C,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,cAAc,CA+FxF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAM1F"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Position, WorkflowNode } from "../editor";
|
|
2
|
+
export interface CollisionOptions {
|
|
3
|
+
/** Minimum gap (px) the dragged node must keep from each other node.
|
|
4
|
+
*
|
|
5
|
+
* - `gap >= 0` — the resolver is **enabled**. `gap === 0` means
|
|
6
|
+
* "no overlap, zero buffer" (strict no-overlap). `gap > 0` enforces
|
|
7
|
+
* a buffer of that many pixels.
|
|
8
|
+
* - `gap < 0` — the resolver is **disabled** (returns the proposed
|
|
9
|
+
* position unchanged). This is the no-op sentinel used by
|
|
10
|
+
* consumers that haven't opted into magnet behaviour. */
|
|
11
|
+
gap: number;
|
|
12
|
+
/** Cap iterative resolutions — prevents infinite loops in pathological
|
|
13
|
+
* geometries (e.g. four nodes hugging a single corner). Default 8. */
|
|
14
|
+
maxIterations?: number;
|
|
15
|
+
/** Node ids that the resolver should ignore — typically the dragged
|
|
16
|
+
* node itself plus its descendants (so a parent doesn't collide with
|
|
17
|
+
* its own children) and its ancestors (so a child doesn't collide
|
|
18
|
+
* with its containing group). */
|
|
19
|
+
exclude?: Set<string>;
|
|
20
|
+
/** When true, only consider nodes that share the same `parentId` as
|
|
21
|
+
* the dragged node (i.e. its siblings). When false, all non-excluded
|
|
22
|
+
* nodes participate. Defaults to true — this is the "rooms" model
|
|
23
|
+
* where children of group A never collide with children of group B
|
|
24
|
+
* even if their bboxes overlap in flow space. */
|
|
25
|
+
scopeToSiblings?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Adjust a proposed (flow-space) position so the node's bbox stays at
|
|
29
|
+
* least `gap` pixels away from every other (non-excluded) node's bbox.
|
|
30
|
+
*
|
|
31
|
+
* The function does NOT mutate the input nodes; it returns a new
|
|
32
|
+
* `Position`. The caller is responsible for emitting the resulting
|
|
33
|
+
* change via `onNodesChange` — collision resolution doesn't dispatch
|
|
34
|
+
* anything on its own.
|
|
35
|
+
*/
|
|
36
|
+
export declare function resolveNodeCollisions(node: WorkflowNode, proposed: Position, others: WorkflowNode[], opts: CollisionOptions): Position;
|
|
37
|
+
//# sourceMappingURL=collision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collision.d.ts","sourceRoot":"","sources":["../../../src/workflow/utils/collision.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGxD,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;iEAO6D;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ;2EACuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;sCAGkC;IAClC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB;;;;uDAImD;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,EAAE,EACtB,IAAI,EAAE,gBAAgB,GACrB,QAAQ,CAmFV"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { HandlePosition, Position, Viewport, WorkflowNode } from "../editor";
|
|
2
|
+
export declare const DEFAULT_NODE_WIDTH = 368;
|
|
3
|
+
export declare const DEFAULT_NODE_HEIGHT = 96;
|
|
4
|
+
export declare const COLLAPSED_GROUP_HEIGHT = 36;
|
|
5
|
+
export declare const COLLAPSED_FOREACH_HEIGHT = 40;
|
|
6
|
+
/**
|
|
7
|
+
* The height the node *actually renders at* — accounts for collapsed
|
|
8
|
+
* containers whose visual height differs from `node.height`. All edge
|
|
9
|
+
* geometry should go through this helper instead of reading
|
|
10
|
+
* `node.height` directly.
|
|
11
|
+
*/
|
|
12
|
+
export declare function effectiveHeight(node: WorkflowNode): number;
|
|
13
|
+
/**
|
|
14
|
+
* Compute the absolute (flow-space) centre of one of a node's handles.
|
|
15
|
+
*
|
|
16
|
+
* The handle's logical position (`top`/`right`/`bottom`/`left`) plus its
|
|
17
|
+
* index among same-side handles determines a deterministic spread along
|
|
18
|
+
* the relevant edge of the node bbox. We do NOT consult the DOM — the
|
|
19
|
+
* source of truth is the node's measured (or default) dimensions.
|
|
20
|
+
*
|
|
21
|
+
* `total` is the count of handles on that side, `index` is this handle's
|
|
22
|
+
* 0-based position among them. A single handle centres; multiple spread
|
|
23
|
+
* evenly with equal margins.
|
|
24
|
+
*/
|
|
25
|
+
export declare function handleCentre(node: WorkflowNode, side: HandlePosition, index: number, total: number): Position;
|
|
26
|
+
/**
|
|
27
|
+
* Cubic bezier path between two oriented points. The control points are
|
|
28
|
+
* offset along each port's facing direction so the curve leaves and
|
|
29
|
+
* enters along the port's axis (the same routing model as v1).
|
|
30
|
+
*/
|
|
31
|
+
export declare function bezierPath(start: Position, startSide: HandlePosition, end: Position, endSide: HandlePosition): {
|
|
32
|
+
d: string;
|
|
33
|
+
midX: number;
|
|
34
|
+
midY: number;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Convert a screen-space point (pixels relative to the viewport
|
|
38
|
+
* container's top-left) to flow-space coordinates, given the current
|
|
39
|
+
* viewport.
|
|
40
|
+
*/
|
|
41
|
+
export declare function screenToFlow(p: Position, vp: Viewport): Position;
|
|
42
|
+
/**
|
|
43
|
+
* Inverse of `screenToFlow`.
|
|
44
|
+
*/
|
|
45
|
+
export declare function flowToScreen(p: Position, vp: Viewport): Position;
|
|
46
|
+
//# sourceMappingURL=geometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../src/workflow/utils/geometry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAMlF,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAQtC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAO1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,QAAQ,CAsBV;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,cAAc,GACtB;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAU3C;AAeD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,QAAQ,CAKhE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,QAAQ,CAKhE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Position, WorkflowNode } from "../editor";
|
|
2
|
+
/**
|
|
3
|
+
* Returns the transitive descendants of a node — i.e. every node whose
|
|
4
|
+
* `parentId` chain ends at `nodeId`. Stable order (DFS). The root node
|
|
5
|
+
* is NOT included.
|
|
6
|
+
*/
|
|
7
|
+
export declare function descendantsOf(nodeId: string, nodes: WorkflowNode[]): WorkflowNode[];
|
|
8
|
+
/**
|
|
9
|
+
* Walk up the parent chain. Returns the first ancestor that satisfies
|
|
10
|
+
* `predicate`, or undefined.
|
|
11
|
+
*/
|
|
12
|
+
export declare function findAncestor(node: WorkflowNode, nodes: WorkflowNode[], predicate: (n: WorkflowNode) => boolean): WorkflowNode | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Clamp a proposed child position to its parent's bounding box. The
|
|
15
|
+
* child is kept fully inside the parent — child's bottom-right corner
|
|
16
|
+
* cannot exceed the parent's bottom-right.
|
|
17
|
+
*
|
|
18
|
+
* Returns the original position if the node has no parent or extent
|
|
19
|
+
* isn't `'parent'`.
|
|
20
|
+
*/
|
|
21
|
+
export declare function clampToParentExtent(node: WorkflowNode, proposed: Position, nodes: WorkflowNode[]): Position;
|
|
22
|
+
/**
|
|
23
|
+
* Hit-test which group node (if any) currently contains the given point.
|
|
24
|
+
* Used by Alt-drop to re-parent a node into a group, and by drop-to-add
|
|
25
|
+
* to scope a new node.
|
|
26
|
+
*/
|
|
27
|
+
export declare function findContainingGroup(point: Position, nodes: WorkflowNode[], exclude?: string[]): WorkflowNode | undefined;
|
|
28
|
+
//# sourceMappingURL=parenting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parenting.d.ts","sourceRoot":"","sources":["../../../src/workflow/utils/parenting.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGxD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CA0BnF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,YAAY,EAAE,EACrB,SAAS,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,OAAO,GACtC,YAAY,GAAG,SAAS,CAY1B;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,YAAY,EAAE,GACpB,QAAQ,CAgBV;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,GAAE,MAAM,EAAO,GACrB,YAAY,GAAG,SAAS,CAqB1B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { HandlePosition, Position } from "../editor";
|
|
2
|
+
export type EdgeRouting = "bezier" | "step" | "smoothstep" | "straight";
|
|
3
|
+
export interface PathGeometry {
|
|
4
|
+
d: string;
|
|
5
|
+
midX: number;
|
|
6
|
+
midY: number;
|
|
7
|
+
/** Tangent angle (radians) at the midpoint — useful when callers want
|
|
8
|
+
* to offset the label/delete chrome along or perpendicular to the path. */
|
|
9
|
+
midAngle: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function buildEdgePath(routing: EdgeRouting, start: Position, startSide: HandlePosition, end: Position, endSide: HandlePosition, options?: {
|
|
12
|
+
borderRadius?: number;
|
|
13
|
+
curvature?: number;
|
|
14
|
+
}): PathGeometry;
|
|
15
|
+
export declare function bezierPath(start: Position, startSide: HandlePosition, end: Position, endSide: HandlePosition, curvature?: number): PathGeometry;
|
|
16
|
+
export declare function stepPath(start: Position, startSide: HandlePosition, end: Position, endSide: HandlePosition): PathGeometry;
|
|
17
|
+
export declare function smoothStepPath(start: Position, startSide: HandlePosition, end: Position, endSide: HandlePosition, borderRadius?: number): PathGeometry;
|
|
18
|
+
export declare function straightPath(start: Position, end: Position): PathGeometry;
|
|
19
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/workflow/utils/paths.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1D,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb;gFAC4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,YAAY,CAWd;AAQD,wBAAgB,UAAU,CACxB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,cAAc,EACvB,SAAS,SAAO,GACf,YAAY,CA0Bd;AAoDD,wBAAgB,QAAQ,CACtB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,cAAc,GACtB,YAAY,CAOd;AAGD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,cAAc,EACvB,YAAY,SAAI,GACf,YAAY,CAwBd;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,YAAY,CAQzE"}
|