@bian-womp/spark-workbench 0.3.89 → 0.3.91

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.
Files changed (181) hide show
  1. package/lib/cjs/index.cjs +19 -6
  2. package/lib/cjs/index.cjs.map +1 -1
  3. package/lib/cjs/src/misc/layout.d.ts.map +1 -1
  4. package/lib/cjs/src/misc/mapping.d.ts.map +1 -1
  5. package/lib/cjs/src/misc/value.d.ts +2 -1
  6. package/lib/cjs/src/misc/value.d.ts.map +1 -1
  7. package/lib/esm/index.js +19 -6
  8. package/lib/esm/index.js.map +1 -1
  9. package/lib/esm/src/misc/layout.d.ts.map +1 -1
  10. package/lib/esm/src/misc/mapping.d.ts.map +1 -1
  11. package/lib/esm/src/misc/value.d.ts +2 -1
  12. package/lib/esm/src/misc/value.d.ts.map +1 -1
  13. package/package.json +4 -4
  14. package/lib/src/adapters/cli/index.d.ts +0 -22
  15. package/lib/src/adapters/cli/index.d.ts.map +0 -1
  16. package/lib/src/adapters/cli/index.js +0 -50
  17. package/lib/src/adapters/cli/index.js.map +0 -1
  18. package/lib/src/core/AbstractWorkbench.d.ts +0 -40
  19. package/lib/src/core/AbstractWorkbench.d.ts.map +0 -1
  20. package/lib/src/core/AbstractWorkbench.js +0 -15
  21. package/lib/src/core/AbstractWorkbench.js.map +0 -1
  22. package/lib/src/core/InMemoryWorkbench.d.ts +0 -304
  23. package/lib/src/core/InMemoryWorkbench.d.ts.map +0 -1
  24. package/lib/src/core/InMemoryWorkbench.js +0 -1016
  25. package/lib/src/core/InMemoryWorkbench.js.map +0 -1
  26. package/lib/src/core/contracts.d.ts +0 -172
  27. package/lib/src/core/contracts.d.ts.map +0 -1
  28. package/lib/src/core/contracts.js +0 -2
  29. package/lib/src/core/contracts.js.map +0 -1
  30. package/lib/src/core/ui-extensions.d.ts +0 -85
  31. package/lib/src/core/ui-extensions.d.ts.map +0 -1
  32. package/lib/src/core/ui-extensions.js +0 -111
  33. package/lib/src/core/ui-extensions.js.map +0 -1
  34. package/lib/src/examples/cli.d.ts +0 -2
  35. package/lib/src/examples/cli.d.ts.map +0 -1
  36. package/lib/src/examples/cli.js +0 -244
  37. package/lib/src/examples/cli.js.map +0 -1
  38. package/lib/src/examples/reactflow/App.d.ts +0 -2
  39. package/lib/src/examples/reactflow/App.d.ts.map +0 -1
  40. package/lib/src/examples/reactflow/App.js +0 -20
  41. package/lib/src/examples/reactflow/App.js.map +0 -1
  42. package/lib/src/index.d.ts +0 -30
  43. package/lib/src/index.d.ts.map +0 -1
  44. package/lib/src/index.js +0 -30
  45. package/lib/src/index.js.map +0 -1
  46. package/lib/src/misc/DebugEvents.d.ts +0 -7
  47. package/lib/src/misc/DebugEvents.d.ts.map +0 -1
  48. package/lib/src/misc/DebugEvents.js +0 -51
  49. package/lib/src/misc/DebugEvents.js.map +0 -1
  50. package/lib/src/misc/DefaultEdge.d.ts +0 -5
  51. package/lib/src/misc/DefaultEdge.d.ts.map +0 -1
  52. package/lib/src/misc/DefaultEdge.js +0 -15
  53. package/lib/src/misc/DefaultEdge.js.map +0 -1
  54. package/lib/src/misc/DefaultNode.d.ts +0 -5
  55. package/lib/src/misc/DefaultNode.d.ts.map +0 -1
  56. package/lib/src/misc/DefaultNode.js +0 -25
  57. package/lib/src/misc/DefaultNode.js.map +0 -1
  58. package/lib/src/misc/DefaultNodeContent.d.ts +0 -4
  59. package/lib/src/misc/DefaultNodeContent.d.ts.map +0 -1
  60. package/lib/src/misc/DefaultNodeContent.js +0 -58
  61. package/lib/src/misc/DefaultNodeContent.js.map +0 -1
  62. package/lib/src/misc/DefaultNodeHeader.d.ts +0 -13
  63. package/lib/src/misc/DefaultNodeHeader.d.ts.map +0 -1
  64. package/lib/src/misc/DefaultNodeHeader.js +0 -78
  65. package/lib/src/misc/DefaultNodeHeader.js.map +0 -1
  66. package/lib/src/misc/Inspector.d.ts +0 -12
  67. package/lib/src/misc/Inspector.d.ts.map +0 -1
  68. package/lib/src/misc/Inspector.js +0 -253
  69. package/lib/src/misc/Inspector.js.map +0 -1
  70. package/lib/src/misc/IssueBadge.d.ts +0 -7
  71. package/lib/src/misc/IssueBadge.d.ts.map +0 -1
  72. package/lib/src/misc/IssueBadge.js +0 -7
  73. package/lib/src/misc/IssueBadge.js.map +0 -1
  74. package/lib/src/misc/KeyboardShortcutToast.d.ts +0 -16
  75. package/lib/src/misc/KeyboardShortcutToast.d.ts.map +0 -1
  76. package/lib/src/misc/KeyboardShortcutToast.js +0 -40
  77. package/lib/src/misc/KeyboardShortcutToast.js.map +0 -1
  78. package/lib/src/misc/NodeHandles.d.ts +0 -18
  79. package/lib/src/misc/NodeHandles.d.ts.map +0 -1
  80. package/lib/src/misc/NodeHandles.js +0 -67
  81. package/lib/src/misc/NodeHandles.js.map +0 -1
  82. package/lib/src/misc/SelectionActiveSync.d.ts +0 -10
  83. package/lib/src/misc/SelectionActiveSync.d.ts.map +0 -1
  84. package/lib/src/misc/SelectionActiveSync.js +0 -21
  85. package/lib/src/misc/SelectionActiveSync.js.map +0 -1
  86. package/lib/src/misc/WorkbenchCanvas.d.ts +0 -23
  87. package/lib/src/misc/WorkbenchCanvas.d.ts.map +0 -1
  88. package/lib/src/misc/WorkbenchCanvas.js +0 -669
  89. package/lib/src/misc/WorkbenchCanvas.js.map +0 -1
  90. package/lib/src/misc/WorkbenchStudio.d.ts +0 -43
  91. package/lib/src/misc/WorkbenchStudio.d.ts.map +0 -1
  92. package/lib/src/misc/WorkbenchStudio.js +0 -463
  93. package/lib/src/misc/WorkbenchStudio.js.map +0 -1
  94. package/lib/src/misc/constants.d.ts +0 -4
  95. package/lib/src/misc/constants.d.ts.map +0 -1
  96. package/lib/src/misc/constants.js +0 -5
  97. package/lib/src/misc/constants.js.map +0 -1
  98. package/lib/src/misc/context/WorkbenchContext.d.ts +0 -133
  99. package/lib/src/misc/context/WorkbenchContext.d.ts.map +0 -1
  100. package/lib/src/misc/context/WorkbenchContext.js +0 -9
  101. package/lib/src/misc/context/WorkbenchContext.js.map +0 -1
  102. package/lib/src/misc/context/WorkbenchContext.provider.d.ts +0 -12
  103. package/lib/src/misc/context/WorkbenchContext.provider.d.ts.map +0 -1
  104. package/lib/src/misc/context/WorkbenchContext.provider.js +0 -995
  105. package/lib/src/misc/context/WorkbenchContext.provider.js.map +0 -1
  106. package/lib/src/misc/context-menu/ContextMenuButton.d.ts +0 -8
  107. package/lib/src/misc/context-menu/ContextMenuButton.d.ts.map +0 -1
  108. package/lib/src/misc/context-menu/ContextMenuButton.js +0 -10
  109. package/lib/src/misc/context-menu/ContextMenuButton.js.map +0 -1
  110. package/lib/src/misc/context-menu/ContextMenuHandlers.d.ts +0 -85
  111. package/lib/src/misc/context-menu/ContextMenuHandlers.d.ts.map +0 -1
  112. package/lib/src/misc/context-menu/ContextMenuHandlers.js +0 -2
  113. package/lib/src/misc/context-menu/ContextMenuHandlers.js.map +0 -1
  114. package/lib/src/misc/context-menu/ContextMenuHelpers.d.ts +0 -45
  115. package/lib/src/misc/context-menu/ContextMenuHelpers.d.ts.map +0 -1
  116. package/lib/src/misc/context-menu/ContextMenuHelpers.js +0 -182
  117. package/lib/src/misc/context-menu/ContextMenuHelpers.js.map +0 -1
  118. package/lib/src/misc/context-menu/DefaultContextMenu.d.ts +0 -3
  119. package/lib/src/misc/context-menu/DefaultContextMenu.d.ts.map +0 -1
  120. package/lib/src/misc/context-menu/DefaultContextMenu.js +0 -111
  121. package/lib/src/misc/context-menu/DefaultContextMenu.js.map +0 -1
  122. package/lib/src/misc/context-menu/NodeContextMenu.d.ts +0 -3
  123. package/lib/src/misc/context-menu/NodeContextMenu.d.ts.map +0 -1
  124. package/lib/src/misc/context-menu/NodeContextMenu.js +0 -51
  125. package/lib/src/misc/context-menu/NodeContextMenu.js.map +0 -1
  126. package/lib/src/misc/context-menu/SelectionContextMenu.d.ts +0 -3
  127. package/lib/src/misc/context-menu/SelectionContextMenu.d.ts.map +0 -1
  128. package/lib/src/misc/context-menu/SelectionContextMenu.js +0 -47
  129. package/lib/src/misc/context-menu/SelectionContextMenu.js.map +0 -1
  130. package/lib/src/misc/hooks.d.ts +0 -18
  131. package/lib/src/misc/hooks.d.ts.map +0 -1
  132. package/lib/src/misc/hooks.js +0 -275
  133. package/lib/src/misc/hooks.js.map +0 -1
  134. package/lib/src/misc/layout.d.ts +0 -117
  135. package/lib/src/misc/layout.d.ts.map +0 -1
  136. package/lib/src/misc/layout.js +0 -205
  137. package/lib/src/misc/layout.js.map +0 -1
  138. package/lib/src/misc/load.d.ts +0 -5
  139. package/lib/src/misc/load.d.ts.map +0 -1
  140. package/lib/src/misc/load.js +0 -106
  141. package/lib/src/misc/load.js.map +0 -1
  142. package/lib/src/misc/mapping.d.ts +0 -128
  143. package/lib/src/misc/mapping.d.ts.map +0 -1
  144. package/lib/src/misc/mapping.js +0 -270
  145. package/lib/src/misc/mapping.js.map +0 -1
  146. package/lib/src/misc/merge-utils.d.ts +0 -12
  147. package/lib/src/misc/merge-utils.d.ts.map +0 -1
  148. package/lib/src/misc/merge-utils.js +0 -51
  149. package/lib/src/misc/merge-utils.js.map +0 -1
  150. package/lib/src/misc/thumbnail-utils.d.ts +0 -53
  151. package/lib/src/misc/thumbnail-utils.d.ts.map +0 -1
  152. package/lib/src/misc/thumbnail-utils.js +0 -629
  153. package/lib/src/misc/thumbnail-utils.js.map +0 -1
  154. package/lib/src/misc/types.d.ts +0 -18
  155. package/lib/src/misc/types.d.ts.map +0 -1
  156. package/lib/src/misc/types.js +0 -2
  157. package/lib/src/misc/types.js.map +0 -1
  158. package/lib/src/misc/value.d.ts +0 -16
  159. package/lib/src/misc/value.d.ts.map +0 -1
  160. package/lib/src/misc/value.js +0 -114
  161. package/lib/src/misc/value.js.map +0 -1
  162. package/lib/src/misc/viewport-utils.d.ts +0 -6
  163. package/lib/src/misc/viewport-utils.d.ts.map +0 -1
  164. package/lib/src/misc/viewport-utils.js +0 -18
  165. package/lib/src/misc/viewport-utils.js.map +0 -1
  166. package/lib/src/runtime/AbstractGraphRunner.d.ts +0 -61
  167. package/lib/src/runtime/AbstractGraphRunner.d.ts.map +0 -1
  168. package/lib/src/runtime/AbstractGraphRunner.js +0 -63
  169. package/lib/src/runtime/AbstractGraphRunner.js.map +0 -1
  170. package/lib/src/runtime/IGraphRunner.d.ts +0 -100
  171. package/lib/src/runtime/IGraphRunner.d.ts.map +0 -1
  172. package/lib/src/runtime/IGraphRunner.js +0 -2
  173. package/lib/src/runtime/IGraphRunner.js.map +0 -1
  174. package/lib/src/runtime/LocalGraphRunner.d.ts +0 -60
  175. package/lib/src/runtime/LocalGraphRunner.d.ts.map +0 -1
  176. package/lib/src/runtime/LocalGraphRunner.js +0 -294
  177. package/lib/src/runtime/LocalGraphRunner.js.map +0 -1
  178. package/lib/src/runtime/RemoteGraphRunner.d.ts +0 -109
  179. package/lib/src/runtime/RemoteGraphRunner.d.ts.map +0 -1
  180. package/lib/src/runtime/RemoteGraphRunner.js +0 -696
  181. package/lib/src/runtime/RemoteGraphRunner.js.map +0 -1
