@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,97 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useMemo, useState } from 'react';
3
+ import { useExecutionRerun } from '../../hooks/use-execution-rerun.js';
4
+ import { cn } from '../shared/cn.js';
5
+ import { ValueEditor, deepEqual, validateValueTree } from './ValueEditor.js';
6
+ /** Build the per-key shallow diff between edited and original. */
7
+ function diffTopLevel(edited, original) {
8
+ const diff = {};
9
+ for (const key of Object.keys(original)) {
10
+ if (!deepEqual(edited[key], original[key])) {
11
+ diff[key] = edited[key];
12
+ }
13
+ }
14
+ return diff;
15
+ }
16
+ /**
17
+ * Modal dialog for triggering a "rerun from step" operation.
18
+ *
19
+ * Renders the source step's input as a structured form (recursive ValueEditor).
20
+ * Locks structure + types — users can only update existing fields. Only fields
21
+ * whose values changed are sent as `configOverrides`; unchanged fields keep
22
+ * their original raw config (preserving any `{{...}}` variable references).
23
+ */
24
+ export function RerunDialog({ executionId, fromStepId, fromStepLabel, originalInput, onClose, onSuccess, className, }) {
25
+ const { rerun, isSubmitting, error } = useExecutionRerun({
26
+ executionId,
27
+ onSuccess: (newId) => {
28
+ onSuccess?.(newId);
29
+ onClose();
30
+ },
31
+ });
32
+ const hasOriginal = !!originalInput;
33
+ // ─── Form mode (structured editor) ───
34
+ const [edited, setEdited] = useState(() => (originalInput ? structuredClone(originalInput) : {}));
35
+ useEffect(() => {
36
+ setEdited(originalInput ? structuredClone(originalInput) : {});
37
+ }, [originalInput]);
38
+ const errors = useMemo(() => {
39
+ if (!originalInput)
40
+ return [];
41
+ return validateValueTree(edited, originalInput);
42
+ }, [edited, originalInput]);
43
+ const diff = useMemo(() => {
44
+ if (!originalInput)
45
+ return {};
46
+ return diffTopLevel(edited, originalInput);
47
+ }, [edited, originalInput]);
48
+ // ─── JSON fallback mode (for control-flow steps with no original input) ───
49
+ const [rawJson, setRawJson] = useState('{}');
50
+ const [rawJsonError, setRawJsonError] = useState(null);
51
+ const [inheritStepState, setInheritStepState] = useState(true);
52
+ const handleResetAll = useCallback(() => {
53
+ if (originalInput)
54
+ setEdited(structuredClone(originalInput));
55
+ }, [originalInput]);
56
+ const handleSubmit = useCallback(async () => {
57
+ let overrides = {};
58
+ if (hasOriginal) {
59
+ if (errors.length > 0)
60
+ return;
61
+ overrides = diff;
62
+ }
63
+ else {
64
+ const trimmed = rawJson.trim();
65
+ if (trimmed && trimmed !== '{}') {
66
+ try {
67
+ const parsed = JSON.parse(trimmed);
68
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
69
+ setRawJsonError('Must be a JSON object');
70
+ return;
71
+ }
72
+ overrides = parsed;
73
+ }
74
+ catch (err) {
75
+ setRawJsonError(err instanceof Error ? err.message : 'Invalid JSON');
76
+ return;
77
+ }
78
+ }
79
+ setRawJsonError(null);
80
+ }
81
+ const hasOverrides = Object.keys(overrides).length > 0;
82
+ await rerun({
83
+ fromStepId,
84
+ ...(hasOverrides ? { configOverrides: overrides } : {}),
85
+ inheritStepState,
86
+ });
87
+ }, [hasOriginal, errors, diff, rawJson, rerun, fromStepId, inheritStepState]);
88
+ const changedTopLevelKeys = Object.keys(diff);
89
+ const submitDisabled = isSubmitting || (hasOriginal ? errors.length > 0 : false);
90
+ return (_jsxs("div", { className: cn('fixed inset-0 z-50 flex items-center justify-center', className), children: [_jsx("div", { className: "absolute inset-0 bg-black/30", onClick: onClose }), _jsxs("div", { className: cn('relative z-10 w-full max-w-2xl rounded-xl border border-slate-200 bg-white shadow-xl', 'animate-[wui-fade-in_150ms_ease-out]'), children: [_jsxs("div", { className: "flex items-center justify-between border-b border-slate-200/80 px-5 py-3.5", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h3", { className: "text-sm font-semibold text-slate-800", children: "Rerun from step" }), _jsx("p", { className: "mt-0.5 truncate text-xs text-slate-500", children: "Edit the step input and replay this execution." })] }), _jsx("button", { onClick: onClose, className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-md text-slate-400 hover:bg-slate-100 hover:text-slate-600 transition-colors", "aria-label": "Close", children: _jsxs("svg", { width: "14", height: "14", 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-[72vh] space-y-4 overflow-y-auto px-5 py-4", children: [_jsxs("div", { className: "grid grid-cols-2 gap-3", children: [_jsxs("div", { children: [_jsx("label", { className: "mb-1 block font-mono text-[10px] uppercase tracking-[0.08em] text-slate-400", children: "source.execution" }), _jsx("div", { className: "truncate rounded-md border border-slate-200 bg-slate-50 px-2.5 py-1.5 font-mono text-[11px] text-slate-700", title: executionId, children: executionId })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block font-mono text-[10px] uppercase tracking-[0.08em] text-slate-400", children: "from.step" }), _jsx("div", { className: "truncate rounded-md border border-slate-200 bg-slate-50 px-2.5 py-1.5 text-[12px] font-medium text-slate-700", children: fromStepLabel ?? fromStepId })] })] }), _jsxs("div", { children: [_jsxs("div", { className: "mb-2 flex items-center justify-between", children: [_jsxs("label", { className: "flex items-center gap-2 font-mono text-[10px] uppercase tracking-[0.08em] text-slate-400", children: [_jsx("span", { children: "step.input" }), hasOriginal && changedTopLevelKeys.length > 0 && (_jsxs("span", { className: "rounded-sm bg-amber-100 px-1.5 py-px font-mono text-[10px] normal-case tracking-normal text-amber-700", children: [changedTopLevelKeys.length, " modified"] }))] }), hasOriginal && changedTopLevelKeys.length > 0 && (_jsx("button", { type: "button", onClick: handleResetAll, className: "text-[11px] font-medium text-indigo-500 hover:text-indigo-700", children: "Reset all" }))] }), hasOriginal ? (_jsxs("div", { className: "rounded-md border border-slate-200 bg-white", children: [Object.keys(originalInput).length === 0 ? (_jsx("p", { className: "px-3 py-3 text-[12px] text-slate-500", children: "This step had no recorded input fields." })) : (_jsx("div", { className: "space-y-px px-1 py-1", children: Object.keys(originalInput).map((key) => (_jsx(ValueEditor, { value: edited[key], original: originalInput[key], label: key, path: [key], depth: 0, onChange: (next) => setEdited((prev) => ({ ...prev, [key]: next })) }, key))) })), errors.length > 0 && (_jsx("div", { className: "border-t border-red-100 bg-red-50/60 px-3 py-2", children: _jsx("ul", { className: "space-y-0.5 font-mono text-[11px] text-red-700", children: errors.map((e, i) => (_jsxs("li", { children: [_jsx("span", { className: "text-red-500", children: e.path || '<root>' }), ": ", e.message] }, i))) }) }))] })) : (_jsxs("div", { children: [_jsx("textarea", { value: rawJson, onChange: (e) => {
91
+ setRawJson(e.target.value);
92
+ setRawJsonError(null);
93
+ }, spellCheck: false, rows: Math.min(14, Math.max(6, rawJson.split('\n').length)), className: cn('w-full resize-y rounded-md border bg-white px-3 py-2 font-mono text-[12px] leading-relaxed text-slate-700', 'focus:outline-none focus:ring-2 focus:ring-indigo-200', rawJsonError ? 'border-red-300' : 'border-slate-200'), placeholder: '{\n "fieldName": "new value"\n}' }), rawJsonError && (_jsx("p", { className: "mt-1 font-mono text-[11px] text-red-500", children: rawJsonError }))] })), _jsx("p", { className: "mt-1.5 text-[11px] text-slate-500", children: hasOriginal
94
+ ? 'Field types and structure are locked. Only fields you change are sent as overrides; unchanged fields use the workflow definition as-is.'
95
+ : 'No recorded input — any JSON object you enter will be applied as overrides.' })] }), _jsx("div", { children: _jsxs("label", { className: "flex cursor-pointer items-start gap-2.5", children: [_jsx("input", { type: "checkbox", checked: inheritStepState, onChange: (e) => setInheritStepState(e.target.checked), className: "mt-0.5 h-4 w-4 cursor-pointer rounded border-slate-300 text-indigo-500 focus:ring-indigo-200" }), _jsxs("span", { children: [_jsx("span", { className: "block text-[13px] font-medium text-slate-700", children: "Inherit step state" }), _jsxs("span", { className: "mt-0.5 block text-[11px] text-slate-500", children: ["Pass the source run's data for this step as ", _jsx("code", { className: "rounded bg-slate-100 px-1 py-0.5 font-mono text-[10px]", children: "ctx.priorState" }), ". Required for agent steps to continue prior conversations."] })] })] }) })] }), _jsxs("div", { className: "flex items-center justify-end gap-2 border-t border-slate-200/80 px-5 py-3", children: [error && (_jsx("span", { className: "mr-auto truncate text-xs text-red-500", title: error.message, children: error.message })), _jsx("button", { onClick: onClose, disabled: isSubmitting, className: "rounded-md border border-slate-200 px-3.5 py-1.5 text-[13px] font-medium text-slate-600 transition-colors hover:bg-slate-50 disabled:opacity-50", children: "Cancel" }), _jsx("button", { onClick: () => void handleSubmit(), disabled: submitDisabled, className: cn('rounded-md px-3.5 py-1.5 text-[13px] font-semibold text-white transition-colors', 'bg-indigo-500 hover:bg-indigo-600', submitDisabled && 'cursor-not-allowed opacity-50'), children: isSubmitting ? 'Starting…' : 'Start Rerun' })] })] })] }));
96
+ }
97
+ //# sourceMappingURL=RerunDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RerunDialog.js","sourceRoot":"","sources":["../../../src/components/execution/RerunDialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface SchemaAwareRendererProps {
2
+ data: Record<string, unknown>;
3
+ schema: Record<string, unknown>;
4
+ className?: string | undefined;
5
+ }
6
+ export declare function SchemaAwareRenderer({ data, schema, className }: SchemaAwareRendererProps): import("react").JSX.Element | null;
7
+ //# sourceMappingURL=SchemaAwareRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaAwareRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/execution/SchemaAwareRenderer.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAyMD,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,wBAAwB,sCAiDxF"}
@@ -0,0 +1,116 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { cn } from '../shared/cn.js';
4
+ // ── Helpers ─────────────────────────────────────────────────────────────────
5
+ function getSchemaProperties(schema) {
6
+ return schema['properties'];
7
+ }
8
+ function getSchemaType(schema) {
9
+ return schema['type'];
10
+ }
11
+ function formatFieldLabel(key) {
12
+ return key
13
+ .replace(/([a-z])([A-Z])/g, '$1 $2')
14
+ .replace(/[_-]/g, ' ')
15
+ .replace(/^\w/, (c) => c.toUpperCase());
16
+ }
17
+ function getTypeBadge(type) {
18
+ switch (type) {
19
+ case 'string': return { label: 'str', color: 'bg-emerald-100 text-emerald-700' };
20
+ case 'number':
21
+ case 'integer': return { label: 'num', color: 'bg-blue-100 text-blue-700' };
22
+ case 'boolean': return { label: 'bool', color: 'bg-violet-100 text-violet-700' };
23
+ case 'array': return { label: 'arr', color: 'bg-amber-100 text-amber-700' };
24
+ case 'object': return { label: 'obj', color: 'bg-slate-100 text-slate-600' };
25
+ default: return { label: 'any', color: 'bg-slate-100 text-slate-500' };
26
+ }
27
+ }
28
+ function isComplexValue(value) {
29
+ if (value === null || value === undefined)
30
+ return false;
31
+ if (typeof value === 'object') {
32
+ if (Array.isArray(value))
33
+ return value.length > 0;
34
+ return Object.keys(value).length > 0;
35
+ }
36
+ return false;
37
+ }
38
+ function formatPrimitive(value) {
39
+ if (value === null)
40
+ return 'null';
41
+ if (value === undefined)
42
+ return '\u2014';
43
+ if (typeof value === 'boolean')
44
+ return value ? 'true' : 'false';
45
+ if (typeof value === 'number')
46
+ return String(value);
47
+ if (typeof value === 'string') {
48
+ if (value.length > 120)
49
+ return value.slice(0, 117) + '\u2026';
50
+ return value;
51
+ }
52
+ return String(value);
53
+ }
54
+ function getArraySummary(arr) {
55
+ return `${String(arr.length)} item${arr.length === 1 ? '' : 's'}`;
56
+ }
57
+ function getObjectSummary(obj) {
58
+ const keys = Object.keys(obj);
59
+ return `${String(keys.length)} key${keys.length === 1 ? '' : 's'}`;
60
+ }
61
+ // ── Inline JSON (for expanded complex values) ──────────────────────────────
62
+ function InlineJson({ data }) {
63
+ if (data === null || data === undefined) {
64
+ return _jsx("span", { className: "text-slate-400 italic", children: "null" });
65
+ }
66
+ if (typeof data === 'string') {
67
+ return _jsxs("span", { className: "text-emerald-700 break-all", children: ["\"", data, "\""] });
68
+ }
69
+ if (typeof data === 'number') {
70
+ return _jsx("span", { className: "text-blue-600", children: String(data) });
71
+ }
72
+ if (typeof data === 'boolean') {
73
+ return _jsx("span", { className: "text-violet-600", children: data ? 'true' : 'false' });
74
+ }
75
+ if (Array.isArray(data)) {
76
+ if (data.length === 0)
77
+ return _jsx("span", { className: "text-slate-400", children: "[]" });
78
+ return (_jsx("div", { className: "ml-3 space-y-0.5", children: data.map((item, i) => (_jsxs("div", { className: "flex items-start gap-1.5", children: [_jsx("span", { className: "shrink-0 text-[10px] text-slate-400 font-mono mt-px w-4 text-right", children: String(i) }), _jsx(InlineJson, { data: item })] }, i))) }));
79
+ }
80
+ if (typeof data === 'object') {
81
+ const entries = Object.entries(data);
82
+ if (entries.length === 0)
83
+ return _jsx("span", { className: "text-slate-400", children: '{}' });
84
+ return (_jsx("div", { className: "ml-3 space-y-0.5", children: entries.map(([key, val]) => (_jsxs("div", { className: "flex items-start gap-1.5", children: [_jsxs("span", { className: "shrink-0 text-slate-500 font-mono text-[11px]", children: [key, ":"] }), _jsx(InlineJson, { data: val })] }, key))) }));
85
+ }
86
+ return _jsx("span", { className: "text-slate-600", children: String(data) });
87
+ }
88
+ // ── Field Row ───────────────────────────────────────────────────────────────
89
+ function FieldRow({ label, value, fieldSchema, description, }) {
90
+ const [expanded, setExpanded] = useState(false);
91
+ const type = fieldSchema ? getSchemaType(fieldSchema) : undefined;
92
+ const badge = getTypeBadge(type);
93
+ const complex = isComplexValue(value);
94
+ return (_jsxs("div", { className: "group", children: [_jsxs("div", { className: "flex items-start gap-3 py-1.5", children: [_jsxs("div", { className: "flex items-center gap-1.5 shrink-0 w-[140px] min-w-[100px]", children: [_jsx("span", { className: "text-[12px] text-slate-500 truncate", title: label, children: label }), _jsx("span", { className: cn('rounded px-1 py-px text-[9px] font-medium leading-tight', badge.color), children: badge.label })] }), _jsx("div", { className: "flex-1 min-w-0", children: complex ? (_jsxs("div", { children: [_jsxs("button", { type: "button", onClick: () => setExpanded(!expanded), className: "flex items-center gap-1 text-[12px] text-slate-500 hover:text-slate-700 transition-colors", children: [_jsx("svg", { width: "10", height: "10", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", className: cn('transition-transform', expanded && 'rotate-90'), children: _jsx("polyline", { points: "9 18 15 12 9 6" }) }), _jsx("span", { className: "font-mono", children: Array.isArray(value) ? getArraySummary(value) : getObjectSummary(value) })] }), expanded && (_jsx("div", { className: "mt-1 rounded-md border border-slate-100 bg-slate-50/50 p-2 font-mono text-[11px] leading-[1.6]", children: _jsx(InlineJson, { data: value }) }))] })) : (_jsx("span", { className: cn('text-[12px] break-all', typeof value === 'number' ? 'font-mono text-blue-600' :
95
+ typeof value === 'boolean' ? 'font-mono text-violet-600' :
96
+ value === null || value === undefined ? 'text-slate-400 italic' :
97
+ 'text-slate-800'), children: formatPrimitive(value) })) })] }), description && (_jsx("div", { className: "ml-0 mb-1 text-[10px] text-slate-400 leading-tight", children: description }))] }));
98
+ }
99
+ // ── Main Component ──────────────────────────────────────────────────────────
100
+ export function SchemaAwareRenderer({ data, schema, className }) {
101
+ const properties = getSchemaProperties(schema);
102
+ if (!properties || Object.keys(properties).length === 0) {
103
+ // No schema properties — render nothing (caller should fall back to JSON tree)
104
+ return null;
105
+ }
106
+ // Split into: known schema fields (in order) and extra fields (not in schema)
107
+ const schemaKeys = Object.keys(properties);
108
+ const dataKeys = new Set(Object.keys(data));
109
+ const extraKeys = [...dataKeys].filter((k) => !schemaKeys.includes(k));
110
+ return (_jsxs("div", { className: cn('divide-y divide-slate-100', className), children: [schemaKeys.map((key) => {
111
+ const fieldSchema = properties[key];
112
+ const description = fieldSchema['description'];
113
+ return (_jsx(FieldRow, { label: formatFieldLabel(key), value: data[key], fieldSchema: fieldSchema, description: description }, key));
114
+ }), extraKeys.length > 0 && (_jsxs(_Fragment, { children: [_jsx("div", { className: "pt-2 pb-1", children: _jsx("span", { className: "text-[10px] font-medium uppercase tracking-wider text-slate-400", children: "Additional fields" }) }), extraKeys.map((key) => (_jsx(FieldRow, { label: formatFieldLabel(key), value: data[key] }, key)))] }))] }));
115
+ }
116
+ //# sourceMappingURL=SchemaAwareRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaAwareRenderer.js","sourceRoot":"","sources":["../../../src/components/execution/SchemaAwareRenderer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { StepExecutionState } from '../../hooks/use-execution-viewer.js';
2
+ export interface StepDetailPanelProps {
3
+ stepState: StepExecutionState;
4
+ executionId: string;
5
+ onClose: () => void;
6
+ onResumed?: (() => void) | undefined;
7
+ /** Output schema for the step type — enables structured rendering of output data. */
8
+ outputSchema?: Record<string, unknown> | undefined;
9
+ /**
10
+ * Called when the user clicks "Rerun from this step". Parent opens the
11
+ * RerunDialog. When omitted, the rerun button is hidden.
12
+ */
13
+ onRerun?: ((stepId: string) => void) | undefined;
14
+ /**
15
+ * Whether the parent execution is in a terminal status (completed/failed/
16
+ * cancelled). Only terminal executions can be rerun.
17
+ */
18
+ canRerun?: boolean | undefined;
19
+ className?: string | undefined;
20
+ }
21
+ export declare function StepDetailPanel({ stepState, executionId, onClose, onResumed, outputSchema, onRerun, canRerun, className, }: StepDetailPanelProps): import("react").JSX.Element;
22
+ //# sourceMappingURL=StepDetailPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepDetailPanel.d.ts","sourceRoot":"","sources":["../../../src/components/execution/StepDetailPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAM9E,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACrC,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACnD;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAsTD,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,WAAW,EACX,OAAO,EACP,SAAS,EACT,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE,oBAAoB,+BAmMtB"}
@@ -0,0 +1,144 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useCallback, useRef, useState } from 'react';
3
+ import { StatusBadge } from '../shared/StatusBadge.js';
4
+ import { PauseInteractionPanel } from './PauseInteractionPanel.js';
5
+ import { SchemaAwareRenderer } from './SchemaAwareRenderer.js';
6
+ import { cn } from '../shared/cn.js';
7
+ function mapStatus(s) {
8
+ switch (s.toLowerCase()) {
9
+ case 'running': return 'running';
10
+ case 'completed': return 'completed';
11
+ case 'failed': return 'failed';
12
+ case 'paused':
13
+ case 'external_wait': return 'paused';
14
+ case 'skipped': return 'skipped';
15
+ case 'cancelled': return 'cancelled';
16
+ default: return 'pending';
17
+ }
18
+ }
19
+ // ─── Status icon for header ───
20
+ function StatusIcon({ status }) {
21
+ const base = 'h-5 w-5 rounded-full flex items-center justify-center shrink-0';
22
+ switch (status) {
23
+ case 'completed':
24
+ return (_jsx("span", { className: cn(base, 'bg-emerald-100 text-emerald-600'), children: _jsx("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polyline", { points: "20 6 9 17 4 12" }) }) }));
25
+ case 'failed':
26
+ return (_jsx("span", { className: cn(base, 'bg-red-100 text-red-600'), children: _jsxs("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", children: [_jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), _jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] }) }));
27
+ case 'running':
28
+ return (_jsx("span", { className: cn(base, 'bg-blue-100 text-blue-600 animate-pulse'), children: _jsx("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "currentColor", children: _jsx("polygon", { points: "5 3 19 12 5 21 5 3" }) }) }));
29
+ case 'paused':
30
+ return (_jsx("span", { className: cn(base, 'bg-amber-100 text-amber-600'), children: _jsxs("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "currentColor", children: [_jsx("rect", { x: "6", y: "4", width: "4", height: "16", rx: "1" }), _jsx("rect", { x: "14", y: "4", width: "4", height: "16", rx: "1" })] }) }));
31
+ default:
32
+ return (_jsx("span", { className: cn(base, 'bg-slate-100 text-slate-400'), children: _jsx("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", children: _jsx("circle", { cx: "12", cy: "12", r: "10" }) }) }));
33
+ }
34
+ }
35
+ // ─── Resizable panel hook ───
36
+ function useResizable(initialWidth, minWidth, maxWidth) {
37
+ const [width, setWidth] = useState(initialWidth);
38
+ const dragRef = useRef(null);
39
+ const handleMouseDown = useCallback((e) => {
40
+ e.preventDefault();
41
+ dragRef.current = { startX: e.clientX, startW: width };
42
+ const handleMouseMove = (ev) => {
43
+ if (!dragRef.current)
44
+ return;
45
+ const dx = dragRef.current.startX - ev.clientX;
46
+ const newW = Math.min(maxWidth, Math.max(minWidth, dragRef.current.startW + dx));
47
+ setWidth(newW);
48
+ };
49
+ const handleMouseUp = () => {
50
+ dragRef.current = null;
51
+ document.removeEventListener('mousemove', handleMouseMove);
52
+ document.removeEventListener('mouseup', handleMouseUp);
53
+ document.body.style.cursor = '';
54
+ document.body.style.userSelect = '';
55
+ };
56
+ document.addEventListener('mousemove', handleMouseMove);
57
+ document.addEventListener('mouseup', handleMouseUp);
58
+ document.body.style.cursor = 'col-resize';
59
+ document.body.style.userSelect = 'none';
60
+ }, [width, minWidth, maxWidth]);
61
+ return { width, handleMouseDown };
62
+ }
63
+ // ─── JSON Tree Viewer ───
64
+ function JsonTreeViewer({ data, placeholder }) {
65
+ if (data === undefined || data === null || (typeof data === 'object' && Object.keys(data).length === 0)) {
66
+ return (_jsx("div", { className: "flex items-center justify-center py-8", children: _jsxs("div", { className: "text-center", children: [_jsxs("svg", { width: "32", height: "32", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", className: "mx-auto text-slate-300 mb-2", children: [_jsx("path", { d: "M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("polyline", { points: "13 2 13 9 20 9", strokeLinecap: "round", strokeLinejoin: "round" })] }), _jsx("div", { className: "text-[12px] text-slate-400", children: placeholder })] }) }));
67
+ }
68
+ return (_jsx("div", { className: "font-mono text-[12px] leading-[1.6]", children: _jsx(JsonNode, { value: data, depth: 0, isLast: true }) }));
69
+ }
70
+ function JsonNode({ value, depth, keyName, isLast }) {
71
+ const [collapsed, setCollapsed] = useState(depth > 2);
72
+ const indent = depth * 16;
73
+ if (value === null) {
74
+ return (_jsxs("div", { style: { paddingLeft: indent }, className: "flex items-baseline gap-1", children: [keyName !== undefined && _jsxs("span", { className: "text-slate-500", children: [keyName, _jsx("span", { className: "text-slate-400", children: ": " })] }), _jsx("span", { className: "text-slate-400 italic", children: "null" }), !isLast && _jsx("span", { className: "text-slate-300", children: "," })] }));
75
+ }
76
+ if (typeof value === 'boolean') {
77
+ return (_jsxs("div", { style: { paddingLeft: indent }, className: "flex items-baseline gap-1", children: [keyName !== undefined && _jsxs("span", { className: "text-slate-500", children: [keyName, _jsx("span", { className: "text-slate-400", children: ": " })] }), _jsx("span", { className: "text-violet-600", children: value ? 'true' : 'false' }), !isLast && _jsx("span", { className: "text-slate-300", children: "," })] }));
78
+ }
79
+ if (typeof value === 'number') {
80
+ return (_jsxs("div", { style: { paddingLeft: indent }, className: "flex items-baseline gap-1", children: [keyName !== undefined && _jsxs("span", { className: "text-slate-500", children: [keyName, _jsx("span", { className: "text-slate-400", children: ": " })] }), _jsx("span", { className: "text-blue-600", children: String(value) }), !isLast && _jsx("span", { className: "text-slate-300", children: "," })] }));
81
+ }
82
+ if (typeof value === 'string') {
83
+ const isLong = value.length > 80;
84
+ return (_jsxs("div", { style: { paddingLeft: indent }, className: "group/val flex items-start gap-1", children: [keyName !== undefined && _jsxs("span", { className: "shrink-0 text-slate-500", children: [keyName, _jsx("span", { className: "text-slate-400", children: ": " })] }), _jsxs("span", { className: cn('text-emerald-700 break-all', isLong && 'block'), children: ["\"", value, "\""] }), !isLast && _jsx("span", { className: "text-slate-300 shrink-0", children: "," })] }));
85
+ }
86
+ if (Array.isArray(value)) {
87
+ if (value.length === 0) {
88
+ return (_jsxs("div", { style: { paddingLeft: indent }, className: "flex items-baseline gap-1", children: [keyName !== undefined && _jsxs("span", { className: "text-slate-500", children: [keyName, _jsx("span", { className: "text-slate-400", children: ": " })] }), _jsx("span", { className: "text-slate-400", children: "[]" }), !isLast && _jsx("span", { className: "text-slate-300", children: "," })] }));
89
+ }
90
+ return (_jsxs("div", { children: [_jsxs("div", { style: { paddingLeft: indent }, className: "flex items-baseline gap-1 cursor-pointer hover:bg-slate-50 rounded -mx-1 px-1 transition-colors", onClick: () => setCollapsed(!collapsed), children: [_jsx("span", { className: "text-slate-400 w-3 text-center shrink-0 select-none", children: collapsed ? '\u25B6' : '\u25BC' }), keyName !== undefined && _jsxs("span", { className: "text-slate-500", children: [keyName, _jsx("span", { className: "text-slate-400", children: ": " })] }), collapsed ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-slate-400", children: "[" }), _jsxs("span", { className: "text-slate-400 text-[10px]", children: [value.length, " items"] }), _jsx("span", { className: "text-slate-400", children: "]" }), !isLast && _jsx("span", { className: "text-slate-300", children: "," })] })) : (_jsx("span", { className: "text-slate-400", children: "[" }))] }), !collapsed && (_jsxs(_Fragment, { children: [value.map((item, i) => (_jsx(JsonNode, { value: item, depth: depth + 1, keyName: String(i), isLast: i === value.length - 1 }, i))), _jsxs("div", { style: { paddingLeft: indent }, className: "flex items-baseline gap-1", children: [_jsx("span", { className: "w-3 shrink-0" }), _jsx("span", { className: "text-slate-400", children: "]" }), !isLast && _jsx("span", { className: "text-slate-300", children: "," })] })] }))] }));
91
+ }
92
+ if (typeof value === 'object') {
93
+ const entries = Object.entries(value);
94
+ if (entries.length === 0) {
95
+ return (_jsxs("div", { style: { paddingLeft: indent }, className: "flex items-baseline gap-1", children: [keyName !== undefined && _jsxs("span", { className: "text-slate-500", children: [keyName, _jsx("span", { className: "text-slate-400", children: ": " })] }), _jsx("span", { className: "text-slate-400", children: '{}' }), !isLast && _jsx("span", { className: "text-slate-300", children: "," })] }));
96
+ }
97
+ return (_jsxs("div", { children: [_jsxs("div", { style: { paddingLeft: indent }, className: "flex items-baseline gap-1 cursor-pointer hover:bg-slate-50 rounded -mx-1 px-1 transition-colors", onClick: () => setCollapsed(!collapsed), children: [_jsx("span", { className: "text-slate-400 w-3 text-center shrink-0 select-none", children: collapsed ? '\u25B6' : '\u25BC' }), keyName !== undefined && _jsxs("span", { className: "text-slate-500", children: [keyName, _jsx("span", { className: "text-slate-400", children: ": " })] }), collapsed ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-slate-400", children: '{' }), _jsxs("span", { className: "text-slate-400 text-[10px]", children: [entries.length, " keys"] }), _jsx("span", { className: "text-slate-400", children: '}' }), !isLast && _jsx("span", { className: "text-slate-300", children: "," })] })) : (_jsx("span", { className: "text-slate-400", children: '{' }))] }), !collapsed && (_jsxs(_Fragment, { children: [entries.map(([k, v], i) => (_jsx(JsonNode, { value: v, depth: depth + 1, keyName: k, isLast: i === entries.length - 1 }, k))), _jsxs("div", { style: { paddingLeft: indent }, className: "flex items-baseline gap-1", children: [_jsx("span", { className: "w-3 shrink-0" }), _jsx("span", { className: "text-slate-400", children: '}' }), !isLast && _jsx("span", { className: "text-slate-300", children: "," })] })] }))] }));
98
+ }
99
+ // Fallback for unknown types
100
+ return (_jsxs("div", { style: { paddingLeft: indent }, className: "flex items-baseline gap-1", children: [keyName !== undefined && _jsxs("span", { className: "text-slate-500", children: [keyName, _jsx("span", { className: "text-slate-400", children: ": " })] }), _jsx("span", { className: "text-slate-600", children: String(value) }), !isLast && _jsx("span", { className: "text-slate-300", children: "," })] }));
101
+ }
102
+ // ─── Copy button ───
103
+ function CopyJsonButton({ data }) {
104
+ const [copied, setCopied] = useState(false);
105
+ const handleCopy = useCallback(() => {
106
+ void navigator.clipboard.writeText(JSON.stringify(data, null, 2)).then(() => {
107
+ setCopied(true);
108
+ setTimeout(() => setCopied(false), 1500);
109
+ });
110
+ }, [data]);
111
+ return (_jsx("button", { type: "button", onClick: handleCopy, className: cn('flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-medium transition-colors', copied
112
+ ? 'text-emerald-600 bg-emerald-50'
113
+ : 'text-slate-400 hover:text-slate-600 hover:bg-slate-100'), title: "Copy JSON", children: copied ? (_jsxs(_Fragment, { children: [_jsx("svg", { width: "10", height: "10", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polyline", { points: "20 6 9 17 4 12" }) }), "Copied"] })) : (_jsxs(_Fragment, { children: [_jsxs("svg", { width: "10", height: "10", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2" }), _jsx("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })] }), "Copy"] })) }));
114
+ }
115
+ // ─── Main Panel ───
116
+ export function StepDetailPanel({ stepState, executionId, onClose, onResumed, outputSchema, onRerun, canRerun, className, }) {
117
+ const defaultTab = stepState.error ? 'error' : (stepState.output ? 'output' : 'input');
118
+ const [activeTab, setActiveTab] = useState(defaultTab);
119
+ const [viewMode, setViewMode] = useState('auto');
120
+ const { width, handleMouseDown } = useResizable(360, 280, 640);
121
+ const statusVariant = mapStatus(stepState.status);
122
+ const tabs = [
123
+ { id: 'input', label: 'Input', hasData: !!stepState.input && Object.keys(stepState.input).length > 0 },
124
+ { id: 'output', label: 'Output', hasData: !!stepState.output && Object.keys(stepState.output).length > 0 },
125
+ ];
126
+ if (stepState.error) {
127
+ tabs.push({ id: 'error', label: 'Error', hasData: true });
128
+ }
129
+ const showPausePanel = stepState.status === 'paused' && stepState.pauseState;
130
+ // Status-specific top accent color
131
+ const accentBorder = {
132
+ completed: 'border-t-emerald-400',
133
+ running: 'border-t-blue-400',
134
+ failed: 'border-t-red-400',
135
+ paused: 'border-t-amber-400',
136
+ pending: 'border-t-slate-300',
137
+ skipped: 'border-t-slate-300',
138
+ cancelled: 'border-t-red-300',
139
+ }[statusVariant];
140
+ return (_jsxs("div", { className: cn('relative flex flex-col border-l border-slate-200 bg-white border-t-2', accentBorder, className), style: { width, minWidth: 280, animation: 'wui-slide-in-right 200ms ease-out' }, children: [_jsx("div", { className: "absolute left-0 top-0 bottom-0 w-1 cursor-col-resize z-10 hover:bg-indigo-400/40 active:bg-indigo-500/50 transition-colors", onMouseDown: handleMouseDown }), _jsx("div", { className: "px-4 pt-3.5 pb-3", children: _jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "flex items-start gap-2.5 min-w-0", children: [_jsx(StatusIcon, { status: statusVariant }), _jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-[13px] font-semibold text-slate-800 truncate leading-tight", children: stepState.stepName }), _jsxs("div", { className: "mt-1 flex items-center gap-2", children: [_jsx("span", { className: "text-[11px] text-slate-400 font-medium uppercase tracking-wider", children: stepState.stepType }), _jsx(StatusBadge, { status: statusVariant })] })] })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [onRerun && canRerun && (_jsxs("button", { onClick: () => onRerun(stepState.stepName), title: "Rerun from this step", className: cn('flex items-center gap-1 rounded-md px-2 py-1 text-[11px] font-semibold uppercase tracking-wider transition-colors', 'text-indigo-600 hover:bg-indigo-50'), children: [_jsxs("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M21 12a9 9 0 1 1-3-6.7L21 8" }), _jsx("path", { d: "M21 3v5h-5" })] }), "Rerun"] })), _jsx("button", { onClick: onClose, className: "flex h-6 w-6 items-center justify-center rounded-md text-slate-400 hover:text-slate-600 hover:bg-slate-100 transition-colors", "aria-label": "Close", children: _jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", children: [_jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), _jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] }) })] })] }) }), showPausePanel && (_jsx("div", { className: "border-t border-slate-100 px-4 py-3", children: _jsx(PauseInteractionPanel, { executionId: executionId, pauseState: stepState.pauseState, onResumed: onResumed }) })), _jsx("div", { className: "flex border-t border-slate-100 px-2 gap-1", children: tabs.map((tab) => (_jsxs("button", { onClick: () => setActiveTab(tab.id), className: cn('relative flex items-center gap-1.5 px-3 py-2 text-[11px] font-semibold uppercase tracking-wider transition-colors', activeTab === tab.id
141
+ ? 'text-indigo-600'
142
+ : 'text-slate-400 hover:text-slate-600'), children: [tab.label, tab.hasData && (_jsx("span", { className: cn('h-1.5 w-1.5 rounded-full', activeTab === tab.id ? 'bg-indigo-400' : 'bg-slate-300') })), activeTab === tab.id && (_jsx("span", { className: "absolute bottom-0 left-2 right-2 h-[2px] bg-indigo-500 rounded-full" }))] }, tab.id))) }), _jsxs("div", { className: "flex-1 overflow-y-auto border-t border-slate-100", children: [(activeTab === 'input' || activeTab === 'output') && (_jsxs("div", { className: "flex items-center justify-between border-b border-slate-100 px-4 py-1.5", children: [_jsx("div", { className: "flex items-center gap-1", children: activeTab === 'output' && outputSchema && (_jsxs("div", { className: "flex items-center rounded border border-slate-200 overflow-hidden", children: [_jsx("button", { type: "button", onClick: () => setViewMode('auto'), className: cn('px-1.5 py-0.5 text-[10px] font-medium transition-colors', viewMode === 'auto' ? 'bg-slate-100 text-slate-700' : 'text-slate-400 hover:text-slate-600'), children: "Fields" }), _jsx("button", { type: "button", onClick: () => setViewMode('json'), className: cn('px-1.5 py-0.5 text-[10px] font-medium transition-colors', viewMode === 'json' ? 'bg-slate-100 text-slate-700' : 'text-slate-400 hover:text-slate-600'), children: "JSON" })] })) }), _jsx(CopyJsonButton, { data: activeTab === 'input' ? stepState.input : stepState.output })] })), _jsxs("div", { className: "p-4", children: [activeTab === 'input' && (_jsx(JsonTreeViewer, { data: stepState.input, placeholder: "No input data available" })), activeTab === 'output' && (_jsx(_Fragment, { children: outputSchema && viewMode === 'auto' && stepState.output && Object.keys(stepState.output).length > 0 ? (_jsx(SchemaAwareRenderer, { data: stepState.output, schema: outputSchema })) : (_jsx(JsonTreeViewer, { data: stepState.output, placeholder: "No output data yet" })) })), activeTab === 'error' && stepState.error && (_jsxs("div", { className: "rounded-lg bg-red-50 border border-red-100 p-3", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", className: "text-red-500", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "12", y1: "8", x2: "12", y2: "12" }), _jsx("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })] }), _jsx("span", { className: "text-[11px] font-semibold text-red-600 uppercase tracking-wider", children: "Error" })] }), _jsx("pre", { className: "whitespace-pre-wrap font-mono text-[12px] text-red-700 leading-relaxed", children: stepState.error })] }))] })] })] }));
143
+ }
144
+ //# sourceMappingURL=StepDetailPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepDetailPanel.js","sourceRoot":"","sources":["../../../src/components/execution/StepDetailPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * ValueEditor — recursive structured editor for arbitrary JSON values.
3
+ *
4
+ * Aesthetic: instrument-panel / inspector. Each field is one row. Modified
5
+ * rows get an amber rail on the left. Nested objects/arrays recurse with a
6
+ * deeper indent rail. Type pills tell you what each field accepts.
7
+ *
8
+ * Strict mode: the shape is locked to the original value. Users can only
9
+ * UPDATE existing keys/items, not add or remove. Type changes are rejected
10
+ * by the input controls themselves.
11
+ */
12
+ export type ValueKind = 'string' | 'number' | 'boolean' | 'null' | 'array' | 'object';
13
+ export interface ValueEditorError {
14
+ /** Dot-and-bracket path: e.g. "tools[0]", "config.maxTurns". */
15
+ path: string;
16
+ message: string;
17
+ }
18
+ export interface ValueEditorProps {
19
+ /** The current edited value at this position. */
20
+ value: unknown;
21
+ /** The original value, used for diff highlighting + type lock + reset. */
22
+ original: unknown;
23
+ /** Display label (object key or array index). Omit for the root. */
24
+ label?: string | undefined;
25
+ /** Path segments from the root — used to label nested errors. */
26
+ path?: string[] | undefined;
27
+ /** Nesting depth — used for the left rail indent. */
28
+ depth?: number | undefined;
29
+ /** Called with the new value at this position whenever the user edits. */
30
+ onChange: (next: unknown) => void;
31
+ /** Called when a child reports an error. Bubbles up to the dialog. */
32
+ onError?: ((errors: ValueEditorError[]) => void) | undefined;
33
+ }
34
+ export declare function kindOf(value: unknown): ValueKind;
35
+ export declare function deepEqual(a: unknown, b: unknown): boolean;
36
+ /** Walk a value tree and produce a flat list of validation errors. */
37
+ export declare function validateValueTree(value: unknown, original: unknown, path?: string[]): ValueEditorError[];
38
+ export declare function ValueEditor({ value, original, label, path, depth, onChange, }: ValueEditorProps): import("react").JSX.Element;
39
+ //# sourceMappingURL=ValueEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValueEditor.d.ts","sourceRoot":"","sources":["../../../src/components/execution/ValueEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtF,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,KAAK,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC9D;AAID,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAMhD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAEzD;AAiBD,sEAAsE;AACtE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,OAAO,EACjB,IAAI,GAAE,MAAM,EAAO,GAClB,gBAAgB,EAAE,CA6CpB;AA2JD,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAS,EACT,KAAS,EACT,QAAQ,GACT,EAAE,gBAAgB,+BA+ClB"}