@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,157 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useMemo, useState } from 'react';
|
|
3
|
+
import { ReactFlow, Background, MiniMap, ReactFlowProvider, } from '@xyflow/react';
|
|
4
|
+
import { useWorkflowBuilder } from '../../hooks/use-workflow-builder.js';
|
|
5
|
+
import { computeLayout } from './layout-engine.js';
|
|
6
|
+
import { builderNodeTypes } from './node-types.js';
|
|
7
|
+
import { builderEdgeTypes } from './edge-types.js';
|
|
8
|
+
import { BuilderToolbar } from './BuilderToolbar.js';
|
|
9
|
+
import { StepConfigDrawer } from './StepConfigDrawer.js';
|
|
10
|
+
import { TriggerConfigPanel } from './TriggerConfigPanel.js';
|
|
11
|
+
import { StepPicker } from './StepPicker.js';
|
|
12
|
+
import { TriggerPicker } from './TriggerPicker.js';
|
|
13
|
+
import { cn } from '../shared/cn.js';
|
|
14
|
+
function WorkflowBuilderInner({ builder: externalBuilder, initialConfig, onChange, onSave, onTestRun, readOnly, className, classNames, }) {
|
|
15
|
+
const builderOpts = {
|
|
16
|
+
autoValidate: true,
|
|
17
|
+
};
|
|
18
|
+
if (initialConfig)
|
|
19
|
+
builderOpts.initialConfig = initialConfig;
|
|
20
|
+
if (onChange)
|
|
21
|
+
builderOpts.onChange = onChange;
|
|
22
|
+
const internalBuilder = useWorkflowBuilder(builderOpts);
|
|
23
|
+
const builder = externalBuilder ?? internalBuilder;
|
|
24
|
+
const [isSaving, setIsSaving] = useState(false);
|
|
25
|
+
const [showStepPicker, setShowStepPicker] = useState(false);
|
|
26
|
+
const [showTriggerPicker, setShowTriggerPicker] = useState(false);
|
|
27
|
+
const [addAfterStepId, setAddAfterStepId] = useState(undefined);
|
|
28
|
+
// Handler for add-button clicks on the canvas
|
|
29
|
+
const handleAddButtonClick = useCallback((afterStepId) => {
|
|
30
|
+
setAddAfterStepId(afterStepId || undefined);
|
|
31
|
+
setShowStepPicker(true);
|
|
32
|
+
}, []);
|
|
33
|
+
// Central click handler — ReactFlow intercepts pointer events,
|
|
34
|
+
// so individual onClick on node components doesn't fire reliably.
|
|
35
|
+
// This is the ONLY reliable way to handle node clicks.
|
|
36
|
+
const handleNodeClick = useCallback((_event, node) => {
|
|
37
|
+
if (readOnly)
|
|
38
|
+
return;
|
|
39
|
+
if (node.type === 'trigger') {
|
|
40
|
+
if (builder.isTriggerConfigured) {
|
|
41
|
+
// Already configured → select it to show config panel
|
|
42
|
+
builder.selectTrigger();
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// Not configured → open trigger picker modal
|
|
46
|
+
setShowTriggerPicker(true);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else if (node.type === 'step') {
|
|
50
|
+
builder.selectStep(node.id);
|
|
51
|
+
}
|
|
52
|
+
else if (node.type === 'addButton') {
|
|
53
|
+
const afterStepId = node.data['afterStepId'];
|
|
54
|
+
handleAddButtonClick(afterStepId);
|
|
55
|
+
}
|
|
56
|
+
// terminal nodes: no action
|
|
57
|
+
}, [builder, readOnly, handleAddButtonClick]);
|
|
58
|
+
// Convert WorkflowConfig → ReactFlow nodes + edges
|
|
59
|
+
const { nodes, edges } = useMemo(() => {
|
|
60
|
+
const layout = computeLayout(builder.config);
|
|
61
|
+
const rfNodes = layout.nodes.map((n) => {
|
|
62
|
+
if (n.type === 'trigger') {
|
|
63
|
+
const data = {
|
|
64
|
+
triggerType: n.data.triggerType ?? '',
|
|
65
|
+
label: n.data.label,
|
|
66
|
+
isSelected: builder.isTriggerSelected,
|
|
67
|
+
isConfigured: builder.isTriggerConfigured,
|
|
68
|
+
};
|
|
69
|
+
return { id: n.id, type: n.type, position: n.position, data };
|
|
70
|
+
}
|
|
71
|
+
if (n.type === 'addButton') {
|
|
72
|
+
if (readOnly)
|
|
73
|
+
return null;
|
|
74
|
+
const data = {
|
|
75
|
+
afterStepId: n.data.afterStepId ?? '',
|
|
76
|
+
};
|
|
77
|
+
return { id: n.id, type: n.type, position: n.position, data };
|
|
78
|
+
}
|
|
79
|
+
if (n.type === 'step') {
|
|
80
|
+
const stepConfig = n.data.stepConfig;
|
|
81
|
+
const isDisabled = stepConfig
|
|
82
|
+
? Boolean(stepConfig.config?.['disabled'])
|
|
83
|
+
: false;
|
|
84
|
+
const data = {
|
|
85
|
+
stepConfig: stepConfig ?? { id: n.id, type: 'UNKNOWN', config: {} },
|
|
86
|
+
label: n.data.label,
|
|
87
|
+
isSelected: builder.selectedStepId === n.id,
|
|
88
|
+
isDisabled,
|
|
89
|
+
hasValidationErrors: false,
|
|
90
|
+
};
|
|
91
|
+
if (!readOnly) {
|
|
92
|
+
data['onDelete'] = () => builder.removeStep(n.id);
|
|
93
|
+
data['onDuplicate'] = () => builder.duplicateStep(n.id);
|
|
94
|
+
data['onToggleDisabled'] = () => builder.toggleStepDisabled(n.id);
|
|
95
|
+
}
|
|
96
|
+
return { id: n.id, type: n.type, position: n.position, data };
|
|
97
|
+
}
|
|
98
|
+
// terminal
|
|
99
|
+
return { id: n.id, type: n.type, position: n.position, data: { label: n.data.label } };
|
|
100
|
+
}).filter(Boolean);
|
|
101
|
+
const rfEdges = layout.edges.map((e) => {
|
|
102
|
+
const edge = {
|
|
103
|
+
id: e.id,
|
|
104
|
+
source: e.source,
|
|
105
|
+
target: e.target,
|
|
106
|
+
type: e.label ? 'branch' : 'smoothstep',
|
|
107
|
+
};
|
|
108
|
+
if (e.label)
|
|
109
|
+
edge.label = e.label;
|
|
110
|
+
return edge;
|
|
111
|
+
});
|
|
112
|
+
return { nodes: rfNodes, edges: rfEdges };
|
|
113
|
+
}, [builder.config, builder.selectedStepId, builder.isTriggerSelected, builder.isTriggerConfigured, readOnly, builder, handleAddButtonClick]);
|
|
114
|
+
const handleAddStep = useCallback((type) => {
|
|
115
|
+
builder.addStep(type, addAfterStepId);
|
|
116
|
+
setShowStepPicker(false);
|
|
117
|
+
setAddAfterStepId(undefined);
|
|
118
|
+
}, [builder, addAfterStepId]);
|
|
119
|
+
const handleSelectTrigger = useCallback((type) => {
|
|
120
|
+
builder.setTrigger(type);
|
|
121
|
+
builder.selectTrigger();
|
|
122
|
+
setShowTriggerPicker(false);
|
|
123
|
+
}, [builder]);
|
|
124
|
+
const handleSave = useCallback(async () => {
|
|
125
|
+
if (!onSave)
|
|
126
|
+
return;
|
|
127
|
+
setIsSaving(true);
|
|
128
|
+
try {
|
|
129
|
+
await onSave(builder.config);
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
setIsSaving(false);
|
|
133
|
+
}
|
|
134
|
+
}, [onSave, builder.config]);
|
|
135
|
+
const handleTestRun = useCallback(() => {
|
|
136
|
+
onTestRun?.(builder.config);
|
|
137
|
+
}, [onTestRun, builder.config]);
|
|
138
|
+
const handleCanvasClick = useCallback(() => {
|
|
139
|
+
builder.clearSelection();
|
|
140
|
+
}, [builder]);
|
|
141
|
+
const selectedStep = builder.selectedStepId
|
|
142
|
+
? builder.getStep(builder.selectedStepId)
|
|
143
|
+
: null;
|
|
144
|
+
return (_jsxs("div", { className: cn('flex h-full flex-col', classNames?.root, className), children: [_jsxs("div", { className: "flex flex-1 overflow-hidden", children: [_jsx("div", { className: cn('relative flex-1', classNames?.canvas), children: _jsxs(ReactFlow, { nodes: nodes, edges: edges, nodeTypes: builderNodeTypes, edgeTypes: builderEdgeTypes, onNodeClick: handleNodeClick, onPaneClick: handleCanvasClick, fitView: true, fitViewOptions: { padding: 0.35 }, proOptions: { hideAttribution: true }, nodesDraggable: false, nodesConnectable: false, elementsSelectable: false, panOnDrag: true, zoomOnScroll: true, minZoom: 0.25, maxZoom: 2, defaultEdgeOptions: {
|
|
145
|
+
style: { stroke: '#cbd5e1', strokeWidth: 1 },
|
|
146
|
+
type: 'smoothstep',
|
|
147
|
+
}, children: [_jsx(Background, { gap: 20, size: 1, color: "#e2e8f0", style: { opacity: 0.5 } }), _jsx(MiniMap, { nodeStrokeWidth: 2, pannable: true, zoomable: true, maskColor: "rgba(248, 250, 252, 0.75)", style: {
|
|
148
|
+
bottom: 12,
|
|
149
|
+
right: 12,
|
|
150
|
+
width: 140,
|
|
151
|
+
height: 90,
|
|
152
|
+
} })] }) }), !readOnly && selectedStep ? (_jsx(StepConfigDrawer, { step: selectedStep, onUpdateConfig: (config) => builder.updateStepConfig(selectedStep.id, config), onDelete: () => builder.removeStep(selectedStep.id), onDuplicate: () => builder.duplicateStep(selectedStep.id), onClose: () => builder.clearSelection(), className: classNames?.configDrawer }, selectedStep.id)) : !readOnly && builder.isTriggerSelected ? (_jsx(TriggerConfigPanel, { triggerType: builder.config.trigger.type, triggerConfig: (builder.config.trigger.config ?? {}), onUpdateConfig: (config) => builder.updateTriggerConfig(config), onChangeTriggerType: (type) => builder.setTrigger(type), onClose: () => builder.clearSelection(), className: classNames?.configDrawer })) : !readOnly ? (_jsx("div", { className: cn('flex w-80 flex-col border-l border-slate-200 bg-white', classNames?.configDrawer), children: _jsxs("div", { className: "flex flex-1 flex-col items-center justify-center p-8 text-center", children: [_jsx("div", { className: "mb-4 flex h-14 w-14 items-center justify-center rounded-2xl bg-slate-50", children: _jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", className: "text-slate-300", children: [_jsx("path", { d: "M15 15l-2 5L9 9l11 4-5 2z" }), _jsx("path", { d: "M21 21l-5.2-5.2" })] }) }), _jsx("p", { className: "text-sm font-medium text-slate-400", children: "Select a node" }), _jsxs("p", { className: "mt-1.5 text-xs text-slate-300 leading-relaxed", children: ["Click on a trigger or step", _jsx("br", {}), "to view its configuration"] })] }) })) : null] }), !readOnly && (_jsx(BuilderToolbar, { builder: builder, onSave: onSave ? handleSave : undefined, onTestRun: onTestRun ? handleTestRun : undefined, isSaving: isSaving, className: classNames?.toolbar })), _jsx(TriggerPicker, { open: showTriggerPicker, onSelect: handleSelectTrigger, onClose: () => setShowTriggerPicker(false) }), _jsx(StepPicker, { open: showStepPicker, onSelect: handleAddStep, onClose: () => { setShowStepPicker(false); setAddAfterStepId(undefined); } })] }));
|
|
153
|
+
}
|
|
154
|
+
export function WorkflowBuilder(props) {
|
|
155
|
+
return (_jsx(ReactFlowProvider, { children: _jsx(WorkflowBuilderInner, { ...props }) }));
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=WorkflowBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowBuilder.js","sourceRoot":"","sources":["../../../src/components/builder/WorkflowBuilder.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EACL,SAAS,EACT,UAAU,EACV,OAAO,EACP,iBAAiB,GAGlB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,kBAAkB,EAAiC,MAAM,qCAAqC,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAkBrC,SAAS,oBAAoB,CAAC,EAC5B,OAAO,EAAE,eAAe,EACxB,aAAa,EACb,QAAQ,EACR,MAAM,EACN,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,GACW;IACrB,MAAM,WAAW,GAA2G;QAC1H,YAAY,EAAE,IAAI;KACnB,CAAC;IACF,IAAI,aAAa;QAAE,WAAW,CAAC,aAAa,GAAG,aAAa,CAAC;IAC7D,IAAI,QAAQ;QAAE,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAE9C,MAAM,eAAe,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,eAAe,IAAI,eAAe,CAAC;IAEnD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAC;IAEpF,8CAA8C;IAC9C,MAAM,oBAAoB,GAAG,WAAW,CAAC,CAAC,WAAmB,EAAE,EAAE;QAC/D,iBAAiB,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;QAC5C,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,+DAA+D;IAC/D,kEAAkE;IAClE,uDAAuD;IACvD,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,MAAwB,EAAE,IAAU,EAAE,EAAE;QAC3E,IAAI,QAAQ;YAAE,OAAO;QACrB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;gBAChC,sDAAsD;gBACtD,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,6CAA6C;gBAC7C,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAChC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACrC,MAAM,WAAW,GAAI,IAAI,CAAC,IAAgC,CAAC,aAAa,CAAW,CAAC;YACpF,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;QACD,4BAA4B;IAC9B,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAE9C,mDAAmD;IACnD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAW,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7C,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,GAA4B;oBACpC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE;oBACrC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;oBACnB,UAAU,EAAE,OAAO,CAAC,iBAAiB;oBACrC,YAAY,EAAE,OAAO,CAAC,mBAAmB;iBAC1C,CAAC;gBACF,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;YAChE,CAAC;YAED,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC3B,IAAI,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBAC1B,MAAM,IAAI,GAA4B;oBACpC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE;iBACtC,CAAC;gBACF,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;YAChE,CAAC;YAED,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;gBACrC,MAAM,UAAU,GAAG,UAAU;oBAC3B,CAAC,CAAC,OAAO,CAAE,UAAU,CAAC,MAA8C,EAAE,CAAC,UAAU,CAAC,CAAC;oBACnF,CAAC,CAAC,KAAK,CAAC;gBAEV,MAAM,IAAI,GAA4B;oBACpC,UAAU,EAAE,UAAU,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;oBACnE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;oBACnB,UAAU,EAAE,OAAO,CAAC,cAAc,KAAK,CAAC,CAAC,EAAE;oBAC3C,UAAU;oBACV,mBAAmB,EAAE,KAAK;iBAC3B,CAAC;gBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClD,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACxD,IAAI,CAAC,kBAAkB,CAAC,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpE,CAAC;gBACD,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;YAChE,CAAC;YAED,WAAW;YACX,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACzF,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAW,CAAC;QAE7B,MAAM,OAAO,GAAW,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7C,MAAM,IAAI,GAAS;gBACjB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;aACxC,CAAC;YACF,IAAI,CAAC,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,mBAAmB,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAE9I,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,IAAY,EAAE,EAAE;QACf,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACtC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACzB,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC,EACD,CAAC,OAAO,EAAE,cAAc,CAAC,CAC1B,CAAC;IAEF,MAAM,mBAAmB,GAAG,WAAW,CACrC,CAAC,IAAY,EAAE,EAAE;QACf,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,CAAC,aAAa,EAAE,CAAC;QACxB,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACxC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7B,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,SAAS,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhC,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,OAAO,CAAC,cAAc,EAAE,CAAC;IAC3B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc;QACzC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC;IAET,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,aACrE,eAAK,SAAS,EAAC,6BAA6B,aAE1C,cAAK,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,MAAM,CAAC,YACvD,MAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,gBAAgB,EAC3B,WAAW,EAAE,eAAe,EAC5B,WAAW,EAAE,iBAAiB,EAC9B,OAAO,QACP,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EACjC,UAAU,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,EACrC,cAAc,EAAE,KAAK,EACrB,gBAAgB,EAAE,KAAK,EACvB,kBAAkB,EAAE,KAAK,EACzB,SAAS,QACT,YAAY,QACZ,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,CAAC,EACV,kBAAkB,EAAE;gCAClB,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE;gCAC5C,IAAI,EAAE,YAAY;6BACnB,aAED,KAAC,UAAU,IACT,GAAG,EAAE,EAAE,EACP,IAAI,EAAE,CAAC,EACP,KAAK,EAAC,SAAS,EACf,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GACvB,EACF,KAAC,OAAO,IACN,eAAe,EAAE,CAAC,EAClB,QAAQ,QACR,QAAQ,QACR,SAAS,EAAC,2BAA2B,EACrC,KAAK,EAAE;wCACL,MAAM,EAAE,EAAE;wCACV,KAAK,EAAE,EAAE;wCACT,KAAK,EAAE,GAAG;wCACV,MAAM,EAAE,EAAE;qCACX,GACD,IACQ,GACR,EAGL,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAC,CAAC,CAC3B,KAAC,gBAAgB,IAEf,IAAI,EAAE,YAAY,EAClB,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,EAC7E,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,EACnD,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC,EACzD,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EACvC,SAAS,EAAE,UAAU,EAAE,YAAY,IAN9B,YAAY,CAAC,EAAE,CAOpB,CACH,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAC3C,KAAC,kBAAkB,IACjB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EACxC,aAAa,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAA4B,EAC/E,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAC/D,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EACvD,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EACvC,SAAS,EAAE,UAAU,EAAE,YAAY,GACnC,CACH,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACd,cAAK,SAAS,EAAE,EAAE,CAAC,uDAAuD,EAAE,UAAU,EAAE,YAAY,CAAC,YACnG,eAAK,SAAS,EAAC,kEAAkE,aAC/E,cAAK,SAAS,EAAC,yEAAyE,YACtF,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,SAAS,EAAC,gBAAgB,aACzK,eAAM,CAAC,EAAC,2BAA2B,GAAE,EAAA,eAAM,CAAC,EAAC,iBAAiB,GAAE,IAC5D,GACF,EACN,YAAG,SAAS,EAAC,oCAAoC,8BAAkB,EACnE,aAAG,SAAS,EAAC,+CAA+C,2CAA2B,cAAK,iCAA6B,IACrH,GACF,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,EAGL,CAAC,QAAQ,IAAI,CACZ,KAAC,cAAc,IACb,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EACvC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAChD,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,UAAU,EAAE,OAAO,GAC9B,CACH,EAGD,KAAC,aAAa,IACZ,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAC1C,EAGF,KAAC,UAAU,IACT,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,GAAG,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAC1E,IACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,OAAO,CACL,KAAC,iBAAiB,cAChB,KAAC,oBAAoB,OAAK,KAAK,GAAI,GACjB,CACrB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-types.d.ts","sourceRoot":"","sources":["../../../src/components/builder/edge-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,eAAO,MAAM,gBAAgB,EAAE,SAE9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-types.js","sourceRoot":"","sources":["../../../src/components/builder/edge-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,MAAM,EAAE,UAAU;CACnB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2/icons — Centralized icon registry keyed by ICON NAME from backend.
|
|
3
|
+
*
|
|
4
|
+
* Components call getStepIcon(iconName) — never check step type.
|
|
5
|
+
* Icon names come from StepSummary.icon / TriggerSummary.icon provided by the backend.
|
|
6
|
+
*/
|
|
7
|
+
import type React from 'react';
|
|
8
|
+
export interface IconProps {
|
|
9
|
+
size?: number;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get an icon component by name (from backend StepSummary.icon / TriggerSummary.icon).
|
|
14
|
+
* Returns a fallback icon for unknown names.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getIcon(iconName?: string, props?: IconProps): React.ReactElement;
|
|
17
|
+
/**
|
|
18
|
+
* Get a step icon by name — alias for getIcon.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getStepIcon(iconName?: string, props?: IconProps): React.ReactElement;
|
|
21
|
+
/**
|
|
22
|
+
* Get a trigger icon by name — alias for getIcon.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getTriggerIcon(iconName?: string, props?: IconProps): React.ReactElement;
|
|
25
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/builder/icons.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmFD;;;GAGG;AACH,wBAAgB,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,SAAc,GAAG,KAAK,CAAC,YAAY,CAIpF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,SAAc,GAAG,KAAK,CAAC,YAAY,CAExF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,SAAc,GAAG,KAAK,CAAC,YAAY,CAE3F"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
const ICON_MAP = {
|
|
3
|
+
// Step icons
|
|
4
|
+
filter: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("path", { d: "M3 6h18" }), _jsx("path", { d: "M7 12h10" }), _jsx("path", { d: "M10 18h4" })] })),
|
|
5
|
+
code: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("polyline", { points: "16 18 22 12 16 6" }), _jsx("polyline", { points: "8 6 2 12 8 18" })] })),
|
|
6
|
+
globe: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("path", { d: "M2 12h20" }), _jsx("path", { d: "M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" })] })),
|
|
7
|
+
repeat: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("path", { d: "M17 2l4 4-4 4" }), _jsx("path", { d: "M3 11V9a4 4 0 0 1 4-4h14" }), _jsx("path", { d: "M7 22l-4-4 4-4" }), _jsx("path", { d: "M21 13v2a4 4 0 0 1-4 4H3" })] })),
|
|
8
|
+
columns: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("path", { d: "M8 3v18" }), _jsx("path", { d: "M16 3v18" }), _jsx("path", { d: "M3 8h4" }), _jsx("path", { d: "M3 16h4" }), _jsx("path", { d: "M17 8h4" }), _jsx("path", { d: "M17 16h4" })] })),
|
|
9
|
+
clock: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("polyline", { points: "12 6 12 12 16 14" })] })),
|
|
10
|
+
'copy-check': ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("rect", { x: "2", y: "6", width: "13", height: "13", rx: "2" }), _jsx("path", { d: "M9 2h9a2 2 0 0 1 2 2v9" }), _jsx("path", { d: "m15 11-4 4-2-2" })] })),
|
|
11
|
+
'git-branch': ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("path", { d: "M12 3v6" }), _jsx("path", { d: "M12 15v6" }), _jsx("circle", { cx: "12", cy: "12", r: "3" }), _jsx("path", { d: "M3 12h6" }), _jsx("path", { d: "M15 12h6" })] })),
|
|
12
|
+
'git-fork': ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("path", { d: "M6 3v12" }), _jsx("path", { d: "m18 9-6 6-6-6" }), _jsx("circle", { cx: "6", cy: "18", r: "3" }), _jsx("circle", { cx: "18", cy: "6", r: "3" })] })),
|
|
13
|
+
// Trigger icons
|
|
14
|
+
cursor: ({ size = 16, className }) => (_jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: _jsx("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" }) })),
|
|
15
|
+
satellite: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("path", { d: "M18 16.98h1a2 2 0 0 0 1.94-2.48L19.6 8.27a2 2 0 0 0-1.94-1.52H6.34a2 2 0 0 0-1.94 1.52L3.06 14.5A2 2 0 0 0 5 16.98h1" }), _jsx("path", { d: "M12 17v5" }), _jsx("circle", { cx: "12", cy: "12", r: "4" })] })),
|
|
16
|
+
timer: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("polyline", { points: "12 6 12 12 16 14" })] })),
|
|
17
|
+
bell: ({ size = 16, className }) => (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: [_jsx("path", { d: "M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" }), _jsx("path", { d: "M10.3 21a1.94 1.94 0 0 0 3.4 0" })] })),
|
|
18
|
+
// Fallback
|
|
19
|
+
zap: ({ size = 16, className }) => (_jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, children: _jsx("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" }) })),
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Get an icon component by name (from backend StepSummary.icon / TriggerSummary.icon).
|
|
23
|
+
* Returns a fallback icon for unknown names.
|
|
24
|
+
*/
|
|
25
|
+
export function getIcon(iconName, props = {}) {
|
|
26
|
+
const Icon = iconName ? ICON_MAP[iconName] : undefined;
|
|
27
|
+
if (Icon)
|
|
28
|
+
return _jsx(Icon, { ...props });
|
|
29
|
+
return ICON_MAP['zap'](props);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get a step icon by name — alias for getIcon.
|
|
33
|
+
*/
|
|
34
|
+
export function getStepIcon(iconName, props = {}) {
|
|
35
|
+
return getIcon(iconName, props);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get a trigger icon by name — alias for getIcon.
|
|
39
|
+
*/
|
|
40
|
+
export function getTriggerIcon(iconName, props = {}) {
|
|
41
|
+
return getIcon(iconName, props);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../src/components/builder/icons.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* layout-engine — converts WorkflowConfig into ReactFlow nodes + edges.
|
|
3
|
+
*
|
|
4
|
+
* Pure function: no side effects, no React, no hooks.
|
|
5
|
+
* Walks the step tree recursively, handles branches (CONDITIONAL, SWITCH),
|
|
6
|
+
* and auto-positions nodes vertically.
|
|
7
|
+
*
|
|
8
|
+
* Inserts "addButton" nodes between steps for inline step insertion.
|
|
9
|
+
*/
|
|
10
|
+
import type { WorkflowStepConfig, WorkflowConfig } from '@xyne/workflow-sdk/builder';
|
|
11
|
+
export interface LayoutNode {
|
|
12
|
+
id: string;
|
|
13
|
+
type: 'trigger' | 'step' | 'terminal' | 'addButton';
|
|
14
|
+
position: {
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
};
|
|
18
|
+
data: {
|
|
19
|
+
stepConfig?: WorkflowStepConfig;
|
|
20
|
+
triggerType?: string;
|
|
21
|
+
triggerConfig?: Record<string, unknown>;
|
|
22
|
+
label: string;
|
|
23
|
+
/** For addButton nodes: which step to insert after */
|
|
24
|
+
afterStepId?: string;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export interface LayoutEdge {
|
|
28
|
+
id: string;
|
|
29
|
+
source: string;
|
|
30
|
+
target: string;
|
|
31
|
+
type?: string;
|
|
32
|
+
label?: string;
|
|
33
|
+
data?: Record<string, unknown>;
|
|
34
|
+
}
|
|
35
|
+
export interface LayoutResult {
|
|
36
|
+
nodes: LayoutNode[];
|
|
37
|
+
edges: LayoutEdge[];
|
|
38
|
+
}
|
|
39
|
+
export interface LayoutOptions {
|
|
40
|
+
/** Insert addButton nodes between steps. Default true. */
|
|
41
|
+
includeAddButtons?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export declare function computeLayout(config: WorkflowConfig, options?: LayoutOptions): LayoutResult;
|
|
44
|
+
//# sourceMappingURL=layout-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout-engine.d.ts","sourceRoot":"","sources":["../../../src/components/builder/layout-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAIrF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;IACpD,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,IAAI,EAAE;QACJ,UAAU,CAAC,EAAE,kBAAkB,CAAC;QAChC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,KAAK,EAAE,MAAM,CAAC;QACd,sDAAsD;QACtD,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AA2DD,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAyC3F"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* layout-engine — converts WorkflowConfig into ReactFlow nodes + edges.
|
|
3
|
+
*
|
|
4
|
+
* Pure function: no side effects, no React, no hooks.
|
|
5
|
+
* Walks the step tree recursively, handles branches (CONDITIONAL, SWITCH),
|
|
6
|
+
* and auto-positions nodes vertically.
|
|
7
|
+
*
|
|
8
|
+
* Inserts "addButton" nodes between steps for inline step insertion.
|
|
9
|
+
*/
|
|
10
|
+
// ─── Helpers ───
|
|
11
|
+
function formatTypeName(type) {
|
|
12
|
+
return type
|
|
13
|
+
.split(/[_-]/)
|
|
14
|
+
.map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase())
|
|
15
|
+
.join(' ');
|
|
16
|
+
}
|
|
17
|
+
// ─── Constants ───
|
|
18
|
+
const NODE_GAP_Y = 90;
|
|
19
|
+
const NODE_GAP_X = 320;
|
|
20
|
+
function addButtonBetween(sourceId, targetId, afterStepId, xOffset, state) {
|
|
21
|
+
const sourceNode = state.nodes.find((n) => n.id === sourceId);
|
|
22
|
+
const targetNode = state.nodes.find((n) => n.id === targetId);
|
|
23
|
+
if (!sourceNode || !targetNode)
|
|
24
|
+
return;
|
|
25
|
+
const btnId = `__add__${sourceId}->${targetId}`;
|
|
26
|
+
const midY = (sourceNode.position.y + targetNode.position.y) / 2;
|
|
27
|
+
state.nodes.push({
|
|
28
|
+
id: btnId,
|
|
29
|
+
type: 'addButton',
|
|
30
|
+
position: { x: xOffset, y: midY },
|
|
31
|
+
data: { label: '', afterStepId },
|
|
32
|
+
});
|
|
33
|
+
// Replace the direct edge with source → button → target
|
|
34
|
+
const edgeIdx = state.edges.findIndex((e) => e.source === sourceId && e.target === targetId);
|
|
35
|
+
if (edgeIdx >= 0) {
|
|
36
|
+
const oldEdge = state.edges[edgeIdx];
|
|
37
|
+
state.edges.splice(edgeIdx, 1);
|
|
38
|
+
const srcToBtnEdge = { id: `${sourceId}->${btnId}`, source: sourceId, target: btnId };
|
|
39
|
+
if (oldEdge.label)
|
|
40
|
+
srcToBtnEdge.label = oldEdge.label;
|
|
41
|
+
state.edges.push(srcToBtnEdge, { id: `${btnId}->${targetId}`, source: btnId, target: targetId });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export function computeLayout(config, options) {
|
|
45
|
+
const state = { nodes: [], edges: [], y: 0 };
|
|
46
|
+
// Trigger node
|
|
47
|
+
const triggerId = '__trigger__';
|
|
48
|
+
state.nodes.push({
|
|
49
|
+
id: triggerId,
|
|
50
|
+
type: 'trigger',
|
|
51
|
+
position: { x: 0, y: state.y },
|
|
52
|
+
data: {
|
|
53
|
+
triggerType: config.trigger.type,
|
|
54
|
+
triggerConfig: config.trigger.config,
|
|
55
|
+
label: formatTypeName(config.trigger.type) + ' Trigger',
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
state.y += NODE_GAP_Y;
|
|
59
|
+
// Walk steps
|
|
60
|
+
let previousId = triggerId;
|
|
61
|
+
previousId = layoutSteps(config.steps, previousId, 0, state);
|
|
62
|
+
// Terminal node
|
|
63
|
+
const terminalId = '__terminal__';
|
|
64
|
+
state.nodes.push({
|
|
65
|
+
id: terminalId,
|
|
66
|
+
type: 'terminal',
|
|
67
|
+
position: { x: 0, y: state.y },
|
|
68
|
+
data: { label: 'End' },
|
|
69
|
+
});
|
|
70
|
+
state.edges.push({
|
|
71
|
+
id: `${previousId}->${terminalId}`,
|
|
72
|
+
source: previousId,
|
|
73
|
+
target: terminalId,
|
|
74
|
+
});
|
|
75
|
+
// Insert add-buttons between consecutive nodes on the main chain
|
|
76
|
+
if (options?.includeAddButtons !== false) {
|
|
77
|
+
insertAddButtons(config.steps, triggerId, 0, state);
|
|
78
|
+
}
|
|
79
|
+
return { nodes: state.nodes, edges: state.edges };
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Insert add-button nodes between steps on a chain.
|
|
83
|
+
* Does NOT handle branching sub-chains (kept simple for now).
|
|
84
|
+
*/
|
|
85
|
+
function insertAddButtons(steps, chainStartId, xOffset, state) {
|
|
86
|
+
const nodeIds = [chainStartId, ...steps.map((s) => s.id)];
|
|
87
|
+
// Add button after each node (between node[i] → node[i+1])
|
|
88
|
+
for (let i = 0; i < nodeIds.length; i++) {
|
|
89
|
+
const sourceId = nodeIds[i];
|
|
90
|
+
// Determine the target — either next step or terminal
|
|
91
|
+
const targetId = i < steps.length ? steps[i].id : '__terminal__';
|
|
92
|
+
// afterStepId: insert after source. For trigger, afterStepId is undefined (prepend)
|
|
93
|
+
const afterStepId = sourceId === chainStartId && i === 0 ? '' : sourceId;
|
|
94
|
+
addButtonBetween(sourceId, targetId, afterStepId, xOffset, state);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function layoutSteps(steps, previousId, xOffset, state) {
|
|
98
|
+
let prevId = previousId;
|
|
99
|
+
for (const step of steps) {
|
|
100
|
+
const nodeId = step.id;
|
|
101
|
+
state.nodes.push({
|
|
102
|
+
id: nodeId,
|
|
103
|
+
type: 'step',
|
|
104
|
+
position: { x: xOffset, y: state.y },
|
|
105
|
+
data: {
|
|
106
|
+
stepConfig: step,
|
|
107
|
+
label: formatTypeName(step.type),
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
state.edges.push({
|
|
111
|
+
id: `${prevId}->${nodeId}`,
|
|
112
|
+
source: prevId,
|
|
113
|
+
target: nodeId,
|
|
114
|
+
});
|
|
115
|
+
state.y += NODE_GAP_Y;
|
|
116
|
+
// Handle branching steps
|
|
117
|
+
const branches = detectBranches(step);
|
|
118
|
+
if (branches) {
|
|
119
|
+
const rejoinId = `${nodeId}__rejoin`;
|
|
120
|
+
const branchEntries = Object.entries(branches);
|
|
121
|
+
const totalWidth = (branchEntries.length - 1) * NODE_GAP_X;
|
|
122
|
+
const startX = xOffset - totalWidth / 2;
|
|
123
|
+
let maxY = state.y;
|
|
124
|
+
for (let i = 0; i < branchEntries.length; i++) {
|
|
125
|
+
const [branchKey, branchSteps] = branchEntries[i];
|
|
126
|
+
const branchX = startX + i * NODE_GAP_X;
|
|
127
|
+
const savedY = state.y;
|
|
128
|
+
if (branchSteps.length > 0) {
|
|
129
|
+
const lastId = layoutSteps(branchSteps, nodeId, branchX, state);
|
|
130
|
+
// Edge from branch to rejoin
|
|
131
|
+
state.edges.push({
|
|
132
|
+
id: `${lastId}->${rejoinId}`,
|
|
133
|
+
source: lastId,
|
|
134
|
+
target: rejoinId,
|
|
135
|
+
});
|
|
136
|
+
// Label the branch edge
|
|
137
|
+
const edgeIdx = state.edges.findIndex((e) => e.source === nodeId && e.target === branchSteps[0].id);
|
|
138
|
+
if (edgeIdx >= 0) {
|
|
139
|
+
state.edges[edgeIdx].label = branchKey;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
// Empty branch — direct edge from step to rejoin
|
|
144
|
+
state.edges.push({
|
|
145
|
+
id: `${nodeId}->${rejoinId}::${branchKey}`,
|
|
146
|
+
source: nodeId,
|
|
147
|
+
target: rejoinId,
|
|
148
|
+
label: branchKey,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
if (state.y > maxY)
|
|
152
|
+
maxY = state.y;
|
|
153
|
+
state.y = savedY;
|
|
154
|
+
}
|
|
155
|
+
state.y = maxY;
|
|
156
|
+
// Rejoin node (invisible — just a merge point)
|
|
157
|
+
state.nodes.push({
|
|
158
|
+
id: rejoinId,
|
|
159
|
+
type: 'step',
|
|
160
|
+
position: { x: xOffset, y: state.y },
|
|
161
|
+
data: { label: '' },
|
|
162
|
+
});
|
|
163
|
+
state.y += NODE_GAP_Y;
|
|
164
|
+
prevId = rejoinId;
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
prevId = nodeId;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return prevId;
|
|
171
|
+
}
|
|
172
|
+
function detectBranches(step) {
|
|
173
|
+
if (!('config' in step) || typeof step.config !== 'object' || step.config === null) {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
const config = step.config;
|
|
177
|
+
// CONDITIONAL: if_true / if_false
|
|
178
|
+
if (Array.isArray(config['if_true']) || Array.isArray(config['if_false'])) {
|
|
179
|
+
return {
|
|
180
|
+
'true': (config['if_true'] ?? []),
|
|
181
|
+
'false': (config['if_false'] ?? []),
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
// SWITCH: cases
|
|
185
|
+
if (Array.isArray(config['cases'])) {
|
|
186
|
+
const branches = {};
|
|
187
|
+
const cases = config['cases'];
|
|
188
|
+
for (let i = 0; i < cases.length; i++) {
|
|
189
|
+
const c = cases[i];
|
|
190
|
+
const key = c.key ?? `case_${String(i)}`;
|
|
191
|
+
branches[key] = c.steps ?? [];
|
|
192
|
+
}
|
|
193
|
+
if (Array.isArray(config['default'])) {
|
|
194
|
+
branches['default'] = config['default'];
|
|
195
|
+
}
|
|
196
|
+
return branches;
|
|
197
|
+
}
|
|
198
|
+
// LOOP: body
|
|
199
|
+
if (Array.isArray(config['body'])) {
|
|
200
|
+
return {
|
|
201
|
+
'body': config['body'],
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
// PARALLEL: branches (Record<string, WorkflowStepConfig[]>)
|
|
205
|
+
if (config['branches'] && typeof config['branches'] === 'object' && !Array.isArray(config['branches'])) {
|
|
206
|
+
const raw = config['branches'];
|
|
207
|
+
const branches = {};
|
|
208
|
+
for (const [key, val] of Object.entries(raw)) {
|
|
209
|
+
branches[key] = Array.isArray(val) ? val : [];
|
|
210
|
+
}
|
|
211
|
+
if (Object.keys(branches).length > 0)
|
|
212
|
+
return branches;
|
|
213
|
+
}
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=layout-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout-engine.js","sourceRoot":"","sources":["../../../src/components/builder/layout-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-types.d.ts","sourceRoot":"","sources":["../../../src/components/builder/node-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM/C,eAAO,MAAM,gBAAgB,EAAE,SAK9B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { StepNode } from './StepNode.js';
|
|
2
|
+
import { TriggerNode } from './TriggerNode.js';
|
|
3
|
+
import { TerminalNode } from './TerminalNode.js';
|
|
4
|
+
import { AddStepButton } from './AddStepButton.js';
|
|
5
|
+
export const builderNodeTypes = {
|
|
6
|
+
step: StepNode,
|
|
7
|
+
trigger: TriggerNode,
|
|
8
|
+
terminal: TerminalNode,
|
|
9
|
+
addButton: AddStepButton,
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=node-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../../src/components/builder/node-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,YAAY;IACtB,SAAS,EAAE,aAAa;CACzB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2/theme — Centralized category theming.
|
|
3
|
+
*
|
|
4
|
+
* All visual styling for categories is derived from backend-provided category names.
|
|
5
|
+
* The UI never hardcodes which step TYPE belongs to which category.
|
|
6
|
+
*/
|
|
7
|
+
export interface CategoryTheme {
|
|
8
|
+
/** Tailwind class for left accent border (e.g. "border-l-sky-400") */
|
|
9
|
+
accent: string;
|
|
10
|
+
/** Tailwind class for icon container background */
|
|
11
|
+
iconBg: string;
|
|
12
|
+
/** Tailwind class for icon container text color */
|
|
13
|
+
iconText: string;
|
|
14
|
+
/** Tailwind class for the category dot */
|
|
15
|
+
dot: string;
|
|
16
|
+
/** Tailwind class for light background (cards, picker hover) */
|
|
17
|
+
lightBg: string;
|
|
18
|
+
/** Tailwind class for selection ring */
|
|
19
|
+
ring: string;
|
|
20
|
+
/** CSS color value for edges/connectors */
|
|
21
|
+
edgeColor: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get the visual theme for a category name (from backend StepSummary.category).
|
|
25
|
+
* Falls back gracefully for unknown categories.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getCategoryTheme(category?: string): CategoryTheme;
|
|
28
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/components/builder/theme.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB;AAmDD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,CAGjE"}
|