@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.
- package/README.md +38 -0
- package/dist/components/automations/AutomationCard.d.ts +8 -0
- package/dist/components/automations/AutomationCard.d.ts.map +1 -0
- package/dist/components/automations/AutomationCard.js +55 -0
- package/dist/components/automations/AutomationCard.js.map +1 -0
- package/dist/components/automations/AutomationListView.d.ts +7 -0
- package/dist/components/automations/AutomationListView.d.ts.map +1 -0
- package/dist/components/automations/AutomationListView.js +22 -0
- package/dist/components/automations/AutomationListView.js.map +1 -0
- package/dist/components/automations/CreateWorkflowDialog.d.ts +7 -0
- package/dist/components/automations/CreateWorkflowDialog.d.ts.map +1 -0
- package/dist/components/automations/CreateWorkflowDialog.js +70 -0
- package/dist/components/automations/CreateWorkflowDialog.js.map +1 -0
- package/dist/components/builder/AddStepButton.d.ts +6 -0
- package/dist/components/builder/AddStepButton.d.ts.map +1 -0
- package/dist/components/builder/AddStepButton.js +7 -0
- package/dist/components/builder/AddStepButton.js.map +1 -0
- package/dist/components/builder/BranchEdge.d.ts +3 -0
- package/dist/components/builder/BranchEdge.d.ts.map +1 -0
- package/dist/components/builder/BranchEdge.js +19 -0
- package/dist/components/builder/BranchEdge.js.map +1 -0
- package/dist/components/builder/BuilderToolbar.d.ts +10 -0
- package/dist/components/builder/BuilderToolbar.d.ts.map +1 -0
- package/dist/components/builder/BuilderToolbar.js +16 -0
- package/dist/components/builder/BuilderToolbar.js.map +1 -0
- package/dist/components/builder/StepConfigDrawer.d.ts +11 -0
- package/dist/components/builder/StepConfigDrawer.d.ts.map +1 -0
- package/dist/components/builder/StepConfigDrawer.js +21 -0
- package/dist/components/builder/StepConfigDrawer.js.map +1 -0
- package/dist/components/builder/StepNode.d.ts +15 -0
- package/dist/components/builder/StepNode.d.ts.map +1 -0
- package/dist/components/builder/StepNode.js +56 -0
- package/dist/components/builder/StepNode.js.map +1 -0
- package/dist/components/builder/StepPalette.d.ts +7 -0
- package/dist/components/builder/StepPalette.d.ts.map +1 -0
- package/dist/components/builder/StepPalette.js +83 -0
- package/dist/components/builder/StepPalette.js.map +1 -0
- package/dist/components/builder/StepPicker.d.ts +9 -0
- package/dist/components/builder/StepPicker.d.ts.map +1 -0
- package/dist/components/builder/StepPicker.js +95 -0
- package/dist/components/builder/StepPicker.js.map +1 -0
- package/dist/components/builder/TerminalNode.d.ts +6 -0
- package/dist/components/builder/TerminalNode.d.ts.map +1 -0
- package/dist/components/builder/TerminalNode.js +7 -0
- package/dist/components/builder/TerminalNode.js.map +1 -0
- package/dist/components/builder/TriggerConfigPanel.d.ts +10 -0
- package/dist/components/builder/TriggerConfigPanel.d.ts.map +1 -0
- package/dist/components/builder/TriggerConfigPanel.js +49 -0
- package/dist/components/builder/TriggerConfigPanel.js.map +1 -0
- package/dist/components/builder/TriggerNode.d.ts +9 -0
- package/dist/components/builder/TriggerNode.d.ts.map +1 -0
- package/dist/components/builder/TriggerNode.js +30 -0
- package/dist/components/builder/TriggerNode.js.map +1 -0
- package/dist/components/builder/TriggerPicker.d.ts +8 -0
- package/dist/components/builder/TriggerPicker.d.ts.map +1 -0
- package/dist/components/builder/TriggerPicker.js +61 -0
- package/dist/components/builder/TriggerPicker.js.map +1 -0
- package/dist/components/builder/WorkflowBuilder.d.ts +20 -0
- package/dist/components/builder/WorkflowBuilder.d.ts.map +1 -0
- package/dist/components/builder/WorkflowBuilder.js +157 -0
- package/dist/components/builder/WorkflowBuilder.js.map +1 -0
- package/dist/components/builder/edge-types.d.ts +3 -0
- package/dist/components/builder/edge-types.d.ts.map +1 -0
- package/dist/components/builder/edge-types.js +5 -0
- package/dist/components/builder/edge-types.js.map +1 -0
- package/dist/components/builder/icons.d.ts +25 -0
- package/dist/components/builder/icons.d.ts.map +1 -0
- package/dist/components/builder/icons.js +43 -0
- package/dist/components/builder/icons.js.map +1 -0
- package/dist/components/builder/layout-engine.d.ts +44 -0
- package/dist/components/builder/layout-engine.d.ts.map +1 -0
- package/dist/components/builder/layout-engine.js +216 -0
- package/dist/components/builder/layout-engine.js.map +1 -0
- package/dist/components/builder/node-types.d.ts +3 -0
- package/dist/components/builder/node-types.d.ts.map +1 -0
- package/dist/components/builder/node-types.js +11 -0
- package/dist/components/builder/node-types.js.map +1 -0
- package/dist/components/builder/theme.d.ts +28 -0
- package/dist/components/builder/theme.d.ts.map +1 -0
- package/dist/components/builder/theme.js +63 -0
- package/dist/components/builder/theme.js.map +1 -0
- package/dist/components/builder/v2/AddStepButton.d.ts +6 -0
- package/dist/components/builder/v2/AddStepButton.d.ts.map +1 -0
- package/dist/components/builder/v2/AddStepButton.js +6 -0
- package/dist/components/builder/v2/AddStepButton.js.map +1 -0
- package/dist/components/builder/v2/BranchEdge.d.ts +3 -0
- package/dist/components/builder/v2/BranchEdge.d.ts.map +1 -0
- package/dist/components/builder/v2/BranchEdge.js +46 -0
- package/dist/components/builder/v2/BranchEdge.js.map +1 -0
- package/dist/components/builder/v2/LoopBodyEdge.d.ts +7 -0
- package/dist/components/builder/v2/LoopBodyEdge.d.ts.map +1 -0
- package/dist/components/builder/v2/LoopBodyEdge.js +19 -0
- package/dist/components/builder/v2/LoopBodyEdge.js.map +1 -0
- package/dist/components/builder/v2/LoopbackEdge.d.ts +10 -0
- package/dist/components/builder/v2/LoopbackEdge.d.ts.map +1 -0
- package/dist/components/builder/v2/LoopbackEdge.js +26 -0
- package/dist/components/builder/v2/LoopbackEdge.js.map +1 -0
- package/dist/components/builder/v2/StepNode.d.ts +21 -0
- package/dist/components/builder/v2/StepNode.d.ts.map +1 -0
- package/dist/components/builder/v2/StepNode.js +36 -0
- package/dist/components/builder/v2/StepNode.js.map +1 -0
- package/dist/components/builder/v2/StepPicker.d.ts +8 -0
- package/dist/components/builder/v2/StepPicker.d.ts.map +1 -0
- package/dist/components/builder/v2/StepPicker.js +73 -0
- package/dist/components/builder/v2/StepPicker.js.map +1 -0
- package/dist/components/builder/v2/TerminalNode.d.ts +6 -0
- package/dist/components/builder/v2/TerminalNode.d.ts.map +1 -0
- package/dist/components/builder/v2/TerminalNode.js +7 -0
- package/dist/components/builder/v2/TerminalNode.js.map +1 -0
- package/dist/components/builder/v2/TriggerNode.d.ts +10 -0
- package/dist/components/builder/v2/TriggerNode.d.ts.map +1 -0
- package/dist/components/builder/v2/TriggerNode.js +20 -0
- package/dist/components/builder/v2/TriggerNode.js.map +1 -0
- package/dist/components/builder/v2/TriggerPicker.d.ts +7 -0
- package/dist/components/builder/v2/TriggerPicker.d.ts.map +1 -0
- package/dist/components/builder/v2/TriggerPicker.js +45 -0
- package/dist/components/builder/v2/TriggerPicker.js.map +1 -0
- package/dist/components/builder/v2/WorkflowBuilder.d.ts +14 -0
- package/dist/components/builder/v2/WorkflowBuilder.d.ts.map +1 -0
- package/dist/components/builder/v2/WorkflowBuilder.js +189 -0
- package/dist/components/builder/v2/WorkflowBuilder.js.map +1 -0
- package/dist/components/builder/v2/edge-types.d.ts +3 -0
- package/dist/components/builder/v2/edge-types.d.ts.map +1 -0
- package/dist/components/builder/v2/edge-types.js +9 -0
- package/dist/components/builder/v2/edge-types.js.map +1 -0
- package/dist/components/builder/v2/icons.d.ts +25 -0
- package/dist/components/builder/v2/icons.d.ts.map +1 -0
- package/dist/components/builder/v2/icons.js +43 -0
- package/dist/components/builder/v2/icons.js.map +1 -0
- package/dist/components/builder/v2/layout-engine.d.ts +76 -0
- package/dist/components/builder/v2/layout-engine.d.ts.map +1 -0
- package/dist/components/builder/v2/layout-engine.js +465 -0
- package/dist/components/builder/v2/layout-engine.js.map +1 -0
- package/dist/components/builder/v2/node-types.d.ts +3 -0
- package/dist/components/builder/v2/node-types.d.ts.map +1 -0
- package/dist/components/builder/v2/node-types.js +11 -0
- package/dist/components/builder/v2/node-types.js.map +1 -0
- package/dist/components/builder/v2/theme.d.ts +28 -0
- package/dist/components/builder/v2/theme.d.ts.map +1 -0
- package/dist/components/builder/v2/theme.js +63 -0
- package/dist/components/builder/v2/theme.js.map +1 -0
- package/dist/components/builder/v3/BranchContainer.d.ts +17 -0
- package/dist/components/builder/v3/BranchContainer.d.ts.map +1 -0
- package/dist/components/builder/v3/BranchContainer.js +64 -0
- package/dist/components/builder/v3/BranchContainer.js.map +1 -0
- package/dist/components/builder/v3/BuilderToolbar.d.ts +11 -0
- package/dist/components/builder/v3/BuilderToolbar.d.ts.map +1 -0
- package/dist/components/builder/v3/BuilderToolbar.js +14 -0
- package/dist/components/builder/v3/BuilderToolbar.js.map +1 -0
- package/dist/components/builder/v3/CodeEditor.d.ts +10 -0
- package/dist/components/builder/v3/CodeEditor.d.ts.map +1 -0
- package/dist/components/builder/v3/CodeEditor.js +117 -0
- package/dist/components/builder/v3/CodeEditor.js.map +1 -0
- package/dist/components/builder/v3/ConditionEditorPanel.d.ts +10 -0
- package/dist/components/builder/v3/ConditionEditorPanel.d.ts.map +1 -0
- package/dist/components/builder/v3/ConditionEditorPanel.js +54 -0
- package/dist/components/builder/v3/ConditionEditorPanel.js.map +1 -0
- package/dist/components/builder/v3/Connector.d.ts +7 -0
- package/dist/components/builder/v3/Connector.d.ts.map +1 -0
- package/dist/components/builder/v3/Connector.js +9 -0
- package/dist/components/builder/v3/Connector.js.map +1 -0
- package/dist/components/builder/v3/DiscriminatedUnionEditor.d.ts +14 -0
- package/dist/components/builder/v3/DiscriminatedUnionEditor.d.ts.map +1 -0
- package/dist/components/builder/v3/DiscriminatedUnionEditor.js +69 -0
- package/dist/components/builder/v3/DiscriminatedUnionEditor.js.map +1 -0
- package/dist/components/builder/v3/EnhancedSchemaFormRenderer.d.ts +13 -0
- package/dist/components/builder/v3/EnhancedSchemaFormRenderer.d.ts.map +1 -0
- package/dist/components/builder/v3/EnhancedSchemaFormRenderer.js +231 -0
- package/dist/components/builder/v3/EnhancedSchemaFormRenderer.js.map +1 -0
- package/dist/components/builder/v3/InputSchemaBuilder.d.ts +7 -0
- package/dist/components/builder/v3/InputSchemaBuilder.d.ts.map +1 -0
- package/dist/components/builder/v3/InputSchemaBuilder.js +62 -0
- package/dist/components/builder/v3/InputSchemaBuilder.js.map +1 -0
- package/dist/components/builder/v3/KeyValueEditor.d.ts +12 -0
- package/dist/components/builder/v3/KeyValueEditor.d.ts.map +1 -0
- package/dist/components/builder/v3/KeyValueEditor.js +45 -0
- package/dist/components/builder/v3/KeyValueEditor.js.map +1 -0
- package/dist/components/builder/v3/LoopContainer.d.ts +9 -0
- package/dist/components/builder/v3/LoopContainer.d.ts.map +1 -0
- package/dist/components/builder/v3/LoopContainer.js +8 -0
- package/dist/components/builder/v3/LoopContainer.js.map +1 -0
- package/dist/components/builder/v3/MultiSelectCheckboxes.d.ts +8 -0
- package/dist/components/builder/v3/MultiSelectCheckboxes.d.ts.map +1 -0
- package/dist/components/builder/v3/MultiSelectCheckboxes.js +28 -0
- package/dist/components/builder/v3/MultiSelectCheckboxes.js.map +1 -0
- package/dist/components/builder/v3/OutputFieldsEditor.d.ts +12 -0
- package/dist/components/builder/v3/OutputFieldsEditor.d.ts.map +1 -0
- package/dist/components/builder/v3/OutputFieldsEditor.js +20 -0
- package/dist/components/builder/v3/OutputFieldsEditor.js.map +1 -0
- package/dist/components/builder/v3/SidePanel.d.ts +28 -0
- package/dist/components/builder/v3/SidePanel.d.ts.map +1 -0
- package/dist/components/builder/v3/SidePanel.js +13 -0
- package/dist/components/builder/v3/SidePanel.js.map +1 -0
- package/dist/components/builder/v3/StepConfigPanel.d.ts +14 -0
- package/dist/components/builder/v3/StepConfigPanel.d.ts.map +1 -0
- package/dist/components/builder/v3/StepConfigPanel.js +48 -0
- package/dist/components/builder/v3/StepConfigPanel.js.map +1 -0
- package/dist/components/builder/v3/StepNode.d.ts +18 -0
- package/dist/components/builder/v3/StepNode.d.ts.map +1 -0
- package/dist/components/builder/v3/StepNode.js +34 -0
- package/dist/components/builder/v3/StepNode.js.map +1 -0
- package/dist/components/builder/v3/StepPicker.d.ts +15 -0
- package/dist/components/builder/v3/StepPicker.d.ts.map +1 -0
- package/dist/components/builder/v3/StepPicker.js +71 -0
- package/dist/components/builder/v3/StepPicker.js.map +1 -0
- package/dist/components/builder/v3/StringArrayInput.d.ts +8 -0
- package/dist/components/builder/v3/StringArrayInput.d.ts.map +1 -0
- package/dist/components/builder/v3/StringArrayInput.js +28 -0
- package/dist/components/builder/v3/StringArrayInput.js.map +1 -0
- package/dist/components/builder/v3/SwitchCaseEditor.d.ts +15 -0
- package/dist/components/builder/v3/SwitchCaseEditor.d.ts.map +1 -0
- package/dist/components/builder/v3/SwitchCaseEditor.js +37 -0
- package/dist/components/builder/v3/SwitchCaseEditor.js.map +1 -0
- package/dist/components/builder/v3/TerminalNode.d.ts +2 -0
- package/dist/components/builder/v3/TerminalNode.d.ts.map +1 -0
- package/dist/components/builder/v3/TerminalNode.js +5 -0
- package/dist/components/builder/v3/TerminalNode.js.map +1 -0
- package/dist/components/builder/v3/TriggerConfigPanel.d.ts +11 -0
- package/dist/components/builder/v3/TriggerConfigPanel.d.ts.map +1 -0
- package/dist/components/builder/v3/TriggerConfigPanel.js +15 -0
- package/dist/components/builder/v3/TriggerConfigPanel.js.map +1 -0
- package/dist/components/builder/v3/TriggerNode.d.ts +9 -0
- package/dist/components/builder/v3/TriggerNode.d.ts.map +1 -0
- package/dist/components/builder/v3/TriggerNode.js +13 -0
- package/dist/components/builder/v3/TriggerNode.js.map +1 -0
- package/dist/components/builder/v3/TriggerPicker.d.ts +7 -0
- package/dist/components/builder/v3/TriggerPicker.d.ts.map +1 -0
- package/dist/components/builder/v3/TriggerPicker.js +43 -0
- package/dist/components/builder/v3/TriggerPicker.js.map +1 -0
- package/dist/components/builder/v3/VariablePickerPopover.d.ts +9 -0
- package/dist/components/builder/v3/VariablePickerPopover.d.ts.map +1 -0
- package/dist/components/builder/v3/VariablePickerPopover.js +78 -0
- package/dist/components/builder/v3/VariablePickerPopover.js.map +1 -0
- package/dist/components/builder/v3/VariableRefInput.d.ts +14 -0
- package/dist/components/builder/v3/VariableRefInput.d.ts.map +1 -0
- package/dist/components/builder/v3/VariableRefInput.js +88 -0
- package/dist/components/builder/v3/VariableRefInput.js.map +1 -0
- package/dist/components/builder/v3/WorkflowBuilderV3.d.ts +13 -0
- package/dist/components/builder/v3/WorkflowBuilderV3.d.ts.map +1 -0
- package/dist/components/builder/v3/WorkflowBuilderV3.js +124 -0
- package/dist/components/builder/v3/WorkflowBuilderV3.js.map +1 -0
- package/dist/components/builder/v3/WorkflowCanvas.d.ts +26 -0
- package/dist/components/builder/v3/WorkflowCanvas.d.ts.map +1 -0
- package/dist/components/builder/v3/WorkflowCanvas.js +25 -0
- package/dist/components/builder/v3/WorkflowCanvas.js.map +1 -0
- package/dist/components/builder/v3/WorkflowTree.d.ts +22 -0
- package/dist/components/builder/v3/WorkflowTree.d.ts.map +1 -0
- package/dist/components/builder/v3/WorkflowTree.js +70 -0
- package/dist/components/builder/v3/WorkflowTree.js.map +1 -0
- package/dist/components/dashboard/TriggerFormModal.d.ts +16 -0
- package/dist/components/dashboard/TriggerFormModal.d.ts.map +1 -0
- package/dist/components/dashboard/TriggerFormModal.js +160 -0
- package/dist/components/dashboard/TriggerFormModal.js.map +1 -0
- package/dist/components/dashboard/WorkflowDashboard.d.ts +19 -0
- package/dist/components/dashboard/WorkflowDashboard.d.ts.map +1 -0
- package/dist/components/dashboard/WorkflowDashboard.js +48 -0
- package/dist/components/dashboard/WorkflowDashboard.js.map +1 -0
- package/dist/components/execution/ExecutionEdge.d.ts +4 -0
- package/dist/components/execution/ExecutionEdge.d.ts.map +1 -0
- package/dist/components/execution/ExecutionEdge.js +27 -0
- package/dist/components/execution/ExecutionEdge.js.map +1 -0
- package/dist/components/execution/ExecutionHeader.d.ts +9 -0
- package/dist/components/execution/ExecutionHeader.d.ts.map +1 -0
- package/dist/components/execution/ExecutionHeader.js +22 -0
- package/dist/components/execution/ExecutionHeader.js.map +1 -0
- package/dist/components/execution/ExecutionStepNode.d.ts +14 -0
- package/dist/components/execution/ExecutionStepNode.d.ts.map +1 -0
- package/dist/components/execution/ExecutionStepNode.js +47 -0
- package/dist/components/execution/ExecutionStepNode.js.map +1 -0
- package/dist/components/execution/ExecutionTree.d.ts +12 -0
- package/dist/components/execution/ExecutionTree.d.ts.map +1 -0
- package/dist/components/execution/ExecutionTree.js +65 -0
- package/dist/components/execution/ExecutionTree.js.map +1 -0
- package/dist/components/execution/ExecutionTriggerNode.d.ts +9 -0
- package/dist/components/execution/ExecutionTriggerNode.d.ts.map +1 -0
- package/dist/components/execution/ExecutionTriggerNode.js +15 -0
- package/dist/components/execution/ExecutionTriggerNode.js.map +1 -0
- package/dist/components/execution/ExecutionViewer.d.ts +21 -0
- package/dist/components/execution/ExecutionViewer.d.ts.map +1 -0
- package/dist/components/execution/ExecutionViewer.js +194 -0
- package/dist/components/execution/ExecutionViewer.js.map +1 -0
- package/dist/components/execution/PauseFormRenderer.d.ts +11 -0
- package/dist/components/execution/PauseFormRenderer.d.ts.map +1 -0
- package/dist/components/execution/PauseFormRenderer.js +48 -0
- package/dist/components/execution/PauseFormRenderer.js.map +1 -0
- package/dist/components/execution/PauseInteractionPanel.d.ts +9 -0
- package/dist/components/execution/PauseInteractionPanel.d.ts.map +1 -0
- package/dist/components/execution/PauseInteractionPanel.js +46 -0
- package/dist/components/execution/PauseInteractionPanel.js.map +1 -0
- package/dist/components/execution/RerunDialog.d.ts +34 -0
- package/dist/components/execution/RerunDialog.d.ts.map +1 -0
- package/dist/components/execution/RerunDialog.js +97 -0
- package/dist/components/execution/RerunDialog.js.map +1 -0
- package/dist/components/execution/SchemaAwareRenderer.d.ts +7 -0
- package/dist/components/execution/SchemaAwareRenderer.d.ts.map +1 -0
- package/dist/components/execution/SchemaAwareRenderer.js +116 -0
- package/dist/components/execution/SchemaAwareRenderer.js.map +1 -0
- package/dist/components/execution/StepDetailPanel.d.ts +22 -0
- package/dist/components/execution/StepDetailPanel.d.ts.map +1 -0
- package/dist/components/execution/StepDetailPanel.js +144 -0
- package/dist/components/execution/StepDetailPanel.js.map +1 -0
- package/dist/components/execution/ValueEditor.d.ts +39 -0
- package/dist/components/execution/ValueEditor.d.ts.map +1 -0
- package/dist/components/execution/ValueEditor.js +191 -0
- package/dist/components/execution/ValueEditor.js.map +1 -0
- package/dist/components/execution/execution-layout.d.ts +31 -0
- package/dist/components/execution/execution-layout.d.ts.map +1 -0
- package/dist/components/execution/execution-layout.js +90 -0
- package/dist/components/execution/execution-layout.js.map +1 -0
- package/dist/components/index.d.ts +58 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +40 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/layout/AppShell.d.ts +8 -0
- package/dist/components/layout/AppShell.d.ts.map +1 -0
- package/dist/components/layout/AppShell.js +10 -0
- package/dist/components/layout/AppShell.js.map +1 -0
- package/dist/components/layout/Breadcrumb.d.ts +10 -0
- package/dist/components/layout/Breadcrumb.d.ts.map +1 -0
- package/dist/components/layout/Breadcrumb.js +33 -0
- package/dist/components/layout/Breadcrumb.js.map +1 -0
- package/dist/components/layout/PageHeader.d.ts +10 -0
- package/dist/components/layout/PageHeader.d.ts.map +1 -0
- package/dist/components/layout/PageHeader.js +10 -0
- package/dist/components/layout/PageHeader.js.map +1 -0
- package/dist/components/layout/Sidebar.d.ts +15 -0
- package/dist/components/layout/Sidebar.d.ts.map +1 -0
- package/dist/components/layout/Sidebar.js +30 -0
- package/dist/components/layout/Sidebar.js.map +1 -0
- package/dist/components/provider/WorkflowUIProvider.d.ts +18 -0
- package/dist/components/provider/WorkflowUIProvider.d.ts.map +1 -0
- package/dist/components/provider/WorkflowUIProvider.js +34 -0
- package/dist/components/provider/WorkflowUIProvider.js.map +1 -0
- package/dist/components/provider/slot-resolution.d.ts +13 -0
- package/dist/components/provider/slot-resolution.d.ts.map +1 -0
- package/dist/components/provider/slot-resolution.js +21 -0
- package/dist/components/provider/slot-resolution.js.map +1 -0
- package/dist/components/provider/workflow-ui-context.d.ts +30 -0
- package/dist/components/provider/workflow-ui-context.d.ts.map +1 -0
- package/dist/components/provider/workflow-ui-context.js +14 -0
- package/dist/components/provider/workflow-ui-context.js.map +1 -0
- package/dist/components/runs/RunsFilters.d.ts +7 -0
- package/dist/components/runs/RunsFilters.d.ts.map +1 -0
- package/dist/components/runs/RunsFilters.js +14 -0
- package/dist/components/runs/RunsFilters.js.map +1 -0
- package/dist/components/runs/RunsTable.d.ts +8 -0
- package/dist/components/runs/RunsTable.d.ts.map +1 -0
- package/dist/components/runs/RunsTable.js +96 -0
- package/dist/components/runs/RunsTable.js.map +1 -0
- package/dist/components/runs/RunsView.d.ts +12 -0
- package/dist/components/runs/RunsView.d.ts.map +1 -0
- package/dist/components/runs/RunsView.js +18 -0
- package/dist/components/runs/RunsView.js.map +1 -0
- package/dist/components/schema-form/SchemaFormRenderer.d.ts +19 -0
- package/dist/components/schema-form/SchemaFormRenderer.d.ts.map +1 -0
- package/dist/components/schema-form/SchemaFormRenderer.js +80 -0
- package/dist/components/schema-form/SchemaFormRenderer.js.map +1 -0
- package/dist/components/shared/EmptyState.d.ts +9 -0
- package/dist/components/shared/EmptyState.d.ts.map +1 -0
- package/dist/components/shared/EmptyState.js +7 -0
- package/dist/components/shared/EmptyState.js.map +1 -0
- package/dist/components/shared/ErrorBoundary.d.ts +16 -0
- package/dist/components/shared/ErrorBoundary.d.ts.map +1 -0
- package/dist/components/shared/ErrorBoundary.js +19 -0
- package/dist/components/shared/ErrorBoundary.js.map +1 -0
- package/dist/components/shared/LoadingSpinner.d.ts +6 -0
- package/dist/components/shared/LoadingSpinner.d.ts.map +1 -0
- package/dist/components/shared/LoadingSpinner.js +11 -0
- package/dist/components/shared/LoadingSpinner.js.map +1 -0
- package/dist/components/shared/StatusBadge.d.ts +8 -0
- package/dist/components/shared/StatusBadge.d.ts.map +1 -0
- package/dist/components/shared/StatusBadge.js +25 -0
- package/dist/components/shared/StatusBadge.js.map +1 -0
- package/dist/components/shared/cn.d.ts +9 -0
- package/dist/components/shared/cn.d.ts.map +1 -0
- package/dist/components/shared/cn.js +12 -0
- package/dist/components/shared/cn.js.map +1 -0
- package/dist/hooks/index.d.ts +34 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +25 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/use-condition-editor.d.ts +18 -0
- package/dist/hooks/use-condition-editor.d.ts.map +1 -0
- package/dist/hooks/use-condition-editor.js +115 -0
- package/dist/hooks/use-condition-editor.js.map +1 -0
- package/dist/hooks/use-execution-rerun.d.ts +26 -0
- package/dist/hooks/use-execution-rerun.d.ts.map +1 -0
- package/dist/hooks/use-execution-rerun.js +40 -0
- package/dist/hooks/use-execution-rerun.js.map +1 -0
- package/dist/hooks/use-execution-viewer.d.ts +33 -0
- package/dist/hooks/use-execution-viewer.d.ts.map +1 -0
- package/dist/hooks/use-execution-viewer.js +380 -0
- package/dist/hooks/use-execution-viewer.js.map +1 -0
- package/dist/hooks/use-pause-interaction.d.ts +13 -0
- package/dist/hooks/use-pause-interaction.d.ts.map +1 -0
- package/dist/hooks/use-pause-interaction.js +72 -0
- package/dist/hooks/use-pause-interaction.js.map +1 -0
- package/dist/hooks/use-runs-list.d.ts +20 -0
- package/dist/hooks/use-runs-list.d.ts.map +1 -0
- package/dist/hooks/use-runs-list.js +89 -0
- package/dist/hooks/use-runs-list.js.map +1 -0
- package/dist/hooks/use-schema-form.d.ts +47 -0
- package/dist/hooks/use-schema-form.d.ts.map +1 -0
- package/dist/hooks/use-schema-form.js +247 -0
- package/dist/hooks/use-schema-form.js.map +1 -0
- package/dist/hooks/use-step-config.d.ts +13 -0
- package/dist/hooks/use-step-config.d.ts.map +1 -0
- package/dist/hooks/use-step-config.js +40 -0
- package/dist/hooks/use-step-config.js.map +1 -0
- package/dist/hooks/use-step-metadata.d.ts +37 -0
- package/dist/hooks/use-step-metadata.d.ts.map +1 -0
- package/dist/hooks/use-step-metadata.js +113 -0
- package/dist/hooks/use-step-metadata.js.map +1 -0
- package/dist/hooks/use-trigger-config.d.ts +13 -0
- package/dist/hooks/use-trigger-config.d.ts.map +1 -0
- package/dist/hooks/use-trigger-config.js +40 -0
- package/dist/hooks/use-trigger-config.js.map +1 -0
- package/dist/hooks/use-undo-redo.d.ts +17 -0
- package/dist/hooks/use-undo-redo.d.ts.map +1 -0
- package/dist/hooks/use-undo-redo.js +58 -0
- package/dist/hooks/use-undo-redo.js.map +1 -0
- package/dist/hooks/use-variable-picker.d.ts +26 -0
- package/dist/hooks/use-variable-picker.d.ts.map +1 -0
- package/dist/hooks/use-variable-picker.js +132 -0
- package/dist/hooks/use-variable-picker.js.map +1 -0
- package/dist/hooks/use-workflow-builder.d.ts +47 -0
- package/dist/hooks/use-workflow-builder.d.ts.map +1 -0
- package/dist/hooks/use-workflow-builder.js +374 -0
- package/dist/hooks/use-workflow-builder.js.map +1 -0
- package/dist/hooks/use-workflow-client.d.ts +8 -0
- package/dist/hooks/use-workflow-client.d.ts.map +1 -0
- package/dist/hooks/use-workflow-client.js +15 -0
- package/dist/hooks/use-workflow-client.js.map +1 -0
- package/dist/hooks/use-workflow-list.d.ts +11 -0
- package/dist/hooks/use-workflow-list.d.ts.map +1 -0
- package/dist/hooks/use-workflow-list.js +43 -0
- package/dist/hooks/use-workflow-list.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.css +117 -0
- package/dist/test-setup.d.ts +2 -0
- package/dist/test-setup.d.ts.map +1 -0
- package/dist/test-setup.js +2 -0
- package/dist/test-setup.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/slots.d.ts +18 -0
- package/dist/types/slots.d.ts.map +1 -0
- package/dist/types/slots.js +2 -0
- package/dist/types/slots.js.map +1 -0
- package/dist/utils/branch-detection.d.ts +83 -0
- package/dist/utils/branch-detection.d.ts.map +1 -0
- package/dist/utils/branch-detection.js +247 -0
- package/dist/utils/branch-detection.js.map +1 -0
- 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"}
|