@xyne/workflow-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. package/README.md +38 -0
  2. package/dist/components/automations/AutomationCard.d.ts +8 -0
  3. package/dist/components/automations/AutomationCard.d.ts.map +1 -0
  4. package/dist/components/automations/AutomationCard.js +55 -0
  5. package/dist/components/automations/AutomationCard.js.map +1 -0
  6. package/dist/components/automations/AutomationListView.d.ts +7 -0
  7. package/dist/components/automations/AutomationListView.d.ts.map +1 -0
  8. package/dist/components/automations/AutomationListView.js +22 -0
  9. package/dist/components/automations/AutomationListView.js.map +1 -0
  10. package/dist/components/automations/CreateWorkflowDialog.d.ts +7 -0
  11. package/dist/components/automations/CreateWorkflowDialog.d.ts.map +1 -0
  12. package/dist/components/automations/CreateWorkflowDialog.js +70 -0
  13. package/dist/components/automations/CreateWorkflowDialog.js.map +1 -0
  14. package/dist/components/builder/AddStepButton.d.ts +6 -0
  15. package/dist/components/builder/AddStepButton.d.ts.map +1 -0
  16. package/dist/components/builder/AddStepButton.js +7 -0
  17. package/dist/components/builder/AddStepButton.js.map +1 -0
  18. package/dist/components/builder/BranchEdge.d.ts +3 -0
  19. package/dist/components/builder/BranchEdge.d.ts.map +1 -0
  20. package/dist/components/builder/BranchEdge.js +19 -0
  21. package/dist/components/builder/BranchEdge.js.map +1 -0
  22. package/dist/components/builder/BuilderToolbar.d.ts +10 -0
  23. package/dist/components/builder/BuilderToolbar.d.ts.map +1 -0
  24. package/dist/components/builder/BuilderToolbar.js +16 -0
  25. package/dist/components/builder/BuilderToolbar.js.map +1 -0
  26. package/dist/components/builder/StepConfigDrawer.d.ts +11 -0
  27. package/dist/components/builder/StepConfigDrawer.d.ts.map +1 -0
  28. package/dist/components/builder/StepConfigDrawer.js +21 -0
  29. package/dist/components/builder/StepConfigDrawer.js.map +1 -0
  30. package/dist/components/builder/StepNode.d.ts +15 -0
  31. package/dist/components/builder/StepNode.d.ts.map +1 -0
  32. package/dist/components/builder/StepNode.js +56 -0
  33. package/dist/components/builder/StepNode.js.map +1 -0
  34. package/dist/components/builder/StepPalette.d.ts +7 -0
  35. package/dist/components/builder/StepPalette.d.ts.map +1 -0
  36. package/dist/components/builder/StepPalette.js +83 -0
  37. package/dist/components/builder/StepPalette.js.map +1 -0
  38. package/dist/components/builder/StepPicker.d.ts +9 -0
  39. package/dist/components/builder/StepPicker.d.ts.map +1 -0
  40. package/dist/components/builder/StepPicker.js +95 -0
  41. package/dist/components/builder/StepPicker.js.map +1 -0
  42. package/dist/components/builder/TerminalNode.d.ts +6 -0
  43. package/dist/components/builder/TerminalNode.d.ts.map +1 -0
  44. package/dist/components/builder/TerminalNode.js +7 -0
  45. package/dist/components/builder/TerminalNode.js.map +1 -0
  46. package/dist/components/builder/TriggerConfigPanel.d.ts +10 -0
  47. package/dist/components/builder/TriggerConfigPanel.d.ts.map +1 -0
  48. package/dist/components/builder/TriggerConfigPanel.js +49 -0
  49. package/dist/components/builder/TriggerConfigPanel.js.map +1 -0
  50. package/dist/components/builder/TriggerNode.d.ts +9 -0
  51. package/dist/components/builder/TriggerNode.d.ts.map +1 -0
  52. package/dist/components/builder/TriggerNode.js +30 -0
  53. package/dist/components/builder/TriggerNode.js.map +1 -0
  54. package/dist/components/builder/TriggerPicker.d.ts +8 -0
  55. package/dist/components/builder/TriggerPicker.d.ts.map +1 -0
  56. package/dist/components/builder/TriggerPicker.js +61 -0
  57. package/dist/components/builder/TriggerPicker.js.map +1 -0
  58. package/dist/components/builder/WorkflowBuilder.d.ts +20 -0
  59. package/dist/components/builder/WorkflowBuilder.d.ts.map +1 -0
  60. package/dist/components/builder/WorkflowBuilder.js +157 -0
  61. package/dist/components/builder/WorkflowBuilder.js.map +1 -0
  62. package/dist/components/builder/edge-types.d.ts +3 -0
  63. package/dist/components/builder/edge-types.d.ts.map +1 -0
  64. package/dist/components/builder/edge-types.js +5 -0
  65. package/dist/components/builder/edge-types.js.map +1 -0
  66. package/dist/components/builder/icons.d.ts +25 -0
  67. package/dist/components/builder/icons.d.ts.map +1 -0
  68. package/dist/components/builder/icons.js +43 -0
  69. package/dist/components/builder/icons.js.map +1 -0
  70. package/dist/components/builder/layout-engine.d.ts +44 -0
  71. package/dist/components/builder/layout-engine.d.ts.map +1 -0
  72. package/dist/components/builder/layout-engine.js +216 -0
  73. package/dist/components/builder/layout-engine.js.map +1 -0
  74. package/dist/components/builder/node-types.d.ts +3 -0
  75. package/dist/components/builder/node-types.d.ts.map +1 -0
  76. package/dist/components/builder/node-types.js +11 -0
  77. package/dist/components/builder/node-types.js.map +1 -0
  78. package/dist/components/builder/theme.d.ts +28 -0
  79. package/dist/components/builder/theme.d.ts.map +1 -0
  80. package/dist/components/builder/theme.js +63 -0
  81. package/dist/components/builder/theme.js.map +1 -0
  82. package/dist/components/builder/v2/AddStepButton.d.ts +6 -0
  83. package/dist/components/builder/v2/AddStepButton.d.ts.map +1 -0
  84. package/dist/components/builder/v2/AddStepButton.js +6 -0
  85. package/dist/components/builder/v2/AddStepButton.js.map +1 -0
  86. package/dist/components/builder/v2/BranchEdge.d.ts +3 -0
  87. package/dist/components/builder/v2/BranchEdge.d.ts.map +1 -0
  88. package/dist/components/builder/v2/BranchEdge.js +46 -0
  89. package/dist/components/builder/v2/BranchEdge.js.map +1 -0
  90. package/dist/components/builder/v2/LoopBodyEdge.d.ts +7 -0
  91. package/dist/components/builder/v2/LoopBodyEdge.d.ts.map +1 -0
  92. package/dist/components/builder/v2/LoopBodyEdge.js +19 -0
  93. package/dist/components/builder/v2/LoopBodyEdge.js.map +1 -0
  94. package/dist/components/builder/v2/LoopbackEdge.d.ts +10 -0
  95. package/dist/components/builder/v2/LoopbackEdge.d.ts.map +1 -0
  96. package/dist/components/builder/v2/LoopbackEdge.js +26 -0
  97. package/dist/components/builder/v2/LoopbackEdge.js.map +1 -0
  98. package/dist/components/builder/v2/StepNode.d.ts +21 -0
  99. package/dist/components/builder/v2/StepNode.d.ts.map +1 -0
  100. package/dist/components/builder/v2/StepNode.js +36 -0
  101. package/dist/components/builder/v2/StepNode.js.map +1 -0
  102. package/dist/components/builder/v2/StepPicker.d.ts +8 -0
  103. package/dist/components/builder/v2/StepPicker.d.ts.map +1 -0
  104. package/dist/components/builder/v2/StepPicker.js +73 -0
  105. package/dist/components/builder/v2/StepPicker.js.map +1 -0
  106. package/dist/components/builder/v2/TerminalNode.d.ts +6 -0
  107. package/dist/components/builder/v2/TerminalNode.d.ts.map +1 -0
  108. package/dist/components/builder/v2/TerminalNode.js +7 -0
  109. package/dist/components/builder/v2/TerminalNode.js.map +1 -0
  110. package/dist/components/builder/v2/TriggerNode.d.ts +10 -0
  111. package/dist/components/builder/v2/TriggerNode.d.ts.map +1 -0
  112. package/dist/components/builder/v2/TriggerNode.js +20 -0
  113. package/dist/components/builder/v2/TriggerNode.js.map +1 -0
  114. package/dist/components/builder/v2/TriggerPicker.d.ts +7 -0
  115. package/dist/components/builder/v2/TriggerPicker.d.ts.map +1 -0
  116. package/dist/components/builder/v2/TriggerPicker.js +45 -0
  117. package/dist/components/builder/v2/TriggerPicker.js.map +1 -0
  118. package/dist/components/builder/v2/WorkflowBuilder.d.ts +14 -0
  119. package/dist/components/builder/v2/WorkflowBuilder.d.ts.map +1 -0
  120. package/dist/components/builder/v2/WorkflowBuilder.js +189 -0
  121. package/dist/components/builder/v2/WorkflowBuilder.js.map +1 -0
  122. package/dist/components/builder/v2/edge-types.d.ts +3 -0
  123. package/dist/components/builder/v2/edge-types.d.ts.map +1 -0
  124. package/dist/components/builder/v2/edge-types.js +9 -0
  125. package/dist/components/builder/v2/edge-types.js.map +1 -0
  126. package/dist/components/builder/v2/icons.d.ts +25 -0
  127. package/dist/components/builder/v2/icons.d.ts.map +1 -0
  128. package/dist/components/builder/v2/icons.js +43 -0
  129. package/dist/components/builder/v2/icons.js.map +1 -0
  130. package/dist/components/builder/v2/layout-engine.d.ts +76 -0
  131. package/dist/components/builder/v2/layout-engine.d.ts.map +1 -0
  132. package/dist/components/builder/v2/layout-engine.js +465 -0
  133. package/dist/components/builder/v2/layout-engine.js.map +1 -0
  134. package/dist/components/builder/v2/node-types.d.ts +3 -0
  135. package/dist/components/builder/v2/node-types.d.ts.map +1 -0
  136. package/dist/components/builder/v2/node-types.js +11 -0
  137. package/dist/components/builder/v2/node-types.js.map +1 -0
  138. package/dist/components/builder/v2/theme.d.ts +28 -0
  139. package/dist/components/builder/v2/theme.d.ts.map +1 -0
  140. package/dist/components/builder/v2/theme.js +63 -0
  141. package/dist/components/builder/v2/theme.js.map +1 -0
  142. package/dist/components/builder/v3/BranchContainer.d.ts +17 -0
  143. package/dist/components/builder/v3/BranchContainer.d.ts.map +1 -0
  144. package/dist/components/builder/v3/BranchContainer.js +64 -0
  145. package/dist/components/builder/v3/BranchContainer.js.map +1 -0
  146. package/dist/components/builder/v3/BuilderToolbar.d.ts +11 -0
  147. package/dist/components/builder/v3/BuilderToolbar.d.ts.map +1 -0
  148. package/dist/components/builder/v3/BuilderToolbar.js +14 -0
  149. package/dist/components/builder/v3/BuilderToolbar.js.map +1 -0
  150. package/dist/components/builder/v3/CodeEditor.d.ts +10 -0
  151. package/dist/components/builder/v3/CodeEditor.d.ts.map +1 -0
  152. package/dist/components/builder/v3/CodeEditor.js +117 -0
  153. package/dist/components/builder/v3/CodeEditor.js.map +1 -0
  154. package/dist/components/builder/v3/ConditionEditorPanel.d.ts +10 -0
  155. package/dist/components/builder/v3/ConditionEditorPanel.d.ts.map +1 -0
  156. package/dist/components/builder/v3/ConditionEditorPanel.js +54 -0
  157. package/dist/components/builder/v3/ConditionEditorPanel.js.map +1 -0
  158. package/dist/components/builder/v3/Connector.d.ts +7 -0
  159. package/dist/components/builder/v3/Connector.d.ts.map +1 -0
  160. package/dist/components/builder/v3/Connector.js +9 -0
  161. package/dist/components/builder/v3/Connector.js.map +1 -0
  162. package/dist/components/builder/v3/DiscriminatedUnionEditor.d.ts +14 -0
  163. package/dist/components/builder/v3/DiscriminatedUnionEditor.d.ts.map +1 -0
  164. package/dist/components/builder/v3/DiscriminatedUnionEditor.js +69 -0
  165. package/dist/components/builder/v3/DiscriminatedUnionEditor.js.map +1 -0
  166. package/dist/components/builder/v3/EnhancedSchemaFormRenderer.d.ts +13 -0
  167. package/dist/components/builder/v3/EnhancedSchemaFormRenderer.d.ts.map +1 -0
  168. package/dist/components/builder/v3/EnhancedSchemaFormRenderer.js +231 -0
  169. package/dist/components/builder/v3/EnhancedSchemaFormRenderer.js.map +1 -0
  170. package/dist/components/builder/v3/InputSchemaBuilder.d.ts +7 -0
  171. package/dist/components/builder/v3/InputSchemaBuilder.d.ts.map +1 -0
  172. package/dist/components/builder/v3/InputSchemaBuilder.js +62 -0
  173. package/dist/components/builder/v3/InputSchemaBuilder.js.map +1 -0
  174. package/dist/components/builder/v3/KeyValueEditor.d.ts +12 -0
  175. package/dist/components/builder/v3/KeyValueEditor.d.ts.map +1 -0
  176. package/dist/components/builder/v3/KeyValueEditor.js +45 -0
  177. package/dist/components/builder/v3/KeyValueEditor.js.map +1 -0
  178. package/dist/components/builder/v3/LoopContainer.d.ts +9 -0
  179. package/dist/components/builder/v3/LoopContainer.d.ts.map +1 -0
  180. package/dist/components/builder/v3/LoopContainer.js +8 -0
  181. package/dist/components/builder/v3/LoopContainer.js.map +1 -0
  182. package/dist/components/builder/v3/MultiSelectCheckboxes.d.ts +8 -0
  183. package/dist/components/builder/v3/MultiSelectCheckboxes.d.ts.map +1 -0
  184. package/dist/components/builder/v3/MultiSelectCheckboxes.js +28 -0
  185. package/dist/components/builder/v3/MultiSelectCheckboxes.js.map +1 -0
  186. package/dist/components/builder/v3/OutputFieldsEditor.d.ts +12 -0
  187. package/dist/components/builder/v3/OutputFieldsEditor.d.ts.map +1 -0
  188. package/dist/components/builder/v3/OutputFieldsEditor.js +20 -0
  189. package/dist/components/builder/v3/OutputFieldsEditor.js.map +1 -0
  190. package/dist/components/builder/v3/SidePanel.d.ts +28 -0
  191. package/dist/components/builder/v3/SidePanel.d.ts.map +1 -0
  192. package/dist/components/builder/v3/SidePanel.js +13 -0
  193. package/dist/components/builder/v3/SidePanel.js.map +1 -0
  194. package/dist/components/builder/v3/StepConfigPanel.d.ts +14 -0
  195. package/dist/components/builder/v3/StepConfigPanel.d.ts.map +1 -0
  196. package/dist/components/builder/v3/StepConfigPanel.js +48 -0
  197. package/dist/components/builder/v3/StepConfigPanel.js.map +1 -0
  198. package/dist/components/builder/v3/StepNode.d.ts +18 -0
  199. package/dist/components/builder/v3/StepNode.d.ts.map +1 -0
  200. package/dist/components/builder/v3/StepNode.js +34 -0
  201. package/dist/components/builder/v3/StepNode.js.map +1 -0
  202. package/dist/components/builder/v3/StepPicker.d.ts +15 -0
  203. package/dist/components/builder/v3/StepPicker.d.ts.map +1 -0
  204. package/dist/components/builder/v3/StepPicker.js +71 -0
  205. package/dist/components/builder/v3/StepPicker.js.map +1 -0
  206. package/dist/components/builder/v3/StringArrayInput.d.ts +8 -0
  207. package/dist/components/builder/v3/StringArrayInput.d.ts.map +1 -0
  208. package/dist/components/builder/v3/StringArrayInput.js +28 -0
  209. package/dist/components/builder/v3/StringArrayInput.js.map +1 -0
  210. package/dist/components/builder/v3/SwitchCaseEditor.d.ts +15 -0
  211. package/dist/components/builder/v3/SwitchCaseEditor.d.ts.map +1 -0
  212. package/dist/components/builder/v3/SwitchCaseEditor.js +37 -0
  213. package/dist/components/builder/v3/SwitchCaseEditor.js.map +1 -0
  214. package/dist/components/builder/v3/TerminalNode.d.ts +2 -0
  215. package/dist/components/builder/v3/TerminalNode.d.ts.map +1 -0
  216. package/dist/components/builder/v3/TerminalNode.js +5 -0
  217. package/dist/components/builder/v3/TerminalNode.js.map +1 -0
  218. package/dist/components/builder/v3/TriggerConfigPanel.d.ts +11 -0
  219. package/dist/components/builder/v3/TriggerConfigPanel.d.ts.map +1 -0
  220. package/dist/components/builder/v3/TriggerConfigPanel.js +15 -0
  221. package/dist/components/builder/v3/TriggerConfigPanel.js.map +1 -0
  222. package/dist/components/builder/v3/TriggerNode.d.ts +9 -0
  223. package/dist/components/builder/v3/TriggerNode.d.ts.map +1 -0
  224. package/dist/components/builder/v3/TriggerNode.js +13 -0
  225. package/dist/components/builder/v3/TriggerNode.js.map +1 -0
  226. package/dist/components/builder/v3/TriggerPicker.d.ts +7 -0
  227. package/dist/components/builder/v3/TriggerPicker.d.ts.map +1 -0
  228. package/dist/components/builder/v3/TriggerPicker.js +43 -0
  229. package/dist/components/builder/v3/TriggerPicker.js.map +1 -0
  230. package/dist/components/builder/v3/VariablePickerPopover.d.ts +9 -0
  231. package/dist/components/builder/v3/VariablePickerPopover.d.ts.map +1 -0
  232. package/dist/components/builder/v3/VariablePickerPopover.js +78 -0
  233. package/dist/components/builder/v3/VariablePickerPopover.js.map +1 -0
  234. package/dist/components/builder/v3/VariableRefInput.d.ts +14 -0
  235. package/dist/components/builder/v3/VariableRefInput.d.ts.map +1 -0
  236. package/dist/components/builder/v3/VariableRefInput.js +88 -0
  237. package/dist/components/builder/v3/VariableRefInput.js.map +1 -0
  238. package/dist/components/builder/v3/WorkflowBuilderV3.d.ts +13 -0
  239. package/dist/components/builder/v3/WorkflowBuilderV3.d.ts.map +1 -0
  240. package/dist/components/builder/v3/WorkflowBuilderV3.js +124 -0
  241. package/dist/components/builder/v3/WorkflowBuilderV3.js.map +1 -0
  242. package/dist/components/builder/v3/WorkflowCanvas.d.ts +26 -0
  243. package/dist/components/builder/v3/WorkflowCanvas.d.ts.map +1 -0
  244. package/dist/components/builder/v3/WorkflowCanvas.js +25 -0
  245. package/dist/components/builder/v3/WorkflowCanvas.js.map +1 -0
  246. package/dist/components/builder/v3/WorkflowTree.d.ts +22 -0
  247. package/dist/components/builder/v3/WorkflowTree.d.ts.map +1 -0
  248. package/dist/components/builder/v3/WorkflowTree.js +70 -0
  249. package/dist/components/builder/v3/WorkflowTree.js.map +1 -0
  250. package/dist/components/dashboard/TriggerFormModal.d.ts +16 -0
  251. package/dist/components/dashboard/TriggerFormModal.d.ts.map +1 -0
  252. package/dist/components/dashboard/TriggerFormModal.js +160 -0
  253. package/dist/components/dashboard/TriggerFormModal.js.map +1 -0
  254. package/dist/components/dashboard/WorkflowDashboard.d.ts +19 -0
  255. package/dist/components/dashboard/WorkflowDashboard.d.ts.map +1 -0
  256. package/dist/components/dashboard/WorkflowDashboard.js +48 -0
  257. package/dist/components/dashboard/WorkflowDashboard.js.map +1 -0
  258. package/dist/components/execution/ExecutionEdge.d.ts +4 -0
  259. package/dist/components/execution/ExecutionEdge.d.ts.map +1 -0
  260. package/dist/components/execution/ExecutionEdge.js +27 -0
  261. package/dist/components/execution/ExecutionEdge.js.map +1 -0
  262. package/dist/components/execution/ExecutionHeader.d.ts +9 -0
  263. package/dist/components/execution/ExecutionHeader.d.ts.map +1 -0
  264. package/dist/components/execution/ExecutionHeader.js +22 -0
  265. package/dist/components/execution/ExecutionHeader.js.map +1 -0
  266. package/dist/components/execution/ExecutionStepNode.d.ts +14 -0
  267. package/dist/components/execution/ExecutionStepNode.d.ts.map +1 -0
  268. package/dist/components/execution/ExecutionStepNode.js +47 -0
  269. package/dist/components/execution/ExecutionStepNode.js.map +1 -0
  270. package/dist/components/execution/ExecutionTree.d.ts +12 -0
  271. package/dist/components/execution/ExecutionTree.d.ts.map +1 -0
  272. package/dist/components/execution/ExecutionTree.js +65 -0
  273. package/dist/components/execution/ExecutionTree.js.map +1 -0
  274. package/dist/components/execution/ExecutionTriggerNode.d.ts +9 -0
  275. package/dist/components/execution/ExecutionTriggerNode.d.ts.map +1 -0
  276. package/dist/components/execution/ExecutionTriggerNode.js +15 -0
  277. package/dist/components/execution/ExecutionTriggerNode.js.map +1 -0
  278. package/dist/components/execution/ExecutionViewer.d.ts +21 -0
  279. package/dist/components/execution/ExecutionViewer.d.ts.map +1 -0
  280. package/dist/components/execution/ExecutionViewer.js +194 -0
  281. package/dist/components/execution/ExecutionViewer.js.map +1 -0
  282. package/dist/components/execution/PauseFormRenderer.d.ts +11 -0
  283. package/dist/components/execution/PauseFormRenderer.d.ts.map +1 -0
  284. package/dist/components/execution/PauseFormRenderer.js +48 -0
  285. package/dist/components/execution/PauseFormRenderer.js.map +1 -0
  286. package/dist/components/execution/PauseInteractionPanel.d.ts +9 -0
  287. package/dist/components/execution/PauseInteractionPanel.d.ts.map +1 -0
  288. package/dist/components/execution/PauseInteractionPanel.js +46 -0
  289. package/dist/components/execution/PauseInteractionPanel.js.map +1 -0
  290. package/dist/components/execution/RerunDialog.d.ts +34 -0
  291. package/dist/components/execution/RerunDialog.d.ts.map +1 -0
  292. package/dist/components/execution/RerunDialog.js +97 -0
  293. package/dist/components/execution/RerunDialog.js.map +1 -0
  294. package/dist/components/execution/SchemaAwareRenderer.d.ts +7 -0
  295. package/dist/components/execution/SchemaAwareRenderer.d.ts.map +1 -0
  296. package/dist/components/execution/SchemaAwareRenderer.js +116 -0
  297. package/dist/components/execution/SchemaAwareRenderer.js.map +1 -0
  298. package/dist/components/execution/StepDetailPanel.d.ts +22 -0
  299. package/dist/components/execution/StepDetailPanel.d.ts.map +1 -0
  300. package/dist/components/execution/StepDetailPanel.js +144 -0
  301. package/dist/components/execution/StepDetailPanel.js.map +1 -0
  302. package/dist/components/execution/ValueEditor.d.ts +39 -0
  303. package/dist/components/execution/ValueEditor.d.ts.map +1 -0
  304. package/dist/components/execution/ValueEditor.js +191 -0
  305. package/dist/components/execution/ValueEditor.js.map +1 -0
  306. package/dist/components/execution/execution-layout.d.ts +31 -0
  307. package/dist/components/execution/execution-layout.d.ts.map +1 -0
  308. package/dist/components/execution/execution-layout.js +90 -0
  309. package/dist/components/execution/execution-layout.js.map +1 -0
  310. package/dist/components/index.d.ts +58 -0
  311. package/dist/components/index.d.ts.map +1 -0
  312. package/dist/components/index.js +40 -0
  313. package/dist/components/index.js.map +1 -0
  314. package/dist/components/layout/AppShell.d.ts +8 -0
  315. package/dist/components/layout/AppShell.d.ts.map +1 -0
  316. package/dist/components/layout/AppShell.js +10 -0
  317. package/dist/components/layout/AppShell.js.map +1 -0
  318. package/dist/components/layout/Breadcrumb.d.ts +10 -0
  319. package/dist/components/layout/Breadcrumb.d.ts.map +1 -0
  320. package/dist/components/layout/Breadcrumb.js +33 -0
  321. package/dist/components/layout/Breadcrumb.js.map +1 -0
  322. package/dist/components/layout/PageHeader.d.ts +10 -0
  323. package/dist/components/layout/PageHeader.d.ts.map +1 -0
  324. package/dist/components/layout/PageHeader.js +10 -0
  325. package/dist/components/layout/PageHeader.js.map +1 -0
  326. package/dist/components/layout/Sidebar.d.ts +15 -0
  327. package/dist/components/layout/Sidebar.d.ts.map +1 -0
  328. package/dist/components/layout/Sidebar.js +30 -0
  329. package/dist/components/layout/Sidebar.js.map +1 -0
  330. package/dist/components/provider/WorkflowUIProvider.d.ts +18 -0
  331. package/dist/components/provider/WorkflowUIProvider.d.ts.map +1 -0
  332. package/dist/components/provider/WorkflowUIProvider.js +34 -0
  333. package/dist/components/provider/WorkflowUIProvider.js.map +1 -0
  334. package/dist/components/provider/slot-resolution.d.ts +13 -0
  335. package/dist/components/provider/slot-resolution.d.ts.map +1 -0
  336. package/dist/components/provider/slot-resolution.js +21 -0
  337. package/dist/components/provider/slot-resolution.js.map +1 -0
  338. package/dist/components/provider/workflow-ui-context.d.ts +30 -0
  339. package/dist/components/provider/workflow-ui-context.d.ts.map +1 -0
  340. package/dist/components/provider/workflow-ui-context.js +14 -0
  341. package/dist/components/provider/workflow-ui-context.js.map +1 -0
  342. package/dist/components/runs/RunsFilters.d.ts +7 -0
  343. package/dist/components/runs/RunsFilters.d.ts.map +1 -0
  344. package/dist/components/runs/RunsFilters.js +14 -0
  345. package/dist/components/runs/RunsFilters.js.map +1 -0
  346. package/dist/components/runs/RunsTable.d.ts +8 -0
  347. package/dist/components/runs/RunsTable.d.ts.map +1 -0
  348. package/dist/components/runs/RunsTable.js +96 -0
  349. package/dist/components/runs/RunsTable.js.map +1 -0
  350. package/dist/components/runs/RunsView.d.ts +12 -0
  351. package/dist/components/runs/RunsView.d.ts.map +1 -0
  352. package/dist/components/runs/RunsView.js +18 -0
  353. package/dist/components/runs/RunsView.js.map +1 -0
  354. package/dist/components/schema-form/SchemaFormRenderer.d.ts +19 -0
  355. package/dist/components/schema-form/SchemaFormRenderer.d.ts.map +1 -0
  356. package/dist/components/schema-form/SchemaFormRenderer.js +80 -0
  357. package/dist/components/schema-form/SchemaFormRenderer.js.map +1 -0
  358. package/dist/components/shared/EmptyState.d.ts +9 -0
  359. package/dist/components/shared/EmptyState.d.ts.map +1 -0
  360. package/dist/components/shared/EmptyState.js +7 -0
  361. package/dist/components/shared/EmptyState.js.map +1 -0
  362. package/dist/components/shared/ErrorBoundary.d.ts +16 -0
  363. package/dist/components/shared/ErrorBoundary.d.ts.map +1 -0
  364. package/dist/components/shared/ErrorBoundary.js +19 -0
  365. package/dist/components/shared/ErrorBoundary.js.map +1 -0
  366. package/dist/components/shared/LoadingSpinner.d.ts +6 -0
  367. package/dist/components/shared/LoadingSpinner.d.ts.map +1 -0
  368. package/dist/components/shared/LoadingSpinner.js +11 -0
  369. package/dist/components/shared/LoadingSpinner.js.map +1 -0
  370. package/dist/components/shared/StatusBadge.d.ts +8 -0
  371. package/dist/components/shared/StatusBadge.d.ts.map +1 -0
  372. package/dist/components/shared/StatusBadge.js +25 -0
  373. package/dist/components/shared/StatusBadge.js.map +1 -0
  374. package/dist/components/shared/cn.d.ts +9 -0
  375. package/dist/components/shared/cn.d.ts.map +1 -0
  376. package/dist/components/shared/cn.js +12 -0
  377. package/dist/components/shared/cn.js.map +1 -0
  378. package/dist/hooks/index.d.ts +34 -0
  379. package/dist/hooks/index.d.ts.map +1 -0
  380. package/dist/hooks/index.js +25 -0
  381. package/dist/hooks/index.js.map +1 -0
  382. package/dist/hooks/use-condition-editor.d.ts +18 -0
  383. package/dist/hooks/use-condition-editor.d.ts.map +1 -0
  384. package/dist/hooks/use-condition-editor.js +115 -0
  385. package/dist/hooks/use-condition-editor.js.map +1 -0
  386. package/dist/hooks/use-execution-rerun.d.ts +26 -0
  387. package/dist/hooks/use-execution-rerun.d.ts.map +1 -0
  388. package/dist/hooks/use-execution-rerun.js +40 -0
  389. package/dist/hooks/use-execution-rerun.js.map +1 -0
  390. package/dist/hooks/use-execution-viewer.d.ts +33 -0
  391. package/dist/hooks/use-execution-viewer.d.ts.map +1 -0
  392. package/dist/hooks/use-execution-viewer.js +380 -0
  393. package/dist/hooks/use-execution-viewer.js.map +1 -0
  394. package/dist/hooks/use-pause-interaction.d.ts +13 -0
  395. package/dist/hooks/use-pause-interaction.d.ts.map +1 -0
  396. package/dist/hooks/use-pause-interaction.js +72 -0
  397. package/dist/hooks/use-pause-interaction.js.map +1 -0
  398. package/dist/hooks/use-runs-list.d.ts +20 -0
  399. package/dist/hooks/use-runs-list.d.ts.map +1 -0
  400. package/dist/hooks/use-runs-list.js +89 -0
  401. package/dist/hooks/use-runs-list.js.map +1 -0
  402. package/dist/hooks/use-schema-form.d.ts +47 -0
  403. package/dist/hooks/use-schema-form.d.ts.map +1 -0
  404. package/dist/hooks/use-schema-form.js +247 -0
  405. package/dist/hooks/use-schema-form.js.map +1 -0
  406. package/dist/hooks/use-step-config.d.ts +13 -0
  407. package/dist/hooks/use-step-config.d.ts.map +1 -0
  408. package/dist/hooks/use-step-config.js +40 -0
  409. package/dist/hooks/use-step-config.js.map +1 -0
  410. package/dist/hooks/use-step-metadata.d.ts +37 -0
  411. package/dist/hooks/use-step-metadata.d.ts.map +1 -0
  412. package/dist/hooks/use-step-metadata.js +113 -0
  413. package/dist/hooks/use-step-metadata.js.map +1 -0
  414. package/dist/hooks/use-trigger-config.d.ts +13 -0
  415. package/dist/hooks/use-trigger-config.d.ts.map +1 -0
  416. package/dist/hooks/use-trigger-config.js +40 -0
  417. package/dist/hooks/use-trigger-config.js.map +1 -0
  418. package/dist/hooks/use-undo-redo.d.ts +17 -0
  419. package/dist/hooks/use-undo-redo.d.ts.map +1 -0
  420. package/dist/hooks/use-undo-redo.js +58 -0
  421. package/dist/hooks/use-undo-redo.js.map +1 -0
  422. package/dist/hooks/use-variable-picker.d.ts +26 -0
  423. package/dist/hooks/use-variable-picker.d.ts.map +1 -0
  424. package/dist/hooks/use-variable-picker.js +132 -0
  425. package/dist/hooks/use-variable-picker.js.map +1 -0
  426. package/dist/hooks/use-workflow-builder.d.ts +47 -0
  427. package/dist/hooks/use-workflow-builder.d.ts.map +1 -0
  428. package/dist/hooks/use-workflow-builder.js +374 -0
  429. package/dist/hooks/use-workflow-builder.js.map +1 -0
  430. package/dist/hooks/use-workflow-client.d.ts +8 -0
  431. package/dist/hooks/use-workflow-client.d.ts.map +1 -0
  432. package/dist/hooks/use-workflow-client.js +15 -0
  433. package/dist/hooks/use-workflow-client.js.map +1 -0
  434. package/dist/hooks/use-workflow-list.d.ts +11 -0
  435. package/dist/hooks/use-workflow-list.d.ts.map +1 -0
  436. package/dist/hooks/use-workflow-list.js +43 -0
  437. package/dist/hooks/use-workflow-list.js.map +1 -0
  438. package/dist/index.d.ts +24 -0
  439. package/dist/index.d.ts.map +1 -0
  440. package/dist/index.js +41 -0
  441. package/dist/index.js.map +1 -0
  442. package/dist/styles.css +117 -0
  443. package/dist/test-setup.d.ts +2 -0
  444. package/dist/test-setup.d.ts.map +1 -0
  445. package/dist/test-setup.js +2 -0
  446. package/dist/test-setup.js.map +1 -0
  447. package/dist/types/index.d.ts +2 -0
  448. package/dist/types/index.d.ts.map +1 -0
  449. package/dist/types/index.js +2 -0
  450. package/dist/types/index.js.map +1 -0
  451. package/dist/types/slots.d.ts +18 -0
  452. package/dist/types/slots.d.ts.map +1 -0
  453. package/dist/types/slots.js +2 -0
  454. package/dist/types/slots.js.map +1 -0
  455. package/dist/utils/branch-detection.d.ts +83 -0
  456. package/dist/utils/branch-detection.d.ts.map +1 -0
  457. package/dist/utils/branch-detection.js +247 -0
  458. package/dist/utils/branch-detection.js.map +1 -0
  459. package/package.json +72 -0
