@xyne/workflow-ui 0.5.0 → 0.6.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 (187) hide show
  1. package/dist/components/analytics/AnalyticsDashboard.d.ts.map +1 -1
  2. package/dist/components/analytics/AnalyticsDashboard.js +17 -2
  3. package/dist/components/analytics/AnalyticsDashboard.js.map +1 -1
  4. package/dist/components/analytics/FolderCard.d.ts +2 -1
  5. package/dist/components/analytics/FolderCard.d.ts.map +1 -1
  6. package/dist/components/analytics/FolderCard.js +4 -3
  7. package/dist/components/analytics/FolderCard.js.map +1 -1
  8. package/dist/components/analytics/FolderGrid.d.ts +3 -1
  9. package/dist/components/analytics/FolderGrid.d.ts.map +1 -1
  10. package/dist/components/analytics/FolderGrid.js +9 -5
  11. package/dist/components/analytics/FolderGrid.js.map +1 -1
  12. package/dist/components/builder/AddStepButton.d.ts +6 -0
  13. package/dist/components/builder/AddStepButton.d.ts.map +1 -0
  14. package/dist/components/builder/AddStepButton.js +7 -0
  15. package/dist/components/builder/AddStepButton.js.map +1 -0
  16. package/dist/components/builder/BranchEdge.d.ts +3 -0
  17. package/dist/components/builder/BranchEdge.d.ts.map +1 -0
  18. package/dist/components/builder/BranchEdge.js +19 -0
  19. package/dist/components/builder/BranchEdge.js.map +1 -0
  20. package/dist/components/builder/BuilderToolbar.d.ts +10 -0
  21. package/dist/components/builder/BuilderToolbar.d.ts.map +1 -0
  22. package/dist/components/builder/BuilderToolbar.js +16 -0
  23. package/dist/components/builder/BuilderToolbar.js.map +1 -0
  24. package/dist/components/builder/StepConfigDrawer.d.ts +11 -0
  25. package/dist/components/builder/StepConfigDrawer.d.ts.map +1 -0
  26. package/dist/components/builder/StepConfigDrawer.js +21 -0
  27. package/dist/components/builder/StepConfigDrawer.js.map +1 -0
  28. package/dist/components/builder/StepNode.d.ts +15 -0
  29. package/dist/components/builder/StepNode.d.ts.map +1 -0
  30. package/dist/components/builder/StepNode.js +56 -0
  31. package/dist/components/builder/StepNode.js.map +1 -0
  32. package/dist/components/builder/StepPalette.d.ts +7 -0
  33. package/dist/components/builder/StepPalette.d.ts.map +1 -0
  34. package/dist/components/builder/StepPalette.js +83 -0
  35. package/dist/components/builder/StepPalette.js.map +1 -0
  36. package/dist/components/builder/StepPicker.d.ts +9 -0
  37. package/dist/components/builder/StepPicker.d.ts.map +1 -0
  38. package/dist/components/builder/StepPicker.js +95 -0
  39. package/dist/components/builder/StepPicker.js.map +1 -0
  40. package/dist/components/builder/TriggerConfigPanel.d.ts +10 -0
  41. package/dist/components/builder/TriggerConfigPanel.d.ts.map +1 -0
  42. package/dist/components/builder/TriggerConfigPanel.js +49 -0
  43. package/dist/components/builder/TriggerConfigPanel.js.map +1 -0
  44. package/dist/components/builder/TriggerNode.d.ts +9 -0
  45. package/dist/components/builder/TriggerNode.d.ts.map +1 -0
  46. package/dist/components/builder/TriggerNode.js +30 -0
  47. package/dist/components/builder/TriggerNode.js.map +1 -0
  48. package/dist/components/builder/TriggerPicker.d.ts +8 -0
  49. package/dist/components/builder/TriggerPicker.d.ts.map +1 -0
  50. package/dist/components/builder/TriggerPicker.js +61 -0
  51. package/dist/components/builder/TriggerPicker.js.map +1 -0
  52. package/dist/components/builder/WorkflowBuilder.d.ts +20 -0
  53. package/dist/components/builder/WorkflowBuilder.d.ts.map +1 -0
  54. package/dist/components/builder/WorkflowBuilder.js +157 -0
  55. package/dist/components/builder/WorkflowBuilder.js.map +1 -0
  56. package/dist/components/builder/edge-types.d.ts +3 -0
  57. package/dist/components/builder/edge-types.d.ts.map +1 -0
  58. package/dist/components/builder/edge-types.js +5 -0
  59. package/dist/components/builder/edge-types.js.map +1 -0
  60. package/dist/components/builder/node-types.d.ts +3 -0
  61. package/dist/components/builder/node-types.d.ts.map +1 -0
  62. package/dist/components/builder/node-types.js +11 -0
  63. package/dist/components/builder/node-types.js.map +1 -0
  64. package/dist/components/builder/v2/AddStepButton.d.ts +6 -0
  65. package/dist/components/builder/v2/AddStepButton.d.ts.map +1 -0
  66. package/dist/components/builder/v2/AddStepButton.js +6 -0
  67. package/dist/components/builder/v2/AddStepButton.js.map +1 -0
  68. package/dist/components/builder/v2/BranchEdge.d.ts +3 -0
  69. package/dist/components/builder/v2/BranchEdge.d.ts.map +1 -0
  70. package/dist/components/builder/v2/BranchEdge.js +46 -0
  71. package/dist/components/builder/v2/BranchEdge.js.map +1 -0
  72. package/dist/components/builder/v2/LoopBodyEdge.d.ts +7 -0
  73. package/dist/components/builder/v2/LoopBodyEdge.d.ts.map +1 -0
  74. package/dist/components/builder/v2/LoopBodyEdge.js +19 -0
  75. package/dist/components/builder/v2/LoopBodyEdge.js.map +1 -0
  76. package/dist/components/builder/v2/LoopbackEdge.d.ts +10 -0
  77. package/dist/components/builder/v2/LoopbackEdge.d.ts.map +1 -0
  78. package/dist/components/builder/v2/LoopbackEdge.js +26 -0
  79. package/dist/components/builder/v2/LoopbackEdge.js.map +1 -0
  80. package/dist/components/builder/v2/StepNode.d.ts +21 -0
  81. package/dist/components/builder/v2/StepNode.d.ts.map +1 -0
  82. package/dist/components/builder/v2/StepNode.js +36 -0
  83. package/dist/components/builder/v2/StepNode.js.map +1 -0
  84. package/dist/components/builder/v2/StepPicker.d.ts +8 -0
  85. package/dist/components/builder/v2/StepPicker.d.ts.map +1 -0
  86. package/dist/components/builder/v2/StepPicker.js +73 -0
  87. package/dist/components/builder/v2/StepPicker.js.map +1 -0
  88. package/dist/components/builder/v2/TerminalNode.d.ts +6 -0
  89. package/dist/components/builder/v2/TerminalNode.d.ts.map +1 -0
  90. package/dist/components/builder/v2/TerminalNode.js +7 -0
  91. package/dist/components/builder/v2/TerminalNode.js.map +1 -0
  92. package/dist/components/builder/v2/TriggerNode.d.ts +10 -0
  93. package/dist/components/builder/v2/TriggerNode.d.ts.map +1 -0
  94. package/dist/components/builder/v2/TriggerNode.js +20 -0
  95. package/dist/components/builder/v2/TriggerNode.js.map +1 -0
  96. package/dist/components/builder/v2/TriggerPicker.d.ts +7 -0
  97. package/dist/components/builder/v2/TriggerPicker.d.ts.map +1 -0
  98. package/dist/components/builder/v2/TriggerPicker.js +45 -0
  99. package/dist/components/builder/v2/TriggerPicker.js.map +1 -0
  100. package/dist/components/builder/v2/WorkflowBuilder.d.ts +14 -0
  101. package/dist/components/builder/v2/WorkflowBuilder.d.ts.map +1 -0
  102. package/dist/components/builder/v2/WorkflowBuilder.js +189 -0
  103. package/dist/components/builder/v2/WorkflowBuilder.js.map +1 -0
  104. package/dist/components/builder/v2/edge-types.d.ts +3 -0
  105. package/dist/components/builder/v2/edge-types.d.ts.map +1 -0
  106. package/dist/components/builder/v2/edge-types.js +9 -0
  107. package/dist/components/builder/v2/edge-types.js.map +1 -0
  108. package/dist/components/builder/v2/icons.d.ts +25 -0
  109. package/dist/components/builder/v2/icons.d.ts.map +1 -0
  110. package/dist/components/builder/v2/icons.js +43 -0
  111. package/dist/components/builder/v2/icons.js.map +1 -0
  112. package/dist/components/builder/v2/layout-engine.d.ts +76 -0
  113. package/dist/components/builder/v2/layout-engine.d.ts.map +1 -0
  114. package/dist/components/builder/v2/layout-engine.js +465 -0
  115. package/dist/components/builder/v2/layout-engine.js.map +1 -0
  116. package/dist/components/builder/v2/node-types.d.ts +3 -0
  117. package/dist/components/builder/v2/node-types.d.ts.map +1 -0
  118. package/dist/components/builder/v2/node-types.js +11 -0
  119. package/dist/components/builder/v2/node-types.js.map +1 -0
  120. package/dist/components/builder/v2/theme.d.ts +28 -0
  121. package/dist/components/builder/v2/theme.d.ts.map +1 -0
  122. package/dist/components/builder/v2/theme.js +63 -0
  123. package/dist/components/builder/v2/theme.js.map +1 -0
  124. package/dist/components/builder/v3/EnhancedSchemaFormRenderer.js +7 -4
  125. package/dist/components/builder/v3/EnhancedSchemaFormRenderer.js.map +1 -1
  126. package/dist/components/builder/v3/StepNode.d.ts +2 -1
  127. package/dist/components/builder/v3/StepNode.d.ts.map +1 -1
  128. package/dist/components/builder/v3/StepNode.js +2 -2
  129. package/dist/components/builder/v3/StepNode.js.map +1 -1
  130. package/dist/components/dashboard/WorkflowSummaryEditor.d.ts +11 -0
  131. package/dist/components/dashboard/WorkflowSummaryEditor.d.ts.map +1 -0
  132. package/dist/components/dashboard/WorkflowSummaryEditor.js +46 -0
  133. package/dist/components/dashboard/WorkflowSummaryEditor.js.map +1 -0
  134. package/dist/components/execution/ExecutionEdge.d.ts +4 -0
  135. package/dist/components/execution/ExecutionEdge.d.ts.map +1 -0
  136. package/dist/components/execution/ExecutionEdge.js +27 -0
  137. package/dist/components/execution/ExecutionEdge.js.map +1 -0
  138. package/dist/components/execution/ExecutionStepNode.d.ts +14 -0
  139. package/dist/components/execution/ExecutionStepNode.d.ts.map +1 -0
  140. package/dist/components/execution/ExecutionStepNode.js +47 -0
  141. package/dist/components/execution/ExecutionStepNode.js.map +1 -0
  142. package/dist/components/execution/ExecutionTree.d.ts +3 -2
  143. package/dist/components/execution/ExecutionTree.d.ts.map +1 -1
  144. package/dist/components/execution/ExecutionTree.js +28 -3
  145. package/dist/components/execution/ExecutionTree.js.map +1 -1
  146. package/dist/components/execution/ExecutionTriggerNode.d.ts +9 -0
  147. package/dist/components/execution/ExecutionTriggerNode.d.ts.map +1 -0
  148. package/dist/components/execution/ExecutionTriggerNode.js +15 -0
  149. package/dist/components/execution/ExecutionTriggerNode.js.map +1 -0
  150. package/dist/components/execution/ExecutionViewer.d.ts.map +1 -1
  151. package/dist/components/execution/ExecutionViewer.js +2 -2
  152. package/dist/components/execution/ExecutionViewer.js.map +1 -1
  153. package/dist/components/execution/SchemaAwareRenderer.d.ts.map +1 -1
  154. package/dist/components/execution/SchemaAwareRenderer.js +4 -2
  155. package/dist/components/execution/SchemaAwareRenderer.js.map +1 -1
  156. package/dist/components/execution/StepAgentPanels.d.ts +9 -0
  157. package/dist/components/execution/StepAgentPanels.d.ts.map +1 -0
  158. package/dist/components/execution/StepAgentPanels.js +133 -0
  159. package/dist/components/execution/StepAgentPanels.js.map +1 -0
  160. package/dist/components/execution/StepDetailPanel.d.ts +3 -2
  161. package/dist/components/execution/StepDetailPanel.d.ts.map +1 -1
  162. package/dist/components/execution/StepDetailPanel.js +70 -4
  163. package/dist/components/execution/StepDetailPanel.js.map +1 -1
  164. package/dist/components/execution/execution-layout.d.ts +31 -0
  165. package/dist/components/execution/execution-layout.d.ts.map +1 -0
  166. package/dist/components/execution/execution-layout.js +90 -0
  167. package/dist/components/execution/execution-layout.js.map +1 -0
  168. package/dist/components/shared/AttachmentCard.d.ts +18 -0
  169. package/dist/components/shared/AttachmentCard.d.ts.map +1 -0
  170. package/dist/components/shared/AttachmentCard.js +56 -0
  171. package/dist/components/shared/AttachmentCard.js.map +1 -0
  172. package/dist/components/shared/JsonTreeViewer.d.ts +9 -0
  173. package/dist/components/shared/JsonTreeViewer.d.ts.map +1 -0
  174. package/dist/components/shared/JsonTreeViewer.js +46 -0
  175. package/dist/components/shared/JsonTreeViewer.js.map +1 -0
  176. package/dist/hooks/use-execution-viewer.d.ts +6 -0
  177. package/dist/hooks/use-execution-viewer.d.ts.map +1 -1
  178. package/dist/hooks/use-execution-viewer.js +14 -0
  179. package/dist/hooks/use-execution-viewer.js.map +1 -1
  180. package/dist/hooks/use-schema-form.d.ts.map +1 -1
  181. package/dist/hooks/use-schema-form.js +16 -5
  182. package/dist/hooks/use-schema-form.js.map +1 -1
  183. package/dist/hooks/use-variable-picker.d.ts.map +1 -1
  184. package/dist/hooks/use-variable-picker.js +8 -0
  185. package/dist/hooks/use-variable-picker.js.map +1 -1
  186. package/dist/styles.css +1 -1
  187. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepPicker.js","sourceRoot":"","sources":["../../../../src/components/builder/v2/StepPicker.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { NodeProps } from '@xyflow/react';
