@yh-ui/flow 0.1.21

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 (354) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +234 -0
  3. package/dist/Flow.d.vue.ts +306 -0
  4. package/dist/Flow.vue +959 -0
  5. package/dist/Flow.vue.d.ts +306 -0
  6. package/dist/__tests__/ai-workflow.ssr.test.cjs +352 -0
  7. package/dist/__tests__/ai-workflow.ssr.test.d.ts +1 -0
  8. package/dist/__tests__/ai-workflow.ssr.test.mjs +283 -0
  9. package/dist/__tests__/ai-workflow.test.cjs +109 -0
  10. package/dist/__tests__/ai-workflow.test.d.ts +1 -0
  11. package/dist/__tests__/ai-workflow.test.mjs +112 -0
  12. package/dist/__tests__/bpmn.ssr.test.cjs +278 -0
  13. package/dist/__tests__/bpmn.ssr.test.d.ts +1 -0
  14. package/dist/__tests__/bpmn.ssr.test.mjs +237 -0
  15. package/dist/__tests__/bpmn.test.cjs +103 -0
  16. package/dist/__tests__/bpmn.test.d.ts +1 -0
  17. package/dist/__tests__/bpmn.test.mjs +106 -0
  18. package/dist/__tests__/custom-types.test.cjs +300 -0
  19. package/dist/__tests__/custom-types.test.d.ts +1 -0
  20. package/dist/__tests__/custom-types.test.mjs +248 -0
  21. package/dist/__tests__/edge.test.cjs +56 -0
  22. package/dist/__tests__/edge.test.d.ts +1 -0
  23. package/dist/__tests__/edge.test.mjs +69 -0
  24. package/dist/__tests__/event-bus.test.cjs +80 -0
  25. package/dist/__tests__/event-bus.test.d.ts +1 -0
  26. package/dist/__tests__/event-bus.test.mjs +51 -0
  27. package/dist/__tests__/flow.ssr.test.cjs +156 -0
  28. package/dist/__tests__/flow.ssr.test.d.ts +1 -0
  29. package/dist/__tests__/flow.ssr.test.mjs +112 -0
  30. package/dist/__tests__/geometry.test.cjs +191 -0
  31. package/dist/__tests__/geometry.test.d.ts +1 -0
  32. package/dist/__tests__/geometry.test.mjs +105 -0
  33. package/dist/__tests__/graph.test.cjs +115 -0
  34. package/dist/__tests__/graph.test.d.ts +1 -0
  35. package/dist/__tests__/graph.test.mjs +85 -0
  36. package/dist/__tests__/history-plugin.test.cjs +191 -0
  37. package/dist/__tests__/history-plugin.test.d.ts +1 -0
  38. package/dist/__tests__/history-plugin.test.mjs +161 -0
  39. package/dist/__tests__/history.test.cjs +81 -0
  40. package/dist/__tests__/history.test.d.ts +1 -0
  41. package/dist/__tests__/history.test.mjs +43 -0
  42. package/dist/__tests__/layout.test.cjs +213 -0
  43. package/dist/__tests__/layout.test.d.ts +1 -0
  44. package/dist/__tests__/layout.test.mjs +170 -0
  45. package/dist/__tests__/node-edit-panel.ssr.test.cjs +168 -0
  46. package/dist/__tests__/node-edit-panel.ssr.test.d.ts +1 -0
  47. package/dist/__tests__/node-edit-panel.ssr.test.mjs +118 -0
  48. package/dist/__tests__/node-group-plugin.test.cjs +235 -0
  49. package/dist/__tests__/node-group-plugin.test.d.ts +1 -0
  50. package/dist/__tests__/node-group-plugin.test.mjs +187 -0
  51. package/dist/__tests__/node-handles.test.cjs +340 -0
  52. package/dist/__tests__/node-handles.test.d.ts +1 -0
  53. package/dist/__tests__/node-handles.test.mjs +230 -0
  54. package/dist/__tests__/plugin.test.cjs +151 -0
  55. package/dist/__tests__/plugin.test.d.ts +1 -0
  56. package/dist/__tests__/plugin.test.mjs +116 -0
  57. package/dist/__tests__/transform.test.cjs +58 -0
  58. package/dist/__tests__/transform.test.d.ts +1 -0
  59. package/dist/__tests__/transform.test.mjs +38 -0
  60. package/dist/__tests__/useAlignment.test.cjs +91 -0
  61. package/dist/__tests__/useAlignment.test.d.ts +1 -0
  62. package/dist/__tests__/useAlignment.test.mjs +52 -0
  63. package/dist/__tests__/useEdges.test.cjs +117 -0
  64. package/dist/__tests__/useEdges.test.d.ts +1 -0
  65. package/dist/__tests__/useEdges.test.mjs +80 -0
  66. package/dist/__tests__/useKeyboard.test.cjs +88 -0
  67. package/dist/__tests__/useKeyboard.test.d.ts +1 -0
  68. package/dist/__tests__/useKeyboard.test.mjs +56 -0
  69. package/dist/__tests__/useNodes.test.cjs +150 -0
  70. package/dist/__tests__/useNodes.test.d.ts +1 -0
  71. package/dist/__tests__/useNodes.test.mjs +80 -0
  72. package/dist/__tests__/useSelection.test.cjs +112 -0
  73. package/dist/__tests__/useSelection.test.d.ts +1 -0
  74. package/dist/__tests__/useSelection.test.mjs +76 -0
  75. package/dist/__tests__/useViewport.test.cjs +171 -0
  76. package/dist/__tests__/useViewport.test.d.ts +1 -0
  77. package/dist/__tests__/useViewport.test.mjs +82 -0
  78. package/dist/__tests__/utils/ssr.cjs +124 -0
  79. package/dist/__tests__/utils/ssr.d.ts +33 -0
  80. package/dist/__tests__/utils/ssr.mjs +129 -0
  81. package/dist/__tests__/validation.test.cjs +95 -0
  82. package/dist/__tests__/validation.test.d.ts +1 -0
  83. package/dist/__tests__/validation.test.mjs +36 -0
  84. package/dist/components/AiNodeEditPanel.d.vue.ts +13 -0
  85. package/dist/components/AiNodeEditPanel.vue +413 -0
  86. package/dist/components/AiNodeEditPanel.vue.d.ts +13 -0
  87. package/dist/components/EdgeEditPanel.d.vue.ts +14 -0
  88. package/dist/components/EdgeEditPanel.vue +205 -0
  89. package/dist/components/EdgeEditPanel.vue.d.ts +14 -0
  90. package/dist/components/NodeEditPanel.d.vue.ts +13 -0
  91. package/dist/components/NodeEditPanel.vue +214 -0
  92. package/dist/components/NodeEditPanel.vue.d.ts +13 -0
  93. package/dist/components/edges/BaseEdge.d.vue.ts +23 -0
  94. package/dist/components/edges/BaseEdge.vue +55 -0
  95. package/dist/components/edges/BaseEdge.vue.d.ts +23 -0
  96. package/dist/components/edges/BezierEdge.d.vue.ts +22 -0
  97. package/dist/components/edges/BezierEdge.vue +57 -0
  98. package/dist/components/edges/BezierEdge.vue.d.ts +22 -0
  99. package/dist/components/edges/DataFlowEdge.d.vue.ts +41 -0
  100. package/dist/components/edges/DataFlowEdge.vue +211 -0
  101. package/dist/components/edges/DataFlowEdge.vue.d.ts +41 -0
  102. package/dist/components/edges/SmoothEdge.d.vue.ts +22 -0
  103. package/dist/components/edges/SmoothEdge.vue +53 -0
  104. package/dist/components/edges/SmoothEdge.vue.d.ts +22 -0
  105. package/dist/components/edges/StepEdge.d.vue.ts +22 -0
  106. package/dist/components/edges/StepEdge.vue +42 -0
  107. package/dist/components/edges/StepEdge.vue.d.ts +22 -0
  108. package/dist/components/edges/index.cjs +41 -0
  109. package/dist/components/edges/index.d.ts +5 -0
  110. package/dist/components/edges/index.mjs +5 -0
  111. package/dist/components/nodes/BaseNode.d.vue.ts +25 -0
  112. package/dist/components/nodes/BaseNode.vue +93 -0
  113. package/dist/components/nodes/BaseNode.vue.d.ts +25 -0
  114. package/dist/components/nodes/CustomNode.d.vue.ts +36 -0
  115. package/dist/components/nodes/CustomNode.vue +44 -0
  116. package/dist/components/nodes/CustomNode.vue.d.ts +36 -0
  117. package/dist/components/nodes/DatabaseNode.d.vue.ts +19 -0
  118. package/dist/components/nodes/DatabaseNode.vue +62 -0
  119. package/dist/components/nodes/DatabaseNode.vue.d.ts +19 -0
  120. package/dist/components/nodes/DiamondNode.d.vue.ts +19 -0
  121. package/dist/components/nodes/DiamondNode.vue +62 -0
  122. package/dist/components/nodes/DiamondNode.vue.d.ts +19 -0
  123. package/dist/components/nodes/GroupNode.d.vue.ts +31 -0
  124. package/dist/components/nodes/GroupNode.vue +48 -0
  125. package/dist/components/nodes/GroupNode.vue.d.ts +31 -0
  126. package/dist/components/nodes/InputNode.d.vue.ts +23 -0
  127. package/dist/components/nodes/InputNode.vue +63 -0
  128. package/dist/components/nodes/InputNode.vue.d.ts +23 -0
  129. package/dist/components/nodes/NodeResizer.d.vue.ts +27 -0
  130. package/dist/components/nodes/NodeResizer.vue +89 -0
  131. package/dist/components/nodes/NodeResizer.vue.d.ts +27 -0
  132. package/dist/components/nodes/NodeToolbar.d.vue.ts +32 -0
  133. package/dist/components/nodes/NodeToolbar.vue +101 -0
  134. package/dist/components/nodes/NodeToolbar.vue.d.ts +32 -0
  135. package/dist/components/nodes/OutputNode.d.vue.ts +21 -0
  136. package/dist/components/nodes/OutputNode.vue +53 -0
  137. package/dist/components/nodes/OutputNode.vue.d.ts +21 -0
  138. package/dist/components/nodes/ai-workflow/AiAgentNode.d.vue.ts +20 -0
  139. package/dist/components/nodes/ai-workflow/AiAgentNode.vue +59 -0
  140. package/dist/components/nodes/ai-workflow/AiAgentNode.vue.d.ts +20 -0
  141. package/dist/components/nodes/ai-workflow/AiConditionNode.d.vue.ts +19 -0
  142. package/dist/components/nodes/ai-workflow/AiConditionNode.vue +65 -0
  143. package/dist/components/nodes/ai-workflow/AiConditionNode.vue.d.ts +19 -0
  144. package/dist/components/nodes/ai-workflow/AiEndNode.d.vue.ts +19 -0
  145. package/dist/components/nodes/ai-workflow/AiEndNode.vue +47 -0
  146. package/dist/components/nodes/ai-workflow/AiEndNode.vue.d.ts +19 -0
  147. package/dist/components/nodes/ai-workflow/AiLlmNode.d.vue.ts +19 -0
  148. package/dist/components/nodes/ai-workflow/AiLlmNode.vue +64 -0
  149. package/dist/components/nodes/ai-workflow/AiLlmNode.vue.d.ts +19 -0
  150. package/dist/components/nodes/ai-workflow/AiMemoryNode.d.vue.ts +19 -0
  151. package/dist/components/nodes/ai-workflow/AiMemoryNode.vue +59 -0
  152. package/dist/components/nodes/ai-workflow/AiMemoryNode.vue.d.ts +19 -0
  153. package/dist/components/nodes/ai-workflow/AiPromptNode.d.vue.ts +19 -0
  154. package/dist/components/nodes/ai-workflow/AiPromptNode.vue +61 -0
  155. package/dist/components/nodes/ai-workflow/AiPromptNode.vue.d.ts +19 -0
  156. package/dist/components/nodes/ai-workflow/AiStartNode.d.vue.ts +19 -0
  157. package/dist/components/nodes/ai-workflow/AiStartNode.vue +47 -0
  158. package/dist/components/nodes/ai-workflow/AiStartNode.vue.d.ts +19 -0
  159. package/dist/components/nodes/ai-workflow/AiToolNode.d.vue.ts +19 -0
  160. package/dist/components/nodes/ai-workflow/AiToolNode.vue +59 -0
  161. package/dist/components/nodes/ai-workflow/AiToolNode.vue.d.ts +19 -0
  162. package/dist/components/nodes/ai-workflow/index.cjs +109 -0
  163. package/dist/components/nodes/ai-workflow/index.d.ts +23 -0
  164. package/dist/components/nodes/ai-workflow/index.mjs +37 -0
  165. package/dist/components/nodes/bpmn/BpmnEndEvent.d.vue.ts +19 -0
  166. package/dist/components/nodes/bpmn/BpmnEndEvent.vue +50 -0
  167. package/dist/components/nodes/bpmn/BpmnEndEvent.vue.d.ts +19 -0
  168. package/dist/components/nodes/bpmn/BpmnExclusiveGateway.d.vue.ts +19 -0
  169. package/dist/components/nodes/bpmn/BpmnExclusiveGateway.vue +60 -0
  170. package/dist/components/nodes/bpmn/BpmnExclusiveGateway.vue.d.ts +19 -0
  171. package/dist/components/nodes/bpmn/BpmnInclusiveGateway.d.vue.ts +19 -0
  172. package/dist/components/nodes/bpmn/BpmnInclusiveGateway.vue +60 -0
  173. package/dist/components/nodes/bpmn/BpmnInclusiveGateway.vue.d.ts +19 -0
  174. package/dist/components/nodes/bpmn/BpmnParallelGateway.d.vue.ts +19 -0
  175. package/dist/components/nodes/bpmn/BpmnParallelGateway.vue +60 -0
  176. package/dist/components/nodes/bpmn/BpmnParallelGateway.vue.d.ts +19 -0
  177. package/dist/components/nodes/bpmn/BpmnServiceTask.d.vue.ts +19 -0
  178. package/dist/components/nodes/bpmn/BpmnServiceTask.vue +55 -0
  179. package/dist/components/nodes/bpmn/BpmnServiceTask.vue.d.ts +19 -0
  180. package/dist/components/nodes/bpmn/BpmnStartEvent.d.vue.ts +19 -0
  181. package/dist/components/nodes/bpmn/BpmnStartEvent.vue +50 -0
  182. package/dist/components/nodes/bpmn/BpmnStartEvent.vue.d.ts +19 -0
  183. package/dist/components/nodes/bpmn/BpmnTask.d.vue.ts +19 -0
  184. package/dist/components/nodes/bpmn/BpmnTask.vue +54 -0
  185. package/dist/components/nodes/bpmn/BpmnTask.vue.d.ts +19 -0
  186. package/dist/components/nodes/bpmn/BpmnUserTask.d.vue.ts +19 -0
  187. package/dist/components/nodes/bpmn/BpmnUserTask.vue +55 -0
  188. package/dist/components/nodes/bpmn/BpmnUserTask.vue.d.ts +19 -0
  189. package/dist/components/nodes/bpmn/index.cjs +109 -0
  190. package/dist/components/nodes/bpmn/index.d.ts +23 -0
  191. package/dist/components/nodes/bpmn/index.mjs +37 -0
  192. package/dist/components/nodes/index.cjs +246 -0
  193. package/dist/components/nodes/index.d.ts +13 -0
  194. package/dist/components/nodes/index.mjs +44 -0
  195. package/dist/core/FlowContext.cjs +21 -0
  196. package/dist/core/FlowContext.d.ts +10 -0
  197. package/dist/core/FlowContext.mjs +13 -0
  198. package/dist/core/index.cjs +104 -0
  199. package/dist/core/index.d.ts +9 -0
  200. package/dist/core/index.mjs +9 -0
  201. package/dist/core/useAlignment.cjs +81 -0
  202. package/dist/core/useAlignment.d.ts +33 -0
  203. package/dist/core/useAlignment.mjs +71 -0
  204. package/dist/core/useEdges.cjs +132 -0
  205. package/dist/core/useEdges.d.ts +29 -0
  206. package/dist/core/useEdges.mjs +89 -0
  207. package/dist/core/useFlow.cjs +40 -0
  208. package/dist/core/useFlow.d.ts +31 -0
  209. package/dist/core/useFlow.mjs +32 -0
  210. package/dist/core/useHistory.cjs +63 -0
  211. package/dist/core/useHistory.d.ts +15 -0
  212. package/dist/core/useHistory.mjs +54 -0
  213. package/dist/core/useKeyboard.cjs +54 -0
  214. package/dist/core/useKeyboard.d.ts +18 -0
  215. package/dist/core/useKeyboard.mjs +45 -0
  216. package/dist/core/useNodeDistribution.cjs +171 -0
  217. package/dist/core/useNodeDistribution.d.ts +12 -0
  218. package/dist/core/useNodeDistribution.mjs +145 -0
  219. package/dist/core/useNodes.cjs +146 -0
  220. package/dist/core/useNodes.d.ts +26 -0
  221. package/dist/core/useNodes.mjs +101 -0
  222. package/dist/core/useSelection.cjs +83 -0
  223. package/dist/core/useSelection.d.ts +18 -0
  224. package/dist/core/useSelection.mjs +53 -0
  225. package/dist/core/useViewport.cjs +157 -0
  226. package/dist/core/useViewport.d.ts +65 -0
  227. package/dist/core/useViewport.mjs +125 -0
  228. package/dist/flow.cjs +240 -0
  229. package/dist/flow.d.ts +276 -0
  230. package/dist/flow.mjs +230 -0
  231. package/dist/index.cjs +378 -0
  232. package/dist/index.d.ts +28 -0
  233. package/dist/index.mjs +50 -0
  234. package/dist/plugins/index.cjs +96 -0
  235. package/dist/plugins/index.d.ts +34 -0
  236. package/dist/plugins/index.mjs +47 -0
  237. package/dist/plugins/plugin.cjs +117 -0
  238. package/dist/plugins/plugin.d.ts +72 -0
  239. package/dist/plugins/plugin.mjs +110 -0
  240. package/dist/plugins/plugins/controls.cjs +38 -0
  241. package/dist/plugins/plugins/controls.d.ts +12 -0
  242. package/dist/plugins/plugins/controls.mjs +28 -0
  243. package/dist/plugins/plugins/export.cjs +102 -0
  244. package/dist/plugins/plugins/export.d.ts +12 -0
  245. package/dist/plugins/plugins/export.mjs +89 -0
  246. package/dist/plugins/plugins/grid.cjs +36 -0
  247. package/dist/plugins/plugins/grid.d.ts +11 -0
  248. package/dist/plugins/plugins/grid.mjs +26 -0
  249. package/dist/plugins/plugins/history.cjs +140 -0
  250. package/dist/plugins/plugins/history.d.ts +53 -0
  251. package/dist/plugins/plugins/history.mjs +132 -0
  252. package/dist/plugins/plugins/index.cjs +104 -0
  253. package/dist/plugins/plugins/index.d.ts +9 -0
  254. package/dist/plugins/plugins/index.mjs +9 -0
  255. package/dist/plugins/plugins/keyboard.cjs +27 -0
  256. package/dist/plugins/plugins/keyboard.d.ts +10 -0
  257. package/dist/plugins/plugins/keyboard.mjs +18 -0
  258. package/dist/plugins/plugins/layout.cjs +275 -0
  259. package/dist/plugins/plugins/layout.d.ts +34 -0
  260. package/dist/plugins/plugins/layout.mjs +246 -0
  261. package/dist/plugins/plugins/minimap.cjs +60 -0
  262. package/dist/plugins/plugins/minimap.d.ts +25 -0
  263. package/dist/plugins/plugins/minimap.mjs +50 -0
  264. package/dist/plugins/plugins/node-group.cjs +209 -0
  265. package/dist/plugins/plugins/node-group.d.ts +26 -0
  266. package/dist/plugins/plugins/node-group.mjs +178 -0
  267. package/dist/plugins/plugins/snap.cjs +36 -0
  268. package/dist/plugins/plugins/snap.d.ts +12 -0
  269. package/dist/plugins/plugins/snap.mjs +26 -0
  270. package/dist/renderer/AlignmentLines.d.vue.ts +5 -0
  271. package/dist/renderer/AlignmentLines.vue +113 -0
  272. package/dist/renderer/AlignmentLines.vue.d.ts +5 -0
  273. package/dist/renderer/Background.d.vue.ts +7 -0
  274. package/dist/renderer/Background.vue +86 -0
  275. package/dist/renderer/Background.vue.d.ts +7 -0
  276. package/dist/renderer/Controls.d.vue.ts +13 -0
  277. package/dist/renderer/Controls.vue +82 -0
  278. package/dist/renderer/Controls.vue.d.ts +13 -0
  279. package/dist/renderer/EdgeHandlesRenderer.d.vue.ts +11 -0
  280. package/dist/renderer/EdgeHandlesRenderer.vue +75 -0
  281. package/dist/renderer/EdgeHandlesRenderer.vue.d.ts +11 -0
  282. package/dist/renderer/EdgeRenderer.d.vue.ts +39 -0
  283. package/dist/renderer/EdgeRenderer.vue +204 -0
  284. package/dist/renderer/EdgeRenderer.vue.d.ts +39 -0
  285. package/dist/renderer/FlowBackground.d.vue.ts +11 -0
  286. package/dist/renderer/FlowBackground.vue +82 -0
  287. package/dist/renderer/FlowBackground.vue.d.ts +11 -0
  288. package/dist/renderer/Minimap.d.vue.ts +30 -0
  289. package/dist/renderer/Minimap.vue +290 -0
  290. package/dist/renderer/Minimap.vue.d.ts +30 -0
  291. package/dist/renderer/NodeRenderer.d.vue.ts +56 -0
  292. package/dist/renderer/NodeRenderer.vue +328 -0
  293. package/dist/renderer/NodeRenderer.vue.d.ts +56 -0
  294. package/dist/renderer/SelectionBox.d.vue.ts +11 -0
  295. package/dist/renderer/SelectionBox.vue +28 -0
  296. package/dist/renderer/SelectionBox.vue.d.ts +11 -0
  297. package/dist/types/edge.cjs +13 -0
  298. package/dist/types/edge.d.ts +65 -0
  299. package/dist/types/edge.mjs +6 -0
  300. package/dist/types/events.cjs +1 -0
  301. package/dist/types/events.d.ts +115 -0
  302. package/dist/types/events.mjs +0 -0
  303. package/dist/types/index.cjs +1 -0
  304. package/dist/types/index.d.ts +366 -0
  305. package/dist/types/index.mjs +0 -0
  306. package/dist/types/node.cjs +9 -0
  307. package/dist/types/node.d.ts +90 -0
  308. package/dist/types/node.mjs +3 -0
  309. package/dist/types/viewport.cjs +42 -0
  310. package/dist/types/viewport.d.ts +62 -0
  311. package/dist/types/viewport.mjs +36 -0
  312. package/dist/utils/bpmn-engine.cjs +390 -0
  313. package/dist/utils/bpmn-engine.d.ts +164 -0
  314. package/dist/utils/bpmn-engine.mjs +378 -0
  315. package/dist/utils/bpmn.cjs +492 -0
  316. package/dist/utils/bpmn.d.ts +53 -0
  317. package/dist/utils/bpmn.mjs +430 -0
  318. package/dist/utils/collaboration.cjs +537 -0
  319. package/dist/utils/collaboration.d.ts +189 -0
  320. package/dist/utils/collaboration.mjs +521 -0
  321. package/dist/utils/custom-types.cjs +138 -0
  322. package/dist/utils/custom-types.d.ts +78 -0
  323. package/dist/utils/custom-types.mjs +108 -0
  324. package/dist/utils/edge.cjs +235 -0
  325. package/dist/utils/edge.d.ts +79 -0
  326. package/dist/utils/edge.mjs +172 -0
  327. package/dist/utils/event-bus.cjs +91 -0
  328. package/dist/utils/event-bus.d.ts +39 -0
  329. package/dist/utils/event-bus.mjs +82 -0
  330. package/dist/utils/geometry.cjs +178 -0
  331. package/dist/utils/geometry.d.ts +186 -0
  332. package/dist/utils/geometry.mjs +144 -0
  333. package/dist/utils/graph.cjs +158 -0
  334. package/dist/utils/graph.d.ts +40 -0
  335. package/dist/utils/graph.mjs +147 -0
  336. package/dist/utils/index.cjs +137 -0
  337. package/dist/utils/index.d.ts +12 -0
  338. package/dist/utils/index.mjs +12 -0
  339. package/dist/utils/performance.cjs +94 -0
  340. package/dist/utils/performance.d.ts +18 -0
  341. package/dist/utils/performance.mjs +82 -0
  342. package/dist/utils/screenshot.cjs +87 -0
  343. package/dist/utils/screenshot.d.ts +22 -0
  344. package/dist/utils/screenshot.mjs +66 -0
  345. package/dist/utils/theme.cjs +228 -0
  346. package/dist/utils/theme.d.ts +92 -0
  347. package/dist/utils/theme.mjs +217 -0
  348. package/dist/utils/transform.cjs +76 -0
  349. package/dist/utils/transform.d.ts +45 -0
  350. package/dist/utils/transform.mjs +57 -0
  351. package/dist/utils/validation.cjs +107 -0
  352. package/dist/utils/validation.d.ts +29 -0
  353. package/dist/utils/validation.mjs +85 -0
  354. package/package.json +61 -0