@@ -1,51 +0,0 @@
1
- import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useEffect, useRef } from "react";
3
- import { ContextMenuButton } from "./ContextMenuButton";
4
- export function NodeContextMenu({ open, clientPos, nodeId, handlers, bakeableOutputs, runMode, wb, keyboardShortcuts = {
5
- copy: "⌘/Ctrl + C",
6
- duplicate: "⌘/Ctrl + E",
7
- delete: "Delete",
8
- }, }) {
9
- const ref = useRef(null);
10
- // outside click + ESC
11
- useEffect(() => {
12
- if (!open)
13
- return;
14
- const onDown = (e) => {
15
- if (!ref.current)
16
- return;
17
- if (!ref.current.contains(e.target))
18
- handlers.onClose();
19
- };
20
- const onKey = (e) => {
21
- if (e.key === "Escape")
22
- handlers.onClose();
23
- };
24
- window.addEventListener("mousedown", onDown, true);
25
- window.addEventListener("keydown", onKey);
26
- return () => {
27
- window.removeEventListener("mousedown", onDown, true);
28
- window.removeEventListener("keydown", onKey);
29
- };
30
- }, [open, handlers]);
31
- useEffect(() => {
32
- if (open)
33
- ref.current?.focus();
34
- }, [open]);
35
- if (!open || !clientPos || !nodeId)
36
- return null;
37
- // Determine if this is a start node (no inbound edges)
38
- const isStartNode = wb ? !wb.def.edges.some((e) => e.target.nodeId === nodeId) : false;
39
- // Check if node has outbound edges (required for "Run workflow" / "Run from here")
40
- const hasOutboundEdges = wb ? wb.def.edges.some((e) => e.source.nodeId === nodeId) : false;
41
- // clamp
42
- const MENU_MIN_WIDTH = 180;
43
- const PADDING = 16;
44
- const x = Math.min(clientPos.x, (typeof window !== "undefined" ? window.innerWidth : 0) - (MENU_MIN_WIDTH + PADDING));
45
- const y = Math.min(clientPos.y, (typeof window !== "undefined" ? window.innerHeight : 0) - 240);
46
- return (_jsxs("div", { ref: ref, tabIndex: -1, className: "fixed z-[1000] bg-white border border-gray-300 rounded-lg shadow-lg p-1 min-w-[180px] text-sm text-gray-700 select-none", style: { left: x, top: y }, onClick: (e) => e.stopPropagation(), onMouseDown: (e) => e.stopPropagation(), onWheel: (e) => e.stopPropagation(), onContextMenu: (e) => {
47
- e.preventDefault();
48
- e.stopPropagation();
49
- }, children: [_jsxs("div", { className: "px-2 py-1 font-semibold text-gray-700", children: ["Node (", nodeId, ")"] }), _jsx(ContextMenuButton, { label: "Delete", onClick: handlers.onDelete, shortcut: keyboardShortcuts.delete }), _jsx(ContextMenuButton, { label: "Duplicate", onClick: handlers.onDuplicate, shortcut: keyboardShortcuts.duplicate }), handlers.onRunNode && (_jsx("button", { className: "block w-full text-left px-2 py-1 hover:bg-gray-100", onClick: handlers.onRunNode, children: "Run node" })), runMode === "manual" && handlers.onRunFromHere && hasOutboundEdges && (_jsx("button", { className: "block w-full text-left px-2 py-1 hover:bg-gray-100", onClick: handlers.onRunFromHere, children: isStartNode ? "Run workflow" : "Run from here" })), _jsx("div", { className: "h-px bg-gray-200 my-1" }), _jsx(ContextMenuButton, { label: "Copy", onClick: handlers.onCopy, shortcut: keyboardShortcuts.copy }), _jsx("button", { className: "block w-full text-left px-2 py-1 hover:bg-gray-100", onClick: handlers.onCopyId, children: "Copy Node ID" }), bakeableOutputs.length > 0 && (_jsxs(_Fragment, { children: [_jsx("div", { className: "h-px bg-gray-200 my-1" }), _jsx("div", { className: "px-2 py-1 font-semibold text-gray-700", children: "Bake" }), bakeableOutputs.map((h) => (_jsxs("button", { className: "block w-full text-left px-2 py-1 hover:bg-gray-100", onClick: () => handlers.onBake(h), children: ["Bake: ", h] }, h)))] }))] }));
50
- }
51
- //# sourceMappingURL=NodeContextMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeContextMenu.js","sourceRoot":"","sources":["../../../../src/misc/context-menu/NodeContextMenu.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { SelectionContextMenuProps } from "./ContextMenuHandlers";
2
- export declare function SelectionContextMenu({ open, clientPos, handlers, keyboardShortcuts, }: SelectionContextMenuProps): import("react/jsx-runtime").JSX.Element | null;
3
- //# sourceMappingURL=SelectionContextMenu.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectionContextMenu.d.ts","sourceRoot":"","sources":["../../../../src/misc/context-menu/SelectionContextMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAGvE,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,iBAIC,GACF,EAAE,yBAAyB,kDAuD3B"}
@@ -1,47 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useRef } from "react";
3
- import { ContextMenuButton } from "./ContextMenuButton";
4
- export function SelectionContextMenu({ open, clientPos, handlers, keyboardShortcuts = {
5
- copy: "⌘/Ctrl + C",
6
- duplicate: "⌘/Ctrl + E",
7
- delete: "Delete",
8
- }, }) {
9
- const ref = useRef(null);
10
- // Close on outside click and on ESC
11
- useEffect(() => {
12
- if (!open)
13
- return;
14
- const onDown = (e) => {
15
- if (!ref.current)
16
- return;
17
- if (!ref.current.contains(e.target))
18
- handlers.onClose();
19
- };
20
- const onKey = (e) => {
21
- if (e.key === "Escape")
22
- handlers.onClose();
23
- };
24
- window.addEventListener("mousedown", onDown, true);
25
- window.addEventListener("keydown", onKey);
26
- return () => {
27
- window.removeEventListener("mousedown", onDown, true);
28
- window.removeEventListener("keydown", onKey);
29
- };
30
- }, [open, handlers]);
31
- useEffect(() => {
32
- if (open)
33
- ref.current?.focus();
34
- }, [open]);
35
- if (!open || !clientPos)
36
- return null;
37
- // Clamp menu position to viewport
38
- const MENU_MIN_WIDTH = 180;
39
- const PADDING = 16;
40
- const x = Math.min(clientPos.x, (typeof window !== "undefined" ? window.innerWidth : 0) - (MENU_MIN_WIDTH + PADDING));
41
- const y = Math.min(clientPos.y, (typeof window !== "undefined" ? window.innerHeight : 0) - 100);
42
- return (_jsxs("div", { ref: ref, tabIndex: -1, className: "fixed z-[1000] bg-white border border-gray-300 rounded-lg shadow-lg p-1 min-w-[180px] text-sm text-gray-700 select-none", style: { left: x, top: y }, onClick: (e) => e.stopPropagation(), onMouseDown: (e) => e.stopPropagation(), onWheel: (e) => e.stopPropagation(), onContextMenu: (e) => {
43
- e.preventDefault();
44
- e.stopPropagation();
45
- }, children: [_jsx("div", { className: "px-2 py-1 font-semibold text-gray-700", children: "Selection" }), _jsx(ContextMenuButton, { label: "Copy", onClick: handlers.onCopy, shortcut: keyboardShortcuts.copy }), handlers.onDuplicate && (_jsx(ContextMenuButton, { label: "Duplicate", onClick: handlers.onDuplicate, shortcut: keyboardShortcuts.duplicate })), _jsx(ContextMenuButton, { label: "Delete", onClick: handlers.onDelete, shortcut: keyboardShortcuts.delete })] }));
46
- }
47
- //# sourceMappingURL=SelectionContextMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectionContextMenu.js","sourceRoot":"","sources":["../../../../src/misc/context-menu/SelectionContextMenu.tsx"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import type { OnConnect, OnEdgesChange, OnEdgesDelete, OnNodesChange, OnNodesDelete } from "@xyflow/react";
2
- import type { ResolvedHandles } from "@bian-womp/spark-protocol";
3
- import type { InMemoryWorkbench } from "../core/InMemoryWorkbench";
4
- import { IGraphRunner } from "../runtime/IGraphRunner";
5
- export declare function useWorkbenchBridge(wb: InMemoryWorkbench, handlesMap?: Record<string, ResolvedHandles>): {
6
- onConnect: OnConnect;
7
- onNodesChange: OnNodesChange;
8
- onEdgesChange: OnEdgesChange;
9
- onEdgesDelete: OnEdgesDelete;
10
- onNodesDelete: OnNodesDelete;
11
- };
12
- export declare function useWorkbenchGraphTick(wb: InMemoryWorkbench): number;
13
- export declare function useWorkbenchGraphUiTick(wb: InMemoryWorkbench): number;
14
- export declare function useWorkbenchVersionTick(runner: IGraphRunner): number;
15
- export declare function useThrottledValue<T>(value: T, intervalMs: number): T;
16
- export declare function useQueryParamBoolean(key: string, defaultValue: boolean): [boolean, (v: boolean) => void];
17
- export declare function useQueryParamString(key: string, defaultValue?: string): [string | undefined, (v: string | undefined) => void];
18
- //# sourceMappingURL=hooks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/misc/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,SAAS,EACT,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EAEd,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;;;;;;EAoKrG;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,iBAAiB,UAU1D;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,iBAAiB,UAW5D;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,UAoB3D;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,CAqCpE;AAWD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,CA0BxG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,MAAM,GACpB,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC,CAyBvD"}
@@ -1,275 +0,0 @@
1
- import { useCallback, useEffect, useState, useMemo, useRef } from "react";
2
- import { getInputTypeId } from "@bian-womp/spark-graph";
3
- export function useWorkbenchBridge(wb, handlesMap) {
4
- const onConnect = useCallback((params) => {
5
- if (!params.source || !params.target)
6
- return;
7
- if (!params.sourceHandle || !params.targetHandle)
8
- return;
9
- // Prevent duplicate edges between the same endpoints
10
- const exists = wb.def.edges.some((e) => e.source.nodeId === params.source &&
11
- e.source.handle === params.sourceHandle &&
12
- e.target.nodeId === params.target &&
13
- e.target.handle === params.targetHandle);
14
- if (exists)
15
- return;
16
- // Check if target input handle is a non-array type (typeId doesn't end with [])
17
- // If so, remove any existing connections to that handle before connecting
18
- const targetHandles = handlesMap?.[params.target];
19
- const targetTypeId = targetHandles ? getInputTypeId(targetHandles.inputs, params.targetHandle) : undefined;
20
- const isArrayInput = targetTypeId?.endsWith("[]") ?? false;
21
- if (!isArrayInput) {
22
- // Find existing edges to this input handle
23
- const existingEdges = wb.def.edges.filter((e) => e.target.nodeId === params.target && e.target.handle === params.targetHandle);
24
- // Remove existing edges (without committing yet)
25
- for (const edge of existingEdges) {
26
- wb.disconnect(edge.id, { commit: false });
27
- }
28
- }
29
- wb.connect({
30
- source: { nodeId: params.source, handle: params.sourceHandle },
31
- target: { nodeId: params.target, handle: params.targetHandle },
32
- }, { commit: true });
33
- }, [wb, handlesMap]);
34
- const onNodesChange = useCallback((changes) => {
35
- const positions = {};
36
- let commit = false;
37
- changes.forEach((c) => {
38
- if (c.type === "position" && c.position) {
39
- positions[c.id] = c.position;
40
- if (!c.dragging)
41
- commit = true;
42
- }
43
- });
44
- const sizes = {};
45
- changes.forEach((c) => {
46
- if (c.type === "dimensions" && c.dimensions) {
47
- sizes[c.id] = c.dimensions;
48
- if (!c.resizing)
49
- commit = true;
50
- }
51
- });
52
- // Derive next node selection from change set
53
- const current = wb.getSelection();
54
- const nextNodeIds = new Set(current.nodes);
55
- let selectionChanged = false;
56
- for (const change of changes) {
57
- const type = change?.type;
58
- if (type === "select") {
59
- const id = change.id;
60
- const selected = change.selected;
61
- if (typeof selected === "boolean") {
62
- if (selected) {
63
- if (!nextNodeIds.has(id)) {
64
- nextNodeIds.add(id);
65
- selectionChanged = true;
66
- }
67
- }
68
- else if (nextNodeIds.delete(id)) {
69
- selectionChanged = true;
70
- }
71
- }
72
- }
73
- else if (type === "remove") {
74
- const id = change.id;
75
- if (nextNodeIds.delete(id))
76
- selectionChanged = true;
77
- }
78
- }
79
- if (selectionChanged) {
80
- wb.setSelection({
81
- nodes: Array.from(nextNodeIds),
82
- edges: current.edges,
83
- });
84
- }
85
- if (Object.keys(positions).length > 0) {
86
- wb.setPositions(positions, {
87
- commit: commit && !Object.keys(sizes).length,
88
- });
89
- }
90
- if (Object.keys(sizes).length > 0) {
91
- wb.setSizes(sizes, { commit });
92
- }
93
- }, [wb]);
94
- const onEdgesDelete = useCallback((edges) => edges.forEach((e, idx) => wb.disconnect(e.id, { commit: idx === edges.length - 1 })), [wb]);
95
- const onEdgesChange = useCallback((changes) => {
96
- const current = wb.getSelection();
97
- const nextEdgeIds = new Set(current.edges);
98
- let selectionChanged = false;
99
- for (const change of changes) {
100
- const type = change?.type;
101
- if (type === "select") {
102
- const id = change.id;
103
- const selected = change.selected;
104
- if (typeof selected === "boolean") {
105
- if (selected) {
106
- if (!nextEdgeIds.has(id)) {
107
- nextEdgeIds.add(id);
108
- selectionChanged = true;
109
- }
110
- }
111
- else if (nextEdgeIds.delete(id)) {
112
- selectionChanged = true;
113
- }
114
- }
115
- }
116
- else if (type === "remove") {
117
- const id = change.id;
118
- if (nextEdgeIds.delete(id))
119
- selectionChanged = true;
120
- }
121
- }
122
- if (selectionChanged) {
123
- wb.setSelection({
124
- nodes: current.nodes,
125
- edges: Array.from(nextEdgeIds),
126
- });
127
- }
128
- }, [wb]);
129
- const onNodesDelete = useCallback((nodes) => {
130
- nodes.forEach((n, idx) => wb.removeNode(n.id, { commit: idx === nodes.length - 1 }));
131
- }, [wb]);
132
- return {
133
- onConnect,
134
- onNodesChange,
135
- onEdgesChange,
136
- onEdgesDelete,
137
- onNodesDelete,
138
- };
139
- }
140
- export function useWorkbenchGraphTick(wb) {
141
- const [tick, setTick] = useState(0);
142
- useEffect(() => {
143
- const off = wb.on("graphChanged", () => {
144
- setTick((t) => t + 1);
145
- });
146
- return () => off();
147
- }, [wb]);
148
- return tick;
149
- }
150
- export function useWorkbenchGraphUiTick(wb) {
151
- const [tick, setTick] = useState(0);
152
- useEffect(() => {
153
- const off = wb.on("graphUiChanged", (evt) => {
154
- if (evt.change?.type === "viewport")
155
- return;
156
- setTick((t) => t + 1);
157
- });
158
- return () => off();
159
- }, [wb]);
160
- return tick;
161
- }
162
- export function useWorkbenchVersionTick(runner) {
163
- const [version, setVersion] = useState(0);
164
- useEffect(() => {
165
- const bump = () => setVersion((v) => v + 1);
166
- const u1 = runner.on("value", bump);
167
- const u2 = runner.on("error", bump);
168
- const u3 = runner.on("invalidate", bump);
169
- const u4 = runner.on("status", bump);
170
- const u5 = runner.on("stats", bump);
171
- return () => {
172
- u1();
173
- u2();
174
- u3();
175
- u4();
176
- u5();
177
- };
178
- }, [runner]);
179
- return version;
180
- }
181
- export function useThrottledValue(value, intervalMs) {
182
- const [throttled, setThrottled] = useState(value);
183
- const lastSetAtRef = useRef(0);
184
- const timeoutRef = useRef(null);
185
- useEffect(() => {
186
- const now = typeof performance !== "undefined" && performance.now ? performance.now() : Date.now();
187
- const elapsed = now - lastSetAtRef.current;
188
- if (elapsed >= intervalMs) {
189
- lastSetAtRef.current = now;
190
- setThrottled(value);
191
- }
192
- else {
193
- if (timeoutRef.current !== null) {
194
- window.clearTimeout(timeoutRef.current);
195
- }
196
- timeoutRef.current = window.setTimeout(() => {
197
- lastSetAtRef.current = typeof performance !== "undefined" && performance.now ? performance.now() : Date.now();
198
- setThrottled(value);
199
- timeoutRef.current = null;
200
- }, Math.max(0, intervalMs - elapsed));
201
- }
202
- return () => { };
203
- }, [value, intervalMs]);
204
- useEffect(() => {
205
- return () => {
206
- if (timeoutRef.current !== null) {
207
- window.clearTimeout(timeoutRef.current);
208
- timeoutRef.current = null;
209
- }
210
- };
211
- }, []);
212
- return throttled;
213
- }
214
- // Query param helpers
215
- function setSearchParam(key, val) {
216
- if (typeof window === "undefined")
217
- return;
218
- const url = new URL(window.location.href);
219
- if (val === undefined || val === "")
220
- url.searchParams.delete(key);
221
- else
222
- url.searchParams.set(key, val);
223
- window.history.replaceState({}, "", url.toString());
224
- }
225
- export function useQueryParamBoolean(key, defaultValue) {
226
- const initial = useMemo(() => {
227
- if (typeof window === "undefined")
228
- return defaultValue;
229
- const sp = new URLSearchParams(window.location.search);
230
- const v = sp.get(key);
231
- if (v === null)
232
- return defaultValue;
233
- return v === "1" || v === "true";
234
- }, [key, defaultValue]);
235
- const [val, setVal] = useState(initial);
236
- const set = useCallback((v) => {
237
- setVal(v);
238
- setSearchParam(key, v ? "1" : undefined);
239
- }, [key]);
240
- useEffect(() => {
241
- const onPop = () => {
242
- const sp = new URLSearchParams(window.location.search);
243
- const v = sp.get(key);
244
- setVal(v === "1" || v === "true");
245
- };
246
- window.addEventListener("popstate", onPop);
247
- return () => window.removeEventListener("popstate", onPop);
248
- }, [key]);
249
- return [val, set];
250
- }
251
- export function useQueryParamString(key, defaultValue) {
252
- const initial = useMemo(() => {
253
- if (typeof window === "undefined")
254
- return defaultValue;
255
- const sp = new URLSearchParams(window.location.search);
256
- const v = sp.get(key);
257
- return v ?? defaultValue;
258
- }, [key, defaultValue]);
259
- const [val, setVal] = useState(initial);
260
- const set = useCallback((v) => {
261
- setVal(v);
262
- setSearchParam(key, v);
263
- }, [key]);
264
- useEffect(() => {
265
- const onPop = () => {
266
- const sp = new URLSearchParams(window.location.search);
267
- const v = sp.get(key) ?? undefined;
268
- setVal(v);
269
- };
270
- window.addEventListener("popstate", onPop);
271
- return () => window.removeEventListener("popstate", onPop);
272
- }, [key]);
273
- return [val, set];
274
- }
275
- //# sourceMappingURL=hooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/misc/hooks.ts"],"names":[],"mappings":"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"}
@@ -1,117 +0,0 @@
1
- import type { ResolvedHandles, GraphNodeDefinition } from "@bian-womp/spark-protocol";
2
- import type { Registry } from "@bian-womp/spark-graph";
3
- import { Position } from "@xyflow/react";
4
- export type EstimateNodeSizeArgs = {
5
- node: GraphNodeDefinition;
6
- registry: Registry;
7
- showValues?: boolean;
8
- overrides?: {
9
- width?: number;
10
- height?: number;
11
- };
12
- };
13
- export type EstimateNodeSizeResult = {
14
- width: number;
15
- height: number;
16
- };
17
- export type EstimateNodeSizeFunction = (args: EstimateNodeSizeArgs) => EstimateNodeSizeResult;
18
- export type CreateHandleBoundsArgs = {
19
- id: string;
20
- type: "source" | "target";
21
- position: Position;
22
- rowIndex: number;
23
- nodeWidth: number;
24
- };
25
- export type CreateHandleBoundsResult = {
26
- id: string;
27
- type: "source" | "target";
28
- position: Position;
29
- x: number;
30
- y: number;
31
- width: number;
32
- height: number;
33
- };
34
- export type CreateHandleBoundsFunction = (args: CreateHandleBoundsArgs) => CreateHandleBoundsResult;
35
- export type CreateHandleLayoutArgs = {
36
- id: string;
37
- type: "source" | "target";
38
- position: Position;
39
- rowIndex: number;
40
- };
41
- export type CreateHandleLayoutResult = {
42
- id: string;
43
- type: "source" | "target";
44
- position: Position;
45
- y: number;
46
- };
47
- export type CreateHandleLayoutFunction = (args: CreateHandleLayoutArgs) => CreateHandleLayoutResult;
48
- export type LayoutNodeArgs = {
49
- node: GraphNodeDefinition;
50
- registry: Registry;
51
- showValues?: boolean;
52
- overrides?: {
53
- width?: number;
54
- height?: number;
55
- };
56
- missingInputs?: string[];
57
- missingOutputs?: string[];
58
- };
59
- export type HandleBounds = {
60
- id: string;
61
- type: "source" | "target";
62
- position: Position;
63
- x: number;
64
- y: number;
65
- width?: number;
66
- height?: number;
67
- };
68
- export type HandleLayout = {
69
- id: string;
70
- type: "source" | "target";
71
- position: Position;
72
- y: number;
73
- missing?: boolean;
74
- };
75
- export type LayoutNodeResult = {
76
- width: number;
77
- height: number;
78
- inputOrder: string[];
79
- outputOrder: string[];
80
- handles: HandleBounds[];
81
- handleLayout: HandleLayout[];
82
- };
83
- export type LayoutNodeFunction = (args: LayoutNodeArgs) => LayoutNodeResult;
84
- export declare function computeEffectiveHandles(node: GraphNodeDefinition, registry: Registry): ResolvedHandles;
85
- export declare function countVisibleHandles(handles: Omit<ResolvedHandles, "inputDefaults">): {
86
- inputsCount: number;
87
- outputsCount: number;
88
- };
89
- export declare function estimateNodeSize(args: EstimateNodeSizeArgs): EstimateNodeSizeResult;
90
- /**
91
- * Calculate the Y position for handle layout (center of row).
92
- * Used for positioning handles in React Flow.
93
- */
94
- export declare function getHandleLayoutY(rowIndex: number): number;
95
- /**
96
- * Calculate the Y position for handle bounds (top + centering offset).
97
- * Used for hit-testing and edge routing.
98
- */
99
- export declare function getHandleBoundsY(rowIndex: number): number;
100
- /**
101
- * Calculate the X position for handle bounds based on position and node width.
102
- */
103
- export declare function getHandleBoundsX(position: Position, nodeWidth: number): number;
104
- /**
105
- * Create handle bounds object for hit-testing/edge routing.
106
- */
107
- export declare function createHandleBounds(args: CreateHandleBoundsArgs): CreateHandleBoundsResult;
108
- /**
109
- * Create handle layout object for React Flow rendering.
110
- */
111
- export declare function createHandleLayout(args: CreateHandleLayoutArgs): CreateHandleLayoutResult;
112
- export declare function layoutNode(args: LayoutNodeArgs, overrides?: {
113
- estimateNodeSize?: EstimateNodeSizeFunction;
114
- createHandleBounds?: CreateHandleBoundsFunction;
115
- createHandleLayout?: CreateHandleLayoutFunction;
116
- }): LayoutNodeResult;
117
- //# sourceMappingURL=layout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/misc/layout.ts"],"names":[],"mappings":"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"}