2
+ export interface TerminalNodeData {
3
+ label: string;
4
+ }
5
+ export declare function TerminalNode({ data }: NodeProps): import("react").JSX.Element;
6
+ //# sourceMappingURL=TerminalNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerminalNode.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v2/TerminalNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,+BAgB/C"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Handle, Position } from '@xyflow/react';
3
+ export function TerminalNode({ data }) {
4
+ const { label } = data;
5
+ return (_jsxs("div", { className: "flex w-[240px] items-center justify-center", children: [_jsx(Handle, { type: "target", position: Position.Top, className: "!opacity-0" }), _jsxs("div", { className: "flex h-8 items-center gap-2 rounded-full border border-slate-200 bg-slate-50 px-4", children: [_jsx("svg", { width: "10", height: "10", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", className: "text-slate-400", children: _jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }) }), _jsx("span", { className: "text-[11px] font-medium text-slate-400 uppercase tracking-wider", children: label || 'End' })] })] }));
6
+ }
7
+ //# sourceMappingURL=TerminalNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerminalNode.js","sourceRoot":"","sources":["../../../../src/components/builder/v2/TerminalNode.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAMjD,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAa;IAC9C,MAAM,EAAE,KAAK,EAAE,GAAG,IAAmC,CAAC;IAEtD,OAAO,CACL,eAAK,SAAS,EAAC,4CAA4C,aACzD,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAC,YAAY,GAAG,EACvE,eAAK,SAAS,EAAC,mFAAmF,aAChG,cAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,SAAS,EAAC,gBAAgB,YAClJ,eAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,GAAE,GAC7C,EACN,eAAM,SAAS,EAAC,iEAAiE,YAC9E,KAAK,IAAI,KAAK,GACV,IACH,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { NodeProps } from '@xyflow/react';
2
+ export interface TriggerNodeData {
3
+ triggerType: string;
4
+ label: string;
5
+ icon?: string;
6
+ isSelected?: boolean;
7
+ isConfigured?: boolean;
8
+ }
9
+ export declare function TriggerNode({ data }: NodeProps): import("react").JSX.Element;
10
+ //# sourceMappingURL=TriggerNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TriggerNode.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v2/TriggerNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAK/C,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,+BA+D9C"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Handle, Position } from '@xyflow/react';
3
+ import { cn } from '../../shared/cn.js';
4
+ import { getTriggerIcon } from './icons.js';
5
+ export function TriggerNode({ data }) {
6
+ const { label, icon, isSelected, isConfigured } = data;
7
+ // Unconfigured: placeholder card prompting user to select a trigger
8
+ if (!isConfigured) {
9
+ return (_jsxs("div", { className: cn('w-[240px] rounded-lg border-2 border-dashed bg-white transition-all duration-200', 'cursor-pointer select-none', isSelected
10
+ ? 'border-indigo-400 shadow-[0_0_0_3px_rgba(99,102,241,0.12)]'
11
+ : 'border-slate-300 shadow-sm hover:border-indigo-300 hover:shadow-md',
12
+ // Breathing animation when not selected
13
+ !isSelected && 'animate-[wui-breathe_3s_ease-in-out_infinite]'), children: [_jsxs("div", { className: "flex items-center gap-3 px-3.5 py-3", children: [_jsx("div", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-indigo-50 text-indigo-400", children: _jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" }) }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "text-[13px] font-medium text-slate-500", children: "Select Trigger" }), _jsx("div", { className: "mt-0.5 text-[11px] text-slate-400", children: "Click to choose type" })] })] }), _jsx(Handle, { type: "source", position: Position.Bottom, className: "!opacity-0" })] }));
14
+ }
15
+ // Configured: normal trigger node
16
+ return (_jsxs("div", { className: cn('w-[240px] rounded-lg border border-l-[3px] border-l-indigo-500 bg-white transition-all duration-150', 'cursor-pointer select-none', isSelected
17
+ ? 'ring-2 ring-indigo-200 border-indigo-300 shadow-md'
18
+ : 'border-slate-200 shadow-sm hover:shadow-md hover:-translate-y-[1px] hover:border-slate-300'), children: [_jsxs("div", { className: "flex items-center gap-3 px-3.5 py-3", children: [_jsx("div", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-indigo-50 text-indigo-500", children: getTriggerIcon(icon) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "truncate text-[13px] font-semibold text-slate-800 leading-tight", children: label || 'Trigger' }), _jsxs("div", { className: "mt-0.5 flex items-center gap-1.5", children: [_jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-indigo-400" }), _jsx("span", { className: "text-[10px] text-slate-400 uppercase tracking-wide", children: "trigger" })] })] })] }), _jsx(Handle, { type: "source", position: Position.Bottom, className: "!opacity-0" })] }));
19
+ }
20
+ //# sourceMappingURL=TriggerNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TriggerNode.js","sourceRoot":"","sources":["../../../../src/components/builder/v2/TriggerNode.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAU5C,MAAM,UAAU,WAAW,CAAC,EAAE,IAAI,EAAa;IAC7C,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAkC,CAAC;IAErF,oEAAoE;IACpE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,kFAAkF,EAClF,4BAA4B,EAC5B,UAAU;gBACR,CAAC,CAAC,4DAA4D;gBAC9D,CAAC,CAAC,oEAAoE;YACxE,wCAAwC;YACxC,CAAC,UAAU,IAAI,+CAA+C,CAC/D,aAED,eAAK,SAAS,EAAC,qCAAqC,aAClD,cAAK,SAAS,EAAC,2FAA2F,YACxG,cAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,YAC5I,kBAAS,MAAM,EAAC,wCAAwC,GAAE,GACtD,GACF,EACN,eAAK,SAAS,EAAC,gBAAgB,aAC7B,cAAK,SAAS,EAAC,wCAAwC,+BAAqB,EAC5E,cAAK,SAAS,EAAC,mCAAmC,qCAA2B,IACzE,IACF,EAEN,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAC,YAAY,GAAG,IACtE,CACP,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,qGAAqG,EACrG,4BAA4B,EAC5B,UAAU;YACR,CAAC,CAAC,oDAAoD;YACtD,CAAC,CAAC,4FAA4F,CACjG,aAED,eAAK,SAAS,EAAC,qCAAqC,aAClD,cAAK,SAAS,EAAC,2FAA2F,YACvG,cAAc,CAAC,IAAI,CAAC,GACjB,EACN,eAAK,SAAS,EAAC,gBAAgB,aAC7B,cAAK,SAAS,EAAC,iEAAiE,YAC7E,KAAK,IAAI,SAAS,GACf,EACN,eAAK,SAAS,EAAC,kCAAkC,aAC/C,eAAM,SAAS,EAAC,wCAAwC,GAAG,EAC3D,eAAM,SAAS,EAAC,oDAAoD,wBAAe,IAC/E,IACF,IACF,EAEN,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAC,YAAY,GAAG,IACtE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface TriggerPickerProps {
2
+ open: boolean;
3
+ onSelect: (type: string) => void;
4
+ onClose: () => void;
5
+ }
6
+ export declare function TriggerPicker({ open, onSelect, onClose }: TriggerPickerProps): import("react").JSX.Element | null;
7
+ //# sourceMappingURL=TriggerPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TriggerPicker.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v2/TriggerPicker.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,kBAAkB,sCA6F5E"}
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useState } from 'react';
3
+ import { useWorkflowClient } from '../../../hooks/use-workflow-client.js';
4
+ import { cn } from '../../shared/cn.js';
5
+ import { getTriggerIcon } from './icons.js';
6
+ export function TriggerPicker({ open, onSelect, onClose }) {
7
+ const client = useWorkflowClient();
8
+ const [triggers, setTriggers] = useState([]);
9
+ useEffect(() => {
10
+ if (!open)
11
+ return;
12
+ let cancelled = false;
13
+ void (async () => {
14
+ try {
15
+ const result = await client.schema.triggers();
16
+ if (!cancelled)
17
+ setTriggers(result);
18
+ }
19
+ catch {
20
+ // Triggers unavailable
21
+ }
22
+ })();
23
+ return () => { cancelled = true; };
24
+ }, [client, open]);
25
+ useEffect(() => {
26
+ if (!open)
27
+ return;
28
+ const handleKeyDown = (e) => {
29
+ if (e.key === 'Escape') {
30
+ e.preventDefault();
31
+ onClose();
32
+ }
33
+ };
34
+ document.addEventListener('keydown', handleKeyDown);
35
+ return () => document.removeEventListener('keydown', handleKeyDown);
36
+ }, [open, onClose]);
37
+ const handleSelect = useCallback((type) => {
38
+ onSelect(type);
39
+ onClose();
40
+ }, [onSelect, onClose]);
41
+ if (!open)
42
+ return null;
43
+ return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center", onMouseDown: onClose, children: [_jsx("div", { className: "absolute inset-0 bg-slate-900/20 backdrop-blur-[2px]" }), _jsxs("div", { className: "relative w-full max-w-md rounded-2xl border border-slate-200/80 bg-white shadow-2xl animate-[wui-scale-in_180ms_ease-out]", onMouseDown: (e) => e.stopPropagation(), children: [_jsx("div", { className: "border-b border-slate-100 px-5 pt-5 pb-4", children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-base font-bold text-slate-800", children: "Select Trigger" }), _jsx("p", { className: "mt-0.5 text-xs text-slate-400", children: "Choose how your workflow starts" })] }), _jsx("button", { onClick: onClose, className: "flex h-7 w-7 items-center justify-center rounded-lg text-slate-400 transition-colors hover:bg-slate-100 hover:text-slate-600", children: _jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: [_jsx("path", { d: "M18 6 6 18" }), _jsx("path", { d: "m6 6 12 12" })] }) })] }) }), _jsxs("div", { className: "max-h-[50vh] overflow-y-auto p-3", children: [_jsx("div", { className: "space-y-1", children: triggers.map((trigger) => (_jsxs("button", { onClick: () => handleSelect(trigger.type), className: cn('flex w-full items-center gap-3.5 rounded-xl px-3 py-3 text-left transition-all duration-100', 'hover:bg-indigo-50/60 active:scale-[0.99]'), children: [_jsx("div", { className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-indigo-50 text-indigo-500", children: getTriggerIcon(trigger.icon) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "text-[13px] font-semibold text-slate-700", children: trigger.name }), _jsx("div", { className: "mt-0.5 truncate text-[11px] text-slate-400 leading-tight", children: trigger.description })] }), _jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", className: "shrink-0 text-slate-300", children: _jsx("path", { d: "m9 18 6-6-6-6" }) })] }, trigger.type))) }), triggers.length === 0 && (_jsxs("div", { className: "flex flex-col items-center py-10", children: [_jsx("div", { className: "mb-2 h-8 w-8 animate-spin rounded-full border-2 border-slate-200 border-t-indigo-400" }), _jsx("p", { className: "text-sm text-slate-400", children: "Loading triggers..." })] }))] })] })] }));
44
+ }
45
+ //# sourceMappingURL=TriggerPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TriggerPicker.js","sourceRoot":"","sources":["../../../../src/components/builder/v2/TriggerPicker.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type React from 'react';
2
+ import type { WorkflowConfig } from '@xyne/workflow-sdk/builder';
3
+ import { type UseWorkflowBuilderReturn } from '../../../hooks/use-workflow-builder.js';
4
+ export interface WorkflowBuilderProps {
5
+ builder?: UseWorkflowBuilderReturn;
6
+ initialConfig?: WorkflowConfig;
7
+ onChange?: (config: WorkflowConfig) => void;
8
+ onSave?: (config: WorkflowConfig) => Promise<void>;
9
+ onTestRun?: (config: WorkflowConfig) => void;
10
+ readOnly?: boolean;
11
+ className?: string;
12
+ }
13
+ export declare function WorkflowBuilder(props: WorkflowBuilderProps): React.JSX.Element;
14
+ //# sourceMappingURL=WorkflowBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v2/WorkflowBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAsB,KAAK,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAS3G,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,wBAAwB,CAAC;IACnC,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8OD,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,qBAM1D"}
@@ -0,0 +1,189 @@
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 { useStepMetadata } from '../../../hooks/use-step-metadata.js';
6
+ import { computeLayout } from './layout-engine.js';
7
+ import { v2NodeTypes } from './node-types.js';
8
+ import { v2EdgeTypes } from './edge-types.js';
9
+ import { TriggerPicker } from './TriggerPicker.js';
10
+ import { StepPicker } from './StepPicker.js';
11
+ import { cn } from '../../shared/cn.js';
12
+ function WorkflowBuilderInner({ builder: externalBuilder, initialConfig, onChange, readOnly, className, }) {
13
+ const opts = { autoValidate: true };
14
+ if (initialConfig)
15
+ opts.initialConfig = initialConfig;
16
+ if (onChange)
17
+ opts.onChange = onChange;
18
+ const internalBuilder = useWorkflowBuilder(opts);
19
+ const builder = externalBuilder ?? internalBuilder;
20
+ const { stepMeta, triggerMeta } = useStepMetadata(builder.config);
21
+ // Modal state
22
+ const [showTriggerPicker, setShowTriggerPicker] = useState(false);
23
+ const [showStepPicker, setShowStepPicker] = useState(false);
24
+ const [addAfterStepId, setAddAfterStepId] = useState(undefined);
25
+ const [addInBranch, setAddInBranch] = useState(undefined);
26
+ // Resolve trigger label and icon from backend metadata
27
+ const triggerInfo = useMemo(() => {
28
+ const meta = triggerMeta.find((t) => t.type === builder.config.trigger.type);
29
+ return { label: meta?.name, icon: meta?.icon };
30
+ }, [triggerMeta, builder.config.trigger.type]);
31
+ // onNodeClick — the ONLY reliable way to handle clicks in ReactFlow
32
+ const handleNodeClick = useCallback((_event, node) => {
33
+ if (readOnly)
34
+ return;
35
+ if (node.type === 'trigger') {
36
+ if (builder.isTriggerConfigured) {
37
+ builder.selectTrigger();
38
+ }
39
+ else {
40
+ setShowTriggerPicker(true);
41
+ }
42
+ }
43
+ else if (node.type === 'step') {
44
+ builder.selectStep(node.id);
45
+ }
46
+ else if (node.type === 'addButton') {
47
+ const data = node.data;
48
+ const inBranch = data['inBranch'];
49
+ if (inBranch) {
50
+ // "+" inside a branch — open StepPicker with branch context
51
+ setAddInBranch(inBranch);
52
+ setAddAfterStepId(undefined);
53
+ }
54
+ else {
55
+ // "+" in top-level chain
56
+ const afterId = data['afterStepId'];
57
+ setAddAfterStepId(afterId || undefined);
58
+ setAddInBranch(undefined);
59
+ }
60
+ setShowStepPicker(true);
61
+ }
62
+ }, [builder, readOnly]);
63
+ const handleCanvasClick = useCallback(() => {
64
+ builder.clearSelection();
65
+ }, [builder]);
66
+ const handleSelectTrigger = useCallback((type) => {
67
+ builder.setTrigger(type);
68
+ builder.selectTrigger();
69
+ setShowTriggerPicker(false);
70
+ }, [builder]);
71
+ const handleAddStep = useCallback((type) => {
72
+ if (addInBranch) {
73
+ builder.addStep(type, undefined, addInBranch);
74
+ }
75
+ else {
76
+ builder.addStep(type, addAfterStepId);
77
+ }
78
+ setShowStepPicker(false);
79
+ setAddAfterStepId(undefined);
80
+ setAddInBranch(undefined);
81
+ }, [builder, addAfterStepId, addInBranch]);
82
+ // Convert WorkflowConfig → ReactFlow nodes + edges
83
+ const { nodes, edges } = useMemo(() => {
84
+ const layout = computeLayout(builder.config, {
85
+ stepMeta,
86
+ triggerLabel: triggerInfo.label,
87
+ triggerIcon: triggerInfo.icon,
88
+ includeAddButtons: !readOnly,
89
+ });
90
+ const rfNodes = layout.nodes.map((n) => {
91
+ if (n.type === 'trigger') {
92
+ return {
93
+ id: n.id,
94
+ type: n.type,
95
+ position: n.position,
96
+ data: {
97
+ triggerType: n.data.triggerType ?? '',
98
+ label: n.data.label,
99
+ icon: n.data.icon,
100
+ isSelected: builder.isTriggerSelected,
101
+ isConfigured: builder.isTriggerConfigured,
102
+ },
103
+ };
104
+ }
105
+ if (n.type === 'addButton') {
106
+ if (readOnly)
107
+ return null;
108
+ return {
109
+ id: n.id,
110
+ type: n.type,
111
+ position: n.position,
112
+ data: {
113
+ afterStepId: n.data.afterStepId ?? '',
114
+ inBranch: n.data.inBranch,
115
+ },
116
+ };
117
+ }
118
+ if (n.type === 'step') {
119
+ const stepConfig = n.data.stepConfig;
120
+ const isDisabled = stepConfig
121
+ ? Boolean(stepConfig.config?.['disabled'])
122
+ : false;
123
+ const nodeData = {
124
+ stepConfig: stepConfig ?? { id: n.id, type: 'UNKNOWN', config: {} },
125
+ label: n.data.label,
126
+ category: n.data.category,
127
+ kind: n.data.kind,
128
+ icon: n.data.icon,
129
+ isSelected: builder.selectedStepId === n.id,
130
+ isDisabled,
131
+ hasValidationErrors: false,
132
+ dynamicBranchContainer: n.data.dynamicBranchContainer,
133
+ };
134
+ if (!readOnly) {
135
+ nodeData['onDelete'] = () => builder.removeStep(n.id);
136
+ nodeData['onDuplicate'] = () => builder.duplicateStep(n.id);
137
+ nodeData['onToggleDisabled'] = () => builder.toggleStepDisabled(n.id);
138
+ // For dynamic branch containers (PARALLEL): provide addBranch callback
139
+ if (n.data.dynamicBranchContainer) {
140
+ nodeData['onAddBranch'] = (branchName) => {
141
+ builder.addBranch(n.id, n.data.dynamicBranchContainer, branchName);
142
+ };
143
+ }
144
+ }
145
+ return { id: n.id, type: n.type, position: n.position, data: nodeData };
146
+ }
147
+ // terminal
148
+ return { id: n.id, type: n.type, position: n.position, data: { label: n.data.label } };
149
+ }).filter(Boolean);
150
+ const rfEdges = layout.edges.map((e) => {
151
+ const edge = {
152
+ id: e.id,
153
+ source: e.source,
154
+ target: e.target,
155
+ type: e.type === 'loopback' ? 'loopback' : e.type === 'loopBody' ? 'loopBody' : e.label ? 'branch' : 'smoothstep',
156
+ ...(e.label ? { label: e.label } : {}),
157
+ ...(e.sourceHandle ? { sourceHandle: e.sourceHandle } : {}),
158
+ ...(e.targetHandle ? { targetHandle: e.targetHandle } : {}),
159
+ };
160
+ if (e.data && !readOnly) {
161
+ const bd = e.data;
162
+ edge.data = {
163
+ ...e.data,
164
+ onRename: (newName) => {
165
+ const dotIdx = bd.branchKey.indexOf('.');
166
+ const containerKey = dotIdx >= 0 ? bd.branchKey.slice(0, dotIdx) : bd.branchKey;
167
+ const oldName = dotIdx >= 0 ? bd.branchKey.slice(dotIdx + 1) : bd.branchKey;
168
+ builder.renameBranch(bd.branchStepId, containerKey, oldName, newName);
169
+ },
170
+ };
171
+ }
172
+ return edge;
173
+ });
174
+ return { nodes: rfNodes, edges: rfEdges };
175
+ }, [builder, stepMeta, triggerInfo, readOnly]);
176
+ return (_jsxs("div", { className: cn('flex h-full w-full', className), "data-workflow-ui": true, children: [_jsxs(ReactFlow, { nodes: nodes, edges: edges, nodeTypes: v2NodeTypes, edgeTypes: v2EdgeTypes, onNodeClick: handleNodeClick, onPaneClick: handleCanvasClick, fitView: true, fitViewOptions: { padding: 0.4, maxZoom: 1 }, proOptions: { hideAttribution: true }, nodesDraggable: false, nodesConnectable: false, elementsSelectable: false, panOnDrag: true, zoomOnScroll: true, minZoom: 0.25, maxZoom: 2, defaultEdgeOptions: {
177
+ style: { stroke: '#cbd5e1', strokeWidth: 1.5 },
178
+ type: 'smoothstep',
179
+ }, children: [_jsx(Background, { gap: 20, size: 1, color: "#e2e8f0", style: { opacity: 0.4 } }), _jsx(MiniMap, { nodeStrokeWidth: 2, pannable: true, zoomable: true, maskColor: "rgba(248, 250, 252, 0.75)", style: {
180
+ bottom: 12,
181
+ right: 12,
182
+ width: 140,
183
+ height: 90,
184
+ } })] }), _jsx(TriggerPicker, { open: showTriggerPicker, onSelect: handleSelectTrigger, onClose: () => setShowTriggerPicker(false) }), _jsx(StepPicker, { open: showStepPicker, onSelect: handleAddStep, onClose: () => { setShowStepPicker(false); setAddAfterStepId(undefined); setAddInBranch(undefined); } })] }));
185
+ }
186
+ export function WorkflowBuilder(props) {
187
+ return (_jsx(ReactFlowProvider, { children: _jsx(WorkflowBuilderInner, { ...props }) }));
188
+ }
189
+ //# sourceMappingURL=WorkflowBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowBuilder.js","sourceRoot":"","sources":["../../../../src/components/builder/v2/WorkflowBuilder.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { EdgeTypes } from '@xyflow/react';
2
+ export declare const v2EdgeTypes: EdgeTypes;
3
+ //# sourceMappingURL=edge-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-types.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v2/edge-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAK/C,eAAO,MAAM,WAAW,EAAE,SAIzB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { BranchEdge } from './BranchEdge.js';
2
+ import { LoopbackEdge } from './LoopbackEdge.js';
3
+ import { LoopBodyEdge } from './LoopBodyEdge.js';
4
+ export const v2EdgeTypes = {
5
+ branch: BranchEdge,
6
+ loopback: LoopbackEdge,
7
+ loopBody: LoopBodyEdge,
8
+ };
9
+ //# sourceMappingURL=edge-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-types.js","sourceRoot":"","sources":["../../../../src/components/builder/v2/edge-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,MAAM,WAAW,GAAc;IACpC,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;CACvB,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/v2/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/v2/icons.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * v2/layout-engine — Config-driven layout computation.
3
+ *
4
+ * Pure function: no side effects, no React, no hooks.
5
+ * Uses generic branch detection from config data + configSchema.
6
+ *
7
+ * Two branch shapes detected automatically:
8
+ * 1. Direct array: config.body = [{id, type, ...}] (LOOP)
9
+ * 2. Record of arrays: config.branches = { "A": [{id, type}] } (PARALLEL)
10
+ *
11
+ * Branch keys use dot notation: "body" or "branches.A".
12
+ */
13
+ import type { WorkflowStepConfig, WorkflowConfig } from '@xyne/workflow-sdk/builder';
14
+ import type { StepMeta } from '../../../hooks/use-step-metadata.js';
15
+ export interface LayoutNode {
16
+ id: string;
17
+ type: 'trigger' | 'step' | 'terminal' | 'addButton';
18
+ position: {
19
+ x: number;
20
+ y: number;
21
+ };
22
+ data: {
23
+ stepConfig?: WorkflowStepConfig | undefined;
24
+ triggerType?: string | undefined;
25
+ triggerConfig?: Record<string, unknown> | undefined;
26
+ label: string;
27
+ /** From backend metadata */
28
+ category?: string | undefined;
29
+ kind?: string | undefined;
30
+ icon?: string | undefined;
31
+ /** For addButton nodes: which step to insert after (top-level chain) */
32
+ afterStepId?: string | undefined;
33
+ /**
34
+ * For addButton nodes inside a branch: identifies which branch to insert into.
35
+ * { stepId: "parallel_abc", branchKey: "branches.A" }
36
+ */
37
+ inBranch?: {
38
+ stepId: string;
39
+ branchKey: string;
40
+ } | undefined;
41
+ /**
42
+ * For step nodes that are dynamic branch containers (e.g. PARALLEL):
43
+ * the config key that holds Record<string, steps[]>.
44
+ */
45
+ dynamicBranchContainer?: string | undefined;
46
+ };
47
+ }
48
+ export interface LayoutEdge {
49
+ id: string;
50
+ source: string;
51
+ target: string;
52
+ type?: string;
53
+ label?: string;
54
+ data?: Record<string, unknown>;
55
+ sourceHandle?: string | undefined;
56
+ targetHandle?: string | undefined;
57
+ }
58
+ export interface LayoutResult {
59
+ nodes: LayoutNode[];
60
+ edges: LayoutEdge[];
61
+ }
62
+ export declare const NODE_GAP_Y = 140;
63
+ /** Extra vertical padding before branch fork. */
64
+ export declare const BRANCH_FORK_GAP = 120;
65
+ export interface LayoutOptions {
66
+ /** Step metadata from useStepMetadata hook. */
67
+ stepMeta?: Map<string, StepMeta> | undefined;
68
+ /** Trigger label (from backend TriggerSummary.name). */
69
+ triggerLabel?: string | undefined;
70
+ /** Trigger icon name (from backend TriggerSummary.icon). */
71
+ triggerIcon?: string | undefined;
72
+ /** Insert addButton nodes between steps. Default true. */
73
+ includeAddButtons?: boolean | undefined;
74
+ }
75
+ export declare function computeLayout(config: WorkflowConfig, options?: LayoutOptions): LayoutResult;
76
+ //# sourceMappingURL=layout-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-engine.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v2/layout-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAKpE,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,GAAG,SAAS,CAAC;QAC5C,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;QACpD,KAAK,EAAE,MAAM,CAAC;QACd,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,wEAAwE;QACxE,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC;;;WAGG;QACH,QAAQ,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAC;QAC7D;;;WAGG;QACH,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC7C,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;IAC/B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAID,eAAO,MAAM,UAAU,MAAM,CAAC;AAK9B,iDAAiD;AACjD,eAAO,MAAM,eAAe,MAAM,CAAC;AAQnC,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC7C,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACzC;AAoJD,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CA4C3F"}