@uipath/apollo-react 4.14.1 → 4.15.0-pr605.635fb17

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 (224) hide show
  1. package/dist/canvas/components/AddNodePanel/AddNodeManager.cjs +106 -10
  2. package/dist/canvas/components/AddNodePanel/AddNodeManager.d.ts.map +1 -1
  3. package/dist/canvas/components/AddNodePanel/AddNodeManager.js +106 -10
  4. package/dist/canvas/components/AddNodePanel/createAddNodePreview.cjs +28 -4
  5. package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts +2 -1
  6. package/dist/canvas/components/AddNodePanel/createAddNodePreview.d.ts.map +1 -1
  7. package/dist/canvas/components/AddNodePanel/createAddNodePreview.js +28 -4
  8. package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts +1 -0
  9. package/dist/canvas/components/AgentCanvas/agent-flow.manifest.d.ts.map +1 -1
  10. package/dist/canvas/components/BaseNode/BaseNode.cjs +11 -5
  11. package/dist/canvas/components/BaseNode/BaseNode.d.ts +2 -1
  12. package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
  13. package/dist/canvas/components/BaseNode/BaseNode.js +9 -6
  14. package/dist/canvas/components/BaseNode/BaseNode.types.d.ts +3 -0
  15. package/dist/canvas/components/BaseNode/BaseNode.types.d.ts.map +1 -1
  16. package/dist/canvas/components/ButtonHandle/ButtonHandle.cjs +222 -13
  17. package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts +10 -5
  18. package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts.map +1 -1
  19. package/dist/canvas/components/ButtonHandle/ButtonHandle.js +223 -14
  20. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.cjs +10 -2
  21. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts +2 -0
  22. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts.map +1 -1
  23. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.js +5 -3
  24. package/dist/canvas/components/ButtonHandle/HandleButton.cjs +17 -2
  25. package/dist/canvas/components/ButtonHandle/HandleButton.d.ts +10 -1
  26. package/dist/canvas/components/ButtonHandle/HandleButton.d.ts.map +1 -1
  27. package/dist/canvas/components/ButtonHandle/HandleButton.js +17 -2
  28. package/dist/canvas/components/ButtonHandle/useButtonHandles.cjs +4 -2
  29. package/dist/canvas/components/ButtonHandle/useButtonHandles.d.ts +2 -1
  30. package/dist/canvas/components/ButtonHandle/useButtonHandles.d.ts.map +1 -1
  31. package/dist/canvas/components/ButtonHandle/useButtonHandles.js +4 -2
  32. package/dist/canvas/components/Edges/SequenceEdge.cjs +18 -12
  33. package/dist/canvas/components/Edges/SequenceEdge.d.ts.map +1 -1
  34. package/dist/canvas/components/Edges/SequenceEdge.js +18 -12
  35. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.cjs +34 -25
  36. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts +8 -2
  37. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts.map +1 -1
  38. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.js +36 -27
  39. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.cjs +9 -2
  40. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.d.ts.map +1 -1
  41. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.js +10 -3
  42. package/dist/canvas/components/HierarchicalCanvas/index.d.ts +1 -1
  43. package/dist/canvas/components/HierarchicalCanvas/index.d.ts.map +1 -1
  44. package/dist/canvas/components/LoopNode/LoopCanvasNode.cjs +86 -0
  45. package/dist/canvas/components/LoopNode/LoopCanvasNode.d.ts +6 -0
  46. package/dist/canvas/components/LoopNode/LoopCanvasNode.d.ts.map +1 -0
  47. package/dist/canvas/components/LoopNode/LoopCanvasNode.js +52 -0
  48. package/dist/canvas/components/LoopNode/LoopNode.cjs +434 -0
  49. package/dist/canvas/components/LoopNode/LoopNode.constants.cjs +93 -0
  50. package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts +16 -0
  51. package/dist/canvas/components/LoopNode/LoopNode.constants.d.ts.map +1 -0
  52. package/dist/canvas/components/LoopNode/LoopNode.constants.js +17 -0
  53. package/dist/canvas/components/LoopNode/LoopNode.d.ts +5 -0
  54. package/dist/canvas/components/LoopNode/LoopNode.d.ts.map +1 -0
  55. package/dist/canvas/components/LoopNode/LoopNode.helpers.cjs +185 -0
  56. package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts +58 -0
  57. package/dist/canvas/components/LoopNode/LoopNode.helpers.d.ts.map +1 -0
  58. package/dist/canvas/components/LoopNode/LoopNode.helpers.js +124 -0
  59. package/dist/canvas/components/LoopNode/LoopNode.js +400 -0
  60. package/dist/canvas/components/LoopNode/LoopNode.sequence.cjs +433 -0
  61. package/dist/canvas/components/LoopNode/LoopNode.sequence.d.ts +57 -0
  62. package/dist/canvas/components/LoopNode/LoopNode.sequence.d.ts.map +1 -0
  63. package/dist/canvas/components/LoopNode/LoopNode.sequence.js +387 -0
  64. package/dist/canvas/components/LoopNode/LoopNode.types.cjs +18 -0
  65. package/dist/canvas/components/LoopNode/LoopNode.types.d.ts +22 -0
  66. package/dist/canvas/components/LoopNode/LoopNode.types.d.ts.map +1 -0
  67. package/dist/canvas/components/LoopNode/LoopNode.types.js +0 -0
  68. package/dist/canvas/components/LoopNode/LoopNodePreview.cjs +60 -0
  69. package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts +9 -0
  70. package/dist/canvas/components/LoopNode/LoopNodePreview.d.ts.map +1 -0
  71. package/dist/canvas/components/LoopNode/LoopNodePreview.js +26 -0
  72. package/dist/canvas/components/LoopNode/index.cjs +79 -0
  73. package/dist/canvas/components/LoopNode/index.d.ts +5 -0
  74. package/dist/canvas/components/LoopNode/index.d.ts.map +1 -0
  75. package/dist/canvas/components/LoopNode/index.js +4 -0
  76. package/dist/canvas/components/NodeViewportOverlay.cjs +63 -0
  77. package/dist/canvas/components/NodeViewportOverlay.d.ts +22 -0
  78. package/dist/canvas/components/NodeViewportOverlay.d.ts.map +1 -0
  79. package/dist/canvas/components/NodeViewportOverlay.js +29 -0
  80. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.cjs +1 -1
  81. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.js +1 -1
  82. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.cjs +41 -24
  83. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.d.ts.map +1 -1
  84. package/dist/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.js +43 -26
  85. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.cjs +10 -3
  86. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.d.ts +1 -1
  87. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.d.ts.map +1 -1
  88. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.js +10 -3
  89. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.types.d.ts +1 -0
  90. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.types.d.ts.map +1 -1
  91. package/dist/canvas/components/index.cjs +27 -20
  92. package/dist/canvas/components/index.d.ts +1 -0
  93. package/dist/canvas/components/index.d.ts.map +1 -1
  94. package/dist/canvas/components/index.js +1 -0
  95. package/dist/canvas/constants.cjs +4 -0
  96. package/dist/canvas/constants.d.ts +1 -0
  97. package/dist/canvas/constants.d.ts.map +1 -1
  98. package/dist/canvas/constants.js +2 -1
  99. package/dist/canvas/core/NodeTypeRegistry.cjs +50 -26
  100. package/dist/canvas/core/NodeTypeRegistry.d.ts +10 -5
  101. package/dist/canvas/core/NodeTypeRegistry.d.ts.map +1 -1
  102. package/dist/canvas/core/NodeTypeRegistry.js +50 -26
  103. package/dist/canvas/core/useNodeTypeRegistry.cjs +13 -3
  104. package/dist/canvas/core/useNodeTypeRegistry.d.ts +2 -1
  105. package/dist/canvas/core/useNodeTypeRegistry.d.ts.map +1 -1
  106. package/dist/canvas/core/useNodeTypeRegistry.js +11 -4
  107. package/dist/canvas/hooks/useAddNodeOnConnectEnd.cjs +22 -23
  108. package/dist/canvas/hooks/useAddNodeOnConnectEnd.d.ts.map +1 -1
  109. package/dist/canvas/hooks/useAddNodeOnConnectEnd.js +23 -24
  110. package/dist/canvas/hooks/usePreviewNode.cjs +7 -3
  111. package/dist/canvas/hooks/usePreviewNode.d.ts.map +1 -1
  112. package/dist/canvas/hooks/usePreviewNode.js +7 -3
  113. package/dist/canvas/locales/de.cjs +1 -1
  114. package/dist/canvas/locales/de.d.ts.map +1 -1
  115. package/dist/canvas/locales/de.js +1 -1
  116. package/dist/canvas/locales/es-MX.cjs +1 -1
  117. package/dist/canvas/locales/es-MX.d.ts.map +1 -1
  118. package/dist/canvas/locales/es-MX.js +1 -1
  119. package/dist/canvas/locales/es.cjs +1 -1
  120. package/dist/canvas/locales/es.d.ts.map +1 -1
  121. package/dist/canvas/locales/es.js +1 -1
  122. package/dist/canvas/locales/fr.cjs +1 -1
  123. package/dist/canvas/locales/fr.d.ts.map +1 -1
  124. package/dist/canvas/locales/fr.js +1 -1
  125. package/dist/canvas/locales/ja.cjs +1 -1
  126. package/dist/canvas/locales/ja.d.ts.map +1 -1
  127. package/dist/canvas/locales/ja.js +1 -1
  128. package/dist/canvas/locales/ko.cjs +1 -1
  129. package/dist/canvas/locales/ko.d.ts.map +1 -1
  130. package/dist/canvas/locales/ko.js +1 -1
  131. package/dist/canvas/locales/pt-BR.cjs +1 -1
  132. package/dist/canvas/locales/pt-BR.d.ts.map +1 -1
  133. package/dist/canvas/locales/pt-BR.js +1 -1
  134. package/dist/canvas/locales/pt.cjs +1 -1
  135. package/dist/canvas/locales/pt.d.ts.map +1 -1
  136. package/dist/canvas/locales/pt.js +1 -1
  137. package/dist/canvas/locales/tr.cjs +1 -1
  138. package/dist/canvas/locales/tr.d.ts.map +1 -1
  139. package/dist/canvas/locales/tr.js +1 -1
  140. package/dist/canvas/locales/zh-CN.cjs +1 -1
  141. package/dist/canvas/locales/zh-CN.d.ts.map +1 -1
  142. package/dist/canvas/locales/zh-CN.js +1 -1
  143. package/dist/canvas/locales/zh-TW.cjs +1 -1
  144. package/dist/canvas/locales/zh-TW.d.ts.map +1 -1
  145. package/dist/canvas/locales/zh-TW.js +1 -1
  146. package/dist/canvas/schema/node-definition/handle.cjs +10 -2
  147. package/dist/canvas/schema/node-definition/handle.d.ts +9 -0
  148. package/dist/canvas/schema/node-definition/handle.d.ts.map +1 -1
  149. package/dist/canvas/schema/node-definition/handle.js +6 -1
  150. package/dist/canvas/schema/node-definition/index.cjs +4 -1
  151. package/dist/canvas/schema/node-definition/index.d.ts +3 -3
  152. package/dist/canvas/schema/node-definition/index.d.ts.map +1 -1
  153. package/dist/canvas/schema/node-definition/index.js +2 -2
  154. package/dist/canvas/schema/node-definition/node-manifest.d.ts +4 -0
  155. package/dist/canvas/schema/node-definition/node-manifest.d.ts.map +1 -1
  156. package/dist/canvas/storybook-utils/hooks/useCanvasStory.d.ts +6 -0
  157. package/dist/canvas/storybook-utils/hooks/useCanvasStory.d.ts.map +1 -1
  158. package/dist/canvas/storybook-utils/manifests/index.d.ts +1 -0
  159. package/dist/canvas/storybook-utils/manifests/index.d.ts.map +1 -1
  160. package/dist/canvas/storybook-utils/manifests/node-definitions.d.ts.map +1 -1
  161. package/dist/canvas/storybook-utils/mocks/nodes.d.ts +1 -1
  162. package/dist/canvas/storybook-utils/mocks/nodes.d.ts.map +1 -1
  163. package/dist/canvas/styles/reactflow-reset.css +2 -2
  164. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  165. package/dist/canvas/utils/NodeUtils.cjs +25 -9
  166. package/dist/canvas/utils/NodeUtils.d.ts +7 -0
  167. package/dist/canvas/utils/NodeUtils.d.ts.map +1 -1
  168. package/dist/canvas/utils/NodeUtils.js +13 -6
  169. package/dist/canvas/utils/collapse.cjs +13 -6
  170. package/dist/canvas/utils/collapse.d.ts +2 -2
  171. package/dist/canvas/utils/collapse.d.ts.map +1 -1
  172. package/dist/canvas/utils/collapse.js +9 -2
  173. package/dist/canvas/utils/container-sizing.cjs +169 -0
  174. package/dist/canvas/utils/container-sizing.d.ts +23 -0
  175. package/dist/canvas/utils/container-sizing.d.ts.map +1 -0
  176. package/dist/canvas/utils/container-sizing.js +132 -0
  177. package/dist/canvas/utils/createPreviewGraph.cjs +126 -0
  178. package/dist/canvas/utils/createPreviewGraph.d.ts +37 -0
  179. package/dist/canvas/utils/createPreviewGraph.d.ts.map +1 -0
  180. package/dist/canvas/utils/createPreviewGraph.js +83 -0
  181. package/dist/canvas/utils/createPreviewNode.cjs +59 -12
  182. package/dist/canvas/utils/createPreviewNode.d.ts +10 -2
  183. package/dist/canvas/utils/createPreviewNode.d.ts.map +1 -1
  184. package/dist/canvas/utils/createPreviewNode.js +50 -12
  185. package/dist/canvas/utils/index.cjs +40 -26
  186. package/dist/canvas/utils/index.d.ts +3 -1
  187. package/dist/canvas/utils/index.d.ts.map +1 -1
  188. package/dist/canvas/utils/index.js +3 -1
  189. package/dist/canvas/utils/manifest-resolver.cjs +8 -0
  190. package/dist/canvas/utils/manifest-resolver.d.ts +1 -0
  191. package/dist/canvas/utils/manifest-resolver.d.ts.map +1 -1
  192. package/dist/canvas/utils/manifest-resolver.js +6 -1
  193. package/dist/material/components/ap-tool-call/locales/de.cjs +1 -1
  194. package/dist/material/components/ap-tool-call/locales/de.d.ts.map +1 -1
  195. package/dist/material/components/ap-tool-call/locales/de.js +1 -1
  196. package/dist/material/components/ap-tool-call/locales/es-MX.cjs +1 -1
  197. package/dist/material/components/ap-tool-call/locales/es-MX.js +1 -1
  198. package/dist/material/components/ap-tool-call/locales/es.cjs +1 -1
  199. package/dist/material/components/ap-tool-call/locales/es.js +1 -1
  200. package/dist/material/components/ap-tool-call/locales/fr.cjs +1 -1
  201. package/dist/material/components/ap-tool-call/locales/fr.d.ts.map +1 -1
  202. package/dist/material/components/ap-tool-call/locales/fr.js +1 -1
  203. package/dist/material/components/ap-tool-call/locales/ja.cjs +1 -1
  204. package/dist/material/components/ap-tool-call/locales/ja.d.ts.map +1 -1
  205. package/dist/material/components/ap-tool-call/locales/ja.js +1 -1
  206. package/dist/material/components/ap-tool-call/locales/ko.cjs +1 -1
  207. package/dist/material/components/ap-tool-call/locales/ko.d.ts.map +1 -1
  208. package/dist/material/components/ap-tool-call/locales/ko.js +1 -1
  209. package/dist/material/components/ap-tool-call/locales/pt-BR.cjs +1 -1
  210. package/dist/material/components/ap-tool-call/locales/pt-BR.d.ts.map +1 -1
  211. package/dist/material/components/ap-tool-call/locales/pt-BR.js +1 -1
  212. package/dist/material/components/ap-tool-call/locales/pt.cjs +1 -1
  213. package/dist/material/components/ap-tool-call/locales/pt.d.ts.map +1 -1
  214. package/dist/material/components/ap-tool-call/locales/pt.js +1 -1
  215. package/dist/material/components/ap-tool-call/locales/tr.cjs +1 -1
  216. package/dist/material/components/ap-tool-call/locales/tr.d.ts.map +1 -1
  217. package/dist/material/components/ap-tool-call/locales/tr.js +1 -1
  218. package/dist/material/components/ap-tool-call/locales/zh-CN.cjs +1 -1
  219. package/dist/material/components/ap-tool-call/locales/zh-CN.d.ts.map +1 -1
  220. package/dist/material/components/ap-tool-call/locales/zh-CN.js +1 -1
  221. package/dist/material/components/ap-tool-call/locales/zh-TW.cjs +1 -1
  222. package/dist/material/components/ap-tool-call/locales/zh-TW.d.ts.map +1 -1
  223. package/dist/material/components/ap-tool-call/locales/zh-TW.js +1 -1
  224. package/package.json +3 -3
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ NodeViewportOverlay: ()=>NodeViewportOverlay
28
+ });
29
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
30
+ const react_cjs_namespaceObject = require("../xyflow/react.cjs");
31
+ const NODE_VIEWPORT_OVERLAY_Z_INDEX = {
32
+ nodeHandleAffordance: 1002,
33
+ nodeToolbar: 1003
34
+ };
35
+ function NodeViewportOverlay({ nodeId, anchor, layer, children }) {
36
+ const internalNode = (0, react_cjs_namespaceObject.useInternalNode)(nodeId);
37
+ const positionAbsolute = internalNode?.internals.positionAbsolute;
38
+ const width = anchor?.width ?? internalNode?.measured?.width ?? internalNode?.width;
39
+ const height = anchor?.height ?? internalNode?.measured?.height ?? internalNode?.height;
40
+ if (!positionAbsolute || null == width || null == height) return children;
41
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.ViewportPortal, {
42
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
43
+ className: "absolute pointer-events-none",
44
+ style: {
45
+ position: 'absolute',
46
+ left: positionAbsolute.x + (anchor?.left ?? 0),
47
+ top: positionAbsolute.y + (anchor?.top ?? 0),
48
+ width,
49
+ height,
50
+ transform: anchor?.transform,
51
+ zIndex: layer ? NODE_VIEWPORT_OVERLAY_Z_INDEX[layer] : void 0
52
+ },
53
+ children: children
54
+ })
55
+ });
56
+ }
57
+ exports.NodeViewportOverlay = __webpack_exports__.NodeViewportOverlay;
58
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
59
+ "NodeViewportOverlay"
60
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
61
+ Object.defineProperty(exports, '__esModule', {
62
+ value: true
63
+ });
@@ -0,0 +1,22 @@
1
+ import type { CSSProperties, ReactNode } from 'react';
2
+ declare const NODE_VIEWPORT_OVERLAY_Z_INDEX: {
3
+ readonly nodeHandleAffordance: 1002;
4
+ readonly nodeToolbar: 1003;
5
+ };
6
+ type NodeViewportOverlayLayer = keyof typeof NODE_VIEWPORT_OVERLAY_Z_INDEX;
7
+ export type NodeViewportOverlayAnchor = {
8
+ left?: number;
9
+ top?: number;
10
+ width?: number;
11
+ height?: number;
12
+ transform?: CSSProperties['transform'];
13
+ };
14
+ export type NodeViewportOverlayProps = {
15
+ nodeId: string;
16
+ anchor?: NodeViewportOverlayAnchor;
17
+ layer?: NodeViewportOverlayLayer;
18
+ children: ReactNode;
19
+ };
20
+ export declare function NodeViewportOverlay({ nodeId, anchor, layer, children }: NodeViewportOverlayProps): string | number | bigint | boolean | import("react/jsx-runtime").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
21
+ export {};
22
+ //# sourceMappingURL=NodeViewportOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeViewportOverlay.d.ts","sourceRoot":"","sources":["../../../src/canvas/components/NodeViewportOverlay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAItD,QAAA,MAAM,6BAA6B;;;CAGzB,CAAC;AAEX,KAAK,wBAAwB,GAAG,MAAM,OAAO,6BAA6B,CAAC;AAE3E,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,KAAK,CAAC,EAAE,wBAAwB,CAAC;IACjC,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,wBAAwB,2UA4BhG"}
@@ -0,0 +1,29 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { ViewportPortal, useInternalNode } from "../xyflow/react.js";
3
+ const NODE_VIEWPORT_OVERLAY_Z_INDEX = {
4
+ nodeHandleAffordance: 1002,
5
+ nodeToolbar: 1003
6
+ };
7
+ function NodeViewportOverlay({ nodeId, anchor, layer, children }) {
8
+ const internalNode = useInternalNode(nodeId);
9
+ const positionAbsolute = internalNode?.internals.positionAbsolute;
10
+ const width = anchor?.width ?? internalNode?.measured?.width ?? internalNode?.width;
11
+ const height = anchor?.height ?? internalNode?.measured?.height ?? internalNode?.height;
12
+ if (!positionAbsolute || null == width || null == height) return children;
13
+ return /*#__PURE__*/ jsx(ViewportPortal, {
14
+ children: /*#__PURE__*/ jsx("div", {
15
+ className: "absolute pointer-events-none",
16
+ style: {
17
+ position: 'absolute',
18
+ left: positionAbsolute.x + (anchor?.left ?? 0),
19
+ top: positionAbsolute.y + (anchor?.top ?? 0),
20
+ width,
21
+ height,
22
+ transform: anchor?.transform,
23
+ zIndex: layer ? NODE_VIEWPORT_OVERLAY_Z_INDEX[layer] : void 0
24
+ },
25
+ children: children
26
+ })
27
+ });
28
+ }
29
+ export { NodeViewportOverlay };
@@ -38,7 +38,7 @@ const EdgeToolbarComponent = ({ edgeId, visible, positioning, config, onMouseEnt
38
38
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_cjs_namespaceObject.EdgeLabelRenderer, {
39
39
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_namespaceObject.AnimatePresence, {
40
40
  children: visible && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_namespaceObject.motion.div, {
41
- className: "nodrag nopan absolute top-0 left-0 pointer-events-auto z-[1000] flex flex-row items-center gap-1",
41
+ className: "nodrag nopan absolute top-0 left-0 z-1004 pointer-events-auto flex flex-row items-center gap-1",
42
42
  initial: {
43
43
  opacity: 0
44
44
  },
@@ -10,7 +10,7 @@ const EdgeToolbarComponent = ({ edgeId, visible, positioning, config, onMouseEnt
10
10
  return /*#__PURE__*/ jsx(EdgeLabelRenderer, {
11
11
  children: /*#__PURE__*/ jsx(AnimatePresence, {
12
12
  children: visible && /*#__PURE__*/ jsx(motion.div, {
13
- className: "nodrag nopan absolute top-0 left-0 pointer-events-auto z-[1000] flex flex-row items-center gap-1",
13
+ className: "nodrag nopan absolute top-0 left-0 z-1004 pointer-events-auto flex flex-row items-center gap-1",
14
14
  initial: {
15
15
  opacity: 0
16
16
  },
@@ -29,17 +29,28 @@ __webpack_require__.d(__webpack_exports__, {
29
29
  const react_cjs_namespaceObject = require("../../../xyflow/react.cjs");
30
30
  const external_react_namespaceObject = require("react");
31
31
  const external_constants_cjs_namespaceObject = require("../../../constants.cjs");
32
+ const index_cjs_namespaceObject = require("../../../core/index.cjs");
33
+ const createPreviewGraph_cjs_namespaceObject = require("../../../utils/createPreviewGraph.cjs");
32
34
  const createPreviewNode_cjs_namespaceObject = require("../../../utils/createPreviewNode.cjs");
33
35
  const BaseCanvasModeProvider_cjs_namespaceObject = require("../../BaseCanvas/BaseCanvasModeProvider.cjs");
36
+ const LoopNode_sequence_cjs_namespaceObject = require("../../LoopNode/LoopNode.sequence.cjs");
34
37
  const external_useEdgeToolbarPositioning_cjs_namespaceObject = require("./useEdgeToolbarPositioning.cjs");
35
38
  function useEdgeToolbarState({ edgeId, pathElementRef, isHovered, source, target, sourceHandleId, targetHandleId, sourcePosition, targetPosition, ignoredNodeTypes }) {
36
39
  const reactFlow = (0, react_cjs_namespaceObject.useReactFlow)();
40
+ const registry = (0, index_cjs_namespaceObject.useOptionalNodeTypeRegistry)();
37
41
  const { mode } = (0, BaseCanvasModeProvider_cjs_namespaceObject.useBaseCanvasMode)();
38
42
  const isDesignMode = 'design' === mode;
39
- const isPreviewEdge = source === external_constants_cjs_namespaceObject.PREVIEW_NODE_ID || target === external_constants_cjs_namespaceObject.PREVIEW_NODE_ID;
43
+ const resolverOptions = (0, external_react_namespaceObject.useMemo)(()=>(0, LoopNode_sequence_cjs_namespaceObject.createLoopSequenceResolverOptions)(registry), [
44
+ registry
45
+ ]);
46
+ const previewEdge = (0, createPreviewNode_cjs_namespaceObject.isPreviewEdge)({
47
+ id: edgeId,
48
+ source,
49
+ target
50
+ });
40
51
  const { positionData, handleMouseMoveOnPath } = (0, external_useEdgeToolbarPositioning_cjs_namespaceObject.useEdgeToolbarPositioning)({
41
52
  pathElementRef,
42
- isEnabled: isHovered && isDesignMode && !isPreviewEdge,
53
+ isEnabled: isHovered && isDesignMode && !previewEdge,
43
54
  targetPosition
44
55
  });
45
56
  const handleAddNodeOnEdge = (0, external_react_namespaceObject.useCallback)((position)=>{
@@ -51,26 +62,31 @@ function useEdgeToolbarState({ edgeId, pathElementRef, isHovered, source, target
51
62
  targetHandle: targetHandleId,
52
63
  type: 'default'
53
64
  };
54
- const preview = (0, createPreviewNode_cjs_namespaceObject.createPreviewNode)(source, sourceHandleId || 'output', reactFlow, position, {
55
- originalEdge
56
- }, 'source', void 0, sourcePosition, ignoredNodeTypes);
57
- if (!preview) return;
58
- const secondEdge = {
59
- id: `${external_constants_cjs_namespaceObject.PREVIEW_NODE_ID}-${target}`,
60
- source: external_constants_cjs_namespaceObject.PREVIEW_NODE_ID,
61
- sourceHandle: 'output',
62
- target,
63
- targetHandle: targetHandleId,
64
- type: 'default'
65
- };
66
- (0, createPreviewNode_cjs_namespaceObject.applyPreviewToReactFlow)(preview, reactFlow);
67
- reactFlow.setEdges((edges)=>[
68
- ...edges.filter((e)=>e.id !== edgeId).map((e)=>({
69
- ...e,
70
- selected: false
71
- })),
72
- secondEdge
73
- ]);
65
+ const loopSequencePlacement = (0, LoopNode_sequence_cjs_namespaceObject.createLoopSequencePreviewPlacement)({
66
+ sourceNodeId: source,
67
+ targetNodeId: target,
68
+ reactFlowInstance: reactFlow,
69
+ resolverOptions
70
+ });
71
+ (0, createPreviewGraph_cjs_namespaceObject.showPreviewGraph)({
72
+ sourceNodeId: source,
73
+ sourceHandleId: sourceHandleId ?? external_constants_cjs_namespaceObject.DEFAULT_SOURCE_HANDLE_ID,
74
+ reactFlowInstance: reactFlow,
75
+ position: loopSequencePlacement?.centerPosition ?? position,
76
+ positionMode: loopSequencePlacement ? 'center' : 'drop',
77
+ data: {
78
+ originalEdge
79
+ },
80
+ sourceHandleType: 'source',
81
+ handlePosition: sourcePosition,
82
+ ignoredNodeTypes: ignoredNodeTypes ?? [],
83
+ targetNodeId: target,
84
+ targetHandleId,
85
+ containerId: loopSequencePlacement?.containerId,
86
+ removedEdgeIds: [
87
+ edgeId
88
+ ]
89
+ });
74
90
  }, [
75
91
  sourcePosition,
76
92
  source,
@@ -79,7 +95,8 @@ function useEdgeToolbarState({ edgeId, pathElementRef, isHovered, source, target
79
95
  target,
80
96
  targetHandleId,
81
97
  edgeId,
82
- ignoredNodeTypes
98
+ ignoredNodeTypes,
99
+ resolverOptions
83
100
  ]);
84
101
  const config = (0, external_react_namespaceObject.useMemo)(()=>({
85
102
  actions: [
@@ -96,7 +113,7 @@ function useEdgeToolbarState({ edgeId, pathElementRef, isHovered, source, target
96
113
  }), [
97
114
  handleAddNodeOnEdge
98
115
  ]);
99
- const showToolbar = isHovered && isDesignMode && null !== positionData && !isPreviewEdge;
116
+ const showToolbar = isHovered && isDesignMode && null !== positionData && !previewEdge;
100
117
  return {
101
118
  showToolbar,
102
119
  toolbarPositioning: positionData,
@@ -1 +1 @@
1
- {"version":3,"file":"useEdgeToolbarState.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,QAAQ,EAAgB,MAAM,0CAA0C,CAAC;AAKlG,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAGtF,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC9D,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,QAAQ,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACnD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CAC3D;AAED,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,cAAc,EACd,SAAS,EACT,MAAM,EACN,MAAM,EACN,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,EAAE,wBAAwB,GAAG,gBAAgB,CAoG7C"}
1
+ {"version":3,"file":"useEdgeToolbarState.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Toolbar/EdgeToolbar/useEdgeToolbarState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,QAAQ,EAAgB,MAAM,0CAA0C,CAAC;AAWlG,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAGtF,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC9D,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,QAAQ,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACnD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CAC3D;AAED,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,cAAc,EACd,SAAS,EACT,MAAM,EACN,MAAM,EACN,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,EAAE,wBAAwB,GAAG,gBAAgB,CA2F7C"}
@@ -1,17 +1,28 @@
1
1
  import { useReactFlow } from "../../../xyflow/react.js";
2
2
  import { useCallback, useMemo } from "react";
3
- import { PREVIEW_NODE_ID } from "../../../constants.js";
4
- import { applyPreviewToReactFlow, createPreviewNode } from "../../../utils/createPreviewNode.js";
3
+ import { DEFAULT_SOURCE_HANDLE_ID } from "../../../constants.js";
4
+ import { useOptionalNodeTypeRegistry } from "../../../core/index.js";
5
+ import { showPreviewGraph } from "../../../utils/createPreviewGraph.js";
6
+ import { isPreviewEdge } from "../../../utils/createPreviewNode.js";
5
7
  import { useBaseCanvasMode } from "../../BaseCanvas/BaseCanvasModeProvider.js";
8
+ import { createLoopSequencePreviewPlacement, createLoopSequenceResolverOptions } from "../../LoopNode/LoopNode.sequence.js";
6
9
  import { useEdgeToolbarPositioning } from "./useEdgeToolbarPositioning.js";
7
10
  function useEdgeToolbarState({ edgeId, pathElementRef, isHovered, source, target, sourceHandleId, targetHandleId, sourcePosition, targetPosition, ignoredNodeTypes }) {
8
11
  const reactFlow = useReactFlow();
12
+ const registry = useOptionalNodeTypeRegistry();
9
13
  const { mode } = useBaseCanvasMode();
10
14
  const isDesignMode = 'design' === mode;
11
- const isPreviewEdge = source === PREVIEW_NODE_ID || target === PREVIEW_NODE_ID;
15
+ const resolverOptions = useMemo(()=>createLoopSequenceResolverOptions(registry), [
16
+ registry
17
+ ]);
18
+ const previewEdge = isPreviewEdge({
19
+ id: edgeId,
20
+ source,
21
+ target
22
+ });
12
23
  const { positionData, handleMouseMoveOnPath } = useEdgeToolbarPositioning({
13
24
  pathElementRef,
14
- isEnabled: isHovered && isDesignMode && !isPreviewEdge,
25
+ isEnabled: isHovered && isDesignMode && !previewEdge,
15
26
  targetPosition
16
27
  });
17
28
  const handleAddNodeOnEdge = useCallback((position)=>{
@@ -23,26 +34,31 @@ function useEdgeToolbarState({ edgeId, pathElementRef, isHovered, source, target
23
34
  targetHandle: targetHandleId,
24
35
  type: 'default'
25
36
  };
26
- const preview = createPreviewNode(source, sourceHandleId || 'output', reactFlow, position, {
27
- originalEdge
28
- }, 'source', void 0, sourcePosition, ignoredNodeTypes);
29
- if (!preview) return;
30
- const secondEdge = {
31
- id: `${PREVIEW_NODE_ID}-${target}`,
32
- source: PREVIEW_NODE_ID,
33
- sourceHandle: 'output',
34
- target,
35
- targetHandle: targetHandleId,
36
- type: 'default'
37
- };
38
- applyPreviewToReactFlow(preview, reactFlow);
39
- reactFlow.setEdges((edges)=>[
40
- ...edges.filter((e)=>e.id !== edgeId).map((e)=>({
41
- ...e,
42
- selected: false
43
- })),
44
- secondEdge
45
- ]);
37
+ const loopSequencePlacement = createLoopSequencePreviewPlacement({
38
+ sourceNodeId: source,
39
+ targetNodeId: target,
40
+ reactFlowInstance: reactFlow,
41
+ resolverOptions
42
+ });
43
+ showPreviewGraph({
44
+ sourceNodeId: source,
45
+ sourceHandleId: sourceHandleId ?? DEFAULT_SOURCE_HANDLE_ID,
46
+ reactFlowInstance: reactFlow,
47
+ position: loopSequencePlacement?.centerPosition ?? position,
48
+ positionMode: loopSequencePlacement ? 'center' : 'drop',
49
+ data: {
50
+ originalEdge
51
+ },
52
+ sourceHandleType: 'source',
53
+ handlePosition: sourcePosition,
54
+ ignoredNodeTypes: ignoredNodeTypes ?? [],
55
+ targetNodeId: target,
56
+ targetHandleId,
57
+ containerId: loopSequencePlacement?.containerId,
58
+ removedEdgeIds: [
59
+ edgeId
60
+ ]
61
+ });
46
62
  }, [
47
63
  sourcePosition,
48
64
  source,
@@ -51,7 +67,8 @@ function useEdgeToolbarState({ edgeId, pathElementRef, isHovered, source, target
51
67
  target,
52
68
  targetHandleId,
53
69
  edgeId,
54
- ignoredNodeTypes
70
+ ignoredNodeTypes,
71
+ resolverOptions
55
72
  ]);
56
73
  const config = useMemo(()=>({
57
74
  actions: [
@@ -68,7 +85,7 @@ function useEdgeToolbarState({ edgeId, pathElementRef, isHovered, source, target
68
85
  }), [
69
86
  handleAddNodeOnEdge
70
87
  ]);
71
- const showToolbar = isHovered && isDesignMode && null !== positionData && !isPreviewEdge;
88
+ const showToolbar = isHovered && isDesignMode && null !== positionData && !previewEdge;
72
89
  return {
73
90
  showToolbar,
74
91
  toolbarPositioning: positionData,
@@ -32,6 +32,7 @@ const react_namespaceObject = require("motion/react");
32
32
  const external_react_namespaceObject = require("react");
33
33
  const icon_registry_cjs_namespaceObject = require("../../../utils/icon-registry.cjs");
34
34
  const external_CanvasTooltip_cjs_namespaceObject = require("../../CanvasTooltip.cjs");
35
+ const external_NodeViewportOverlay_cjs_namespaceObject = require("../../NodeViewportOverlay.cjs");
35
36
  const index_cjs_namespaceObject = require("../shared/index.cjs");
36
37
  const external_NodeToolbar_utils_cjs_namespaceObject = require("./NodeToolbar.utils.cjs");
37
38
  const external_useToolbarState_cjs_namespaceObject = require("./useToolbarState.cjs");
@@ -58,11 +59,11 @@ const CONTAINER_DIRECTION_CLASS = {
58
59
  const SEPARATOR_BASE_CLASS = 'flex-[0_0_auto] bg-(--canvas-background-overlay) self-center';
59
60
  const SEPARATOR_VERTICAL_CLASS = 'w-px h-5';
60
61
  const SEPARATOR_HORIZONTAL_CLASS = 'w-full h-px';
61
- const DROPDOWN_MENU_CLASS = "absolute top-[-2px] left-[calc(100%+4px)] min-w-[180px] bg-(--canvas-background-raised) border border-(--canvas-background-overlay) rounded-md shadow-[0_4px_12px_rgba(0,0,0,0.08),0_2px_4px_rgba(0,0,0,0.04)] p-1 z-[1000] pointer-events-auto";
62
+ const DROPDOWN_MENU_CLASS = "absolute top-[-2px] left-[calc(100%+4px)] min-w-[180px] bg-(--canvas-background-raised) border border-(--canvas-background-overlay) rounded-md shadow-[0_4px_12px_rgba(0,0,0,0.08),0_2px_4px_rgba(0,0,0,0.04)] p-1 pointer-events-auto";
62
63
  const DROPDOWN_ITEM_BASE_CLASS = "flex items-center gap-3 w-full py-2 px-3 bg-transparent border-none rounded-[4px] text-sm text-(--canvas-foreground) text-left [transition:background_0.15s_ease] enabled:hover:bg-(--canvas-background-hover) future:enabled:hover:bg-(--canvas-background-overlay) [&>svg]:shrink-0 [&>svg]:text-(--canvas-foreground)";
63
64
  const DROPDOWN_ITEM_DISABLED_CLASS = 'cursor-not-allowed opacity-40 pointer-events-none';
64
65
  const DROPDOWN_ITEM_ENABLED_CLASS = 'cursor-pointer opacity-100';
65
- const NodeToolbarComponent = ({ nodeId, config, expanded, hidden, offsetToolbar })=>{
66
+ const NodeToolbarComponent = ({ nodeId, config, expanded, hidden, offsetToolbar, portalToNodeOverlay })=>{
66
67
  const { isDropdownOpen, setIsDropdownOpen, dropdownRef, buttonRef, actionsToDisplay, displayState, shouldShowOverflow, overflowActionsToDisplay, separatorOrientation, toggleDropdown } = (0, external_useToolbarState_cjs_namespaceObject.useToolbarState)({
67
68
  config,
68
69
  expanded,
@@ -117,7 +118,7 @@ const NodeToolbarComponent = ({ nodeId, config, expanded, hidden, offsetToolbar
117
118
  displayState
118
119
  ]);
119
120
  if (0 === config.actions.length && (!config.overflowActions || 0 === config.overflowActions.length)) return null;
120
- return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_namespaceObject.AnimatePresence, {
121
+ const toolbarContent = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_namespaceObject.AnimatePresence, {
121
122
  children: 'hidden' !== displayState && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
122
123
  className: positionerClassName,
123
124
  style: offsetStyle,
@@ -233,6 +234,12 @@ const NodeToolbarComponent = ({ nodeId, config, expanded, hidden, offsetToolbar
233
234
  })
234
235
  })
235
236
  });
237
+ if (portalToNodeOverlay) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_NodeViewportOverlay_cjs_namespaceObject.NodeViewportOverlay, {
238
+ nodeId: nodeId,
239
+ layer: "nodeToolbar",
240
+ children: toolbarContent
241
+ });
242
+ return toolbarContent;
236
243
  };
237
244
  const NodeToolbar = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(NodeToolbarComponent);
238
245
  exports.NodeToolbar = __webpack_exports__.NodeToolbar;
@@ -1,3 +1,3 @@
1
1
  import type { NodeToolbarProps } from './NodeToolbar.types';
2
- export declare const NodeToolbar: import("react").MemoExoticComponent<({ nodeId, config, expanded, hidden, offsetToolbar, }: NodeToolbarProps) => import("react/jsx-runtime").JSX.Element | null>;
2
+ export declare const NodeToolbar: import("react").MemoExoticComponent<({ nodeId, config, expanded, hidden, offsetToolbar, portalToNodeOverlay, }: NodeToolbarProps) => import("react/jsx-runtime").JSX.Element | null>;
3
3
  //# sourceMappingURL=NodeToolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeToolbar.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Toolbar/NodeToolbar/NodeToolbar.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AA8O5D,eAAO,MAAM,WAAW,6FAhLrB,gBAAgB,oDAgLkC,CAAC"}
1
+ {"version":3,"file":"NodeToolbar.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Toolbar/NodeToolbar/NodeToolbar.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAyP5D,eAAO,MAAM,WAAW,kHA1LrB,gBAAgB,oDA0LkC,CAAC"}
@@ -4,6 +4,7 @@ import { AnimatePresence, motion } from "motion/react";
4
4
  import { memo, useMemo } from "react";
5
5
  import { CanvasIcon } from "../../../utils/icon-registry.js";
6
6
  import { CanvasTooltip } from "../../CanvasTooltip.js";
7
+ import { NodeViewportOverlay } from "../../NodeViewportOverlay.js";
7
8
  import { ToolbarButton, ToolbarIconButton } from "../shared/index.js";
8
9
  import { isSeparator } from "./NodeToolbar.utils.js";
9
10
  import { useToolbarState } from "./useToolbarState.js";
@@ -30,11 +31,11 @@ const CONTAINER_DIRECTION_CLASS = {
30
31
  const SEPARATOR_BASE_CLASS = 'flex-[0_0_auto] bg-(--canvas-background-overlay) self-center';
31
32
  const SEPARATOR_VERTICAL_CLASS = 'w-px h-5';
32
33
  const SEPARATOR_HORIZONTAL_CLASS = 'w-full h-px';
33
- const DROPDOWN_MENU_CLASS = "absolute top-[-2px] left-[calc(100%+4px)] min-w-[180px] bg-(--canvas-background-raised) border border-(--canvas-background-overlay) rounded-md shadow-[0_4px_12px_rgba(0,0,0,0.08),0_2px_4px_rgba(0,0,0,0.04)] p-1 z-[1000] pointer-events-auto";
34
+ const DROPDOWN_MENU_CLASS = "absolute top-[-2px] left-[calc(100%+4px)] min-w-[180px] bg-(--canvas-background-raised) border border-(--canvas-background-overlay) rounded-md shadow-[0_4px_12px_rgba(0,0,0,0.08),0_2px_4px_rgba(0,0,0,0.04)] p-1 pointer-events-auto";
34
35
  const DROPDOWN_ITEM_BASE_CLASS = "flex items-center gap-3 w-full py-2 px-3 bg-transparent border-none rounded-[4px] text-sm text-(--canvas-foreground) text-left [transition:background_0.15s_ease] enabled:hover:bg-(--canvas-background-hover) future:enabled:hover:bg-(--canvas-background-overlay) [&>svg]:shrink-0 [&>svg]:text-(--canvas-foreground)";
35
36
  const DROPDOWN_ITEM_DISABLED_CLASS = 'cursor-not-allowed opacity-40 pointer-events-none';
36
37
  const DROPDOWN_ITEM_ENABLED_CLASS = 'cursor-pointer opacity-100';
37
- const NodeToolbarComponent = ({ nodeId, config, expanded, hidden, offsetToolbar })=>{
38
+ const NodeToolbarComponent = ({ nodeId, config, expanded, hidden, offsetToolbar, portalToNodeOverlay })=>{
38
39
  const { isDropdownOpen, setIsDropdownOpen, dropdownRef, buttonRef, actionsToDisplay, displayState, shouldShowOverflow, overflowActionsToDisplay, separatorOrientation, toggleDropdown } = useToolbarState({
39
40
  config,
40
41
  expanded,
@@ -89,7 +90,7 @@ const NodeToolbarComponent = ({ nodeId, config, expanded, hidden, offsetToolbar
89
90
  displayState
90
91
  ]);
91
92
  if (0 === config.actions.length && (!config.overflowActions || 0 === config.overflowActions.length)) return null;
92
- return /*#__PURE__*/ jsx(AnimatePresence, {
93
+ const toolbarContent = /*#__PURE__*/ jsx(AnimatePresence, {
93
94
  children: 'hidden' !== displayState && /*#__PURE__*/ jsx("div", {
94
95
  className: positionerClassName,
95
96
  style: offsetStyle,
@@ -205,6 +206,12 @@ const NodeToolbarComponent = ({ nodeId, config, expanded, hidden, offsetToolbar
205
206
  })
206
207
  })
207
208
  });
209
+ if (portalToNodeOverlay) return /*#__PURE__*/ jsx(NodeViewportOverlay, {
210
+ nodeId: nodeId,
211
+ layer: "nodeToolbar",
212
+ children: toolbarContent
213
+ });
214
+ return toolbarContent;
208
215
  };
209
216
  const NodeToolbar = /*#__PURE__*/ memo(NodeToolbarComponent);
210
217
  export { NodeToolbar };
@@ -12,5 +12,6 @@ export interface NodeToolbarProps {
12
12
  expanded: boolean;
13
13
  hidden?: boolean;
14
14
  offsetToolbar?: boolean;
15
+ portalToNodeOverlay?: boolean;
15
16
  }
16
17
  //# sourceMappingURL=NodeToolbar.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeToolbar.types.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Toolbar/NodeToolbar/NodeToolbar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAC/C,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAElB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
1
+ {"version":3,"file":"NodeToolbar.types.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Toolbar/NodeToolbar/NodeToolbar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAC/C,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAElB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B"}
@@ -36,6 +36,9 @@ var __webpack_modules__ = {
36
36
  "./HierarchicalCanvas" (module) {
37
37
  module.exports = require("./HierarchicalCanvas/index.cjs");
38
38
  },
39
+ "./LoopNode?4ffc" (module) {
40
+ module.exports = require("./LoopNode/index.cjs");
41
+ },
39
42
  "./MiniCanvasNavigator?564d" (module) {
40
43
  module.exports = require("./MiniCanvasNavigator/index.cjs");
41
44
  },
@@ -158,45 +161,49 @@ var __webpack_exports__ = {};
158
161
  var __rspack_reexport = {};
159
162
  for(const __rspack_import_key in _HierarchicalCanvas__rspack_import_11)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_HierarchicalCanvas__rspack_import_11[__rspack_import_key];
160
163
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
161
- var _MiniCanvasNavigator__rspack_import_12 = __webpack_require__("./MiniCanvasNavigator?564d");
164
+ var _LoopNode__rspack_import_12 = __webpack_require__("./LoopNode?4ffc");
165
+ var __rspack_reexport = {};
166
+ for(const __rspack_import_key in _LoopNode__rspack_import_12)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_LoopNode__rspack_import_12[__rspack_import_key];
167
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
168
+ var _MiniCanvasNavigator__rspack_import_13 = __webpack_require__("./MiniCanvasNavigator?564d");
162
169
  var __rspack_reexport = {};
163
- for(const __rspack_import_key in _MiniCanvasNavigator__rspack_import_12)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_MiniCanvasNavigator__rspack_import_12[__rspack_import_key];
170
+ for(const __rspack_import_key in _MiniCanvasNavigator__rspack_import_13)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_MiniCanvasNavigator__rspack_import_13[__rspack_import_key];
164
171
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
165
- var _NodeContextMenu__rspack_import_13 = __webpack_require__("./NodeContextMenu");
172
+ var _NodeContextMenu__rspack_import_14 = __webpack_require__("./NodeContextMenu");
166
173
  var __rspack_reexport = {};
167
- for(const __rspack_import_key in _NodeContextMenu__rspack_import_13)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_NodeContextMenu__rspack_import_13[__rspack_import_key];
174
+ for(const __rspack_import_key in _NodeContextMenu__rspack_import_14)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_NodeContextMenu__rspack_import_14[__rspack_import_key];
168
175
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
169
- var _NodeInspector__rspack_import_14 = __webpack_require__("./NodeInspector");
176
+ var _NodeInspector__rspack_import_15 = __webpack_require__("./NodeInspector");
170
177
  var __rspack_reexport = {};
171
- for(const __rspack_import_key in _NodeInspector__rspack_import_14)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_NodeInspector__rspack_import_14[__rspack_import_key];
178
+ for(const __rspack_import_key in _NodeInspector__rspack_import_15)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_NodeInspector__rspack_import_15[__rspack_import_key];
172
179
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
173
- var _NodePropertiesPanel__rspack_import_15 = __webpack_require__("./NodePropertiesPanel?a3e8");
180
+ var _NodePropertiesPanel__rspack_import_16 = __webpack_require__("./NodePropertiesPanel?a3e8");
174
181
  var __rspack_reexport = {};
175
- for(const __rspack_import_key in _NodePropertiesPanel__rspack_import_15)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_NodePropertiesPanel__rspack_import_15[__rspack_import_key];
182
+ for(const __rspack_import_key in _NodePropertiesPanel__rspack_import_16)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_NodePropertiesPanel__rspack_import_16[__rspack_import_key];
176
183
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
177
- var _StageNode__rspack_import_16 = __webpack_require__("./StageNode");
184
+ var _StageNode__rspack_import_17 = __webpack_require__("./StageNode");
178
185
  var __rspack_reexport = {};
179
- for(const __rspack_import_key in _StageNode__rspack_import_16)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_StageNode__rspack_import_16[__rspack_import_key];
186
+ for(const __rspack_import_key in _StageNode__rspack_import_17)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_StageNode__rspack_import_17[__rspack_import_key];
180
187
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
181
- var _StickyNoteNode__rspack_import_17 = __webpack_require__("./StickyNoteNode?d2a3");
188
+ var _StickyNoteNode__rspack_import_18 = __webpack_require__("./StickyNoteNode?d2a3");
182
189
  var __rspack_reexport = {};
183
- for(const __rspack_import_key in _StickyNoteNode__rspack_import_17)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_StickyNoteNode__rspack_import_17[__rspack_import_key];
190
+ for(const __rspack_import_key in _StickyNoteNode__rspack_import_18)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_StickyNoteNode__rspack_import_18[__rspack_import_key];
184
191
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
185
- var _TaskIcon__rspack_import_18 = __webpack_require__("./TaskIcon");
192
+ var _TaskIcon__rspack_import_19 = __webpack_require__("./TaskIcon");
186
193
  var __rspack_reexport = {};
187
- for(const __rspack_import_key in _TaskIcon__rspack_import_18)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_TaskIcon__rspack_import_18[__rspack_import_key];
194
+ for(const __rspack_import_key in _TaskIcon__rspack_import_19)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_TaskIcon__rspack_import_19[__rspack_import_key];
188
195
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
189
- var _Toolbar__rspack_import_19 = __webpack_require__("./Toolbar");
196
+ var _Toolbar__rspack_import_20 = __webpack_require__("./Toolbar");
190
197
  var __rspack_reexport = {};
191
- for(const __rspack_import_key in _Toolbar__rspack_import_19)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_Toolbar__rspack_import_19[__rspack_import_key];
198
+ for(const __rspack_import_key in _Toolbar__rspack_import_20)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_Toolbar__rspack_import_20[__rspack_import_key];
192
199
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
193
- var _Toolbox__rspack_import_20 = __webpack_require__("./Toolbox?2740");
200
+ var _Toolbox__rspack_import_21 = __webpack_require__("./Toolbox?2740");
194
201
  var __rspack_reexport = {};
195
- for(const __rspack_import_key in _Toolbox__rspack_import_20)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_Toolbox__rspack_import_20[__rspack_import_key];
202
+ for(const __rspack_import_key in _Toolbox__rspack_import_21)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_Toolbox__rspack_import_21[__rspack_import_key];
196
203
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
197
- var _TriggerNode__rspack_import_21 = __webpack_require__("./TriggerNode");
204
+ var _TriggerNode__rspack_import_22 = __webpack_require__("./TriggerNode");
198
205
  var __rspack_reexport = {};
199
- for(const __rspack_import_key in _TriggerNode__rspack_import_21)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_TriggerNode__rspack_import_21[__rspack_import_key];
206
+ for(const __rspack_import_key in _TriggerNode__rspack_import_22)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_TriggerNode__rspack_import_22[__rspack_import_key];
200
207
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
201
208
  })();
202
209
  for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
@@ -10,6 +10,7 @@ export * from './ExecutionStatusIcon';
10
10
  export * from './FloatingCanvasPanel';
11
11
  export * from './GroupNode';
12
12
  export * from './HierarchicalCanvas';
13
+ export * from './LoopNode';
13
14
  export * from './MiniCanvasNavigator';
14
15
  export * from './NodeContextMenu';
15
16
  export * from './NodeInspector';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/canvas/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/canvas/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC"}
@@ -10,6 +10,7 @@ export * from "./ExecutionStatusIcon/index.js";
10
10
  export * from "./FloatingCanvasPanel/index.js";
11
11
  export * from "./GroupNode/index.js";
12
12
  export * from "./HierarchicalCanvas/index.js";
13
+ export * from "./LoopNode/index.js";
13
14
  export * from "./MiniCanvasNavigator/index.js";
14
15
  export * from "./NodeContextMenu/index.js";
15
16
  export * from "./NodeInspector.js";
@@ -27,6 +27,7 @@ __webpack_require__.d(__webpack_exports__, {
27
27
  CANVAS_COMPACT_BREAKPOINT: ()=>CANVAS_COMPACT_BREAKPOINT,
28
28
  DEFAULT_NODE_SIZE: ()=>DEFAULT_NODE_SIZE,
29
29
  DEFAULT_RECTANGLE_NODE_WIDTH: ()=>DEFAULT_RECTANGLE_NODE_WIDTH,
30
+ DEFAULT_SOURCE_HANDLE_ID: ()=>DEFAULT_SOURCE_HANDLE_ID,
30
31
  FLOATING_CANVAS_PANEL_OFFSET: ()=>FLOATING_CANVAS_PANEL_OFFSET,
31
32
  GRID_SPACING: ()=>GRID_SPACING,
32
33
  NODE_BADGE_INSET_CIRCLE: ()=>NODE_BADGE_INSET_CIRCLE,
@@ -54,6 +55,7 @@ __webpack_require__.d(__webpack_exports__, {
54
55
  });
55
56
  const PREVIEW_NODE_ID = 'preview-node-id';
56
57
  const PREVIEW_EDGE_ID = 'preview-edge-id';
58
+ const DEFAULT_SOURCE_HANDLE_ID = 'output';
57
59
  const DEFAULT_NODE_SIZE = 96;
58
60
  const GRID_SPACING = 16;
59
61
  const CANVAS_COMPACT_BREAKPOINT = 600;
@@ -82,6 +84,7 @@ const NODE_BADGE_INSET_CIRCLE = 12;
82
84
  exports.CANVAS_COMPACT_BREAKPOINT = __webpack_exports__.CANVAS_COMPACT_BREAKPOINT;
83
85
  exports.DEFAULT_NODE_SIZE = __webpack_exports__.DEFAULT_NODE_SIZE;
84
86
  exports.DEFAULT_RECTANGLE_NODE_WIDTH = __webpack_exports__.DEFAULT_RECTANGLE_NODE_WIDTH;
87
+ exports.DEFAULT_SOURCE_HANDLE_ID = __webpack_exports__.DEFAULT_SOURCE_HANDLE_ID;
85
88
  exports.FLOATING_CANVAS_PANEL_OFFSET = __webpack_exports__.FLOATING_CANVAS_PANEL_OFFSET;
86
89
  exports.GRID_SPACING = __webpack_exports__.GRID_SPACING;
87
90
  exports.NODE_BADGE_INSET_CIRCLE = __webpack_exports__.NODE_BADGE_INSET_CIRCLE;
@@ -110,6 +113,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
110
113
  "CANVAS_COMPACT_BREAKPOINT",
111
114
  "DEFAULT_NODE_SIZE",
112
115
  "DEFAULT_RECTANGLE_NODE_WIDTH",
116
+ "DEFAULT_SOURCE_HANDLE_ID",
113
117
  "FLOATING_CANVAS_PANEL_OFFSET",
114
118
  "GRID_SPACING",
115
119
  "NODE_BADGE_INSET_CIRCLE",
@@ -1,5 +1,6 @@
1
1
  export declare const PREVIEW_NODE_ID = "preview-node-id";
2
2
  export declare const PREVIEW_EDGE_ID = "preview-edge-id";
3
+ export declare const DEFAULT_SOURCE_HANDLE_ID = "output";
3
4
  export declare const DEFAULT_NODE_SIZE = 96;
4
5
  export declare const GRID_SPACING = 16;
5
6
  export declare const CANVAS_COMPACT_BREAKPOINT = 600;