@@ -0,0 +1,340 @@
1
+ "use strict";
2
+
3
+ var _vitest = require("vitest");
4
+ const getHandles = (node, type) => {
5
+ if (node.handleBounds) {
6
+ const handles = [];
7
+ if (node.handleBounds.top) handles.push(...node.handleBounds.top);
8
+ if (node.handleBounds.right) handles.push(...node.handleBounds.right);
9
+ if (node.handleBounds.bottom) handles.push(...node.handleBounds.bottom);
10
+ if (node.handleBounds.left) handles.push(...node.handleBounds.left);
11
+ return handles.filter(h => h.type === type);
12
+ }
13
+ if (node.type === "group") {
14
+ return [];
15
+ }
16
+ if (node.type === "input") {
17
+ return type === "source" ? [{
18
+ type: "source",
19
+ position: "right"
20
+ }] : [];
21
+ }
22
+ if (node.type === "output") {
23
+ return type === "target" ? [{
24
+ type: "target",
25
+ position: "left"
26
+ }] : [];
27
+ }
28
+ if (node.type === "bpmn-start") {
29
+ return type === "source" ? [{
30
+ type: "source",
31
+ position: "right"
32
+ }] : [];
33
+ }
34
+ if (node.type === "bpmn-end") {
35
+ return type === "target" ? [{
36
+ type: "target",
37
+ position: "left"
38
+ }] : [];
39
+ }
40
+ if (node.type === "bpmn-task" || node.type === "bpmn-service-task" || node.type === "bpmn-user-task") {
41
+ return [{
42
+ type: "target",
43
+ position: "left"
44
+ }, {
45
+ type: "source",
46
+ position: "right"
47
+ }].filter(h => h.type === type);
48
+ }
49
+ if (node.type === "bpmn-exclusive-gateway" || node.type === "bpmn-parallel-gateway" || node.type === "bpmn-inclusive-gateway") {
50
+ return [{
51
+ type: "target",
52
+ position: "left"
53
+ }, {
54
+ type: "source",
55
+ position: "right"
56
+ }, {
57
+ type: "target",
58
+ position: "top"
59
+ }, {
60
+ type: "source",
61
+ position: "bottom"
62
+ }].filter(h => h.type === type);
63
+ }
64
+ if (node.type === "ai-start") {
65
+ return type === "source" ? [{
66
+ type: "source",
67
+ position: "right"
68
+ }] : [];
69
+ }
70
+ if (node.type === "ai-end") {
71
+ return type === "target" ? [{
72
+ type: "target",
73
+ position: "left"
74
+ }] : [];
75
+ }
76
+ if (node.type === "ai-condition") {
77
+ return [{
78
+ type: "target",
79
+ position: "left"
80
+ }, {
81
+ type: "source",
82
+ position: "right"
83
+ },
84
+ // true
85
+ {
86
+ type: "source",
87
+ position: "bottom"
88
+ }
89
+ // false
90
+ ].filter(h => h.type === type);
91
+ }
92
+ if (node.type === "ai-llm" || node.type === "ai-prompt" || node.type === "ai-agent" || node.type === "ai-tool" || node.type === "ai-memory") {
93
+ return [{
94
+ type: "target",
95
+ position: "left"
96
+ }, {
97
+ type: "source",
98
+ position: "right"
99
+ }].filter(h => h.type === type);
100
+ }
101
+ return [{
102
+ type: "target",
103
+ position: "left"
104
+ }, {
105
+ type: "source",
106
+ position: "right"
107
+ }].filter(h => h.type === type);
108
+ };
109
+ (0, _vitest.describe)("flow/utils/node-handles", () => {
110
+ (0, _vitest.describe)("Default node handles", () => {
111
+ (0, _vitest.it)("should return handles for default node type", () => {
112
+ const node = {
113
+ id: "1",
114
+ type: "default",
115
+ position: {
116
+ x: 0,
117
+ y: 0
118
+ },
119
+ data: {
120
+ label: "Test"
121
+ }
122
+ };
123
+ const handles = getHandles(node, "source");
124
+ (0, _vitest.expect)(handles).toBeDefined();
125
+ (0, _vitest.expect)(handles.length).toBeGreaterThan(0);
126
+ });
127
+ (0, _vitest.it)("should return source and target handles for default node", () => {
128
+ const node = {
129
+ id: "1",
130
+ type: "default",
131
+ position: {
132
+ x: 0,
133
+ y: 0
134
+ },
135
+ data: {
136
+ label: "Test"
137
+ }
138
+ };
139
+ const sourceHandles = getHandles(node, "source");
140
+ const targetHandles = getHandles(node, "target");
141
+ (0, _vitest.expect)(sourceHandles.length).toBe(1);
142
+ (0, _vitest.expect)(sourceHandles[0]?.position).toBe("right");
143
+ (0, _vitest.expect)(targetHandles.length).toBe(1);
144
+ (0, _vitest.expect)(targetHandles[0]?.position).toBe("left");
145
+ });
146
+ });
147
+ (0, _vitest.describe)("BPMN node handles", () => {
148
+ (0, _vitest.it)("should return source handle for bpmn-start", () => {
149
+ const node = {
150
+ id: "start1",
151
+ type: "bpmn-start",
152
+ position: {
153
+ x: 0,
154
+ y: 0
155
+ },
156
+ data: {
157
+ label: "Start"
158
+ }
159
+ };
160
+ const handles = getHandles(node, "source");
161
+ (0, _vitest.expect)(handles.length).toBe(1);
162
+ (0, _vitest.expect)(handles[0]?.position).toBe("right");
163
+ });
164
+ (0, _vitest.it)("should return target handle for bpmn-end", () => {
165
+ const node = {
166
+ id: "end1",
167
+ type: "bpmn-end",
168
+ position: {
169
+ x: 0,
170
+ y: 0
171
+ },
172
+ data: {
173
+ label: "End"
174
+ }
175
+ };
176
+ const handles = getHandles(node, "target");
177
+ (0, _vitest.expect)(handles.length).toBe(1);
178
+ (0, _vitest.expect)(handles[0]?.position).toBe("left");
179
+ });
180
+ (0, _vitest.it)("should return both handles for bpmn-task", () => {
181
+ const node = {
182
+ id: "task1",
183
+ type: "bpmn-task",
184
+ position: {
185
+ x: 0,
186
+ y: 0
187
+ },
188
+ data: {
189
+ label: "Task"
190
+ }
191
+ };
192
+ const sourceHandles = getHandles(node, "source");
193
+ const targetHandles = getHandles(node, "target");
194
+ (0, _vitest.expect)(sourceHandles.length).toBe(1);
195
+ (0, _vitest.expect)(targetHandles.length).toBe(1);
196
+ });
197
+ (0, _vitest.it)("should return 4 handles for bpmn-exclusive-gateway", () => {
198
+ const node = {
199
+ id: "gw1",
200
+ type: "bpmn-exclusive-gateway",
201
+ position: {
202
+ x: 0,
203
+ y: 0
204
+ },
205
+ data: {
206
+ label: "Gateway"
207
+ }
208
+ };
209
+ const sourceHandles = getHandles(node, "source");
210
+ const targetHandles = getHandles(node, "target");
211
+ (0, _vitest.expect)(sourceHandles.length).toBe(2);
212
+ (0, _vitest.expect)(targetHandles.length).toBe(2);
213
+ });
214
+ });
215
+ (0, _vitest.describe)("AI Workflow node handles", () => {
216
+ (0, _vitest.it)("should return handles for ai-llm", () => {
217
+ const node = {
218
+ id: "llm1",
219
+ type: "ai-llm",
220
+ position: {
221
+ x: 0,
222
+ y: 0
223
+ },
224
+ data: {
225
+ label: "LLM",
226
+ model: "gpt-4"
227
+ }
228
+ };
229
+ const sourceHandles = getHandles(node, "source");
230
+ const targetHandles = getHandles(node, "target");
231
+ (0, _vitest.expect)(sourceHandles.length).toBe(1);
232
+ (0, _vitest.expect)(targetHandles.length).toBe(1);
233
+ });
234
+ (0, _vitest.it)("should return source handle for ai-start", () => {
235
+ const node = {
236
+ id: "start1",
237
+ type: "ai-start",
238
+ position: {
239
+ x: 0,
240
+ y: 0
241
+ },
242
+ data: {
243
+ label: "Start"
244
+ }
245
+ };
246
+ const handles = getHandles(node, "source");
247
+ (0, _vitest.expect)(handles.length).toBe(1);
248
+ (0, _vitest.expect)(handles[0]?.position).toBe("right");
249
+ });
250
+ (0, _vitest.it)("should return target handle for ai-end", () => {
251
+ const node = {
252
+ id: "end1",
253
+ type: "ai-end",
254
+ position: {
255
+ x: 0,
256
+ y: 0
257
+ },
258
+ data: {
259
+ label: "End"
260
+ }
261
+ };
262
+ const handles = getHandles(node, "target");
263
+ (0, _vitest.expect)(handles.length).toBe(1);
264
+ (0, _vitest.expect)(handles[0]?.position).toBe("left");
265
+ });
266
+ (0, _vitest.it)("should return 3 handles for ai-condition (left target, right source, bottom source)", () => {
267
+ const node = {
268
+ id: "cond1",
269
+ type: "ai-condition",
270
+ position: {
271
+ x: 0,
272
+ y: 0
273
+ },
274
+ data: {
275
+ label: "Condition",
276
+ condition: "if"
277
+ }
278
+ };
279
+ const sourceHandles = getHandles(node, "source");
280
+ const targetHandles = getHandles(node, "target");
281
+ (0, _vitest.expect)(sourceHandles.length).toBe(2);
282
+ (0, _vitest.expect)(targetHandles.length).toBe(1);
283
+ });
284
+ });
285
+ (0, _vitest.describe)("Input/Output node handles", () => {
286
+ (0, _vitest.it)("should return only source handle for input node", () => {
287
+ const node = {
288
+ id: "input1",
289
+ type: "input",
290
+ position: {
291
+ x: 0,
292
+ y: 0
293
+ },
294
+ data: {
295
+ label: "Input"
296
+ }
297
+ };
298
+ const sourceHandles = getHandles(node, "source");
299
+ const targetHandles = getHandles(node, "target");
300
+ (0, _vitest.expect)(sourceHandles.length).toBe(1);
301
+ (0, _vitest.expect)(targetHandles.length).toBe(0);
302
+ });
303
+ (0, _vitest.it)("should return only target handle for output node", () => {
304
+ const node = {
305
+ id: "output1",
306
+ type: "output",
307
+ position: {
308
+ x: 0,
309
+ y: 0
310
+ },
311
+ data: {
312
+ label: "Output"
313
+ }
314
+ };
315
+ const sourceHandles = getHandles(node, "source");
316
+ const targetHandles = getHandles(node, "target");
317
+ (0, _vitest.expect)(sourceHandles.length).toBe(0);
318
+ (0, _vitest.expect)(targetHandles.length).toBe(1);
319
+ });
320
+ });
321
+ (0, _vitest.describe)("Group node handles", () => {
322
+ (0, _vitest.it)("should return empty array for group node", () => {
323
+ const node = {
324
+ id: "group1",
325
+ type: "group",
326
+ position: {
327
+ x: 0,
328
+ y: 0
329
+ },
330
+ data: {
331
+ label: "Group"
332
+ }
333
+ };
334
+ const sourceHandles = getHandles(node, "source");
335
+ const targetHandles = getHandles(node, "target");
336
+ (0, _vitest.expect)(sourceHandles.length).toBe(0);
337
+ (0, _vitest.expect)(targetHandles.length).toBe(0);
338
+ });
339
+ });
340
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,230 @@
1
+ import { describe, it, expect } from "vitest";
2
+ const getHandles = (node, type) => {
3
+ if (node.handleBounds) {
4
+ const handles = [];
5
+ if (node.handleBounds.top) handles.push(...node.handleBounds.top);
6
+ if (node.handleBounds.right) handles.push(...node.handleBounds.right);
7
+ if (node.handleBounds.bottom) handles.push(...node.handleBounds.bottom);
8
+ if (node.handleBounds.left) handles.push(...node.handleBounds.left);
9
+ return handles.filter((h) => h.type === type);
10
+ }
11
+ if (node.type === "group") {
12
+ return [];
13
+ }
14
+ if (node.type === "input") {
15
+ return type === "source" ? [{ type: "source", position: "right" }] : [];
16
+ }
17
+ if (node.type === "output") {
18
+ return type === "target" ? [{ type: "target", position: "left" }] : [];
19
+ }
20
+ if (node.type === "bpmn-start") {
21
+ return type === "source" ? [{ type: "source", position: "right" }] : [];
22
+ }
23
+ if (node.type === "bpmn-end") {
24
+ return type === "target" ? [{ type: "target", position: "left" }] : [];
25
+ }
26
+ if (node.type === "bpmn-task" || node.type === "bpmn-service-task" || node.type === "bpmn-user-task") {
27
+ return [
28
+ { type: "target", position: "left" },
29
+ { type: "source", position: "right" }
30
+ ].filter((h) => h.type === type);
31
+ }
32
+ if (node.type === "bpmn-exclusive-gateway" || node.type === "bpmn-parallel-gateway" || node.type === "bpmn-inclusive-gateway") {
33
+ return [
34
+ { type: "target", position: "left" },
35
+ { type: "source", position: "right" },
36
+ { type: "target", position: "top" },
37
+ { type: "source", position: "bottom" }
38
+ ].filter((h) => h.type === type);
39
+ }
40
+ if (node.type === "ai-start") {
41
+ return type === "source" ? [{ type: "source", position: "right" }] : [];
42
+ }
43
+ if (node.type === "ai-end") {
44
+ return type === "target" ? [{ type: "target", position: "left" }] : [];
45
+ }
46
+ if (node.type === "ai-condition") {
47
+ return [
48
+ { type: "target", position: "left" },
49
+ { type: "source", position: "right" },
50
+ // true
51
+ { type: "source", position: "bottom" }
52
+ // false
53
+ ].filter((h) => h.type === type);
54
+ }
55
+ if (node.type === "ai-llm" || node.type === "ai-prompt" || node.type === "ai-agent" || node.type === "ai-tool" || node.type === "ai-memory") {
56
+ return [
57
+ { type: "target", position: "left" },
58
+ { type: "source", position: "right" }
59
+ ].filter((h) => h.type === type);
60
+ }
61
+ return [
62
+ { type: "target", position: "left" },
63
+ { type: "source", position: "right" }
64
+ ].filter((h) => h.type === type);
65
+ };
66
+ describe("flow/utils/node-handles", () => {
67
+ describe("Default node handles", () => {
68
+ it("should return handles for default node type", () => {
69
+ const node = {
70
+ id: "1",
71
+ type: "default",
72
+ position: { x: 0, y: 0 },
73
+ data: { label: "Test" }
74
+ };
75
+ const handles = getHandles(node, "source");
76
+ expect(handles).toBeDefined();
77
+ expect(handles.length).toBeGreaterThan(0);
78
+ });
79
+ it("should return source and target handles for default node", () => {
80
+ const node = {
81
+ id: "1",
82
+ type: "default",
83
+ position: { x: 0, y: 0 },
84
+ data: { label: "Test" }
85
+ };
86
+ const sourceHandles = getHandles(node, "source");
87
+ const targetHandles = getHandles(node, "target");
88
+ expect(sourceHandles.length).toBe(1);
89
+ expect(sourceHandles[0]?.position).toBe("right");
90
+ expect(targetHandles.length).toBe(1);
91
+ expect(targetHandles[0]?.position).toBe("left");
92
+ });
93
+ });
94
+ describe("BPMN node handles", () => {
95
+ it("should return source handle for bpmn-start", () => {
96
+ const node = {
97
+ id: "start1",
98
+ type: "bpmn-start",
99
+ position: { x: 0, y: 0 },
100
+ data: { label: "Start" }
101
+ };
102
+ const handles = getHandles(node, "source");
103
+ expect(handles.length).toBe(1);
104
+ expect(handles[0]?.position).toBe("right");
105
+ });
106
+ it("should return target handle for bpmn-end", () => {
107
+ const node = {
108
+ id: "end1",
109
+ type: "bpmn-end",
110
+ position: { x: 0, y: 0 },
111
+ data: { label: "End" }
112
+ };
113
+ const handles = getHandles(node, "target");
114
+ expect(handles.length).toBe(1);
115
+ expect(handles[0]?.position).toBe("left");
116
+ });
117
+ it("should return both handles for bpmn-task", () => {
118
+ const node = {
119
+ id: "task1",
120
+ type: "bpmn-task",
121
+ position: { x: 0, y: 0 },
122
+ data: { label: "Task" }
123
+ };
124
+ const sourceHandles = getHandles(node, "source");
125
+ const targetHandles = getHandles(node, "target");
126
+ expect(sourceHandles.length).toBe(1);
127
+ expect(targetHandles.length).toBe(1);
128
+ });
129
+ it("should return 4 handles for bpmn-exclusive-gateway", () => {
130
+ const node = {
131
+ id: "gw1",
132
+ type: "bpmn-exclusive-gateway",
133
+ position: { x: 0, y: 0 },
134
+ data: { label: "Gateway" }
135
+ };
136
+ const sourceHandles = getHandles(node, "source");
137
+ const targetHandles = getHandles(node, "target");
138
+ expect(sourceHandles.length).toBe(2);
139
+ expect(targetHandles.length).toBe(2);
140
+ });
141
+ });
142
+ describe("AI Workflow node handles", () => {
143
+ it("should return handles for ai-llm", () => {
144
+ const node = {
145
+ id: "llm1",
146
+ type: "ai-llm",
147
+ position: { x: 0, y: 0 },
148
+ data: { label: "LLM", model: "gpt-4" }
149
+ };
150
+ const sourceHandles = getHandles(node, "source");
151
+ const targetHandles = getHandles(node, "target");
152
+ expect(sourceHandles.length).toBe(1);
153
+ expect(targetHandles.length).toBe(1);
154
+ });
155
+ it("should return source handle for ai-start", () => {
156
+ const node = {
157
+ id: "start1",
158
+ type: "ai-start",
159
+ position: { x: 0, y: 0 },
160
+ data: { label: "Start" }
161
+ };
162
+ const handles = getHandles(node, "source");
163
+ expect(handles.length).toBe(1);
164
+ expect(handles[0]?.position).toBe("right");
165
+ });
166
+ it("should return target handle for ai-end", () => {
167
+ const node = {
168
+ id: "end1",
169
+ type: "ai-end",
170
+ position: { x: 0, y: 0 },
171
+ data: { label: "End" }
172
+ };
173
+ const handles = getHandles(node, "target");
174
+ expect(handles.length).toBe(1);
175
+ expect(handles[0]?.position).toBe("left");
176
+ });
177
+ it("should return 3 handles for ai-condition (left target, right source, bottom source)", () => {
178
+ const node = {
179
+ id: "cond1",
180
+ type: "ai-condition",
181
+ position: { x: 0, y: 0 },
182
+ data: { label: "Condition", condition: "if" }
183
+ };
184
+ const sourceHandles = getHandles(node, "source");
185
+ const targetHandles = getHandles(node, "target");
186
+ expect(sourceHandles.length).toBe(2);
187
+ expect(targetHandles.length).toBe(1);
188
+ });
189
+ });
190
+ describe("Input/Output node handles", () => {
191
+ it("should return only source handle for input node", () => {
192
+ const node = {
193
+ id: "input1",
194
+ type: "input",
195
+ position: { x: 0, y: 0 },
196
+ data: { label: "Input" }
197
+ };
198
+ const sourceHandles = getHandles(node, "source");
199
+ const targetHandles = getHandles(node, "target");
200
+ expect(sourceHandles.length).toBe(1);
201
+ expect(targetHandles.length).toBe(0);
202
+ });
203
+ it("should return only target handle for output node", () => {
204
+ const node = {
205
+ id: "output1",
206
+ type: "output",
207
+ position: { x: 0, y: 0 },
208
+ data: { label: "Output" }
209
+ };
210
+ const sourceHandles = getHandles(node, "source");
211
+ const targetHandles = getHandles(node, "target");
212
+ expect(sourceHandles.length).toBe(0);
213
+ expect(targetHandles.length).toBe(1);
214
+ });
215
+ });
216
+ describe("Group node handles", () => {
217
+ it("should return empty array for group node", () => {
218
+ const node = {
219
+ id: "group1",
220
+ type: "group",
221
+ position: { x: 0, y: 0 },
222
+ data: { label: "Group" }
223
+ };
224
+ const sourceHandles = getHandles(node, "source");
225
+ const targetHandles = getHandles(node, "target");
226
+ expect(sourceHandles.length).toBe(0);
227
+ expect(targetHandles.length).toBe(0);
228
+ });
229
+ });
230
+ });