@@ -0,0 +1,157 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useMemo, useState } from 'react';
3
+ import { ReactFlow, Background, MiniMap, ReactFlowProvider, } from '@xyflow/react';
4
+ import { useWorkflowBuilder } from '../../hooks/use-workflow-builder.js';
5
+ import { computeLayout } from './layout-engine.js';
6
+ import { builderNodeTypes } from './node-types.js';
7
+ import { builderEdgeTypes } from './edge-types.js';
8
+ import { BuilderToolbar } from './BuilderToolbar.js';
9
+ import { StepConfigDrawer } from './StepConfigDrawer.js';
10
+ import { TriggerConfigPanel } from './TriggerConfigPanel.js';
11
+ import { StepPicker } from './StepPicker.js';
12
+ import { TriggerPicker } from './TriggerPicker.js';
13
+ import { cn } from '../shared/cn.js';
14
+ function WorkflowBuilderInner({ builder: externalBuilder, initialConfig, onChange, onSave, onTestRun, readOnly, className, classNames, }) {
15
+ const builderOpts = {
16
+ autoValidate: true,
17
+ };
18
+ if (initialConfig)
19
+ builderOpts.initialConfig = initialConfig;
20
+ if (onChange)
21
+ builderOpts.onChange = onChange;
22
+ const internalBuilder = useWorkflowBuilder(builderOpts);
23
+ const builder = externalBuilder ?? internalBuilder;
24
+ const [isSaving, setIsSaving] = useState(false);
25
+ const [showStepPicker, setShowStepPicker] = useState(false);
26
+ const [showTriggerPicker, setShowTriggerPicker] = useState(false);
27
+ const [addAfterStepId, setAddAfterStepId] = useState(undefined);
28
+ // Handler for add-button clicks on the canvas
29
+ const handleAddButtonClick = useCallback((afterStepId) => {
30
+ setAddAfterStepId(afterStepId || undefined);
31
+ setShowStepPicker(true);
32
+ }, []);
33
+ // Central click handler — ReactFlow intercepts pointer events,
34
+ // so individual onClick on node components doesn't fire reliably.
35
+ // This is the ONLY reliable way to handle node clicks.
36
+ const handleNodeClick = useCallback((_event, node) => {
37
+ if (readOnly)
38
+ return;
39
+ if (node.type === 'trigger') {
40
+ if (builder.isTriggerConfigured) {
41
+ // Already configured → select it to show config panel
42
+ builder.selectTrigger();
43
+ }
44
+ else {
45
+ // Not configured → open trigger picker modal
46
+ setShowTriggerPicker(true);
47
+ }
48
+ }
49
+ else if (node.type === 'step') {
50
+ builder.selectStep(node.id);
51
+ }
52
+ else if (node.type === 'addButton') {
53
+ const afterStepId = node.data['afterStepId'];
54
+ handleAddButtonClick(afterStepId);
55
+ }
56
+ // terminal nodes: no action
57
+ }, [builder, readOnly, handleAddButtonClick]);
58
+ // Convert WorkflowConfig → ReactFlow nodes + edges
59
+ const { nodes, edges } = useMemo(() => {
60
+ const layout = computeLayout(builder.config);
61
+ const rfNodes = layout.nodes.map((n) => {
62
+ if (n.type === 'trigger') {
63
+ const data = {
64
+ triggerType: n.data.triggerType ?? '',
65
+ label: n.data.label,
66
+ isSelected: builder.isTriggerSelected,
67
+ isConfigured: builder.isTriggerConfigured,
68
+ };
69
+ return { id: n.id, type: n.type, position: n.position, data };
70
+ }
71
+ if (n.type === 'addButton') {
72
+ if (readOnly)
73
+ return null;
74
+ const data = {
75
+ afterStepId: n.data.afterStepId ?? '',
76
+ };
77
+ return { id: n.id, type: n.type, position: n.position, data };
78
+ }
79
+ if (n.type === 'step') {
80
+ const stepConfig = n.data.stepConfig;
81
+ const isDisabled = stepConfig
82
+ ? Boolean(stepConfig.config?.['disabled'])
83
+ : false;
84
+ const data = {
85
+ stepConfig: stepConfig ?? { id: n.id, type: 'UNKNOWN', config: {} },
86
+ label: n.data.label,
87
+ isSelected: builder.selectedStepId === n.id,
88
+ isDisabled,
89
+ hasValidationErrors: false,
90
+ };
91
+ if (!readOnly) {
92
+ data['onDelete'] = () => builder.removeStep(n.id);
93
+ data['onDuplicate'] = () => builder.duplicateStep(n.id);
94
+ data['onToggleDisabled'] = () => builder.toggleStepDisabled(n.id);
95
+ }
96
+ return { id: n.id, type: n.type, position: n.position, data };
97
+ }
98
+ // terminal
99
+ return { id: n.id, type: n.type, position: n.position, data: { label: n.data.label } };
100
+ }).filter(Boolean);
101
+ const rfEdges = layout.edges.map((e) => {
102
+ const edge = {
103
+ id: e.id,
104
+ source: e.source,
105
+ target: e.target,
106
+ type: e.label ? 'branch' : 'smoothstep',
107
+ };
108
+ if (e.label)
109
+ edge.label = e.label;
110
+ return edge;
111
+ });
112
+ return { nodes: rfNodes, edges: rfEdges };
113
+ }, [builder.config, builder.selectedStepId, builder.isTriggerSelected, builder.isTriggerConfigured, readOnly, builder, handleAddButtonClick]);
114
+ const handleAddStep = useCallback((type) => {
115
+ builder.addStep(type, addAfterStepId);
116
+ setShowStepPicker(false);
117
+ setAddAfterStepId(undefined);
118
+ }, [builder, addAfterStepId]);
119
+ const handleSelectTrigger = useCallback((type) => {
120
+ builder.setTrigger(type);
121
+ builder.selectTrigger();
122
+ setShowTriggerPicker(false);
123
+ }, [builder]);
124
+ const handleSave = useCallback(async () => {
125
+ if (!onSave)
126
+ return;
127
+ setIsSaving(true);
128
+ try {
129
+ await onSave(builder.config);
130
+ }
131
+ finally {
132
+ setIsSaving(false);
133
+ }
134
+ }, [onSave, builder.config]);
135
+ const handleTestRun = useCallback(() => {
136
+ onTestRun?.(builder.config);
137
+ }, [onTestRun, builder.config]);
138
+ const handleCanvasClick = useCallback(() => {
139
+ builder.clearSelection();
140
+ }, [builder]);
141
+ const selectedStep = builder.selectedStepId
142
+ ? builder.getStep(builder.selectedStepId)
143
+ : null;
144
+ return (_jsxs("div", { className: cn('flex h-full flex-col', classNames?.root, className), children: [_jsxs("div", { className: "flex flex-1 overflow-hidden", children: [_jsx("div", { className: cn('relative flex-1', classNames?.canvas), children: _jsxs(ReactFlow, { nodes: nodes, edges: edges, nodeTypes: builderNodeTypes, edgeTypes: builderEdgeTypes, onNodeClick: handleNodeClick, onPaneClick: handleCanvasClick, fitView: true, fitViewOptions: { padding: 0.35 }, proOptions: { hideAttribution: true }, nodesDraggable: false, nodesConnectable: false, elementsSelectable: false, panOnDrag: true, zoomOnScroll: true, minZoom: 0.25, maxZoom: 2, defaultEdgeOptions: {
145
+ style: { stroke: '#cbd5e1', strokeWidth: 1 },
146
+ type: 'smoothstep',
147
+ }, children: [_jsx(Background, { gap: 20, size: 1, color: "#e2e8f0", style: { opacity: 0.5 } }), _jsx(MiniMap, { nodeStrokeWidth: 2, pannable: true, zoomable: true, maskColor: "rgba(248, 250, 252, 0.75)", style: {
148
+ bottom: 12,
149
+ right: 12,
150
+ width: 140,
151
+ height: 90,
152
+ } })] }) }), !readOnly && selectedStep ? (_jsx(StepConfigDrawer, { step: selectedStep, onUpdateConfig: (config) => builder.updateStepConfig(selectedStep.id, config), onDelete: () => builder.removeStep(selectedStep.id), onDuplicate: () => builder.duplicateStep(selectedStep.id), onClose: () => builder.clearSelection(), className: classNames?.configDrawer }, selectedStep.id)) : !readOnly && builder.isTriggerSelected ? (_jsx(TriggerConfigPanel, { triggerType: builder.config.trigger.type, triggerConfig: (builder.config.trigger.config ?? {}), onUpdateConfig: (config) => builder.updateTriggerConfig(config), onChangeTriggerType: (type) => builder.setTrigger(type), onClose: () => builder.clearSelection(), className: classNames?.configDrawer })) : !readOnly ? (_jsx("div", { className: cn('flex w-80 flex-col border-l border-slate-200 bg-white', classNames?.configDrawer), children: _jsxs("div", { className: "flex flex-1 flex-col items-center justify-center p-8 text-center", children: [_jsx("div", { className: "mb-4 flex h-14 w-14 items-center justify-center rounded-2xl bg-slate-50", children: _jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", className: "text-slate-300", children: [_jsx("path", { d: "M15 15l-2 5L9 9l11 4-5 2z" }), _jsx("path", { d: "M21 21l-5.2-5.2" })] }) }), _jsx("p", { className: "text-sm font-medium text-slate-400", children: "Select a node" }), _jsxs("p", { className: "mt-1.5 text-xs text-slate-300 leading-relaxed", children: ["Click on a trigger or step", _jsx("br", {}), "to view its configuration"] })] }) })) : null] }), !readOnly && (_jsx(BuilderToolbar, { builder: builder, onSave: onSave ? handleSave : undefined, onTestRun: onTestRun ? handleTestRun : undefined, isSaving: isSaving, className: classNames?.toolbar })), _jsx(TriggerPicker, { open: showTriggerPicker, onSelect: handleSelectTrigger, onClose: () => setShowTriggerPicker(false) }), _jsx(StepPicker, { open: showStepPicker, onSelect: handleAddStep, onClose: () => { setShowStepPicker(false); setAddAfterStepId(undefined); } })] }));
153
+ }
154
+ export function WorkflowBuilder(props) {
155
+ return (_jsx(ReactFlowProvider, { children: _jsx(WorkflowBuilderInner, { ...props }) }));
156
+ }
157
+ //# sourceMappingURL=WorkflowBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowBuilder.js","sourceRoot":"","sources":["../../../src/components/builder/WorkflowBuilder.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { EdgeTypes } from '@xyflow/react';
2
+ export declare const builderEdgeTypes: EdgeTypes;
3
+ //# sourceMappingURL=edge-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-types.d.ts","sourceRoot":"","sources":["../../../src/components/builder/edge-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,eAAO,MAAM,gBAAgB,EAAE,SAE9B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { BranchEdge } from './BranchEdge.js';
2
+ export const builderEdgeTypes = {
3
+ branch: BranchEdge,
4
+ };
5
+ //# sourceMappingURL=edge-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-types.js","sourceRoot":"","sources":["../../../src/components/builder/edge-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,MAAM,EAAE,UAAU;CACnB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * v2/icons — Centralized icon registry keyed by ICON NAME from backend.
3
+ *
4
+ * Components call getStepIcon(iconName) — never check step type.
5
+ * Icon names come from StepSummary.icon / TriggerSummary.icon provided by the backend.
6
+ */
7
+ import type React from 'react';
8
+ export interface IconProps {
9
+ size?: number;
10
+ className?: string;
11
+ }
12
+ /**
13
+ * Get an icon component by name (from backend StepSummary.icon / TriggerSummary.icon).
14
+ * Returns a fallback icon for unknown names.
15
+ */
16
+ export declare function getIcon(iconName?: string, props?: IconProps): React.ReactElement;
17
+ /**
18
+ * Get a step icon by name — alias for getIcon.
19
+ */
20
+ export declare function getStepIcon(iconName?: string, props?: IconProps): React.ReactElement;
21
+ /**
22
+ * Get a trigger icon by name — alias for getIcon.
23
+ */
24
+ export declare function getTriggerIcon(iconName?: string, props?: IconProps): React.ReactElement;
25
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/builder/icons.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmFD;;;GAGG;AACH,wBAAgB,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,SAAc,GAAG,KAAK,CAAC,YAAY,CAIpF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,SAAc,GAAG,KAAK,CAAC,YAAY,CAExF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,SAAc,GAAG,KAAK,CAAC,YAAY,CAE3F"}
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ const ICON_MAP = {
3
+ // Step icons
4
+ filter: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("path", { d: "M3 6h18" }), _jsx("path", { d: "M7 12h10" }), _jsx("path", { d: "M10 18h4" })] })),
5
+ code: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("polyline", { points: "16 18 22 12 16 6" }), _jsx("polyline", { points: "8 6 2 12 8 18" })] })),
6
+ globe: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("path", { d: "M2 12h20" }), _jsx("path", { d: "M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" })] })),
7
+ repeat: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("path", { d: "M17 2l4 4-4 4" }), _jsx("path", { d: "M3 11V9a4 4 0 0 1 4-4h14" }), _jsx("path", { d: "M7 22l-4-4 4-4" }), _jsx("path", { d: "M21 13v2a4 4 0 0 1-4 4H3" })] })),
8
+ columns: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("path", { d: "M8 3v18" }), _jsx("path", { d: "M16 3v18" }), _jsx("path", { d: "M3 8h4" }), _jsx("path", { d: "M3 16h4" }), _jsx("path", { d: "M17 8h4" }), _jsx("path", { d: "M17 16h4" })] })),
9
+ clock: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("polyline", { points: "12 6 12 12 16 14" })] })),
10
+ 'copy-check': ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("rect", { x: "2", y: "6", width: "13", height: "13", rx: "2" }), _jsx("path", { d: "M9 2h9a2 2 0 0 1 2 2v9" }), _jsx("path", { d: "m15 11-4 4-2-2" })] })),
11
+ 'git-branch': ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("path", { d: "M12 3v6" }), _jsx("path", { d: "M12 15v6" }), _jsx("circle", { cx: "12", cy: "12", r: "3" }), _jsx("path", { d: "M3 12h6" }), _jsx("path", { d: "M15 12h6" })] })),
12
+ 'git-fork': ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("path", { d: "M6 3v12" }), _jsx("path", { d: "m18 9-6 6-6-6" }), _jsx("circle", { cx: "6", cy: "18", r: "3" }), _jsx("circle", { cx: "18", cy: "6", r: "3" })] })),
13
+ // Trigger icons
14
+ cursor: ({ size = 16, className }) => (_jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: _jsx("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" }) })),
15
+ satellite: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("path", { d: "M18 16.98h1a2 2 0 0 0 1.94-2.48L19.6 8.27a2 2 0 0 0-1.94-1.52H6.34a2 2 0 0 0-1.94 1.52L3.06 14.5A2 2 0 0 0 5 16.98h1" }), _jsx("path", { d: "M12 17v5" }), _jsx("circle", { cx: "12", cy: "12", r: "4" })] })),
16
+ timer: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("polyline", { points: "12 6 12 12 16 14" })] })),
17
+ bell: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("path", { d: "M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" }), _jsx("path", { d: "M10.3 21a1.94 1.94 0 0 0 3.4 0" })] })),
18
+ // Fallback
19
+ zap: ({ size = 16, className }) => (_jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: _jsx("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" }) })),
20
+ };
21
+ /**
22
+ * Get an icon component by name (from backend StepSummary.icon / TriggerSummary.icon).
23
+ * Returns a fallback icon for unknown names.
24
+ */
25
+ export function getIcon(iconName, props = {}) {
26
+ const Icon = iconName ? ICON_MAP[iconName] : undefined;
27
+ if (Icon)
28
+ return _jsx(Icon, { ...props });
29
+ return ICON_MAP['zap'](props);
30
+ }
31
+ /**
32
+ * Get a step icon by name — alias for getIcon.
33
+ */
34
+ export function getStepIcon(iconName, props = {}) {
35
+ return getIcon(iconName, props);
36
+ }
37
+ /**
38
+ * Get a trigger icon by name — alias for getIcon.
39
+ */
40
+ export function getTriggerIcon(iconName, props = {}) {
41
+ return getIcon(iconName, props);
42
+ }
43
+ //# sourceMappingURL=icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../src/components/builder/icons.tsx"],"names":[],"mappings":";AAgBA,MAAM,QAAQ,GAAkC;IAC9C,aAAa;IACb,MAAM,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACpC,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,aACrK,eAAM,CAAC,EAAC,SAAS,GAAE,EAAA,eAAM,CAAC,EAAC,UAAU,GAAE,EAAA,eAAM,CAAC,EAAC,UAAU,GAAE,IACvD,CACP;IACD,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAClC,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,aACrK,mBAAU,MAAM,EAAC,kBAAkB,GAAE,EAAA,mBAAU,MAAM,EAAC,eAAe,GAAE,IACnE,CACP;IACD,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACnC,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,aACrK,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,GAAE,EAAA,eAAM,CAAC,EAAC,UAAU,GAAE,EAAA,eAAM,CAAC,EAAC,4FAA4F,GAAE,IACtJ,CACP;IACD,MAAM,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACpC,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,aACrK,eAAM,CAAC,EAAC,eAAe,GAAE,EAAA,eAAM,CAAC,EAAC,0BAA0B,GAAE,EAAA,eAAM,CAAC,EAAC,gBAAgB,GAAE,EAAA,eAAM,CAAC,EAAC,0BAA0B,GAAE,IACvH,CACP;IACD,OAAO,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACrC,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,aACrK,eAAM,CAAC,EAAC,SAAS,GAAE,EAAA,eAAM,CAAC,EAAC,UAAU,GAAE,EAAA,eAAM,CAAC,EAAC,QAAQ,GAAE,EAAA,eAAM,CAAC,EAAC,SAAS,GAAE,EAAA,eAAM,CAAC,EAAC,SAAS,GAAE,EAAA,eAAM,CAAC,EAAC,UAAU,GAAE,IAC/G,CACP;IACD,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACnC,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,aACrK,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,GAAE,EAAA,mBAAU,MAAM,EAAC,kBAAkB,GAAE,IACjE,CACP;IACD,YAAY,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAC1C,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,aACrK,eAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,GAAE,EAAA,eAAM,CAAC,EAAC,wBAAwB,GAAE,EAAA,eAAM,CAAC,EAAC,gBAAgB,GAAE,IACzG,CACP;IACD,YAAY,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAC1C,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,aACrK,eAAM,CAAC,EAAC,SAAS,GAAE,EAAA,eAAM,CAAC,EAAC,UAAU,GAAE,EAAA,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,GAAE,EAAA,eAAM,CAAC,EAAC,SAAS,GAAE,EAAA,eAAM,CAAC,EAAC,UAAU,GAAE,IACzG,CACP;IACD,UAAU,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACxC,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,aACrK,eAAM,CAAC,EAAC,SAAS,GAAE,EAAA,eAAM,CAAC,EAAC,eAAe,GAAE,EAAA,iBAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,GAAE,EAAA,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,GAAE,IACpG,CACP;IAED,gBAAgB;IAChB,MAAM,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACpC,cAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,YACrK,kBAAS,MAAM,EAAC,wCAAwC,GAAE,GACtD,CACP;IACD,SAAS,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACvC,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,aACrK,eAAM,CAAC,EAAC,sHAAsH,GAAE,EAChI,eAAM,CAAC,EAAC,UAAU,GAAE,EAAA,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,GAAE,IAC/C,CACP;IACD,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACnC,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,aACrK,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,GAAE,EAAA,mBAAU,MAAM,EAAC,kBAAkB,GAAE,IACjE,CACP;IACD,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAClC,eAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,aACrK,eAAM,CAAC,EAAC,2CAA2C,GAAE,EAAA,eAAM,CAAC,EAAC,gCAAgC,GAAE,IAC3F,CACP;IAED,WAAW;IACX,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACjC,cAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,YACrK,kBAAS,MAAM,EAAC,wCAAwC,GAAE,GACtD,CACP;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,QAAiB,EAAE,QAAmB,EAAE;IAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,IAAI,IAAI;QAAE,OAAO,KAAC,IAAI,OAAK,KAAK,GAAI,CAAC;IACrC,OAAO,QAAQ,CAAC,KAAK,CAAE,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,QAAiB,EAAE,QAAmB,EAAE;IAClE,OAAO,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAiB,EAAE,QAAmB,EAAE;IACrE,OAAO,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * layout-engine — converts WorkflowConfig into ReactFlow nodes + edges.
3
+ *
4
+ * Pure function: no side effects, no React, no hooks.
5
+ * Walks the step tree recursively, handles branches (CONDITIONAL, SWITCH),
6
+ * and auto-positions nodes vertically.
7
+ *
8
+ * Inserts "addButton" nodes between steps for inline step insertion.
9
+ */
10
+ import type { WorkflowStepConfig, WorkflowConfig } from '@xyne/workflow-sdk/builder';
11
+ export interface LayoutNode {
12
+ id: string;
13
+ type: 'trigger' | 'step' | 'terminal' | 'addButton';
14
+ position: {
15
+ x: number;
16
+ y: number;
17
+ };
18
+ data: {
19
+ stepConfig?: WorkflowStepConfig;
20
+ triggerType?: string;
21
+ triggerConfig?: Record<string, unknown>;
22
+ label: string;
23
+ /** For addButton nodes: which step to insert after */
24
+ afterStepId?: string;
25
+ };
26
+ }
27
+ export interface LayoutEdge {
28
+ id: string;
29
+ source: string;
30
+ target: string;
31
+ type?: string;
32
+ label?: string;
33
+ data?: Record<string, unknown>;
34
+ }
35
+ export interface LayoutResult {
36
+ nodes: LayoutNode[];
37
+ edges: LayoutEdge[];
38
+ }
39
+ export interface LayoutOptions {
40
+ /** Insert addButton nodes between steps. Default true. */
41
+ includeAddButtons?: boolean;
42
+ }
43
+ export declare function computeLayout(config: WorkflowConfig, options?: LayoutOptions): LayoutResult;
44
+ //# sourceMappingURL=layout-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-engine.d.ts","sourceRoot":"","sources":["../../../src/components/builder/layout-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAIrF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;IACpD,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,IAAI,EAAE;QACJ,UAAU,CAAC,EAAE,kBAAkB,CAAC;QAChC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,KAAK,EAAE,MAAM,CAAC;QACd,sDAAsD;QACtD,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AA2DD,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAyC3F"}
@@ -0,0 +1,216 @@
1
+ /**
2
+ * layout-engine — converts WorkflowConfig into ReactFlow nodes + edges.
3
+ *
4
+ * Pure function: no side effects, no React, no hooks.
5
+ * Walks the step tree recursively, handles branches (CONDITIONAL, SWITCH),
6
+ * and auto-positions nodes vertically.
7
+ *
8
+ * Inserts "addButton" nodes between steps for inline step insertion.
9
+ */
10
+ // ─── Helpers ───
11
+ function formatTypeName(type) {
12
+ return type
13
+ .split(/[_-]/)
14
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase())
15
+ .join(' ');
16
+ }
17
+ // ─── Constants ───
18
+ const NODE_GAP_Y = 90;
19
+ const NODE_GAP_X = 320;
20
+ function addButtonBetween(sourceId, targetId, afterStepId, xOffset, state) {
21
+ const sourceNode = state.nodes.find((n) => n.id === sourceId);
22
+ const targetNode = state.nodes.find((n) => n.id === targetId);
23
+ if (!sourceNode || !targetNode)
24
+ return;
25
+ const btnId = `__add__${sourceId}->${targetId}`;
26
+ const midY = (sourceNode.position.y + targetNode.position.y) / 2;
27
+ state.nodes.push({
28
+ id: btnId,
29
+ type: 'addButton',
30
+ position: { x: xOffset, y: midY },
31
+ data: { label: '', afterStepId },
32
+ });
33
+ // Replace the direct edge with source → button → target
34
+ const edgeIdx = state.edges.findIndex((e) => e.source === sourceId && e.target === targetId);
35
+ if (edgeIdx >= 0) {
36
+ const oldEdge = state.edges[edgeIdx];
37
+ state.edges.splice(edgeIdx, 1);
38
+ const srcToBtnEdge = { id: `${sourceId}->${btnId}`, source: sourceId, target: btnId };
39
+ if (oldEdge.label)
40
+ srcToBtnEdge.label = oldEdge.label;
41
+ state.edges.push(srcToBtnEdge, { id: `${btnId}->${targetId}`, source: btnId, target: targetId });
42
+ }
43
+ }
44
+ export function computeLayout(config, options) {
45
+ const state = { nodes: [], edges: [], y: 0 };
46
+ // Trigger node
47
+ const triggerId = '__trigger__';
48
+ state.nodes.push({
49
+ id: triggerId,
50
+ type: 'trigger',
51
+ position: { x: 0, y: state.y },
52
+ data: {
53
+ triggerType: config.trigger.type,
54
+ triggerConfig: config.trigger.config,
55
+ label: formatTypeName(config.trigger.type) + ' Trigger',
56
+ },
57
+ });
58
+ state.y += NODE_GAP_Y;
59
+ // Walk steps
60
+ let previousId = triggerId;
61
+ previousId = layoutSteps(config.steps, previousId, 0, state);
62
+ // Terminal node
63
+ const terminalId = '__terminal__';
64
+ state.nodes.push({
65
+ id: terminalId,
66
+ type: 'terminal',
67
+ position: { x: 0, y: state.y },
68
+ data: { label: 'End' },
69
+ });
70
+ state.edges.push({
71
+ id: `${previousId}->${terminalId}`,
72
+ source: previousId,
73
+ target: terminalId,
74
+ });
75
+ // Insert add-buttons between consecutive nodes on the main chain
76
+ if (options?.includeAddButtons !== false) {
77
+ insertAddButtons(config.steps, triggerId, 0, state);
78
+ }
79
+ return { nodes: state.nodes, edges: state.edges };
80
+ }
81
+ /**
82
+ * Insert add-button nodes between steps on a chain.
83
+ * Does NOT handle branching sub-chains (kept simple for now).
84
+ */
85
+ function insertAddButtons(steps, chainStartId, xOffset, state) {
86
+ const nodeIds = [chainStartId, ...steps.map((s) => s.id)];
87
+ // Add button after each node (between node[i] → node[i+1])
88
+ for (let i = 0; i < nodeIds.length; i++) {
89
+ const sourceId = nodeIds[i];
90
+ // Determine the target — either next step or terminal
91
+ const targetId = i < steps.length ? steps[i].id : '__terminal__';
92
+ // afterStepId: insert after source. For trigger, afterStepId is undefined (prepend)
93
+ const afterStepId = sourceId === chainStartId && i === 0 ? '' : sourceId;
94
+ addButtonBetween(sourceId, targetId, afterStepId, xOffset, state);
95
+ }
96
+ }
97
+ function layoutSteps(steps, previousId, xOffset, state) {
98
+ let prevId = previousId;
99
+ for (const step of steps) {
100
+ const nodeId = step.id;
101
+ state.nodes.push({
102
+ id: nodeId,
103
+ type: 'step',
104
+ position: { x: xOffset, y: state.y },
105
+ data: {
106
+ stepConfig: step,
107
+ label: formatTypeName(step.type),
108
+ },
109
+ });
110
+ state.edges.push({
111
+ id: `${prevId}->${nodeId}`,
112
+ source: prevId,
113
+ target: nodeId,
114
+ });
115
+ state.y += NODE_GAP_Y;
116
+ // Handle branching steps
117
+ const branches = detectBranches(step);
118
+ if (branches) {
119
+ const rejoinId = `${nodeId}__rejoin`;
120
+ const branchEntries = Object.entries(branches);
121
+ const totalWidth = (branchEntries.length - 1) * NODE_GAP_X;
122
+ const startX = xOffset - totalWidth / 2;
123
+ let maxY = state.y;
124
+ for (let i = 0; i < branchEntries.length; i++) {
125
+ const [branchKey, branchSteps] = branchEntries[i];
126
+ const branchX = startX + i * NODE_GAP_X;
127
+ const savedY = state.y;
128
+ if (branchSteps.length > 0) {
129
+ const lastId = layoutSteps(branchSteps, nodeId, branchX, state);
130
+ // Edge from branch to rejoin
131
+ state.edges.push({
132
+ id: `${lastId}->${rejoinId}`,
133
+ source: lastId,
134
+ target: rejoinId,
135
+ });
136
+ // Label the branch edge
137
+ const edgeIdx = state.edges.findIndex((e) => e.source === nodeId && e.target === branchSteps[0].id);
138
+ if (edgeIdx >= 0) {
139
+ state.edges[edgeIdx].label = branchKey;
140
+ }
141
+ }
142
+ else {
143
+ // Empty branch — direct edge from step to rejoin
144
+ state.edges.push({
145
+ id: `${nodeId}->${rejoinId}::${branchKey}`,
146
+ source: nodeId,
147
+ target: rejoinId,
148
+ label: branchKey,
149
+ });
150
+ }
151
+ if (state.y > maxY)
152
+ maxY = state.y;
153
+ state.y = savedY;
154
+ }
155
+ state.y = maxY;
156
+ // Rejoin node (invisible — just a merge point)
157
+ state.nodes.push({
158
+ id: rejoinId,
159
+ type: 'step',
160
+ position: { x: xOffset, y: state.y },
161
+ data: { label: '' },
162
+ });
163
+ state.y += NODE_GAP_Y;
164
+ prevId = rejoinId;
165
+ }
166
+ else {
167
+ prevId = nodeId;
168
+ }
169
+ }
170
+ return prevId;
171
+ }
172
+ function detectBranches(step) {
173
+ if (!('config' in step) || typeof step.config !== 'object' || step.config === null) {
174
+ return null;
175
+ }
176
+ const config = step.config;
177
+ // CONDITIONAL: if_true / if_false
178
+ if (Array.isArray(config['if_true']) || Array.isArray(config['if_false'])) {
179
+ return {
180
+ 'true': (config['if_true'] ?? []),
181
+ 'false': (config['if_false'] ?? []),
182
+ };
183
+ }
184
+ // SWITCH: cases
185
+ if (Array.isArray(config['cases'])) {
186
+ const branches = {};
187
+ const cases = config['cases'];
188
+ for (let i = 0; i < cases.length; i++) {
189
+ const c = cases[i];
190
+ const key = c.key ?? `case_${String(i)}`;
191
+ branches[key] = c.steps ?? [];
192
+ }
193
+ if (Array.isArray(config['default'])) {
194
+ branches['default'] = config['default'];
195
+ }
196
+ return branches;
197
+ }
198
+ // LOOP: body
199
+ if (Array.isArray(config['body'])) {
200
+ return {
201
+ 'body': config['body'],
202
+ };
203
+ }
204
+ // PARALLEL: branches (Record<string, WorkflowStepConfig[]>)
205
+ if (config['branches'] && typeof config['branches'] === 'object' && !Array.isArray(config['branches'])) {
206
+ const raw = config['branches'];
207
+ const branches = {};
208
+ for (const [key, val] of Object.entries(raw)) {
209
+ branches[key] = Array.isArray(val) ? val : [];
210
+ }
211
+ if (Object.keys(branches).length > 0)
212
+ return branches;
213
+ }
214
+ return null;
215
+ }
216
+ //# sourceMappingURL=layout-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-engine.js","sourceRoot":"","sources":["../../../src/components/builder/layout-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { NodeTypes } from '@xyflow/react';
2
+ export declare const builderNodeTypes: NodeTypes;
3
+ //# sourceMappingURL=node-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-types.d.ts","sourceRoot":"","sources":["../../../src/components/builder/node-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM/C,eAAO,MAAM,gBAAgB,EAAE,SAK9B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { StepNode } from './StepNode.js';
2
+ import { TriggerNode } from './TriggerNode.js';
3
+ import { TerminalNode } from './TerminalNode.js';
4
+ import { AddStepButton } from './AddStepButton.js';
5
+ export const builderNodeTypes = {
6
+ step: StepNode,
7
+ trigger: TriggerNode,
8
+ terminal: TerminalNode,
9
+ addButton: AddStepButton,
10
+ };
11
+ //# sourceMappingURL=node-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../../src/components/builder/node-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,YAAY;IACtB,SAAS,EAAE,aAAa;CACzB,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * v2/theme — Centralized category theming.
3
+ *
4
+ * All visual styling for categories is derived from backend-provided category names.
5
+ * The UI never hardcodes which step TYPE belongs to which category.
6
+ */
7
+ export interface CategoryTheme {
8
+ /** Tailwind class for left accent border (e.g. "border-l-sky-400") */
9
+ accent: string;
10
+ /** Tailwind class for icon container background */
11
+ iconBg: string;
12
+ /** Tailwind class for icon container text color */
13
+ iconText: string;
14
+ /** Tailwind class for the category dot */
15
+ dot: string;
16
+ /** Tailwind class for light background (cards, picker hover) */
17
+ lightBg: string;
18
+ /** Tailwind class for selection ring */
19
+ ring: string;
20
+ /** CSS color value for edges/connectors */
21
+ edgeColor: string;
22
+ }
23
+ /**
24
+ * Get the visual theme for a category name (from backend StepSummary.category).
25
+ * Falls back gracefully for unknown categories.
26
+ */
27
+ export declare function getCategoryTheme(category?: string): CategoryTheme;
28
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/components/builder/theme.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB;AAmDD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,CAGjE"}