@flowdrop/flowdrop 1.5.0 → 1.7.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 +46 -47
- package/dist/adapters/WorkflowAdapter.d.ts +1 -1
- package/dist/adapters/WorkflowAdapter.js +26 -26
- package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +2 -2
- package/dist/adapters/agentspec/AgentSpecAdapter.js +122 -133
- package/dist/adapters/agentspec/agentAdapter.d.ts +2 -2
- package/dist/adapters/agentspec/agentAdapter.js +10 -10
- package/dist/adapters/agentspec/autoLayout.d.ts +1 -1
- package/dist/adapters/agentspec/autoLayout.js +7 -9
- package/dist/adapters/agentspec/componentTypeDefaults.d.ts +1 -1
- package/dist/adapters/agentspec/componentTypeDefaults.js +120 -120
- package/dist/adapters/agentspec/defaultNodeTypes.d.ts +2 -2
- package/dist/adapters/agentspec/defaultNodeTypes.js +307 -307
- package/dist/adapters/agentspec/index.d.ts +10 -10
- package/dist/adapters/agentspec/index.js +6 -6
- package/dist/adapters/agentspec/validator.d.ts +2 -2
- package/dist/adapters/agentspec/validator.js +20 -22
- package/dist/api/enhanced-client.d.ts +3 -3
- package/dist/api/enhanced-client.js +72 -73
- package/dist/chat/commandClassifier.js +6 -6
- package/dist/chat/index.d.ts +5 -5
- package/dist/chat/index.js +4 -4
- package/dist/chat/responseParser.d.ts +6 -6
- package/dist/chat/responseParser.js +28 -24
- package/dist/commands/batch.d.ts +1 -1
- package/dist/commands/batch.js +5 -7
- package/dist/commands/executor.d.ts +2 -2
- package/dist/commands/executor.js +320 -231
- package/dist/commands/index.d.ts +6 -6
- package/dist/commands/index.js +5 -5
- package/dist/commands/parser.d.ts +1 -1
- package/dist/commands/parser.js +91 -74
- package/dist/commands/positioner.d.ts +2 -2
- package/dist/commands/positioner.js +1 -1
- package/dist/commands/storeIntegration.svelte.d.ts +2 -2
- package/dist/commands/storeIntegration.svelte.js +5 -5
- package/dist/commands/types.d.ts +42 -42
- package/dist/commands/types.js +2 -2
- package/dist/components/App.svelte +280 -303
- package/dist/components/App.svelte.d.ts +11 -9
- package/dist/components/CanvasBanner.stories.svelte +10 -16
- package/dist/components/CanvasBanner.stories.svelte.d.ts +1 -1
- package/dist/components/CanvasBanner.svelte +2 -2
- package/dist/components/CanvasBanner.svelte.d.ts +1 -1
- package/dist/components/CanvasController.svelte +3 -4
- package/dist/components/ConfigForm.svelte +118 -256
- package/dist/components/ConfigForm.svelte.d.ts +2 -2
- package/dist/components/ConfigMappingRow.svelte +7 -9
- package/dist/components/ConfigMappingRow.svelte.d.ts +1 -1
- package/dist/components/ConfigModal.svelte +3 -3
- package/dist/components/ConfigModal.svelte.d.ts +1 -1
- package/dist/components/ConfigPanel.stories.svelte +19 -19
- package/dist/components/ConfigPanel.stories.svelte.d.ts +1 -1
- package/dist/components/ConfigPanel.svelte +9 -20
- package/dist/components/ConfigPanel.svelte.d.ts +1 -1
- package/dist/components/ConnectionLine.svelte +4 -4
- package/dist/components/EdgeRefresher.svelte +1 -1
- package/dist/components/FlowDropEdge.stories.svelte +110 -110
- package/dist/components/FlowDropEdge.svelte +9 -9
- package/dist/components/FlowDropEdge.svelte.d.ts +1 -1
- package/dist/components/FlowDropZone.svelte +6 -9
- package/dist/components/FlowDropZone.svelte.d.ts +1 -1
- package/dist/components/LoadingSpinner.stories.svelte +13 -13
- package/dist/components/LoadingSpinner.stories.svelte.d.ts +1 -1
- package/dist/components/LoadingSpinner.svelte +3 -3
- package/dist/components/LoadingSpinner.svelte.d.ts +1 -1
- package/dist/components/Logo.stories.svelte +4 -4
- package/dist/components/Logo.stories.svelte.d.ts +1 -1
- package/dist/components/Logo.svelte +3 -9
- package/dist/components/LogsSidebar.svelte +41 -48
- package/dist/components/LogsSidebar.svelte.d.ts +1 -1
- package/dist/components/MarkdownDisplay.stories.svelte +10 -14
- package/dist/components/MarkdownDisplay.stories.svelte.d.ts +1 -1
- package/dist/components/MarkdownDisplay.svelte +4 -6
- package/dist/components/Navbar.stories.svelte +19 -19
- package/dist/components/Navbar.stories.svelte.d.ts +1 -1
- package/dist/components/Navbar.svelte +28 -49
- package/dist/components/Navbar.svelte.d.ts +2 -2
- package/dist/components/NodeSidebar.svelte +42 -88
- package/dist/components/NodeSidebar.svelte.d.ts +1 -1
- package/dist/components/NodeStatusOverlay.stories.svelte +19 -31
- package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +1 -1
- package/dist/components/NodeStatusOverlay.svelte +40 -55
- package/dist/components/NodeStatusOverlay.svelte.d.ts +3 -3
- package/dist/components/NodeSwapPicker.svelte +20 -64
- package/dist/components/NodeSwapPicker.svelte.d.ts +1 -1
- package/dist/components/PipelineStatus.svelte +63 -89
- package/dist/components/PipelineStatus.svelte.d.ts +4 -4
- package/dist/components/PortCoordinateTracker.svelte +5 -7
- package/dist/components/PortCoordinateTracker.svelte.d.ts +1 -1
- package/dist/components/PortMappingRow.svelte +20 -24
- package/dist/components/PortMappingRow.svelte.d.ts +2 -2
- package/dist/components/ReadOnlyDetails.svelte +1 -1
- package/dist/components/SchemaForm.stories.svelte +53 -53
- package/dist/components/SchemaForm.stories.svelte.d.ts +1 -1
- package/dist/components/SchemaForm.svelte +24 -51
- package/dist/components/SchemaForm.svelte.d.ts +2 -2
- package/dist/components/SettingsModal.svelte +6 -9
- package/dist/components/SettingsModal.svelte.d.ts +1 -1
- package/dist/components/SettingsPanel.svelte +138 -158
- package/dist/components/SettingsPanel.svelte.d.ts +1 -1
- package/dist/components/StatusIcon.stories.svelte +16 -29
- package/dist/components/StatusIcon.stories.svelte.d.ts +1 -1
- package/dist/components/StatusIcon.svelte +19 -19
- package/dist/components/StatusIcon.svelte.d.ts +2 -2
- package/dist/components/StatusLabel.stories.svelte +8 -8
- package/dist/components/StatusLabel.stories.svelte.d.ts +1 -1
- package/dist/components/SwapMappingEditor.svelte +35 -56
- package/dist/components/SwapMappingEditor.svelte.d.ts +2 -2
- package/dist/components/ThemeToggle.stories.svelte +10 -10
- package/dist/components/ThemeToggle.stories.svelte.d.ts +1 -1
- package/dist/components/ThemeToggle.svelte +22 -33
- package/dist/components/ThemeToggle.svelte.d.ts +1 -1
- package/dist/components/UniversalNode.svelte +29 -41
- package/dist/components/UniversalNode.svelte.d.ts +3 -3
- package/dist/components/WorkflowEditor.svelte +113 -168
- package/dist/components/WorkflowEditor.svelte.d.ts +4 -4
- package/dist/components/chat/AIChatPanel.svelte +272 -133
- package/dist/components/chat/AIChatPanel.svelte.d.ts +3 -3
- package/dist/components/chat/CommandPreview.svelte +74 -24
- package/dist/components/chat/CommandPreview.svelte.d.ts +1 -1
- package/dist/components/console/CommandConsole.stories.svelte +71 -53
- package/dist/components/console/CommandConsole.stories.svelte.d.ts +1 -1
- package/dist/components/console/CommandConsole.svelte +39 -35
- package/dist/components/console/CommandConsole.svelte.d.ts +2 -2
- package/dist/components/console/ConsoleAutocomplete.svelte +6 -3
- package/dist/components/console/ConsoleInput.svelte +148 -89
- package/dist/components/console/ConsoleInput.svelte.d.ts +1 -1
- package/dist/components/console/ConsoleOutput.svelte +5 -10
- package/dist/components/console/ConsoleOutput.svelte.d.ts +1 -1
- package/dist/components/console/formatters.d.ts +1 -1
- package/dist/components/console/formatters.js +27 -29
- package/dist/components/form/FormArray.svelte +75 -132
- package/dist/components/form/FormArray.svelte.d.ts +1 -1
- package/dist/components/form/FormAutocomplete.svelte +65 -108
- package/dist/components/form/FormAutocomplete.svelte.d.ts +1 -1
- package/dist/components/form/FormCheckboxGroup.stories.svelte +13 -16
- package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormCheckboxGroup.svelte +2 -2
- package/dist/components/form/FormCodeEditor.svelte +46 -59
- package/dist/components/form/FormField.svelte +79 -90
- package/dist/components/form/FormField.svelte.d.ts +2 -2
- package/dist/components/form/FormFieldLight.svelte +72 -88
- package/dist/components/form/FormFieldLight.svelte.d.ts +1 -1
- package/dist/components/form/FormFieldWrapper.stories.svelte +14 -14
- package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormFieldWrapper.svelte +2 -9
- package/dist/components/form/FormFieldWrapper.svelte.d.ts +1 -1
- package/dist/components/form/FormFieldset.svelte +3 -3
- package/dist/components/form/FormFieldset.svelte.d.ts +2 -2
- package/dist/components/form/FormMarkdownEditor.svelte +123 -156
- package/dist/components/form/FormNumberField.stories.svelte +18 -18
- package/dist/components/form/FormNumberField.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormNumberField.svelte +6 -6
- package/dist/components/form/FormRangeField.stories.svelte +13 -13
- package/dist/components/form/FormRangeField.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormRangeField.svelte +4 -12
- package/dist/components/form/FormSelect.stories.svelte +21 -21
- package/dist/components/form/FormSelect.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormSelect.svelte +5 -5
- package/dist/components/form/FormSelect.svelte.d.ts +1 -1
- package/dist/components/form/FormTemplateEditor.svelte +126 -175
- package/dist/components/form/FormTemplateEditor.svelte.d.ts +1 -1
- package/dist/components/form/FormTextField.stories.svelte +17 -23
- package/dist/components/form/FormTextField.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormTextField.svelte +4 -4
- package/dist/components/form/FormTextarea.stories.svelte +18 -21
- package/dist/components/form/FormTextarea.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormTextarea.svelte +4 -4
- package/dist/components/form/FormToggle.stories.svelte +13 -16
- package/dist/components/form/FormToggle.stories.svelte.d.ts +1 -1
- package/dist/components/form/FormToggle.svelte +3 -3
- package/dist/components/form/FormUISchemaRenderer.svelte +12 -19
- package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +3 -3
- package/dist/components/form/index.d.ts +19 -19
- package/dist/components/form/index.js +18 -18
- package/dist/components/form/templateAutocomplete.d.ts +2 -2
- package/dist/components/form/templateAutocomplete.js +55 -64
- package/dist/components/form/types.d.ts +6 -6
- package/dist/components/form/types.js +4 -9
- package/dist/components/icons/AlertCircleIcon.svelte +1 -6
- package/dist/components/icons/CogIcon.svelte +1 -6
- package/dist/components/interrupt/ChoicePrompt.stories.svelte +27 -27
- package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/ChoicePrompt.svelte +17 -41
- package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +17 -17
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/ConfirmationPrompt.svelte +10 -16
- package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/FormPrompt.svelte +10 -15
- package/dist/components/interrupt/FormPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/InterruptBubble.svelte +87 -121
- package/dist/components/interrupt/InterruptBubble.svelte.d.ts +2 -2
- package/dist/components/interrupt/ReviewPrompt.stories.svelte +37 -37
- package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/ReviewPrompt.svelte +55 -75
- package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/TextInputPrompt.stories.svelte +16 -17
- package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +1 -1
- package/dist/components/interrupt/TextInputPrompt.svelte +13 -18
- package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +1 -1
- package/dist/components/interrupt/index.d.ts +6 -6
- package/dist/components/interrupt/index.js +6 -6
- package/dist/components/layouts/MainLayout.svelte +46 -84
- package/dist/components/layouts/MainLayout.svelte.d.ts +6 -6
- package/dist/components/nodes/GatewayNode.stories.svelte +64 -65
- package/dist/components/nodes/GatewayNode.svelte +37 -70
- package/dist/components/nodes/GatewayNode.svelte.d.ts +3 -3
- package/dist/components/nodes/IdeaNode.stories.svelte +25 -26
- package/dist/components/nodes/IdeaNode.svelte +22 -36
- package/dist/components/nodes/IdeaNode.svelte.d.ts +1 -1
- package/dist/components/nodes/NotesNode.stories.svelte +37 -38
- package/dist/components/nodes/NotesNode.svelte +28 -39
- package/dist/components/nodes/NotesNode.svelte.d.ts +1 -1
- package/dist/components/nodes/SimpleNode.stories.svelte +137 -138
- package/dist/components/nodes/SimpleNode.svelte +51 -81
- package/dist/components/nodes/SimpleNode.svelte.d.ts +1 -1
- package/dist/components/nodes/SquareNode.stories.svelte +75 -75
- package/dist/components/nodes/SquareNode.svelte +42 -68
- package/dist/components/nodes/SquareNode.svelte.d.ts +1 -1
- package/dist/components/nodes/TerminalNode.stories.svelte +10 -10
- package/dist/components/nodes/TerminalNode.svelte +74 -112
- package/dist/components/nodes/TerminalNode.svelte.d.ts +1 -1
- package/dist/components/nodes/ToolNode.stories.svelte +115 -116
- package/dist/components/nodes/ToolNode.svelte +31 -64
- package/dist/components/nodes/ToolNode.svelte.d.ts +1 -1
- package/dist/components/nodes/WorkflowNode.stories.svelte +84 -89
- package/dist/components/nodes/WorkflowNode.svelte +50 -103
- package/dist/components/nodes/WorkflowNode.svelte.d.ts +3 -3
- package/dist/components/playground/ChatPanel.svelte +47 -103
- package/dist/components/playground/ExecutionLogs.svelte +45 -68
- package/dist/components/playground/InputCollector.svelte +32 -51
- package/dist/components/playground/MessageBubble.stories.svelte +25 -25
- package/dist/components/playground/MessageBubble.stories.svelte.d.ts +1 -1
- package/dist/components/playground/MessageBubble.svelte +54 -70
- package/dist/components/playground/MessageBubble.svelte.d.ts +1 -1
- package/dist/components/playground/Playground.svelte +60 -91
- package/dist/components/playground/Playground.svelte.d.ts +3 -3
- package/dist/components/playground/PlaygroundModal.svelte +8 -12
- package/dist/components/playground/PlaygroundModal.svelte.d.ts +3 -3
- package/dist/components/playground/SessionManager.svelte +34 -40
- package/dist/components/playground/SessionManager.svelte.d.ts +1 -1
- package/dist/config/agentSpecEndpoints.d.ts +1 -1
- package/dist/config/agentSpecEndpoints.js +20 -20
- package/dist/config/constants.js +2 -2
- package/dist/config/defaultCategories.d.ts +1 -1
- package/dist/config/defaultCategories.js +86 -86
- package/dist/config/defaultPortConfig.d.ts +1 -1
- package/dist/config/defaultPortConfig.js +144 -144
- package/dist/config/endpoints.d.ts +4 -4
- package/dist/config/endpoints.js +68 -68
- package/dist/config/runtimeConfig.d.ts +2 -2
- package/dist/config/runtimeConfig.js +8 -8
- package/dist/core/index.d.ts +68 -68
- package/dist/core/index.js +38 -38
- package/dist/display/index.d.ts +2 -2
- package/dist/display/index.js +2 -2
- package/dist/editor/index.d.ts +64 -64
- package/dist/editor/index.js +54 -54
- package/dist/form/code.d.ts +5 -5
- package/dist/form/code.js +14 -14
- package/dist/form/fieldRegistry.d.ts +3 -3
- package/dist/form/fieldRegistry.js +9 -11
- package/dist/form/full.d.ts +8 -8
- package/dist/form/full.js +9 -9
- package/dist/form/index.d.ts +18 -18
- package/dist/form/index.js +16 -16
- package/dist/form/markdown.d.ts +4 -4
- package/dist/form/markdown.js +8 -8
- package/dist/helpers/proximityConnect.d.ts +3 -3
- package/dist/helpers/proximityConnect.js +32 -34
- package/dist/helpers/workflowEditorHelper.d.ts +6 -6
- package/dist/helpers/workflowEditorHelper.js +64 -68
- package/dist/index.d.ts +6 -6
- package/dist/index.js +6 -6
- package/dist/mocks/app-environment.js +2 -2
- package/dist/mocks/app-forms.js +1 -1
- package/dist/mocks/app-navigation.js +2 -2
- package/dist/mocks/app-stores.js +3 -3
- package/dist/playground/index.d.ts +19 -19
- package/dist/playground/index.js +16 -16
- package/dist/playground/mount.d.ts +3 -3
- package/dist/playground/mount.js +24 -24
- package/dist/registry/builtinFormats.js +13 -13
- package/dist/registry/builtinNodes.d.ts +2 -2
- package/dist/registry/builtinNodes.js +77 -77
- package/dist/registry/index.d.ts +4 -4
- package/dist/registry/index.js +4 -4
- package/dist/registry/nodeComponentRegistry.d.ts +8 -8
- package/dist/registry/nodeComponentRegistry.js +9 -11
- package/dist/registry/plugin.d.ts +2 -2
- package/dist/registry/plugin.js +11 -11
- package/dist/registry/workflowFormatRegistry.d.ts +3 -3
- package/dist/registry/workflowFormatRegistry.js +2 -2
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.js +2 -2
- package/dist/schemas/v1/workflow.schema.json +5 -0
- package/dist/services/agentSpecExecutionService.d.ts +3 -3
- package/dist/services/agentSpecExecutionService.js +55 -56
- package/dist/services/api.d.ts +2 -2
- package/dist/services/api.js +37 -37
- package/dist/services/apiVariableService.d.ts +1 -1
- package/dist/services/apiVariableService.js +34 -41
- package/dist/services/autoSaveService.js +8 -8
- package/dist/services/categoriesApi.d.ts +2 -2
- package/dist/services/categoriesApi.js +8 -8
- package/dist/services/chatService.d.ts +1 -1
- package/dist/services/chatService.js +18 -18
- package/dist/services/draftStorage.d.ts +1 -1
- package/dist/services/draftStorage.js +11 -11
- package/dist/services/dynamicSchemaService.d.ts +1 -1
- package/dist/services/dynamicSchemaService.js +39 -41
- package/dist/services/globalSave.d.ts +2 -2
- package/dist/services/globalSave.js +38 -41
- package/dist/services/historyService.d.ts +1 -1
- package/dist/services/historyService.js +10 -10
- package/dist/services/interruptService.d.ts +1 -1
- package/dist/services/interruptService.js +29 -35
- package/dist/services/nodeExecutionService.d.ts +1 -1
- package/dist/services/nodeExecutionService.js +44 -45
- package/dist/services/playgroundService.d.ts +1 -1
- package/dist/services/playgroundService.js +29 -29
- package/dist/services/portConfigApi.d.ts +2 -2
- package/dist/services/portConfigApi.js +8 -8
- package/dist/services/settingsService.d.ts +2 -2
- package/dist/services/settingsService.js +19 -25
- package/dist/services/toastService.d.ts +4 -4
- package/dist/services/toastService.js +33 -33
- package/dist/services/variableService.d.ts +1 -1
- package/dist/services/variableService.js +36 -36
- package/dist/services/workflowStorage.d.ts +2 -2
- package/dist/services/workflowStorage.js +13 -13
- package/dist/settings/index.d.ts +7 -7
- package/dist/settings/index.js +6 -6
- package/dist/skins/default.d.ts +1 -1
- package/dist/skins/default.js +1 -1
- package/dist/skins/index.d.ts +3 -3
- package/dist/skins/index.js +7 -7
- package/dist/skins/slate.d.ts +1 -1
- package/dist/skins/slate.js +69 -69
- package/dist/stores/categoriesStore.svelte.d.ts +1 -1
- package/dist/stores/categoriesStore.svelte.js +5 -5
- package/dist/stores/editorStateMachine.svelte.d.ts +2 -2
- package/dist/stores/editorStateMachine.svelte.js +34 -34
- package/dist/stores/historyStore.svelte.d.ts +4 -4
- package/dist/stores/historyStore.svelte.js +4 -4
- package/dist/stores/interruptStore.svelte.d.ts +3 -3
- package/dist/stores/interruptStore.svelte.js +21 -21
- package/dist/stores/playgroundStore.svelte.d.ts +2 -2
- package/dist/stores/playgroundStore.svelte.js +18 -21
- package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
- package/dist/stores/portCoordinateStore.svelte.js +10 -13
- package/dist/stores/settingsStore.svelte.d.ts +2 -2
- package/dist/stores/settingsStore.svelte.js +57 -62
- package/dist/stores/workflowStore.svelte.d.ts +4 -3
- package/dist/stores/workflowStore.svelte.js +47 -47
- package/dist/stories/CanvasDecorator.svelte +7 -10
- package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
- package/dist/stories/EdgeDecorator.svelte +28 -31
- package/dist/stories/EdgeDecorator.svelte.d.ts +1 -1
- package/dist/stories/NodeDecorator.svelte +14 -20
- package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
- package/dist/stories/utils.d.ts +2 -2
- package/dist/stories/utils.js +89 -93
- package/dist/styles/base.css +16 -50
- package/dist/styles/tokens.css +10 -28
- package/dist/svelte-app.d.ts +10 -10
- package/dist/svelte-app.js +39 -39
- package/dist/themes/default.d.ts +1 -1
- package/dist/themes/default.js +4 -4
- package/dist/themes/index.d.ts +3 -3
- package/dist/themes/index.js +11 -11
- package/dist/themes/minimal.d.ts +1 -1
- package/dist/themes/minimal.js +5 -5
- package/dist/types/agentspec.d.ts +18 -18
- package/dist/types/agentspec.js +2 -2
- package/dist/types/auth.d.ts +1 -1
- package/dist/types/auth.js +6 -6
- package/dist/types/chat.d.ts +2 -2
- package/dist/types/config.d.ts +6 -6
- package/dist/types/events.d.ts +3 -3
- package/dist/types/events.js +2 -2
- package/dist/types/index.d.ts +34 -32
- package/dist/types/index.js +6 -6
- package/dist/types/interrupt.d.ts +6 -6
- package/dist/types/interrupt.js +21 -21
- package/dist/types/interruptState.d.ts +12 -12
- package/dist/types/interruptState.js +66 -66
- package/dist/types/playground.d.ts +7 -7
- package/dist/types/playground.js +14 -14
- package/dist/types/settings.d.ts +7 -5
- package/dist/types/settings.js +19 -24
- package/dist/types/skin.d.ts +1 -1
- package/dist/types/theme.d.ts +2 -2
- package/dist/types/uischema.d.ts +4 -4
- package/dist/types/uischema.js +3 -3
- package/dist/utils/colors.d.ts +1 -1
- package/dist/utils/colors.js +95 -97
- package/dist/utils/config.d.ts +2 -2
- package/dist/utils/config.js +48 -48
- package/dist/utils/connections.d.ts +6 -2
- package/dist/utils/connections.js +21 -15
- package/dist/utils/edgeStyling.d.ts +2 -2
- package/dist/utils/edgeStyling.js +36 -39
- package/dist/utils/errors.js +3 -3
- package/dist/utils/fetchWithAuth.d.ts +1 -1
- package/dist/utils/fetchWithAuth.js +2 -2
- package/dist/utils/handleIds.d.ts +2 -2
- package/dist/utils/handleIds.js +8 -8
- package/dist/utils/handlePositioning.d.ts +1 -1
- package/dist/utils/handlePositioning.js +2 -2
- package/dist/utils/icons.d.ts +1 -1
- package/dist/utils/icons.js +74 -74
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.js +7 -7
- package/dist/utils/nodeIds.d.ts +1 -1
- package/dist/utils/nodeIds.js +1 -1
- package/dist/utils/nodeStatus.d.ts +1 -1
- package/dist/utils/nodeStatus.js +48 -48
- package/dist/utils/nodeSwap.d.ts +9 -9
- package/dist/utils/nodeSwap.js +52 -58
- package/dist/utils/nodeTypes.d.ts +1 -1
- package/dist/utils/nodeTypes.js +20 -21
- package/dist/utils/nodeWrapper.d.ts +7 -7
- package/dist/utils/nodeWrapper.js +19 -21
- package/dist/utils/performanceUtils.d.ts +1 -1
- package/dist/utils/performanceUtils.js +1 -2
- package/dist/utils/portUtils.d.ts +2 -2
- package/dist/utils/portUtils.js +1 -1
- package/dist/utils/sanitize.js +1 -1
- package/dist/utils/uischema.d.ts +2 -2
- package/dist/utils/uischema.js +8 -8
- package/dist/utils/validation.js +8 -8
- package/package.json +7 -11
|
@@ -7,16 +7,16 @@
|
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
9
|
<script lang="ts">
|
|
10
|
-
import Icon from
|
|
11
|
-
import Logo from
|
|
12
|
-
import SettingsModal from
|
|
13
|
-
import type { SettingsCategory } from
|
|
10
|
+
import Icon from '@iconify/svelte';
|
|
11
|
+
import Logo from './Logo.svelte';
|
|
12
|
+
import SettingsModal from './SettingsModal.svelte';
|
|
13
|
+
import type { SettingsCategory } from '../types/settings.js';
|
|
14
14
|
|
|
15
15
|
interface NavbarAction {
|
|
16
16
|
label: string;
|
|
17
17
|
href: string;
|
|
18
18
|
icon?: string;
|
|
19
|
-
variant?:
|
|
19
|
+
variant?: 'primary' | 'secondary' | 'outline';
|
|
20
20
|
onclick?: (event: Event) => void;
|
|
21
21
|
/** If true, opens link in new tab with proper security attributes */
|
|
22
22
|
external?: boolean;
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
showSettings = true,
|
|
56
56
|
settingsCategories,
|
|
57
57
|
showSettingsSyncButton,
|
|
58
|
-
showSettingsResetButton
|
|
58
|
+
showSettingsResetButton
|
|
59
59
|
}: Props = $props();
|
|
60
60
|
|
|
61
61
|
// Dropdown state
|
|
@@ -67,16 +67,16 @@
|
|
|
67
67
|
// Close dropdown when clicking outside
|
|
68
68
|
function handleClickOutside(event: MouseEvent) {
|
|
69
69
|
const target = event.target as HTMLElement;
|
|
70
|
-
if (!target.closest(
|
|
70
|
+
if (!target.closest('.flowdrop-navbar__dropdown')) {
|
|
71
71
|
isDropdownOpen = false;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
// Add event listener for click outside with proper cleanup
|
|
76
76
|
$effect(() => {
|
|
77
|
-
document.addEventListener(
|
|
77
|
+
document.addEventListener('click', handleClickOutside);
|
|
78
78
|
return () => {
|
|
79
|
-
document.removeEventListener(
|
|
79
|
+
document.removeEventListener('click', handleClickOutside);
|
|
80
80
|
};
|
|
81
81
|
});
|
|
82
82
|
</script>
|
|
@@ -91,9 +91,7 @@
|
|
|
91
91
|
</div>
|
|
92
92
|
<div>
|
|
93
93
|
<h1 class="flowdrop-text--logo flowdrop-font--bold">FlowDrop</h1>
|
|
94
|
-
<p class="flowdrop-text--tagline flowdrop-text--gray">
|
|
95
|
-
Visual Workflow Manager
|
|
96
|
-
</p>
|
|
94
|
+
<p class="flowdrop-text--tagline flowdrop-text--gray">Visual Workflow Manager</p>
|
|
97
95
|
</div>
|
|
98
96
|
</div>
|
|
99
97
|
</div>
|
|
@@ -119,40 +117,24 @@
|
|
|
119
117
|
{#each breadcrumbs as breadcrumb, index (index)}
|
|
120
118
|
<li class="flowdrop-navbar__breadcrumb-item">
|
|
121
119
|
{#if breadcrumb.href && index < breadcrumbs.length - 1}
|
|
122
|
-
<a
|
|
123
|
-
href={breadcrumb.href}
|
|
124
|
-
class="flowdrop-navbar__breadcrumb-link"
|
|
125
|
-
>
|
|
120
|
+
<a href={breadcrumb.href} class="flowdrop-navbar__breadcrumb-link">
|
|
126
121
|
{#if breadcrumb.icon}
|
|
127
|
-
<Icon
|
|
128
|
-
icon={breadcrumb.icon}
|
|
129
|
-
class="flowdrop-navbar__breadcrumb-icon"
|
|
130
|
-
/>
|
|
122
|
+
<Icon icon={breadcrumb.icon} class="flowdrop-navbar__breadcrumb-icon" />
|
|
131
123
|
{/if}
|
|
132
|
-
<span class="flowdrop-navbar__breadcrumb-text"
|
|
133
|
-
>{breadcrumb.label}</span
|
|
134
|
-
>
|
|
124
|
+
<span class="flowdrop-navbar__breadcrumb-text">{breadcrumb.label}</span>
|
|
135
125
|
</a>
|
|
136
126
|
{:else}
|
|
137
127
|
<span class="flowdrop-navbar__breadcrumb-current">
|
|
138
128
|
{#if breadcrumb.icon}
|
|
139
|
-
<Icon
|
|
140
|
-
icon={breadcrumb.icon}
|
|
141
|
-
class="flowdrop-navbar__breadcrumb-icon"
|
|
142
|
-
/>
|
|
129
|
+
<Icon icon={breadcrumb.icon} class="flowdrop-navbar__breadcrumb-icon" />
|
|
143
130
|
{/if}
|
|
144
|
-
<span class="flowdrop-navbar__breadcrumb-text"
|
|
145
|
-
>{breadcrumb.label}</span
|
|
146
|
-
>
|
|
131
|
+
<span class="flowdrop-navbar__breadcrumb-text">{breadcrumb.label}</span>
|
|
147
132
|
</span>
|
|
148
133
|
{/if}
|
|
149
134
|
</li>
|
|
150
135
|
{#if index < breadcrumbs.length - 1}
|
|
151
136
|
<li class="flowdrop-navbar__breadcrumb-separator">
|
|
152
|
-
<Icon
|
|
153
|
-
icon="mdi:chevron-right"
|
|
154
|
-
class="flowdrop-navbar__breadcrumb-chevron"
|
|
155
|
-
/>
|
|
137
|
+
<Icon icon="mdi:chevron-right" class="flowdrop-navbar__breadcrumb-chevron" />
|
|
156
138
|
</li>
|
|
157
139
|
{/if}
|
|
158
140
|
{/each}
|
|
@@ -176,11 +158,10 @@
|
|
|
176
158
|
{#each primaryActions as action (action.label)}
|
|
177
159
|
<a
|
|
178
160
|
href={action.href}
|
|
179
|
-
class="flowdrop-navbar__action flowdrop-navbar__action--{action.variant ||
|
|
180
|
-
'primary'}"
|
|
161
|
+
class="flowdrop-navbar__action flowdrop-navbar__action--{action.variant || 'primary'}"
|
|
181
162
|
onclick={action.onclick}
|
|
182
|
-
target={action.external ?
|
|
183
|
-
rel={action.external ?
|
|
163
|
+
target={action.external ? '_blank' : undefined}
|
|
164
|
+
rel={action.external ? 'noopener noreferrer' : undefined}
|
|
184
165
|
>
|
|
185
166
|
{#if action.icon}
|
|
186
167
|
<span class="flowdrop-navbar__action-icon">
|
|
@@ -201,17 +182,15 @@
|
|
|
201
182
|
class="flowdrop-navbar__primary-action flowdrop-navbar__action--{primaryAction.variant ||
|
|
202
183
|
'primary'}"
|
|
203
184
|
onclick={primaryAction.onclick}
|
|
204
|
-
target={primaryAction.external ?
|
|
205
|
-
rel={primaryAction.external ?
|
|
185
|
+
target={primaryAction.external ? '_blank' : undefined}
|
|
186
|
+
rel={primaryAction.external ? 'noopener noreferrer' : undefined}
|
|
206
187
|
>
|
|
207
188
|
{#if primaryAction.icon}
|
|
208
189
|
<span class="flowdrop-navbar__action-icon">
|
|
209
190
|
<Icon icon={primaryAction.icon} class="w-4 h-4" />
|
|
210
191
|
</span>
|
|
211
192
|
{/if}
|
|
212
|
-
<span class="flowdrop-navbar__action-label"
|
|
213
|
-
>{primaryAction.label}</span
|
|
214
|
-
>
|
|
193
|
+
<span class="flowdrop-navbar__action-label">{primaryAction.label}</span>
|
|
215
194
|
</a>
|
|
216
195
|
{/if}
|
|
217
196
|
|
|
@@ -237,8 +216,8 @@
|
|
|
237
216
|
action.onclick?.(e);
|
|
238
217
|
isDropdownOpen = false;
|
|
239
218
|
}}
|
|
240
|
-
target={action.external ?
|
|
241
|
-
rel={action.external ?
|
|
219
|
+
target={action.external ? '_blank' : undefined}
|
|
220
|
+
rel={action.external ? 'noopener noreferrer' : undefined}
|
|
242
221
|
>
|
|
243
222
|
{#if action.icon}
|
|
244
223
|
<Icon icon={action.icon} class="w-4 h-4" />
|
|
@@ -276,11 +255,11 @@
|
|
|
276
255
|
{@const settingsModalProps = {
|
|
277
256
|
...(settingsCategories !== undefined && { categories: settingsCategories }),
|
|
278
257
|
...(showSettingsSyncButton !== undefined && {
|
|
279
|
-
showSyncButton: showSettingsSyncButton
|
|
258
|
+
showSyncButton: showSettingsSyncButton
|
|
280
259
|
}),
|
|
281
260
|
...(showSettingsResetButton !== undefined && {
|
|
282
|
-
showResetButton: showSettingsResetButton
|
|
283
|
-
})
|
|
261
|
+
showResetButton: showSettingsResetButton
|
|
262
|
+
})
|
|
284
263
|
}}
|
|
285
264
|
<SettingsModal bind:open={isSettingsOpen} {...settingsModalProps} />
|
|
286
265
|
{/if}
|
|
@@ -546,7 +525,7 @@
|
|
|
546
525
|
color: var(--fd-foreground);
|
|
547
526
|
}
|
|
548
527
|
|
|
549
|
-
.flowdrop-navbar__dropdown-trigger[aria-expanded=
|
|
528
|
+
.flowdrop-navbar__dropdown-trigger[aria-expanded='true'] {
|
|
550
529
|
background-color: var(--fd-subtle);
|
|
551
530
|
color: var(--fd-foreground);
|
|
552
531
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { SettingsCategory } from
|
|
1
|
+
import type { SettingsCategory } from '../types/settings.js';
|
|
2
2
|
interface NavbarAction {
|
|
3
3
|
label: string;
|
|
4
4
|
href: string;
|
|
5
5
|
icon?: string;
|
|
6
|
-
variant?:
|
|
6
|
+
variant?: 'primary' | 'secondary' | 'outline';
|
|
7
7
|
onclick?: (event: Event) => void;
|
|
8
8
|
/** If true, opens link in new tab with proper security attributes */
|
|
9
9
|
external?: boolean;
|
|
@@ -5,18 +5,14 @@
|
|
|
5
5
|
-->
|
|
6
6
|
|
|
7
7
|
<script lang="ts">
|
|
8
|
-
import type {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
} from
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import {
|
|
16
|
-
import { getCategoryColorToken } from "../utils/colors.js";
|
|
17
|
-
import { getCategoryLabel } from "../stores/categoriesStore.svelte.js";
|
|
18
|
-
import { getUiSettings } from "../stores/settingsStore.svelte.js";
|
|
19
|
-
import { extractConfigDefaults } from "../utils/nodeIds.js";
|
|
8
|
+
import type { NodeMetadata, NodeCategory, WorkflowFormat } from '../types/index.js';
|
|
9
|
+
import LoadingSpinner from './LoadingSpinner.svelte';
|
|
10
|
+
import Icon from '@iconify/svelte';
|
|
11
|
+
import { getNodeIcon, getCategoryIcon } from '../utils/icons.js';
|
|
12
|
+
import { getCategoryColorToken } from '../utils/colors.js';
|
|
13
|
+
import { getCategoryLabel } from '../stores/categoriesStore.svelte.js';
|
|
14
|
+
import { getUiSettings } from '../stores/settingsStore.svelte.js';
|
|
15
|
+
import { extractConfigDefaults } from '../utils/nodeIds.js';
|
|
20
16
|
|
|
21
17
|
interface Props {
|
|
22
18
|
nodes: NodeMetadata[];
|
|
@@ -29,9 +25,9 @@
|
|
|
29
25
|
}
|
|
30
26
|
|
|
31
27
|
let props: Props = $props();
|
|
32
|
-
let searchInput = $state(
|
|
28
|
+
let searchInput = $state('');
|
|
33
29
|
// svelte-ignore state_referenced_locally — initial default, user selects interactively
|
|
34
|
-
let selectedCategory = $state(props.selectedCategory ||
|
|
30
|
+
let selectedCategory = $state(props.selectedCategory || 'all');
|
|
35
31
|
|
|
36
32
|
/**
|
|
37
33
|
* Check if a node is compatible with the active workflow format.
|
|
@@ -47,9 +43,7 @@
|
|
|
47
43
|
let isCollapsed = $derived(getUiSettings().sidebarCollapsed);
|
|
48
44
|
|
|
49
45
|
/** Nodes filtered by format compatibility */
|
|
50
|
-
let formatCompatibleNodes = $derived(
|
|
51
|
-
(props.nodes || []).filter(isNodeCompatibleWithFormat),
|
|
52
|
-
);
|
|
46
|
+
let formatCompatibleNodes = $derived((props.nodes || []).filter(isNodeCompatibleWithFormat));
|
|
53
47
|
|
|
54
48
|
let filteredNodes = $derived(getFilteredNodes());
|
|
55
49
|
let categories = $derived(getCategories());
|
|
@@ -59,7 +53,10 @@
|
|
|
59
53
|
const map = new Map<string, NodeMetadata[]>();
|
|
60
54
|
for (const node of filteredNodes) {
|
|
61
55
|
let list = map.get(node.category);
|
|
62
|
-
if (!list) {
|
|
56
|
+
if (!list) {
|
|
57
|
+
list = [];
|
|
58
|
+
map.set(node.category, list);
|
|
59
|
+
}
|
|
63
60
|
list.push(node);
|
|
64
61
|
}
|
|
65
62
|
return map;
|
|
@@ -92,7 +89,7 @@
|
|
|
92
89
|
let filtered = formatCompatibleNodes;
|
|
93
90
|
|
|
94
91
|
// Filter by category
|
|
95
|
-
if (selectedCategory !==
|
|
92
|
+
if (selectedCategory !== 'all') {
|
|
96
93
|
filtered = filtered.filter((node) => node.category === selectedCategory);
|
|
97
94
|
}
|
|
98
95
|
|
|
@@ -103,7 +100,7 @@
|
|
|
103
100
|
(node) =>
|
|
104
101
|
node.name.toLowerCase().includes(query) ||
|
|
105
102
|
node.description.toLowerCase().includes(query) ||
|
|
106
|
-
node.tags?.some((tag) => tag.toLowerCase().includes(query))
|
|
103
|
+
node.tags?.some((tag) => tag.toLowerCase().includes(query))
|
|
107
104
|
);
|
|
108
105
|
}
|
|
109
106
|
|
|
@@ -119,30 +116,26 @@
|
|
|
119
116
|
|
|
120
117
|
// Create a new node instance from the node type
|
|
121
118
|
const newNodeData = {
|
|
122
|
-
type:
|
|
119
|
+
type: 'node',
|
|
123
120
|
nodeType: nodeType.id,
|
|
124
121
|
nodeData: {
|
|
125
122
|
label: nodeType.name,
|
|
126
123
|
config: extractConfigDefaults(nodeType.configSchema),
|
|
127
|
-
metadata: nodeType
|
|
128
|
-
}
|
|
124
|
+
metadata: nodeType
|
|
125
|
+
}
|
|
129
126
|
};
|
|
130
127
|
|
|
131
128
|
const jsonData = JSON.stringify(newNodeData);
|
|
132
129
|
|
|
133
130
|
// Set the data that SvelteFlow will receive
|
|
134
|
-
event.dataTransfer.setData(
|
|
135
|
-
event.dataTransfer.setData(
|
|
136
|
-
event.dataTransfer.effectAllowed =
|
|
131
|
+
event.dataTransfer.setData('application/json', jsonData);
|
|
132
|
+
event.dataTransfer.setData('text/plain', nodeType.name);
|
|
133
|
+
event.dataTransfer.effectAllowed = 'copy';
|
|
137
134
|
|
|
138
135
|
// Set drag image
|
|
139
136
|
if (event.target) {
|
|
140
137
|
const rect = (event.target as HTMLElement).getBoundingClientRect();
|
|
141
|
-
event.dataTransfer.setDragImage(
|
|
142
|
-
event.target as HTMLElement,
|
|
143
|
-
rect.width / 2,
|
|
144
|
-
rect.height / 2,
|
|
145
|
-
);
|
|
138
|
+
event.dataTransfer.setDragImage(event.target as HTMLElement, rect.width / 2, rect.height / 2);
|
|
146
139
|
}
|
|
147
140
|
}
|
|
148
141
|
|
|
@@ -167,7 +160,6 @@
|
|
|
167
160
|
function getCategoryDisplayName(category: NodeCategory): string {
|
|
168
161
|
return getCategoryLabel(category);
|
|
169
162
|
}
|
|
170
|
-
|
|
171
163
|
</script>
|
|
172
164
|
|
|
173
165
|
<!-- Components Sidebar -->
|
|
@@ -190,10 +182,7 @@
|
|
|
190
182
|
oninput={handleSearchChange}
|
|
191
183
|
/>
|
|
192
184
|
</div>
|
|
193
|
-
<button
|
|
194
|
-
class="flowdrop-btn flowdrop-join__item"
|
|
195
|
-
aria-label="Search components"
|
|
196
|
-
>
|
|
185
|
+
<button class="flowdrop-btn flowdrop-join__item" aria-label="Search components">
|
|
197
186
|
<Icon icon="mdi:magnify" class="flowdrop-icon" />
|
|
198
187
|
</button>
|
|
199
188
|
</div>
|
|
@@ -230,9 +219,7 @@
|
|
|
230
219
|
</svg>
|
|
231
220
|
</div>
|
|
232
221
|
<h3 class="flowdrop-hero__title">No node types available</h3>
|
|
233
|
-
<p class="flowdrop-hero__description">
|
|
234
|
-
Node type definitions will appear here
|
|
235
|
-
</p>
|
|
222
|
+
<p class="flowdrop-hero__description">Node type definitions will appear here</p>
|
|
236
223
|
{/if}
|
|
237
224
|
</div>
|
|
238
225
|
</div>
|
|
@@ -262,9 +249,7 @@
|
|
|
262
249
|
</svg>
|
|
263
250
|
</div>
|
|
264
251
|
<h3 class="flowdrop-hero__title">No components found</h3>
|
|
265
|
-
<p class="flowdrop-hero__description">
|
|
266
|
-
Try adjusting your search
|
|
267
|
-
</p>
|
|
252
|
+
<p class="flowdrop-hero__description">Try adjusting your search</p>
|
|
268
253
|
{#if props.loading}
|
|
269
254
|
<div class="flowdrop-mb--4">
|
|
270
255
|
<LoadingSpinner size="sm" text="Loading components..." />
|
|
@@ -283,19 +268,13 @@
|
|
|
283
268
|
tabindex="0"
|
|
284
269
|
>
|
|
285
270
|
<div class="flowdrop-card__body flowdrop-p--1 flowdrop-py--1">
|
|
286
|
-
<div
|
|
287
|
-
class="flowdrop-flex flowdrop-gap--2 flowdrop-items--center"
|
|
288
|
-
>
|
|
271
|
+
<div class="flowdrop-flex flowdrop-gap--2 flowdrop-items--center">
|
|
289
272
|
<!-- Node Type Icon with Squircle Background -->
|
|
290
273
|
<span
|
|
291
274
|
class="flowdrop-node-icon"
|
|
292
|
-
style="--_icon-color: {getCategoryColorToken(
|
|
293
|
-
nodeType.category,
|
|
294
|
-
)}"
|
|
275
|
+
style="--_icon-color: {getCategoryColorToken(nodeType.category)}"
|
|
295
276
|
>
|
|
296
|
-
<Icon
|
|
297
|
-
icon={getNodeIcon(nodeType.icon, nodeType.category)}
|
|
298
|
-
/>
|
|
277
|
+
<Icon icon={getNodeIcon(nodeType.icon, nodeType.category)} />
|
|
299
278
|
</span>
|
|
300
279
|
|
|
301
280
|
<!-- Node Type Info - Icon and Title only -->
|
|
@@ -339,7 +318,7 @@
|
|
|
339
318
|
role="button"
|
|
340
319
|
tabindex="0"
|
|
341
320
|
onkeydown={(e) => {
|
|
342
|
-
if (e.key ===
|
|
321
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
343
322
|
e.preventDefault();
|
|
344
323
|
handleNodeClick(nodeType);
|
|
345
324
|
}
|
|
@@ -347,9 +326,7 @@
|
|
|
347
326
|
>
|
|
348
327
|
<span
|
|
349
328
|
class="fd-sidebar-flat-dot"
|
|
350
|
-
style="background: {getCategoryColorToken(
|
|
351
|
-
nodeType.category,
|
|
352
|
-
)}"
|
|
329
|
+
style="background: {getCategoryColorToken(nodeType.category)}"
|
|
353
330
|
></span>
|
|
354
331
|
<span class="fd-sidebar-flat-name">{nodeType.name}</span>
|
|
355
332
|
</div>
|
|
@@ -362,9 +339,7 @@
|
|
|
362
339
|
open={props.categoriesDefaultOpen || undefined}
|
|
363
340
|
>
|
|
364
341
|
<summary class="flowdrop-details__summary">
|
|
365
|
-
<div
|
|
366
|
-
class="flowdrop-flex flowdrop-gap--2 flowdrop-items--center"
|
|
367
|
-
>
|
|
342
|
+
<div class="flowdrop-flex flowdrop-gap--2 flowdrop-items--center">
|
|
368
343
|
<span
|
|
369
344
|
class="flowdrop-node-icon"
|
|
370
345
|
style="--_icon-color: {getCategoryColorToken(category)}"
|
|
@@ -388,31 +363,20 @@
|
|
|
388
363
|
role="button"
|
|
389
364
|
tabindex="0"
|
|
390
365
|
onkeydown={(e) => {
|
|
391
|
-
if (e.key ===
|
|
366
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
392
367
|
e.preventDefault();
|
|
393
368
|
handleNodeClick(nodeType);
|
|
394
369
|
}
|
|
395
370
|
}}
|
|
396
371
|
>
|
|
397
|
-
<div
|
|
398
|
-
class="flowdrop-
|
|
399
|
-
>
|
|
400
|
-
<div
|
|
401
|
-
class="flowdrop-flex flowdrop-gap--2 flowdrop-items--center"
|
|
402
|
-
>
|
|
372
|
+
<div class="flowdrop-card__body flowdrop-p--1 flowdrop-py--1">
|
|
373
|
+
<div class="flowdrop-flex flowdrop-gap--2 flowdrop-items--center">
|
|
403
374
|
<!-- Node Type Icon with Squircle Background -->
|
|
404
375
|
<span
|
|
405
376
|
class="flowdrop-node-icon"
|
|
406
|
-
style="--_icon-color: {getCategoryColorToken(
|
|
407
|
-
nodeType.category,
|
|
408
|
-
)}"
|
|
377
|
+
style="--_icon-color: {getCategoryColorToken(nodeType.category)}"
|
|
409
378
|
>
|
|
410
|
-
<Icon
|
|
411
|
-
icon={getNodeIcon(
|
|
412
|
-
nodeType.icon,
|
|
413
|
-
nodeType.category,
|
|
414
|
-
)}
|
|
415
|
-
/>
|
|
379
|
+
<Icon icon={getNodeIcon(nodeType.icon, nodeType.category)} />
|
|
416
380
|
</span>
|
|
417
381
|
|
|
418
382
|
<!-- Node Type Info - Icon and Title only -->
|
|
@@ -445,16 +409,12 @@
|
|
|
445
409
|
<div class="flowdrop-flex flowdrop-gap--4">
|
|
446
410
|
<div class="flowdrop-flex flowdrop-gap--4">
|
|
447
411
|
{#if props.loading && props.nodes?.length === 0}
|
|
448
|
-
<span class="flowdrop-text--xs flowdrop-text--gray"
|
|
449
|
-
>Loading components...</span
|
|
450
|
-
>
|
|
412
|
+
<span class="flowdrop-text--xs flowdrop-text--gray">Loading components...</span>
|
|
451
413
|
{:else}
|
|
452
414
|
<span class="flowdrop-text--xs flowdrop-text--gray"
|
|
453
415
|
>Total: {props.nodes?.length || 0} components</span
|
|
454
416
|
>
|
|
455
|
-
<span class="flowdrop-text--xs flowdrop-text--gray"
|
|
456
|
-
>Showing: {filteredNodes.length}</span
|
|
457
|
-
>
|
|
417
|
+
<span class="flowdrop-text--xs flowdrop-text--gray">Showing: {filteredNodes.length}</span>
|
|
458
418
|
{/if}
|
|
459
419
|
</div>
|
|
460
420
|
</div>
|
|
@@ -464,9 +424,7 @@
|
|
|
464
424
|
<style>
|
|
465
425
|
/* Components Sidebar - Always Visible */
|
|
466
426
|
.flowdrop-sidebar {
|
|
467
|
-
height: calc(
|
|
468
|
-
100vh - var(--fd-navbar-height)
|
|
469
|
-
); /* Account for navbar height */
|
|
427
|
+
height: calc(100vh - var(--fd-navbar-height)); /* Account for navbar height */
|
|
470
428
|
background-color: var(--fd-background);
|
|
471
429
|
border-right: 1px solid var(--fd-border);
|
|
472
430
|
display: flex;
|
|
@@ -597,11 +555,7 @@
|
|
|
597
555
|
width: 2rem;
|
|
598
556
|
height: 2rem;
|
|
599
557
|
border-radius: 0.5rem;
|
|
600
|
-
background: color-mix(
|
|
601
|
-
in srgb,
|
|
602
|
-
var(--_icon-color) var(--fd-node-icon-bg-opacity),
|
|
603
|
-
transparent
|
|
604
|
-
);
|
|
558
|
+
background: color-mix(in srgb, var(--_icon-color) var(--fd-node-icon-bg-opacity), transparent);
|
|
605
559
|
color: var(--fd-node-icon);
|
|
606
560
|
font-size: var(--fd-text-sm);
|
|
607
561
|
display: flex;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { NodeMetadata, NodeCategory, WorkflowFormat } from
|
|
1
|
+
import type { NodeMetadata, NodeCategory, WorkflowFormat } from '../types/index.js';
|
|
2
2
|
interface Props {
|
|
3
3
|
nodes: NodeMetadata[];
|
|
4
4
|
/** Whether node types are still being fetched. Default: false */
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<script module>
|
|
2
|
-
import { defineMeta } from
|
|
3
|
-
import NodeStatusOverlay from
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import NodeStatusOverlay from './NodeStatusOverlay.svelte';
|
|
4
4
|
|
|
5
5
|
const { Story } = defineMeta({
|
|
6
|
-
title:
|
|
7
|
-
tags: [
|
|
6
|
+
title: 'Editor/NodeStatusOverlay',
|
|
7
|
+
tags: ['autodocs'],
|
|
8
8
|
parameters: {
|
|
9
|
-
layout:
|
|
10
|
-
}
|
|
9
|
+
layout: 'centered'
|
|
10
|
+
}
|
|
11
11
|
});
|
|
12
12
|
</script>
|
|
13
13
|
|
|
@@ -17,16 +17,14 @@
|
|
|
17
17
|
>
|
|
18
18
|
<NodeStatusOverlay
|
|
19
19
|
executionInfo={{
|
|
20
|
-
status:
|
|
20
|
+
status: 'idle',
|
|
21
21
|
executionCount: 3,
|
|
22
22
|
isExecuting: false,
|
|
23
|
-
lastExecuted: new Date().toISOString()
|
|
23
|
+
lastExecuted: new Date().toISOString()
|
|
24
24
|
}}
|
|
25
25
|
showDetails
|
|
26
26
|
/>
|
|
27
|
-
<div
|
|
28
|
-
style="padding: 1rem; text-align: center; color: var(--fd-text, #374151);"
|
|
29
|
-
>
|
|
27
|
+
<div style="padding: 1rem; text-align: center; color: var(--fd-text, #374151);">
|
|
30
28
|
Node Content
|
|
31
29
|
</div>
|
|
32
30
|
</div>
|
|
@@ -38,14 +36,12 @@
|
|
|
38
36
|
>
|
|
39
37
|
<NodeStatusOverlay
|
|
40
38
|
executionInfo={{
|
|
41
|
-
status:
|
|
39
|
+
status: 'running',
|
|
42
40
|
executionCount: 1,
|
|
43
|
-
isExecuting: true
|
|
41
|
+
isExecuting: true
|
|
44
42
|
}}
|
|
45
43
|
/>
|
|
46
|
-
<div
|
|
47
|
-
style="padding: 1rem; text-align: center; color: var(--fd-text, #374151);"
|
|
48
|
-
>
|
|
44
|
+
<div style="padding: 1rem; text-align: center; color: var(--fd-text, #374151);">
|
|
49
45
|
Processing...
|
|
50
46
|
</div>
|
|
51
47
|
</div>
|
|
@@ -57,19 +53,15 @@
|
|
|
57
53
|
>
|
|
58
54
|
<NodeStatusOverlay
|
|
59
55
|
executionInfo={{
|
|
60
|
-
status:
|
|
56
|
+
status: 'completed',
|
|
61
57
|
executionCount: 5,
|
|
62
58
|
isExecuting: false,
|
|
63
59
|
lastExecuted: new Date().toISOString(),
|
|
64
|
-
lastExecutionDuration: 1250
|
|
60
|
+
lastExecutionDuration: 1250
|
|
65
61
|
}}
|
|
66
62
|
showDetails
|
|
67
63
|
/>
|
|
68
|
-
<div
|
|
69
|
-
style="padding: 1rem; text-align: center; color: var(--fd-text, #374151);"
|
|
70
|
-
>
|
|
71
|
-
Done!
|
|
72
|
-
</div>
|
|
64
|
+
<div style="padding: 1rem; text-align: center; color: var(--fd-text, #374151);">Done!</div>
|
|
73
65
|
</div>
|
|
74
66
|
</Story>
|
|
75
67
|
|
|
@@ -79,19 +71,15 @@
|
|
|
79
71
|
>
|
|
80
72
|
<NodeStatusOverlay
|
|
81
73
|
executionInfo={{
|
|
82
|
-
status:
|
|
74
|
+
status: 'failed',
|
|
83
75
|
executionCount: 2,
|
|
84
76
|
isExecuting: false,
|
|
85
|
-
lastError:
|
|
77
|
+
lastError: 'Connection timeout',
|
|
86
78
|
lastExecuted: new Date().toISOString(),
|
|
87
|
-
lastExecutionDuration: 30000
|
|
79
|
+
lastExecutionDuration: 30000
|
|
88
80
|
}}
|
|
89
81
|
showDetails
|
|
90
82
|
/>
|
|
91
|
-
<div
|
|
92
|
-
style="padding: 1rem; text-align: center; color: var(--fd-text, #374151);"
|
|
93
|
-
>
|
|
94
|
-
Error
|
|
95
|
-
</div>
|
|
83
|
+
<div style="padding: 1rem; text-align: center; color: var(--fd-text, #374151);">Error</div>
|
|
96
84
|
</div>
|
|
97
85
|
</Story>
|
|
@@ -11,7 +11,7 @@ declare const NodeStatusOverlay: $$__sveltets_2_IsomorphicComponent<{
|
|
|
11
11
|
}, {
|
|
12
12
|
[evt: string]: CustomEvent<any>;
|
|
13
13
|
}, {}, {}, string>;
|
|
14
|
-
import NodeStatusOverlay from
|
|
14
|
+
import NodeStatusOverlay from './NodeStatusOverlay.svelte';
|
|
15
15
|
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
16
16
|
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
17
17
|
$$bindings?: Bindings;
|