@octaviaflow/core 3.0.14 → 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 +6830 -3260
- 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 +3225 -2093
- 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
package/dist/utils/a11y.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y.d.ts","sourceRoot":"","sources":["../../src/utils/a11y.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,0BAA0B;IACzC,sEAAsE;IACtE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACvC;AAED,MAAM,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"a11y.d.ts","sourceRoot":"","sources":["../../src/utils/a11y.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,0BAA0B;IACzC,sEAAsE;IACtE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACvC;AAED,MAAM,MAAM,sBAAsB,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9F;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,GAAG,sBAAsB,CA4B/F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizeUrl.d.ts","sourceRoot":"","sources":["../../src/utils/sanitizeUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;
|
|
1
|
+
{"version":3,"file":"sanitizeUrl.d.ts","sourceRoot":"","sources":["../../src/utils/sanitizeUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAgCH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CA0CnF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CA4B/E"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type CSSProperties, type ReactNode } from "react";
|
|
2
|
+
export type ConfigPanelSaveState = "clean" | "dirty" | "saving" | "saved" | "error";
|
|
3
|
+
export interface ConfigPanelTab {
|
|
4
|
+
id: string;
|
|
5
|
+
label: ReactNode;
|
|
6
|
+
/** Optional badge (e.g. count of errors). */
|
|
7
|
+
badge?: ReactNode;
|
|
8
|
+
/** When true, the tab is rendered but disabled. */
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
content: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export interface ConfigPanelProps {
|
|
13
|
+
open?: boolean;
|
|
14
|
+
/** Title shown in the header. Double-click opens the inline editor. */
|
|
15
|
+
title?: string;
|
|
16
|
+
/** Optional breadcrumb prefix (e.g. "Action"). */
|
|
17
|
+
kindLabel?: string;
|
|
18
|
+
/** Optional icon rendered before the title. */
|
|
19
|
+
icon?: ReactNode;
|
|
20
|
+
/** Inline status banner — error / warning / hint, shown at the top of the body. */
|
|
21
|
+
banner?: ReactNode;
|
|
22
|
+
/** Tab definitions. When omitted, `children` renders directly (no tabs). */
|
|
23
|
+
tabs?: ConfigPanelTab[];
|
|
24
|
+
/** Initial active tab. Controlled if `onTabChange` is provided. */
|
|
25
|
+
activeTab?: string;
|
|
26
|
+
defaultActiveTab?: string;
|
|
27
|
+
onTabChange?: (id: string) => void;
|
|
28
|
+
/** Save-state pill in the footer. */
|
|
29
|
+
saveState?: ConfigPanelSaveState;
|
|
30
|
+
/** Fires on the title editor's commit. Omit to disable title editing. */
|
|
31
|
+
onTitleChange?: (next: string) => void;
|
|
32
|
+
onClose?: () => void;
|
|
33
|
+
onSave?: () => void;
|
|
34
|
+
onCancel?: () => void;
|
|
35
|
+
/** Resizable width — pass `resizable: false` to lock. */
|
|
36
|
+
resizable?: boolean;
|
|
37
|
+
/** Initial width (px). Defaults to 360. */
|
|
38
|
+
defaultWidth?: number;
|
|
39
|
+
/** Lower clamp during resize. Defaults to 280. */
|
|
40
|
+
minWidth?: number;
|
|
41
|
+
/**
|
|
42
|
+
* Upper clamp during resize. Defaults to 720. The panel ALSO clamps
|
|
43
|
+
* to its parent container's measured width minus
|
|
44
|
+
* `maxWidthContainerInset` (default 80 px) so the panel can never
|
|
45
|
+
* cover the whole canvas — whichever is smaller wins.
|
|
46
|
+
*/
|
|
47
|
+
maxWidth?: number;
|
|
48
|
+
/**
|
|
49
|
+
* How much of the parent container to leave visible at the panel's
|
|
50
|
+
* widest. Subtracted from the parent's clientWidth before clamping
|
|
51
|
+
* `maxWidth`. Defaults to 80 px.
|
|
52
|
+
*/
|
|
53
|
+
maxWidthContainerInset?: number;
|
|
54
|
+
/** "pinned" sits flush against the canvas; "floating" raises with shadow. */
|
|
55
|
+
variant?: "pinned" | "floating";
|
|
56
|
+
/** Body slot used only when `tabs` is omitted. */
|
|
57
|
+
children?: ReactNode;
|
|
58
|
+
/** Custom footer slot — replaces the default save/cancel buttons. */
|
|
59
|
+
footer?: ReactNode;
|
|
60
|
+
className?: string;
|
|
61
|
+
style?: CSSProperties;
|
|
62
|
+
}
|
|
63
|
+
export declare function ConfigPanel({ open, title, kindLabel, icon, banner, tabs, activeTab: controlledActive, defaultActiveTab, onTabChange, saveState, onTitleChange, onClose, onSave, onCancel, resizable, defaultWidth, minWidth, maxWidth, maxWidthContainerInset, variant, children, footer, className, style, }: ConfigPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
64
|
+
//# sourceMappingURL=ConfigPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigPanel.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/ConfigPanel/ConfigPanel.tsx"],"names":[],"mappings":"AAeA,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAGf,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAEpF,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mFAAmF;IACnF,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC;IACxB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,qCAAqC;IACrC,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,yEAAyE;IACzE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,yDAAyD;IACzD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qEAAqE;IACrE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAkBD,wBAAgB,WAAW,CAAC,EAC1B,IAAW,EACX,KAAK,EACL,SAAS,EACT,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,SAAS,EAAE,gBAAgB,EAC3B,gBAAgB,EAChB,WAAW,EACX,SAAmB,EACnB,aAAa,EACb,OAAO,EACP,MAAM,EACN,QAAQ,EACR,SAAgB,EAChB,YAAkB,EAClB,QAAc,EACd,QAAc,EACd,sBAA2B,EAC3B,OAAkB,EAClB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,GACN,EAAE,gBAAgB,2CAsOlB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { type CSSProperties, type PointerEvent, type ReactNode } from "react";
|
|
2
|
+
import type { ConnectEndState, Connection, ConnectStartParams, EdgeChange, NodeChange, Viewport, WorkflowEdge, WorkflowNode } from "../../editor";
|
|
3
|
+
import { type FlowInstance } from "../../hooks/useFlow";
|
|
4
|
+
import { type NodeKindRegistry } from "../FlowNode/nodeKinds";
|
|
5
|
+
import { type BuiltInNodeData } from "../kinds";
|
|
6
|
+
export interface FlowCanvasProps {
|
|
7
|
+
nodes: WorkflowNode[];
|
|
8
|
+
edges: WorkflowEdge[];
|
|
9
|
+
onNodesChange?: (changes: NodeChange[]) => void;
|
|
10
|
+
onEdgesChange?: (changes: EdgeChange[]) => void;
|
|
11
|
+
viewport?: Viewport;
|
|
12
|
+
defaultViewport?: Viewport;
|
|
13
|
+
onViewportChange?: (viewport: Viewport) => void;
|
|
14
|
+
minZoom?: number;
|
|
15
|
+
maxZoom?: number;
|
|
16
|
+
nodeKinds?: NodeKindRegistry;
|
|
17
|
+
onConnect?: (connection: Connection) => void;
|
|
18
|
+
onConnectStart?: (event: PointerEvent | globalThis.PointerEvent, params: ConnectStartParams) => void;
|
|
19
|
+
onConnectEnd?: (event: PointerEvent | globalThis.PointerEvent, state: ConnectEndState) => void;
|
|
20
|
+
isValidConnection?: (connection: Connection) => boolean;
|
|
21
|
+
onSelectionChange?: (selection: {
|
|
22
|
+
nodes: WorkflowNode[];
|
|
23
|
+
edges: WorkflowEdge[];
|
|
24
|
+
}) => void;
|
|
25
|
+
onPaneClick?: () => void;
|
|
26
|
+
onNodeClick?: (node: WorkflowNode) => void;
|
|
27
|
+
onEdgeClick?: (edge: WorkflowEdge) => void;
|
|
28
|
+
/** Double-clicking an edge label opens an inline editor; commit fires
|
|
29
|
+
* this callback. When omitted, labels are not editable. */
|
|
30
|
+
onEdgeLabelChange?: (id: string, label: string) => void;
|
|
31
|
+
/** Fires once when the canvas mounts. Hand-off for the imperative
|
|
32
|
+
* instance — consumers store it to call `fitView`, `addNodes`, etc. */
|
|
33
|
+
onInit?: (instance: FlowInstance) => void;
|
|
34
|
+
/** Async veto for deletions. Return `false` (or a Promise resolving
|
|
35
|
+
* false) to block. Fires from `instance.deleteElements`, Backspace,
|
|
36
|
+
* and the edge X button. */
|
|
37
|
+
onBeforeDelete?: (params: {
|
|
38
|
+
nodes: WorkflowNode[];
|
|
39
|
+
edges: WorkflowEdge[];
|
|
40
|
+
}) => boolean | Promise<boolean>;
|
|
41
|
+
/** Right-click on a node. Consumer must `preventDefault()` to suppress
|
|
42
|
+
* the browser's native menu. */
|
|
43
|
+
onNodeContextMenu?: (event: React.MouseEvent, node: WorkflowNode) => void;
|
|
44
|
+
/** Right-click on an edge. */
|
|
45
|
+
onEdgeContextMenu?: (event: React.MouseEvent, edge: WorkflowEdge) => void;
|
|
46
|
+
/** Right-click on the empty pane. */
|
|
47
|
+
onPaneContextMenu?: (event: React.MouseEvent) => void;
|
|
48
|
+
nodesDraggable?: boolean;
|
|
49
|
+
nodesConnectable?: boolean;
|
|
50
|
+
panOnDrag?: boolean;
|
|
51
|
+
zoomOnScroll?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Trackpad / touch behaviour preset.
|
|
54
|
+
*
|
|
55
|
+
* - `"mouse"` (default): mouse-first. Drag the pane to pan;
|
|
56
|
+
* wheel zooms; pinch zooms.
|
|
57
|
+
* - `"trackpad"`: two-finger trackpad scroll pans; pinch zooms;
|
|
58
|
+
* wheel-with-Ctrl zooms. Drag the pane is still pan (`panOnDrag`).
|
|
59
|
+
* - `"touch"`: same as trackpad but with enlarged hit areas (44 px
|
|
60
|
+
* on coarse pointers via `@media (pointer: coarse)`) and no pan
|
|
61
|
+
* on plain drag — single-finger drag selects, two-finger pans.
|
|
62
|
+
*
|
|
63
|
+
* Override individual policies (`panOnDrag`, `zoomOnScroll`, etc.)
|
|
64
|
+
* after picking a preset to fine-tune.
|
|
65
|
+
*/
|
|
66
|
+
preset?: "mouse" | "trackpad" | "touch";
|
|
67
|
+
/** Pixels of pointer travel during a pane-press before it stops counting
|
|
68
|
+
* as a click (used to decide whether to clear selection on pointerup). */
|
|
69
|
+
paneClickDistance?: number;
|
|
70
|
+
/**
|
|
71
|
+
* Whether a click on the empty canvas pane clears the current node /
|
|
72
|
+
* edge selection. Defaults to `true` (the design-tool standard:
|
|
73
|
+
* "click background to deselect"). Set to `false` when selection
|
|
74
|
+
* should persist through pane clicks — e.g. when a side ConfigPanel
|
|
75
|
+
* stays open until the user dismisses it explicitly.
|
|
76
|
+
*
|
|
77
|
+
* `onPaneClick` still fires regardless; this only controls whether
|
|
78
|
+
* the canvas also clears its internal selection state.
|
|
79
|
+
*/
|
|
80
|
+
paneClickClearsSelection?: boolean;
|
|
81
|
+
/** Background grid style. Defaults to `"dots"`. */
|
|
82
|
+
background?: "dots" | "lines" | "cross" | "none";
|
|
83
|
+
/** Grid pitch in flow-space pixels. Defaults to 20. Also used for snap. */
|
|
84
|
+
gridSize?: number;
|
|
85
|
+
/** Snap node positions to the grid on drag-end. Defaults to false. */
|
|
86
|
+
snapToGrid?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Minimum gap (px) between sibling nodes during drag. When >= 0, a
|
|
89
|
+
* dragged node is "magnet snapped" so it stays at least `nodeCollisionGap`
|
|
90
|
+
* pixels from every other sibling — siblings share the same `parentId`
|
|
91
|
+
* (or are both top-level). `0` means "no overlap allowed, zero buffer."
|
|
92
|
+
* Pass `-1` (the default) to disable collision avoidance entirely.
|
|
93
|
+
*/
|
|
94
|
+
nodeCollisionGap?: number;
|
|
95
|
+
/**
|
|
96
|
+
* Same as `nodeCollisionGap` but applied to subflow containers
|
|
97
|
+
* (`type === "group" | "forEach"`). Lets you keep groups visually
|
|
98
|
+
* separated without applying the rule to the action nodes inside.
|
|
99
|
+
* Default falls back to `nodeCollisionGap`.
|
|
100
|
+
*/
|
|
101
|
+
subflowCollisionGap?: number;
|
|
102
|
+
height?: number | string;
|
|
103
|
+
width?: number | string;
|
|
104
|
+
className?: string;
|
|
105
|
+
style?: CSSProperties;
|
|
106
|
+
children?: ReactNode;
|
|
107
|
+
emptyState?: ReactNode;
|
|
108
|
+
}
|
|
109
|
+
export declare function FlowCanvas({ nodes, edges, onNodesChange, onEdgesChange, viewport: controlledViewport, defaultViewport, onViewportChange, minZoom, maxZoom, nodeKinds, onConnect, onConnectStart, onConnectEnd, isValidConnection, onSelectionChange, onPaneClick, onNodeClick, onEdgeClick, onEdgeLabelChange, onInit, onBeforeDelete, onNodeContextMenu, onEdgeContextMenu, onPaneContextMenu, nodesDraggable, nodesConnectable, panOnDrag: panOnDragProp, zoomOnScroll: zoomOnScrollProp, preset, paneClickDistance, paneClickClearsSelection, background, gridSize, snapToGrid, nodeCollisionGap, subflowCollisionGap, height, width, className, style, children, emptyState, }: FlowCanvasProps): import("react/jsx-runtime").JSX.Element;
|
|
110
|
+
export type { BuiltInNodeData };
|
|
111
|
+
//# sourceMappingURL=FlowCanvas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowCanvas.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/FlowCanvas/FlowCanvas.tsx"],"names":[],"mappings":"AAeA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,YAAY,EACjB,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,UAAU,EAEV,QAAQ,EACR,YAAY,EACZ,YAAY,EACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,YAAY,EAAuB,MAAM,qBAAqB,CAAC;AAe7E,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAErF,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,UAAU,CAAC;AASpE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IAChD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IAGhD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAG7B,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,CACf,KAAK,EAAE,YAAY,GAAG,UAAU,CAAC,YAAY,EAC7C,MAAM,EAAE,kBAAkB,KACvB,IAAI,CAAC;IACV,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/F,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC;IAGxD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE;QAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAAC,KAAK,EAAE,YAAY,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1F,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C;gEAC4D;IAC5D,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD;4EACwE;IACxE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C;;iCAE6B;IAC7B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE;QACxB,KAAK,EAAE,YAAY,EAAE,CAAC;QACtB,KAAK,EAAE,YAAY,EAAE,CAAC;KACvB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC;qCACiC;IACjC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1E,8BAA8B;IAC9B,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1E,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAGtD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IACxC;+EAC2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;OASG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAGnC,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACjD,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAID,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,aAAa,EACb,aAAa,EACb,QAAQ,EAAE,kBAAkB,EAC5B,eAAkC,EAClC,gBAAgB,EAChB,OAAc,EACd,OAAW,EACX,SAAS,EACT,SAAS,EACT,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAqB,EACrB,gBAAuB,EACvB,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,gBAAgB,EAC9B,MAAgB,EAChB,iBAAqB,EACrB,wBAA+B,EAC/B,UAAmB,EACnB,QAAa,EACb,UAAkB,EAClB,gBAAqB,EACrB,mBAAmB,EACnB,MAAe,EACf,KAAc,EACd,SAAS,EACT,KAAK,EACL,QAAQ,EACR,UAAU,GACX,EAAE,eAAe,2CA6oCjB;AAoED,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export interface FlowDispatchAction {
|
|
2
|
+
type: "connection/start";
|
|
3
|
+
nodeId: string;
|
|
4
|
+
handleId: string;
|
|
5
|
+
handleType: "source" | "target";
|
|
6
|
+
pointerId: number;
|
|
7
|
+
clientX: number;
|
|
8
|
+
clientY: number;
|
|
9
|
+
}
|
|
10
|
+
export type FlowDispatch = (action: FlowDispatchAction) => void;
|
|
11
|
+
export declare const FlowDispatchContext: import("react").Context<FlowDispatch>;
|
|
12
|
+
export declare function useFlowDispatch(): FlowDispatch;
|
|
13
|
+
/**
|
|
14
|
+
* Internal-only callbacks shared with FlowNode. Not part of the public
|
|
15
|
+
* surface; node renderers use the `useFlowNodeContext` hook instead.
|
|
16
|
+
*/
|
|
17
|
+
export interface FlowNodeBridge {
|
|
18
|
+
beginNodeDrag(nodeId: string, pointerId: number, clientX: number, clientY: number, altKey?: boolean): void;
|
|
19
|
+
selectNode(nodeId: string, additive: boolean): void;
|
|
20
|
+
/**
|
|
21
|
+
* Fire the consumer's `onNodeClick` for this node. Split from
|
|
22
|
+
* `selectNode` so drag-start (which selects the node so it carries the
|
|
23
|
+
* selection style) does NOT also fire the click event — otherwise a
|
|
24
|
+
* drag would re-open the config panel.
|
|
25
|
+
*/
|
|
26
|
+
notifyNodeClick(nodeId: string): void;
|
|
27
|
+
selectEdge(edgeId: string, additive: boolean): void;
|
|
28
|
+
/**
|
|
29
|
+
* Reports measured DOM dimensions back to the canvas. FlowNode observes
|
|
30
|
+
* itself via ResizeObserver and calls this on size changes. The canvas
|
|
31
|
+
* de-dupes (skips when w/h unchanged) and emits a `dimensions`
|
|
32
|
+
* NodeChange so edges can recompute against the real footprint.
|
|
33
|
+
*/
|
|
34
|
+
reportDimensions(nodeId: string, width: number, height: number): void;
|
|
35
|
+
/** Removes a single node. Edges that reference it are dropped too. */
|
|
36
|
+
deleteNode(nodeId: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* Toggle the `data.collapsed` flag on a group / forEach container.
|
|
39
|
+
* Used by the chevron in the GroupNode / ForEachNode header so the
|
|
40
|
+
* user can expand/collapse the subflow without an external toolbar.
|
|
41
|
+
* No-op for non-container kinds.
|
|
42
|
+
*/
|
|
43
|
+
toggleNodeCollapse(nodeId: string): void;
|
|
44
|
+
}
|
|
45
|
+
export declare const FlowNodeBridgeContext: import("react").Context<FlowNodeBridge>;
|
|
46
|
+
export declare function useFlowNodeBridge(): FlowNodeBridge;
|
|
47
|
+
//# sourceMappingURL=FlowCanvasContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowCanvasContext.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/FlowCanvas/FlowCanvasContext.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAEhE,eAAO,MAAM,mBAAmB,uCAA2C,CAAC;AAE5E,wBAAgB,eAAe,IAAI,YAAY,CAQ9C;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa,CACX,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,OAAO,GACf,IAAI,CAAC;IACR,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACpD;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACpD;;;;;OAKG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtE,sEAAsE;IACtE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,qBAAqB,yCAA6C,CAAC;AAEhF,wBAAgB,iBAAiB,IAAI,cAAc,CAMlD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { WorkflowEdge as WorkflowEdgeType, WorkflowNode } from "../../editor";
|
|
2
|
+
export interface FlowEdgeProps {
|
|
3
|
+
edge: WorkflowEdgeType;
|
|
4
|
+
nodes: WorkflowNode[];
|
|
5
|
+
onSelect?: (id: string) => void;
|
|
6
|
+
onDelete?: (id: string) => void;
|
|
7
|
+
/** Commit a label edit. When omitted, double-click is a no-op. */
|
|
8
|
+
onLabelChange?: (id: string, label: string) => void;
|
|
9
|
+
/** Show the X delete affordance at the midpoint on hover/select. */
|
|
10
|
+
showDelete?: boolean;
|
|
11
|
+
/** Curvature for bezier routing (0–1). Smaller = tighter. Default 0.25. */
|
|
12
|
+
curvature?: number;
|
|
13
|
+
/** Corner radius for smoothstep routing. Default 8 px. */
|
|
14
|
+
borderRadius?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Bust-cache token from FlowCanvas. Bumps whenever the handle registry
|
|
17
|
+
* mutates so this edge re-renders against fresh handle descriptors —
|
|
18
|
+
* fixes stale geometry after collapse/uncollapse of a subflow whose
|
|
19
|
+
* children mount their Handles in a follow-up effect tick.
|
|
20
|
+
*/
|
|
21
|
+
handleVersion?: number;
|
|
22
|
+
}
|
|
23
|
+
declare function FlowEdgeImpl({ edge, nodes, onSelect, onDelete, onLabelChange, showDelete, curvature, borderRadius, }: FlowEdgeProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export declare const FlowEdge: import("react").MemoExoticComponent<typeof FlowEdgeImpl>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=FlowEdge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowEdge.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/FlowEdge/FlowEdge.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAY,YAAY,IAAI,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAK7F,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,kEAAkE;IAClE,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,oEAAoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,iBAAS,YAAY,CAAC,EACpB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,UAAiB,EACjB,SAAgB,EAChB,YAAgB,GACjB,EAAE,aAAa,2CA6Nf;AA6BD,eAAO,MAAM,QAAQ,0DAiBnB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { WorkflowNode } from "../../editor";
|
|
2
|
+
import type { NodeKindComponent } from "./nodeKinds";
|
|
3
|
+
export interface FlowNodeProps {
|
|
4
|
+
node: WorkflowNode;
|
|
5
|
+
selected: boolean;
|
|
6
|
+
dragging: boolean;
|
|
7
|
+
isConnecting: boolean;
|
|
8
|
+
Kind: NodeKindComponent;
|
|
9
|
+
/** Optional fallback width for un-measured nodes — defaults to 240. */
|
|
10
|
+
defaultWidth?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function FlowNode({ node, selected, dragging, isConnecting, Kind, defaultWidth, }: FlowNodeProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=FlowNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowNode.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/FlowNode/FlowNode.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,IAAI,EAKJ,YAAkB,GACnB,EAAE,aAAa,2CA2Hf"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { WorkflowNode } from "../../editor";
|
|
2
|
+
export interface FlowNodeContextValue {
|
|
3
|
+
id: string;
|
|
4
|
+
node: WorkflowNode;
|
|
5
|
+
selected: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare const FlowNodeContext: import("react").Context<FlowNodeContextValue>;
|
|
8
|
+
export declare function useFlowNodeContext(): FlowNodeContextValue;
|
|
9
|
+
//# sourceMappingURL=FlowNodeContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowNodeContext.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/FlowNode/FlowNodeContext.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,eAAe,+CAAmD,CAAC;AAEhF,wBAAgB,kBAAkB,IAAI,oBAAoB,CAQzD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ComponentType } from "react";
|
|
2
|
+
import type { WorkflowNode } from "../../editor";
|
|
3
|
+
/**
|
|
4
|
+
* Props passed to every kind renderer. Matches the public `NodeProps`
|
|
5
|
+
* shape we expose to consumers; we deliberately do NOT duplicate
|
|
6
|
+
* coordinate fields (see ADR-003).
|
|
7
|
+
*/
|
|
8
|
+
export interface NodeKindProps<TData = unknown> {
|
|
9
|
+
/** The full node — kinds read `data`, can mutate via `updateNodeData`. */
|
|
10
|
+
node: WorkflowNode<TData>;
|
|
11
|
+
/** True when this node is the focus of selection. */
|
|
12
|
+
selected: boolean;
|
|
13
|
+
/** True while a drag is in progress on this node. */
|
|
14
|
+
dragging: boolean;
|
|
15
|
+
/** True when any connection drag is in flight and could end here. */
|
|
16
|
+
isConnecting: boolean;
|
|
17
|
+
}
|
|
18
|
+
export type NodeKindComponent<TData = unknown> = ComponentType<NodeKindProps<TData>>;
|
|
19
|
+
export type NodeKindRegistry = Record<string, NodeKindComponent>;
|
|
20
|
+
/**
|
|
21
|
+
* Build a registry from a default set plus optional overrides. The result
|
|
22
|
+
* is a frozen object so consumers can't mutate it post-hoc.
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildNodeKindRegistry(defaults: NodeKindRegistry, overrides?: NodeKindRegistry): NodeKindRegistry;
|
|
25
|
+
//# sourceMappingURL=nodeKinds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeKinds.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/FlowNode/nodeKinds.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,aAAa,CAAC,KAAK,GAAG,OAAO;IAC5C,0EAA0E;IAC1E,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC1B,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,iBAAiB,CAAC,KAAK,GAAG,OAAO,IAAI,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAErF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,CAAC,EAAE,gBAAgB,GAC3B,gBAAgB,CAElB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type CSSProperties } from "react";
|
|
2
|
+
import type { HandlePosition, HandleType } from "../../editor";
|
|
3
|
+
export interface HandleProps {
|
|
4
|
+
/** `source` = connections start here; `target` = connections end here. */
|
|
5
|
+
type: HandleType;
|
|
6
|
+
/** Which side of the node the handle sits on. */
|
|
7
|
+
position: HandlePosition;
|
|
8
|
+
/** Stable id within the node. Default `"default"`; required when >1 handle of same type. */
|
|
9
|
+
id?: string;
|
|
10
|
+
/** Defaults to true. Setting false disables both starting and ending here. */
|
|
11
|
+
isConnectable?: boolean;
|
|
12
|
+
/** Allow this handle to *start* a connection. Defaults to `isConnectable`. */
|
|
13
|
+
isConnectableStart?: boolean;
|
|
14
|
+
/** Allow this handle to *end* a connection. Defaults to `isConnectable`. */
|
|
15
|
+
isConnectableEnd?: boolean;
|
|
16
|
+
/** 0-based position among same-(node, side) handles. Defaults to 0. */
|
|
17
|
+
index?: number;
|
|
18
|
+
/** Total handles on the same (node, side). Defaults to 1. */
|
|
19
|
+
total?: number;
|
|
20
|
+
/** Optional caption rendered next to the dot (e.g. "true"/"false"). */
|
|
21
|
+
label?: string;
|
|
22
|
+
className?: string;
|
|
23
|
+
style?: CSSProperties;
|
|
24
|
+
}
|
|
25
|
+
export declare function Handle({ type, position, id, isConnectable, isConnectableStart, isConnectableEnd, index, total, label, className, style, }: HandleProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
//# sourceMappingURL=Handle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Handle.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/Handle/Handle.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,aAAa,EAAwC,MAAM,OAAO,CAAC;AAEjF,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/D,MAAM,WAAW,WAAW;IAC1B,0EAA0E;IAC1E,IAAI,EAAE,UAAU,CAAC;IACjB,iDAAiD;IACjD,QAAQ,EAAE,cAAc,CAAC;IACzB,4FAA4F;IAC5F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAID,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,QAAQ,EACR,EAAsB,EACtB,aAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,KAAS,EACT,KAAS,EACT,KAAK,EACL,SAAS,EACT,KAAK,GACN,EAAE,WAAW,2CAkEb"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { HandlePosition, HandleType } from "../../editor";
|
|
2
|
+
export interface HandleDescriptor {
|
|
3
|
+
nodeId: string;
|
|
4
|
+
handleId: string;
|
|
5
|
+
type: HandleType;
|
|
6
|
+
side: HandlePosition;
|
|
7
|
+
/** 0-based position among same-(node, side, type) handles. */
|
|
8
|
+
index: number;
|
|
9
|
+
/** Total handles on the same (node, side, type). */
|
|
10
|
+
total: number;
|
|
11
|
+
}
|
|
12
|
+
export interface HandleRegistry {
|
|
13
|
+
register(d: HandleDescriptor): () => void;
|
|
14
|
+
resolve(nodeId: string, type: HandleType, handleId: string): HandleDescriptor | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Subscribe to registry mutations. Fires after every register /
|
|
17
|
+
* unregister so listeners (typically the EdgesLayer) can re-render
|
|
18
|
+
* once the new handles are present. Without this, edges resolved
|
|
19
|
+
* during the same React commit as a node remount fall back to default
|
|
20
|
+
* positions because the Handle's `useEffect` hasn't yet written its
|
|
21
|
+
* descriptor — which is what caused the post-collapse stale-edge bug
|
|
22
|
+
* inside subflows.
|
|
23
|
+
*/
|
|
24
|
+
subscribe(listener: () => void): () => void;
|
|
25
|
+
}
|
|
26
|
+
export declare const HandleRegistryContext: import("react").Context<HandleRegistry>;
|
|
27
|
+
export declare function useHandleRegistry(): HandleRegistry;
|
|
28
|
+
/**
|
|
29
|
+
* Build a registry. One per FlowCanvas instance.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createHandleRegistry(): HandleRegistry;
|
|
32
|
+
//# sourceMappingURL=handleRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleRegistry.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/Handle/handleRegistry.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,cAAc,CAAC;IACrB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAC;IAC1C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAC1F;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,qBAAqB,yCAA6C,CAAC;AAEhF,wBAAgB,iBAAiB,IAAI,cAAc,CAMlD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAgCrD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface NodeResizerProps {
|
|
2
|
+
/** Force-visible. Default: visible iff the host node is selected. */
|
|
3
|
+
isVisible?: boolean;
|
|
4
|
+
/** Lower bound for the resize. Defaults to 80×60. */
|
|
5
|
+
minWidth?: number;
|
|
6
|
+
minHeight?: number;
|
|
7
|
+
/** Upper bound for the resize. Defaults unbounded. */
|
|
8
|
+
maxWidth?: number;
|
|
9
|
+
maxHeight?: number;
|
|
10
|
+
/** Lock width:height ratio at the value computed from the node's
|
|
11
|
+
* current dimensions on resize-start. */
|
|
12
|
+
keepAspectRatio?: boolean;
|
|
13
|
+
/** Fired on every pointermove during resize. */
|
|
14
|
+
onResize?: (size: {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
}) => void;
|
|
18
|
+
/** Fired on pointerup (the committed size). */
|
|
19
|
+
onResizeEnd?: (size: {
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
}) => void;
|
|
23
|
+
/** Override handle colour. */
|
|
24
|
+
color?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function NodeResizer({ isVisible, minWidth, minHeight, maxWidth, maxHeight, keepAspectRatio, onResize, onResizeEnd, color, }: NodeResizerProps): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=NodeResizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeResizer.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/NodeResizer/NodeResizer.tsx"],"names":[],"mappings":"AAqBA,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;8CAC0C;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7D,+CAA+C;IAC/C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAChE,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgBD,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,QAAa,EACb,SAAc,EACd,QAAQ,EACR,SAAS,EACT,eAAuB,EACvB,QAAQ,EACR,WAAW,EACX,KAAK,GACN,EAAE,gBAAgB,2CAkIlB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { CSSProperties, ReactNode } from "react";
|
|
2
|
+
import type { HandlePosition } from "../../editor";
|
|
3
|
+
export interface NodeToolbarProps {
|
|
4
|
+
/** Force-visible state. Defaults to `undefined` → auto (visible iff
|
|
5
|
+
* the host node is selected). Pass `true`/`false` to override. */
|
|
6
|
+
isVisible?: boolean;
|
|
7
|
+
/** Where the toolbar sits relative to the node. Defaults to `top`. */
|
|
8
|
+
position?: HandlePosition;
|
|
9
|
+
/** Pixel offset from the node's edge. Default 10. */
|
|
10
|
+
offset?: number;
|
|
11
|
+
/** Horizontal/vertical alignment along the chosen edge. Default center. */
|
|
12
|
+
align?: "start" | "center" | "end";
|
|
13
|
+
/** Toolbar contents (typically a row of `<button>` elements). */
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
className?: string;
|
|
16
|
+
style?: CSSProperties;
|
|
17
|
+
}
|
|
18
|
+
export declare function NodeToolbar({ isVisible, position, offset, align, children, className, style, }: NodeToolbarProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=NodeToolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeToolbar.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/NodeToolbar/NodeToolbar.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,MAAM,WAAW,gBAAgB;IAC/B;uEACmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,iEAAiE;IACjE,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,QAAgB,EAChB,MAAW,EACX,KAAgB,EAChB,QAAQ,EACR,SAAS,EACT,KAAK,GACN,EAAE,gBAAgB,2CAoClB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export type BaseNodeStatus = "idle" | "running" | "success" | "error" | "warning";
|
|
3
|
+
export interface BaseNodeProps {
|
|
4
|
+
/** Pill label — the node TYPE/category (e.g. "HTTP", "WEBHOOK", "ACTION"). */
|
|
5
|
+
kind: ReactNode;
|
|
6
|
+
/** Optional small icon inside the pill, left of the kind label. */
|
|
7
|
+
kindIcon?: ReactNode;
|
|
8
|
+
/** Icon shown in the body bubble (32px circle). */
|
|
9
|
+
icon?: ReactNode;
|
|
10
|
+
/** Bold name shown in the body — this is the user-facing instance name. */
|
|
11
|
+
title: ReactNode;
|
|
12
|
+
/**
|
|
13
|
+
* Optional chip rendered before the description text — used for
|
|
14
|
+
* configuration values like HTTP method ("GET"), condition operator
|
|
15
|
+
* ("=="), execution mode, etc. Inherits the accent colour.
|
|
16
|
+
*/
|
|
17
|
+
chip?: ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* The body description / value — typically the most-relevant config
|
|
20
|
+
* field (path, url, expression). Clamps to two lines.
|
|
21
|
+
*/
|
|
22
|
+
description?: ReactNode;
|
|
23
|
+
/** Per-kind accent — paints the pill background and the chip. */
|
|
24
|
+
accent?: "blue" | "violet" | "amber" | "green" | "red" | "slate";
|
|
25
|
+
/** Status dot in the top-right corner (config / runtime). */
|
|
26
|
+
status?: BaseNodeStatus;
|
|
27
|
+
/**
|
|
28
|
+
* Delete button click — when set, the corner [×] button uses this. If
|
|
29
|
+
* omitted, BaseNode auto-wires it through the FlowCanvas bridge so the
|
|
30
|
+
* default behaviour is "this button deletes me". Pass `false` to hide.
|
|
31
|
+
*/
|
|
32
|
+
onDelete?: (() => void) | false;
|
|
33
|
+
/** Footer slot below the description (e.g. additional metadata). */
|
|
34
|
+
footer?: ReactNode;
|
|
35
|
+
className?: string;
|
|
36
|
+
/** Handles + extras — positioned absolutely by the caller. */
|
|
37
|
+
children?: ReactNode;
|
|
38
|
+
}
|
|
39
|
+
export declare function BaseNode({ kind, kindIcon, icon, title, chip, description, accent, status, onDelete, footer, className, children, }: BaseNodeProps): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
//# sourceMappingURL=BaseNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/kinds/BaseNode.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAKnD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAElF,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,IAAI,EAAE,SAAS,CAAC;IAChB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,mDAAmD;IACnD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2EAA2E;IAC3E,KAAK,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;IACjE,6DAA6D;IAC7D,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC;IAChC,oEAAoE;IACpE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,WAAW,EACX,MAAgB,EAChB,MAAM,EACN,QAAQ,EACR,MAAM,EACN,SAAS,EACT,QAAQ,GACT,EAAE,aAAa,2CA8Ef"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { NodeKindComponent, NodeKindRegistry } from "../FlowNode/nodeKinds";
|
|
2
|
+
import { type BaseNodeStatus } from "./BaseNode";
|
|
3
|
+
export interface BuiltInNodeData {
|
|
4
|
+
/** Pill label override — defaults to the kind's canonical type label
|
|
5
|
+
* (e.g. "HTTP", "WEBHOOK", "ACTION"). Rarely needed; mostly here so
|
|
6
|
+
* consumers can rename "HTTP" → "REST" without forking the kind. */
|
|
7
|
+
kind?: import("react").ReactNode;
|
|
8
|
+
/** Body name — the user-facing instance label (e.g. "Fetch Order"). */
|
|
9
|
+
title?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Optional chip rendered before the description value, used for
|
|
12
|
+
* configuration metadata that should read at a glance — HTTP method,
|
|
13
|
+
* condition operator, schedule frequency, etc. Renders as a coloured
|
|
14
|
+
* inline badge that inherits the kind accent.
|
|
15
|
+
*/
|
|
16
|
+
chip?: import("react").ReactNode;
|
|
17
|
+
/** Description / config value — the most-relevant config field (path,
|
|
18
|
+
* url, expression). Clamped to two lines in the body. */
|
|
19
|
+
description?: import("react").ReactNode;
|
|
20
|
+
/** Legacy alias for `description` — older fixtures still pass this. */
|
|
21
|
+
subtitle?: import("react").ReactNode;
|
|
22
|
+
/** Legacy alias for `chip` — older fixtures still pass this. */
|
|
23
|
+
badge?: import("react").ReactNode;
|
|
24
|
+
/** Runtime status — drives the pulsing dot in the top-right corner. */
|
|
25
|
+
status?: BaseNodeStatus;
|
|
26
|
+
/** Body bubble icon (32px circle). */
|
|
27
|
+
icon?: import("react").ReactNode;
|
|
28
|
+
branches?: {
|
|
29
|
+
id: string;
|
|
30
|
+
label: string;
|
|
31
|
+
}[];
|
|
32
|
+
collapsed?: boolean;
|
|
33
|
+
/** Populated by `collapseFor()` — number of descendants hidden under
|
|
34
|
+
* this collapsed group; the renderer shows it as a "N steps" badge. */
|
|
35
|
+
hiddenCount?: number;
|
|
36
|
+
iterator?: string;
|
|
37
|
+
waitMs?: number;
|
|
38
|
+
method?: string;
|
|
39
|
+
path?: string;
|
|
40
|
+
url?: string;
|
|
41
|
+
}
|
|
42
|
+
export declare const ActionNode: NodeKindComponent<BuiltInNodeData>;
|
|
43
|
+
export declare const TriggerNode: NodeKindComponent<BuiltInNodeData>;
|
|
44
|
+
export declare const ConditionNode: NodeKindComponent<BuiltInNodeData>;
|
|
45
|
+
export declare const GroupNode: NodeKindComponent<BuiltInNodeData>;
|
|
46
|
+
export declare const ForEachNode: NodeKindComponent<BuiltInNodeData>;
|
|
47
|
+
export declare const OutputNode: NodeKindComponent<BuiltInNodeData>;
|
|
48
|
+
export declare const ErrorNode: NodeKindComponent<BuiltInNodeData>;
|
|
49
|
+
export declare const WaitNode: NodeKindComponent<BuiltInNodeData>;
|
|
50
|
+
export declare const ParallelNode: NodeKindComponent<BuiltInNodeData>;
|
|
51
|
+
export declare const StickyNode: NodeKindComponent<BuiltInNodeData>;
|
|
52
|
+
export declare const WebhookNode: NodeKindComponent<BuiltInNodeData>;
|
|
53
|
+
export declare const HttpRequestNode: NodeKindComponent<BuiltInNodeData>;
|
|
54
|
+
export declare const DEFAULT_NODE_KINDS: NodeKindRegistry;
|
|
55
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/workflow/components/kinds/index.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEhG,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAI3D,MAAM,WAAW,eAAe;IAC9B;;yEAEqE;IACrE,IAAI,CAAC,EAAE,OAAO,OAAO,EAAE,SAAS,CAAC;IACjC,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,OAAO,EAAE,SAAS,CAAC;IACjC;8DAC0D;IAC1D,WAAW,CAAC,EAAE,OAAO,OAAO,EAAE,SAAS,CAAC;IACxC,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,OAAO,EAAE,SAAS,CAAC;IACrC,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,OAAO,EAAE,SAAS,CAAC;IAClC,uEAAuE;IACvE,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,sCAAsC;IACtC,IAAI,CAAC,EAAE,OAAO,OAAO,EAAE,SAAS,CAAC;IAEjC,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAE3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;4EACwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAKD,eAAO,MAAM,UAAU,EAAE,iBAAiB,CAAC,eAAe,CAkBzD,CAAC;AAKF,eAAO,MAAM,WAAW,EAAE,iBAAiB,CAAC,eAAe,CAiB1D,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,iBAAiB,CAAC,eAAe,CAgC5D,CAAC;AAcF,eAAO,MAAM,SAAS,EAAE,iBAAiB,CAAC,eAAe,CAwDxD,CAAC;AAcF,eAAO,MAAM,WAAW,EAAE,iBAAiB,CAAC,eAAe,CAgE1D,CAAC;AAKF,eAAO,MAAM,UAAU,EAAE,iBAAiB,CAAC,eAAe,CAiBzD,CAAC;AAKF,eAAO,MAAM,SAAS,EAAE,iBAAiB,CAAC,eAAe,CAkBxD,CAAC;AAKF,eAAO,MAAM,QAAQ,EAAE,iBAAiB,CAAC,eAAe,CAoBvD,CAAC;AAKF,eAAO,MAAM,YAAY,EAAE,iBAAiB,CAAC,eAAe,CAgC3D,CAAC;AAMF,eAAO,MAAM,UAAU,EAAE,iBAAiB,CAAC,eAAe,CAgBzD,CAAC;AAMF,eAAO,MAAM,WAAW,EAAE,iBAAiB,CAAC,eAAe,CAiB1D,CAAC;AAMF,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,eAAe,CAkB9D,CAAC;AAKF,eAAO,MAAM,kBAAkB,EAAE,gBAahC,CAAC"}
|