@flowdrop/flowdrop 1.0.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/LICENSE +21 -0
- package/README.md +252 -0
- package/dist/adapters/WorkflowAdapter.d.ts +167 -0
- package/dist/adapters/WorkflowAdapter.js +368 -0
- package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +96 -0
- package/dist/adapters/agentspec/AgentSpecAdapter.js +626 -0
- package/dist/adapters/agentspec/agentAdapter.d.ts +59 -0
- package/dist/adapters/agentspec/agentAdapter.js +91 -0
- package/dist/adapters/agentspec/autoLayout.d.ts +34 -0
- package/dist/adapters/agentspec/autoLayout.js +127 -0
- package/dist/adapters/agentspec/componentTypeDefaults.d.ts +73 -0
- package/dist/adapters/agentspec/componentTypeDefaults.js +238 -0
- package/dist/adapters/agentspec/defaultNodeTypes.d.ts +53 -0
- package/dist/adapters/agentspec/defaultNodeTypes.js +561 -0
- package/dist/adapters/agentspec/index.d.ts +37 -0
- package/dist/adapters/agentspec/index.js +39 -0
- package/dist/adapters/agentspec/validator.d.ts +34 -0
- package/dist/adapters/agentspec/validator.js +169 -0
- package/dist/api/enhanced-client.d.ts +183 -0
- package/dist/api/enhanced-client.js +430 -0
- package/dist/components/App.svelte +981 -0
- package/dist/components/App.svelte.d.ts +54 -0
- package/dist/components/CanvasBanner.stories.svelte +29 -0
- package/dist/components/CanvasBanner.stories.svelte.d.ts +27 -0
- package/dist/components/CanvasBanner.svelte +57 -0
- package/dist/components/CanvasBanner.svelte.d.ts +8 -0
- package/dist/components/ConfigForm.svelte +1138 -0
- package/dist/components/ConfigForm.svelte.d.ts +44 -0
- package/dist/components/ConfigModal.svelte +188 -0
- package/dist/components/ConfigModal.svelte.d.ts +13 -0
- package/dist/components/ConfigPanel.stories.svelte +47 -0
- package/dist/components/ConfigPanel.stories.svelte.d.ts +27 -0
- package/dist/components/ConfigPanel.svelte +182 -0
- package/dist/components/ConfigPanel.svelte.d.ts +32 -0
- package/dist/components/ConnectionLine.svelte +32 -0
- package/dist/components/ConnectionLine.svelte.d.ts +3 -0
- package/dist/components/EdgeRefresher.svelte +41 -0
- package/dist/components/EdgeRefresher.svelte.d.ts +9 -0
- package/dist/components/FlowDropZone.svelte +83 -0
- package/dist/components/FlowDropZone.svelte.d.ts +13 -0
- package/dist/components/LoadingSpinner.stories.svelte +30 -0
- package/dist/components/LoadingSpinner.stories.svelte.d.ts +27 -0
- package/dist/components/LoadingSpinner.svelte +36 -0
- package/dist/components/LoadingSpinner.svelte.d.ts +8 -0
- package/dist/components/Logo.stories.svelte +22 -0
- package/dist/components/Logo.stories.svelte.d.ts +27 -0
- package/dist/components/Logo.svelte +102 -0
- package/dist/components/Logo.svelte.d.ts +26 -0
- package/dist/components/LogsSidebar.svelte +563 -0
- package/dist/components/LogsSidebar.svelte.d.ts +17 -0
- package/dist/components/MarkdownDisplay.stories.svelte +36 -0
- package/dist/components/MarkdownDisplay.stories.svelte.d.ts +27 -0
- package/dist/components/MarkdownDisplay.svelte +29 -0
- package/dist/components/MarkdownDisplay.svelte.d.ts +7 -0
- package/dist/components/Navbar.stories.svelte +53 -0
- package/dist/components/Navbar.stories.svelte.d.ts +27 -0
- package/dist/components/Navbar.svelte +726 -0
- package/dist/components/Navbar.svelte.d.ts +29 -0
- package/dist/components/NodeSidebar.svelte +762 -0
- package/dist/components/NodeSidebar.svelte.d.ts +9 -0
- package/dist/components/NodeStatusOverlay.stories.svelte +85 -0
- package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +27 -0
- package/dist/components/NodeStatusOverlay.svelte +327 -0
- package/dist/components/NodeStatusOverlay.svelte.d.ts +11 -0
- package/dist/components/PipelineStatus.svelte +314 -0
- package/dist/components/PipelineStatus.svelte.d.ts +20 -0
- package/dist/components/PortCoordinateTracker.svelte +58 -0
- package/dist/components/PortCoordinateTracker.svelte.d.ts +12 -0
- package/dist/components/ReadOnlyDetails.svelte +170 -0
- package/dist/components/ReadOnlyDetails.svelte.d.ts +25 -0
- package/dist/components/SchemaForm.stories.svelte +116 -0
- package/dist/components/SchemaForm.stories.svelte.d.ts +27 -0
- package/dist/components/SchemaForm.svelte +536 -0
- package/dist/components/SchemaForm.svelte.d.ts +83 -0
- package/dist/components/SettingsModal.svelte +279 -0
- package/dist/components/SettingsModal.svelte.d.ts +23 -0
- package/dist/components/SettingsPanel.svelte +638 -0
- package/dist/components/SettingsPanel.svelte.d.ts +21 -0
- package/dist/components/StatusIcon.stories.svelte +60 -0
- package/dist/components/StatusIcon.stories.svelte.d.ts +27 -0
- package/dist/components/StatusIcon.svelte +119 -0
- package/dist/components/StatusIcon.svelte.d.ts +10 -0
- package/dist/components/StatusLabel.stories.svelte +17 -0
- package/dist/components/StatusLabel.stories.svelte.d.ts +27 -0
- package/dist/components/StatusLabel.svelte +33 -0
- package/dist/components/StatusLabel.svelte.d.ts +7 -0
- package/dist/components/ThemeToggle.stories.svelte +25 -0
- package/dist/components/ThemeToggle.stories.svelte.d.ts +27 -0
- package/dist/components/ThemeToggle.svelte +185 -0
- package/dist/components/ThemeToggle.svelte.d.ts +14 -0
- package/dist/components/UniversalNode.svelte +155 -0
- package/dist/components/UniversalNode.svelte.d.ts +15 -0
- package/dist/components/WorkflowEditor.svelte +1035 -0
- package/dist/components/WorkflowEditor.svelte.d.ts +23 -0
- package/dist/components/form/FormArray.svelte +1049 -0
- package/dist/components/form/FormArray.svelte.d.ts +22 -0
- package/dist/components/form/FormAutocomplete.svelte +1009 -0
- package/dist/components/form/FormAutocomplete.svelte.d.ts +25 -0
- package/dist/components/form/FormCheckboxGroup.stories.svelte +28 -0
- package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormCheckboxGroup.svelte +155 -0
- package/dist/components/form/FormCheckboxGroup.svelte.d.ts +17 -0
- package/dist/components/form/FormCodeEditor.svelte +458 -0
- package/dist/components/form/FormCodeEditor.svelte.d.ts +25 -0
- package/dist/components/form/FormField.svelte +417 -0
- package/dist/components/form/FormField.svelte.d.ts +29 -0
- package/dist/components/form/FormFieldLight.svelte +425 -0
- package/dist/components/form/FormFieldLight.svelte.d.ts +18 -0
- package/dist/components/form/FormFieldWrapper.stories.svelte +53 -0
- package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormFieldWrapper.svelte +125 -0
- package/dist/components/form/FormFieldWrapper.svelte.d.ts +18 -0
- package/dist/components/form/FormFieldset.svelte +142 -0
- package/dist/components/form/FormFieldset.svelte.d.ts +11 -0
- package/dist/components/form/FormMarkdownEditor.svelte +752 -0
- package/dist/components/form/FormMarkdownEditor.svelte.d.ts +33 -0
- package/dist/components/form/FormNumberField.stories.svelte +36 -0
- package/dist/components/form/FormNumberField.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormNumberField.svelte +112 -0
- package/dist/components/form/FormNumberField.svelte.d.ts +25 -0
- package/dist/components/form/FormRangeField.stories.svelte +31 -0
- package/dist/components/form/FormRangeField.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormRangeField.svelte +246 -0
- package/dist/components/form/FormRangeField.svelte.d.ts +23 -0
- package/dist/components/form/FormSelect.stories.svelte +50 -0
- package/dist/components/form/FormSelect.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormSelect.svelte +129 -0
- package/dist/components/form/FormSelect.svelte.d.ts +20 -0
- package/dist/components/form/FormTemplateEditor.svelte +825 -0
- package/dist/components/form/FormTemplateEditor.svelte.d.ts +41 -0
- package/dist/components/form/FormTextField.stories.svelte +30 -0
- package/dist/components/form/FormTextField.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormTextField.svelte +91 -0
- package/dist/components/form/FormTextField.svelte.d.ts +19 -0
- package/dist/components/form/FormTextarea.stories.svelte +34 -0
- package/dist/components/form/FormTextarea.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormTextarea.svelte +97 -0
- package/dist/components/form/FormTextarea.svelte.d.ts +21 -0
- package/dist/components/form/FormToggle.stories.svelte +30 -0
- package/dist/components/form/FormToggle.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormToggle.svelte +126 -0
- package/dist/components/form/FormToggle.svelte.d.ts +19 -0
- package/dist/components/form/FormUISchemaRenderer.svelte +136 -0
- package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +32 -0
- package/dist/components/form/index.d.ts +50 -0
- package/dist/components/form/index.js +54 -0
- package/dist/components/form/templateAutocomplete.d.ts +29 -0
- package/dist/components/form/templateAutocomplete.js +254 -0
- package/dist/components/form/types.d.ts +485 -0
- package/dist/components/form/types.js +73 -0
- package/dist/components/interrupt/ChoicePrompt.stories.svelte +52 -0
- package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ChoicePrompt.svelte +401 -0
- package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +23 -0
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +71 -0
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ConfirmationPrompt.svelte +292 -0
- package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +25 -0
- package/dist/components/interrupt/FormPrompt.svelte +236 -0
- package/dist/components/interrupt/FormPrompt.svelte.d.ts +23 -0
- package/dist/components/interrupt/InterruptBubble.svelte +601 -0
- package/dist/components/interrupt/InterruptBubble.svelte.d.ts +16 -0
- package/dist/components/interrupt/ReviewPrompt.stories.svelte +67 -0
- package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ReviewPrompt.svelte +861 -0
- package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +23 -0
- package/dist/components/interrupt/TextInputPrompt.stories.svelte +47 -0
- package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/TextInputPrompt.svelte +346 -0
- package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +23 -0
- package/dist/components/interrupt/index.d.ts +13 -0
- package/dist/components/interrupt/index.js +15 -0
- package/dist/components/layouts/MainLayout.svelte +718 -0
- package/dist/components/layouts/MainLayout.svelte.d.ts +62 -0
- package/dist/components/nodes/GatewayNode.stories.svelte +108 -0
- package/dist/components/nodes/GatewayNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/GatewayNode.svelte +591 -0
- package/dist/components/nodes/GatewayNode.svelte.d.ts +15 -0
- package/dist/components/nodes/IdeaNode.stories.svelte +52 -0
- package/dist/components/nodes/IdeaNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/IdeaNode.svelte +455 -0
- package/dist/components/nodes/IdeaNode.svelte.d.ts +24 -0
- package/dist/components/nodes/NotesNode.stories.svelte +76 -0
- package/dist/components/nodes/NotesNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/NotesNode.svelte +378 -0
- package/dist/components/nodes/NotesNode.svelte.d.ts +24 -0
- package/dist/components/nodes/SimpleNode.stories.svelte +159 -0
- package/dist/components/nodes/SimpleNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/SimpleNode.svelte +451 -0
- package/dist/components/nodes/SimpleNode.svelte.d.ts +25 -0
- package/dist/components/nodes/SquareNode.stories.svelte +82 -0
- package/dist/components/nodes/SquareNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/SquareNode.svelte +407 -0
- package/dist/components/nodes/SquareNode.svelte.d.ts +25 -0
- package/dist/components/nodes/TerminalNode.stories.svelte +25 -0
- package/dist/components/nodes/TerminalNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/TerminalNode.svelte +690 -0
- package/dist/components/nodes/TerminalNode.svelte.d.ts +25 -0
- package/dist/components/nodes/ToolNode.stories.svelte +189 -0
- package/dist/components/nodes/ToolNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/ToolNode.svelte +471 -0
- package/dist/components/nodes/ToolNode.svelte.d.ts +36 -0
- package/dist/components/nodes/WorkflowNode.stories.svelte +55 -0
- package/dist/components/nodes/WorkflowNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/WorkflowNode.svelte +571 -0
- package/dist/components/nodes/WorkflowNode.svelte.d.ts +15 -0
- package/dist/components/playground/ChatPanel.svelte +905 -0
- package/dist/components/playground/ChatPanel.svelte.d.ts +46 -0
- package/dist/components/playground/ExecutionLogs.svelte +488 -0
- package/dist/components/playground/ExecutionLogs.svelte.d.ts +14 -0
- package/dist/components/playground/InputCollector.svelte +444 -0
- package/dist/components/playground/InputCollector.svelte.d.ts +16 -0
- package/dist/components/playground/MessageBubble.stories.svelte +62 -0
- package/dist/components/playground/MessageBubble.stories.svelte.d.ts +27 -0
- package/dist/components/playground/MessageBubble.svelte +633 -0
- package/dist/components/playground/MessageBubble.svelte.d.ts +24 -0
- package/dist/components/playground/Playground.svelte +1075 -0
- package/dist/components/playground/Playground.svelte.d.ts +25 -0
- package/dist/components/playground/PlaygroundModal.svelte +220 -0
- package/dist/components/playground/PlaygroundModal.svelte.d.ts +25 -0
- package/dist/components/playground/SessionManager.svelte +538 -0
- package/dist/components/playground/SessionManager.svelte.d.ts +20 -0
- package/dist/config/agentSpecEndpoints.d.ts +70 -0
- package/dist/config/agentSpecEndpoints.js +65 -0
- package/dist/config/constants.d.ts +43 -0
- package/dist/config/constants.js +31 -0
- package/dist/config/defaultCategories.d.ts +7 -0
- package/dist/config/defaultCategories.js +126 -0
- package/dist/config/defaultPortConfig.d.ts +6 -0
- package/dist/config/defaultPortConfig.js +201 -0
- package/dist/config/endpoints.d.ts +160 -0
- package/dist/config/endpoints.js +146 -0
- package/dist/config/runtimeConfig.d.ts +47 -0
- package/dist/config/runtimeConfig.js +80 -0
- package/dist/core/index.d.ts +75 -0
- package/dist/core/index.js +92 -0
- package/dist/display/index.d.ts +29 -0
- package/dist/display/index.js +36 -0
- package/dist/editor/index.d.ts +95 -0
- package/dist/editor/index.js +138 -0
- package/dist/form/code.d.ts +101 -0
- package/dist/form/code.js +168 -0
- package/dist/form/fieldRegistry.d.ts +169 -0
- package/dist/form/fieldRegistry.js +152 -0
- package/dist/form/full.d.ts +56 -0
- package/dist/form/full.js +80 -0
- package/dist/form/index.d.ts +77 -0
- package/dist/form/index.js +91 -0
- package/dist/form/markdown.d.ts +69 -0
- package/dist/form/markdown.js +103 -0
- package/dist/helpers/nodeLayoutHelper.d.ts +14 -0
- package/dist/helpers/nodeLayoutHelper.js +19 -0
- package/dist/helpers/proximityConnect.d.ts +94 -0
- package/dist/helpers/proximityConnect.js +314 -0
- package/dist/helpers/workflowEditorHelper.d.ts +183 -0
- package/dist/helpers/workflowEditorHelper.js +595 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.js +64 -0
- package/dist/mocks/app-environment.d.ts +8 -0
- package/dist/mocks/app-environment.js +16 -0
- package/dist/mocks/app-forms.d.ts +2 -0
- package/dist/mocks/app-forms.js +22 -0
- package/dist/mocks/app-navigation.d.ts +5 -0
- package/dist/mocks/app-navigation.js +36 -0
- package/dist/mocks/app-stores.d.ts +14 -0
- package/dist/mocks/app-stores.js +26 -0
- package/dist/playground/index.d.ts +131 -0
- package/dist/playground/index.js +172 -0
- package/dist/playground/mount.d.ts +203 -0
- package/dist/playground/mount.js +235 -0
- package/dist/registry/BaseRegistry.d.ts +92 -0
- package/dist/registry/BaseRegistry.js +124 -0
- package/dist/registry/builtinFormats.d.ts +23 -0
- package/dist/registry/builtinFormats.js +70 -0
- package/dist/registry/builtinNodes.d.ts +77 -0
- package/dist/registry/builtinNodes.js +211 -0
- package/dist/registry/index.d.ts +8 -0
- package/dist/registry/index.js +12 -0
- package/dist/registry/nodeComponentRegistry.d.ts +276 -0
- package/dist/registry/nodeComponentRegistry.js +262 -0
- package/dist/registry/plugin.d.ts +215 -0
- package/dist/registry/plugin.js +249 -0
- package/dist/registry/workflowFormatRegistry.d.ts +122 -0
- package/dist/registry/workflowFormatRegistry.js +96 -0
- package/dist/schema/index.d.ts +23 -0
- package/dist/schema/index.js +23 -0
- package/dist/schemas/v1/workflow.schema.json +1078 -0
- package/dist/services/agentSpecExecutionService.d.ts +106 -0
- package/dist/services/agentSpecExecutionService.js +334 -0
- package/dist/services/api.d.ts +115 -0
- package/dist/services/api.js +214 -0
- package/dist/services/apiVariableService.d.ts +114 -0
- package/dist/services/apiVariableService.js +338 -0
- package/dist/services/autoSaveService.d.ts +112 -0
- package/dist/services/autoSaveService.js +227 -0
- package/dist/services/categoriesApi.d.ts +14 -0
- package/dist/services/categoriesApi.js +49 -0
- package/dist/services/draftStorage.d.ts +171 -0
- package/dist/services/draftStorage.js +299 -0
- package/dist/services/dynamicSchemaService.d.ts +108 -0
- package/dist/services/dynamicSchemaService.js +444 -0
- package/dist/services/globalSave.d.ts +69 -0
- package/dist/services/globalSave.js +248 -0
- package/dist/services/historyService.d.ts +208 -0
- package/dist/services/historyService.js +321 -0
- package/dist/services/interruptService.d.ts +133 -0
- package/dist/services/interruptService.js +280 -0
- package/dist/services/nodeExecutionService.d.ts +63 -0
- package/dist/services/nodeExecutionService.js +266 -0
- package/dist/services/playgroundService.d.ts +130 -0
- package/dist/services/playgroundService.js +321 -0
- package/dist/services/portConfigApi.d.ts +14 -0
- package/dist/services/portConfigApi.js +54 -0
- package/dist/services/settingsService.d.ts +92 -0
- package/dist/services/settingsService.js +196 -0
- package/dist/services/toastService.d.ts +156 -0
- package/dist/services/toastService.js +265 -0
- package/dist/services/variableService.d.ts +141 -0
- package/dist/services/variableService.js +463 -0
- package/dist/services/workflowStorage.d.ts +37 -0
- package/dist/services/workflowStorage.js +116 -0
- package/dist/settings/index.d.ts +25 -0
- package/dist/settings/index.js +33 -0
- package/dist/stores/categoriesStore.svelte.d.ts +32 -0
- package/dist/stores/categoriesStore.svelte.js +77 -0
- package/dist/stores/editorStateMachine.svelte.d.ts +42 -0
- package/dist/stores/editorStateMachine.svelte.js +132 -0
- package/dist/stores/historyStore.svelte.d.ts +136 -0
- package/dist/stores/historyStore.svelte.js +207 -0
- package/dist/stores/interruptStore.svelte.d.ts +179 -0
- package/dist/stores/interruptStore.svelte.js +346 -0
- package/dist/stores/playgroundStore.svelte.d.ts +230 -0
- package/dist/stores/playgroundStore.svelte.js +515 -0
- package/dist/stores/portCoordinateStore.svelte.d.ts +66 -0
- package/dist/stores/portCoordinateStore.svelte.js +186 -0
- package/dist/stores/settingsStore.svelte.d.ts +158 -0
- package/dist/stores/settingsStore.svelte.js +544 -0
- package/dist/stores/workflowStore.svelte.d.ts +260 -0
- package/dist/stores/workflowStore.svelte.js +649 -0
- package/dist/stories/CanvasDecorator.svelte +49 -0
- package/dist/stories/CanvasDecorator.svelte.d.ts +8 -0
- package/dist/stories/NodeDecorator.svelte +73 -0
- package/dist/stories/NodeDecorator.svelte.d.ts +8 -0
- package/dist/stories/utils.d.ts +93 -0
- package/dist/stories/utils.js +122 -0
- package/dist/styles/base.css +1300 -0
- package/dist/styles/toast.css +35 -0
- package/dist/styles/tokens.css +475 -0
- package/dist/svelte-app.d.ts +150 -0
- package/dist/svelte-app.js +295 -0
- package/dist/types/agentspec.d.ts +318 -0
- package/dist/types/agentspec.js +48 -0
- package/dist/types/auth.d.ts +263 -0
- package/dist/types/auth.js +229 -0
- package/dist/types/config.d.ts +151 -0
- package/dist/types/config.js +7 -0
- package/dist/types/events.d.ts +190 -0
- package/dist/types/events.js +30 -0
- package/dist/types/index.d.ts +1234 -0
- package/dist/types/index.js +27 -0
- package/dist/types/interrupt.d.ts +390 -0
- package/dist/types/interrupt.js +145 -0
- package/dist/types/interruptState.d.ts +211 -0
- package/dist/types/interruptState.js +308 -0
- package/dist/types/playground.d.ts +351 -0
- package/dist/types/playground.js +95 -0
- package/dist/types/settings.d.ts +189 -0
- package/dist/types/settings.js +97 -0
- package/dist/types/uischema.d.ts +144 -0
- package/dist/types/uischema.js +51 -0
- package/dist/utils/colors.d.ts +288 -0
- package/dist/utils/colors.js +548 -0
- package/dist/utils/config.d.ts +37 -0
- package/dist/utils/config.js +226 -0
- package/dist/utils/connections.d.ts +125 -0
- package/dist/utils/connections.js +414 -0
- package/dist/utils/errors.d.ts +28 -0
- package/dist/utils/errors.js +44 -0
- package/dist/utils/fetchWithAuth.d.ts +25 -0
- package/dist/utils/fetchWithAuth.js +34 -0
- package/dist/utils/handleIds.d.ts +35 -0
- package/dist/utils/handleIds.js +58 -0
- package/dist/utils/handlePositioning.d.ts +31 -0
- package/dist/utils/handlePositioning.js +35 -0
- package/dist/utils/icons.d.ts +106 -0
- package/dist/utils/icons.js +157 -0
- package/dist/utils/logger.d.ts +47 -0
- package/dist/utils/logger.js +72 -0
- package/dist/utils/nodeStatus.d.ts +53 -0
- package/dist/utils/nodeStatus.js +183 -0
- package/dist/utils/nodeTypes.d.ts +117 -0
- package/dist/utils/nodeTypes.js +244 -0
- package/dist/utils/nodeWrapper.d.ts +39 -0
- package/dist/utils/nodeWrapper.js +62 -0
- package/dist/utils/performanceUtils.d.ts +30 -0
- package/dist/utils/performanceUtils.js +108 -0
- package/dist/utils/sanitize.d.ts +19 -0
- package/dist/utils/sanitize.js +31 -0
- package/dist/utils/uischema.d.ts +52 -0
- package/dist/utils/uischema.js +88 -0
- package/dist/utils/validation.d.ts +29 -0
- package/dist/utils/validation.js +39 -0
- package/package.json +292 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
/** Field identifier */
|
|
3
|
+
id: string;
|
|
4
|
+
/** Current value - can be string (raw JSON) or object */
|
|
5
|
+
value: unknown;
|
|
6
|
+
/** Placeholder text shown when empty */
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
/** Whether the field is required */
|
|
9
|
+
required?: boolean;
|
|
10
|
+
/** Whether to use dark theme */
|
|
11
|
+
darkTheme?: boolean;
|
|
12
|
+
/** Editor height in pixels or CSS value */
|
|
13
|
+
height?: string;
|
|
14
|
+
/** Whether to auto-format JSON on blur */
|
|
15
|
+
autoFormat?: boolean;
|
|
16
|
+
/** Whether the field is disabled (read-only) */
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
/** ARIA description ID */
|
|
19
|
+
ariaDescribedBy?: string;
|
|
20
|
+
/** Callback when value changes */
|
|
21
|
+
onChange: (value: unknown) => void;
|
|
22
|
+
}
|
|
23
|
+
declare const FormCodeEditor: import("svelte").Component<Props, {}, "">;
|
|
24
|
+
type FormCodeEditor = ReturnType<typeof FormCodeEditor>;
|
|
25
|
+
export default FormCodeEditor;
|
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
FormField Component
|
|
3
|
+
Factory component that renders the appropriate field based on schema type
|
|
4
|
+
|
|
5
|
+
Features:
|
|
6
|
+
- Automatically selects the correct field component based on schema
|
|
7
|
+
- Wraps fields with FormFieldWrapper for consistent layout
|
|
8
|
+
- Supports all current field types (string, number, boolean, checkbox group, range, json, markdown, template, autocomplete)
|
|
9
|
+
- Uses standard JSON Schema patterns (enum, oneOf) for select fields
|
|
10
|
+
- Extensible architecture for future complex types (array, object)
|
|
11
|
+
|
|
12
|
+
Type Resolution Order:
|
|
13
|
+
1. format: 'hidden' -> skip rendering (return nothing)
|
|
14
|
+
2. format: 'autocomplete' with autocomplete.url -> FormAutocomplete
|
|
15
|
+
3. format: 'json' or 'code' -> FormCodeEditor (CodeMirror JSON editor)
|
|
16
|
+
4. format: 'markdown' -> FormMarkdownEditor (SimpleMDE Markdown editor)
|
|
17
|
+
5. format: 'template' -> FormTemplateEditor (CodeMirror with Twig/Liquid syntax)
|
|
18
|
+
6. enum with multiple: true -> FormCheckboxGroup
|
|
19
|
+
7. enum -> FormSelect (simple values without labels)
|
|
20
|
+
8. oneOf with const/title (labeled options) -> FormSelect
|
|
21
|
+
9. format: 'multiline' -> FormTextarea
|
|
22
|
+
10. format: 'range' (number/integer) -> FormRangeField
|
|
23
|
+
11. type: 'string' -> FormTextField
|
|
24
|
+
12. type: 'number' or 'integer' -> FormNumberField
|
|
25
|
+
13. type: 'boolean' -> FormToggle
|
|
26
|
+
14. type: 'object' (without format) -> FormCodeEditor (for JSON objects)
|
|
27
|
+
15. fallback -> FormTextField
|
|
28
|
+
-->
|
|
29
|
+
|
|
30
|
+
<script lang="ts">
|
|
31
|
+
import FormFieldWrapper from './FormFieldWrapper.svelte';
|
|
32
|
+
import FormTextField from './FormTextField.svelte';
|
|
33
|
+
import FormTextarea from './FormTextarea.svelte';
|
|
34
|
+
import FormNumberField from './FormNumberField.svelte';
|
|
35
|
+
import FormRangeField from './FormRangeField.svelte';
|
|
36
|
+
import FormToggle from './FormToggle.svelte';
|
|
37
|
+
import FormSelect from './FormSelect.svelte';
|
|
38
|
+
import FormCheckboxGroup from './FormCheckboxGroup.svelte';
|
|
39
|
+
import FormArray from './FormArray.svelte';
|
|
40
|
+
import FormCodeEditor from './FormCodeEditor.svelte';
|
|
41
|
+
import FormMarkdownEditor from './FormMarkdownEditor.svelte';
|
|
42
|
+
import FormTemplateEditor from './FormTemplateEditor.svelte';
|
|
43
|
+
import FormAutocomplete from './FormAutocomplete.svelte';
|
|
44
|
+
import type { FieldSchema } from './types.js';
|
|
45
|
+
import { getSchemaOptions } from './types.js';
|
|
46
|
+
import type { WorkflowNode, WorkflowEdge, AuthProvider } from '../../types/index.js';
|
|
47
|
+
import { getResolvedTheme } from '../../stores/settingsStore.svelte.js';
|
|
48
|
+
|
|
49
|
+
interface Props {
|
|
50
|
+
/** Unique key/id for the field */
|
|
51
|
+
fieldKey: string;
|
|
52
|
+
/** Field schema definition */
|
|
53
|
+
schema: FieldSchema;
|
|
54
|
+
/** Current field value */
|
|
55
|
+
value: unknown;
|
|
56
|
+
/** Whether the field is required */
|
|
57
|
+
required?: boolean;
|
|
58
|
+
/** Animation delay index for staggered animations */
|
|
59
|
+
animationIndex?: number;
|
|
60
|
+
/** Callback when the field value changes */
|
|
61
|
+
onChange: (value: unknown) => void;
|
|
62
|
+
/** Current workflow node (optional, used for template variable API mode) */
|
|
63
|
+
node?: WorkflowNode;
|
|
64
|
+
/** All workflow nodes (optional, used for port-derived variables) */
|
|
65
|
+
nodes?: WorkflowNode[];
|
|
66
|
+
/** All workflow edges (optional, used for port-derived variables) */
|
|
67
|
+
edges?: WorkflowEdge[];
|
|
68
|
+
/** Workflow ID (optional, used for template variable API mode) */
|
|
69
|
+
workflowId?: string;
|
|
70
|
+
/** Auth provider (optional, used for API requests) */
|
|
71
|
+
authProvider?: AuthProvider;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
let {
|
|
75
|
+
fieldKey,
|
|
76
|
+
schema,
|
|
77
|
+
value,
|
|
78
|
+
required = false,
|
|
79
|
+
animationIndex = 0,
|
|
80
|
+
onChange,
|
|
81
|
+
node,
|
|
82
|
+
nodes,
|
|
83
|
+
edges,
|
|
84
|
+
workflowId,
|
|
85
|
+
authProvider
|
|
86
|
+
}: Props = $props();
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* When schema.readOnly is true, disable all inputs (no editing).
|
|
90
|
+
*/
|
|
91
|
+
const isReadOnly = $derived(schema.readOnly === true);
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Computed description ID for ARIA association
|
|
95
|
+
*/
|
|
96
|
+
const descriptionId = $derived(
|
|
97
|
+
schema.description && schema.title ? `${fieldKey}-description` : undefined
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Animation delay based on index
|
|
102
|
+
*/
|
|
103
|
+
const animationDelay = $derived(animationIndex * 30);
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Field label - prefer title, fall back to description, then key
|
|
107
|
+
*/
|
|
108
|
+
const fieldLabel = $derived(String(schema.title ?? schema.description ?? fieldKey));
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Determine the field type to render
|
|
112
|
+
*/
|
|
113
|
+
const fieldType = $derived.by(() => {
|
|
114
|
+
// Hidden fields should not be rendered
|
|
115
|
+
if (schema.format === 'hidden') {
|
|
116
|
+
return 'hidden';
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Autocomplete field for format: "autocomplete" with autocomplete.url
|
|
120
|
+
if (schema.format === 'autocomplete' && schema.autocomplete?.url) {
|
|
121
|
+
return 'autocomplete';
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// JSON/code editor for format: "json" or "code"
|
|
125
|
+
if (schema.format === 'json' || schema.format === 'code') {
|
|
126
|
+
return 'code-editor';
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Markdown editor for format: "markdown"
|
|
130
|
+
if (schema.format === 'markdown') {
|
|
131
|
+
return 'markdown-editor';
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Template editor for format: "template" (Twig/Liquid syntax)
|
|
135
|
+
if (schema.format === 'template') {
|
|
136
|
+
return 'template-editor';
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// Enum with multiple selection -> checkbox group
|
|
140
|
+
if (schema.enum && schema.multiple) {
|
|
141
|
+
return 'checkbox-group';
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// Enum with single selection -> select
|
|
145
|
+
if (schema.enum) {
|
|
146
|
+
return 'select-enum';
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// oneOf with labeled options (standard JSON Schema) -> select
|
|
150
|
+
// Must be checked before basic type checks since oneOf schemas often have type: 'string'
|
|
151
|
+
if (schema.oneOf && schema.oneOf.length > 0) {
|
|
152
|
+
return 'select-options';
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// Multiline string -> textarea
|
|
156
|
+
if (schema.type === 'string' && schema.format === 'multiline') {
|
|
157
|
+
return 'textarea';
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Range slider for number/integer with format: "range"
|
|
161
|
+
if ((schema.type === 'number' || schema.type === 'integer') && schema.format === 'range') {
|
|
162
|
+
return 'range';
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// String -> text field
|
|
166
|
+
if (schema.type === 'string') {
|
|
167
|
+
return 'text';
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// Number or integer -> number field
|
|
171
|
+
if (schema.type === 'number' || schema.type === 'integer') {
|
|
172
|
+
return 'number';
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Boolean -> toggle
|
|
176
|
+
if (schema.type === 'boolean') {
|
|
177
|
+
return 'toggle';
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// Future: Array type support
|
|
181
|
+
if (schema.type === 'array') {
|
|
182
|
+
return 'array';
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Object type without specific format -> CodeMirror JSON editor
|
|
186
|
+
if (schema.type === 'object') {
|
|
187
|
+
return 'code-editor';
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// Fallback to text
|
|
191
|
+
return 'text';
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Get enum options as string array for select/checkbox components
|
|
196
|
+
*/
|
|
197
|
+
const enumOptions = $derived.by((): string[] => {
|
|
198
|
+
if (!schema.enum) return [];
|
|
199
|
+
return schema.enum.map((opt) => String(opt));
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Get select options for select-options type
|
|
204
|
+
* Handles both oneOf (standard) and options (legacy) patterns
|
|
205
|
+
*/
|
|
206
|
+
const selectOptions = $derived(getSchemaOptions(schema));
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Get current value as the appropriate type
|
|
210
|
+
*/
|
|
211
|
+
const stringValue = $derived(String(value ?? ''));
|
|
212
|
+
const numberValue = $derived(value as number | string);
|
|
213
|
+
const booleanValue = $derived(Boolean(value ?? schema.default ?? false));
|
|
214
|
+
const arrayValue = $derived.by((): string[] => {
|
|
215
|
+
if (Array.isArray(value)) {
|
|
216
|
+
return value.map((v) => String(v));
|
|
217
|
+
}
|
|
218
|
+
return [];
|
|
219
|
+
});
|
|
220
|
+
const arrayItems = $derived.by((): unknown[] => {
|
|
221
|
+
if (Array.isArray(value)) {
|
|
222
|
+
return value;
|
|
223
|
+
}
|
|
224
|
+
return [];
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Get autocomplete value - can be string or string[] based on multiple setting
|
|
229
|
+
*/
|
|
230
|
+
const autocompleteValue = $derived.by((): string | string[] => {
|
|
231
|
+
if (schema.autocomplete?.multiple) {
|
|
232
|
+
if (Array.isArray(value)) {
|
|
233
|
+
return value.map((v) => String(v));
|
|
234
|
+
}
|
|
235
|
+
return value ? [String(value)] : [];
|
|
236
|
+
}
|
|
237
|
+
return String(value ?? '');
|
|
238
|
+
});
|
|
239
|
+
</script>
|
|
240
|
+
|
|
241
|
+
{#if fieldType !== 'hidden'}
|
|
242
|
+
<FormFieldWrapper
|
|
243
|
+
id={fieldKey}
|
|
244
|
+
label={fieldLabel}
|
|
245
|
+
{required}
|
|
246
|
+
description={schema.title ? schema.description : undefined}
|
|
247
|
+
{animationDelay}
|
|
248
|
+
>
|
|
249
|
+
{#if fieldType === 'checkbox-group'}
|
|
250
|
+
<FormCheckboxGroup
|
|
251
|
+
id={fieldKey}
|
|
252
|
+
value={arrayValue}
|
|
253
|
+
options={enumOptions}
|
|
254
|
+
ariaDescribedBy={descriptionId}
|
|
255
|
+
disabled={isReadOnly}
|
|
256
|
+
onChange={(val) => onChange(val)}
|
|
257
|
+
/>
|
|
258
|
+
{:else if fieldType === 'select-enum'}
|
|
259
|
+
<FormSelect
|
|
260
|
+
id={fieldKey}
|
|
261
|
+
value={stringValue}
|
|
262
|
+
options={enumOptions}
|
|
263
|
+
{required}
|
|
264
|
+
ariaDescribedBy={descriptionId}
|
|
265
|
+
disabled={isReadOnly}
|
|
266
|
+
onChange={(val) => onChange(val)}
|
|
267
|
+
/>
|
|
268
|
+
{:else if fieldType === 'textarea'}
|
|
269
|
+
<FormTextarea
|
|
270
|
+
id={fieldKey}
|
|
271
|
+
value={stringValue}
|
|
272
|
+
placeholder={schema.placeholder ?? ''}
|
|
273
|
+
{required}
|
|
274
|
+
ariaDescribedBy={descriptionId}
|
|
275
|
+
disabled={isReadOnly}
|
|
276
|
+
onChange={(val) => onChange(val)}
|
|
277
|
+
/>
|
|
278
|
+
{:else if fieldType === 'text'}
|
|
279
|
+
<FormTextField
|
|
280
|
+
id={fieldKey}
|
|
281
|
+
value={stringValue}
|
|
282
|
+
placeholder={schema.placeholder ?? ''}
|
|
283
|
+
{required}
|
|
284
|
+
ariaDescribedBy={descriptionId}
|
|
285
|
+
disabled={isReadOnly}
|
|
286
|
+
onChange={(val) => onChange(val)}
|
|
287
|
+
/>
|
|
288
|
+
{:else if fieldType === 'number'}
|
|
289
|
+
<FormNumberField
|
|
290
|
+
id={fieldKey}
|
|
291
|
+
value={numberValue}
|
|
292
|
+
placeholder={schema.placeholder ?? ''}
|
|
293
|
+
min={schema.minimum}
|
|
294
|
+
max={schema.maximum}
|
|
295
|
+
step={schema.step}
|
|
296
|
+
{required}
|
|
297
|
+
ariaDescribedBy={descriptionId}
|
|
298
|
+
disabled={isReadOnly}
|
|
299
|
+
onChange={(val) => onChange(val)}
|
|
300
|
+
/>
|
|
301
|
+
{:else if fieldType === 'range'}
|
|
302
|
+
<FormRangeField
|
|
303
|
+
id={fieldKey}
|
|
304
|
+
value={numberValue}
|
|
305
|
+
min={schema.minimum}
|
|
306
|
+
max={schema.maximum}
|
|
307
|
+
step={schema.step}
|
|
308
|
+
{required}
|
|
309
|
+
ariaDescribedBy={descriptionId}
|
|
310
|
+
disabled={isReadOnly}
|
|
311
|
+
onChange={(val) => onChange(val)}
|
|
312
|
+
/>
|
|
313
|
+
{:else if fieldType === 'toggle'}
|
|
314
|
+
<FormToggle
|
|
315
|
+
id={fieldKey}
|
|
316
|
+
value={booleanValue}
|
|
317
|
+
ariaDescribedBy={descriptionId}
|
|
318
|
+
disabled={isReadOnly}
|
|
319
|
+
onChange={(val) => onChange(val)}
|
|
320
|
+
/>
|
|
321
|
+
{:else if fieldType === 'select-options'}
|
|
322
|
+
<FormSelect
|
|
323
|
+
id={fieldKey}
|
|
324
|
+
value={stringValue}
|
|
325
|
+
options={selectOptions}
|
|
326
|
+
{required}
|
|
327
|
+
ariaDescribedBy={descriptionId}
|
|
328
|
+
disabled={isReadOnly}
|
|
329
|
+
onChange={(val) => onChange(val)}
|
|
330
|
+
/>
|
|
331
|
+
{:else if fieldType === 'array' && schema.items}
|
|
332
|
+
<FormArray
|
|
333
|
+
id={fieldKey}
|
|
334
|
+
value={arrayItems}
|
|
335
|
+
itemSchema={schema.items}
|
|
336
|
+
minItems={schema.minItems}
|
|
337
|
+
maxItems={schema.maxItems}
|
|
338
|
+
addLabel={`Add ${schema.items.title ?? 'Item'}`}
|
|
339
|
+
disabled={isReadOnly}
|
|
340
|
+
onChange={(val) => onChange(val)}
|
|
341
|
+
/>
|
|
342
|
+
{:else if fieldType === 'code-editor'}
|
|
343
|
+
<FormCodeEditor
|
|
344
|
+
id={fieldKey}
|
|
345
|
+
{value}
|
|
346
|
+
placeholder={schema.placeholder ?? '{}'}
|
|
347
|
+
{required}
|
|
348
|
+
height={(schema.height as string | undefined) ?? '200px'}
|
|
349
|
+
darkTheme={(schema.darkTheme as boolean | undefined) ?? getResolvedTheme() === 'dark'}
|
|
350
|
+
autoFormat={(schema.autoFormat as boolean | undefined) ?? true}
|
|
351
|
+
ariaDescribedBy={descriptionId}
|
|
352
|
+
disabled={isReadOnly}
|
|
353
|
+
onChange={(val) => onChange(val)}
|
|
354
|
+
/>
|
|
355
|
+
{:else if fieldType === 'markdown-editor'}
|
|
356
|
+
<FormMarkdownEditor
|
|
357
|
+
id={fieldKey}
|
|
358
|
+
value={stringValue}
|
|
359
|
+
placeholder={schema.placeholder ?? 'Write your markdown here...'}
|
|
360
|
+
{required}
|
|
361
|
+
height={(schema.height as string | undefined) ?? '300px'}
|
|
362
|
+
showToolbar={(schema.showToolbar as boolean | undefined) ?? true}
|
|
363
|
+
showStatusBar={(schema.showStatusBar as boolean | undefined) ?? true}
|
|
364
|
+
spellChecker={(schema.spellChecker as boolean | undefined) ?? false}
|
|
365
|
+
ariaDescribedBy={descriptionId}
|
|
366
|
+
disabled={isReadOnly}
|
|
367
|
+
onChange={(val) => onChange(val)}
|
|
368
|
+
/>
|
|
369
|
+
{:else if fieldType === 'template-editor'}
|
|
370
|
+
<FormTemplateEditor
|
|
371
|
+
id={fieldKey}
|
|
372
|
+
value={stringValue}
|
|
373
|
+
placeholder={schema.placeholder ??
|
|
374
|
+
'Enter your template here...\nUse {{ variable }} for dynamic values.'}
|
|
375
|
+
{required}
|
|
376
|
+
height={(schema.height as string | undefined) ?? '250px'}
|
|
377
|
+
darkTheme={(schema.darkTheme as boolean | undefined) ?? getResolvedTheme() === 'dark'}
|
|
378
|
+
variables={schema.variables}
|
|
379
|
+
placeholderExample={(schema.placeholderExample as string | undefined) ??
|
|
380
|
+
'Hello {{ name }}, your order #{{ order_id }} is ready!'}
|
|
381
|
+
ariaDescribedBy={descriptionId}
|
|
382
|
+
disabled={isReadOnly}
|
|
383
|
+
{node}
|
|
384
|
+
{nodes}
|
|
385
|
+
{edges}
|
|
386
|
+
{workflowId}
|
|
387
|
+
{authProvider}
|
|
388
|
+
onChange={(val) => onChange(val)}
|
|
389
|
+
/>
|
|
390
|
+
{:else if fieldType === 'autocomplete' && schema.autocomplete}
|
|
391
|
+
<FormAutocomplete
|
|
392
|
+
id={fieldKey}
|
|
393
|
+
value={autocompleteValue}
|
|
394
|
+
autocomplete={schema.autocomplete}
|
|
395
|
+
placeholder={schema.placeholder ?? ''}
|
|
396
|
+
{required}
|
|
397
|
+
ariaDescribedBy={descriptionId}
|
|
398
|
+
disabled={isReadOnly}
|
|
399
|
+
onChange={(val) => onChange(val)}
|
|
400
|
+
/>
|
|
401
|
+
{:else}
|
|
402
|
+
<!-- Fallback to text input -->
|
|
403
|
+
<FormTextField
|
|
404
|
+
id={fieldKey}
|
|
405
|
+
value={stringValue}
|
|
406
|
+
placeholder={schema.placeholder ?? ''}
|
|
407
|
+
ariaDescribedBy={descriptionId}
|
|
408
|
+
disabled={isReadOnly}
|
|
409
|
+
onChange={(val) => onChange(val)}
|
|
410
|
+
/>
|
|
411
|
+
{/if}
|
|
412
|
+
</FormFieldWrapper>
|
|
413
|
+
{/if}
|
|
414
|
+
|
|
415
|
+
<style>
|
|
416
|
+
/* Styles moved to individual form components */
|
|
417
|
+
</style>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { FieldSchema } from './types.js';
|
|
2
|
+
import type { WorkflowNode, WorkflowEdge, AuthProvider } from '../../types/index.js';
|
|
3
|
+
interface Props {
|
|
4
|
+
/** Unique key/id for the field */
|
|
5
|
+
fieldKey: string;
|
|
6
|
+
/** Field schema definition */
|
|
7
|
+
schema: FieldSchema;
|
|
8
|
+
/** Current field value */
|
|
9
|
+
value: unknown;
|
|
10
|
+
/** Whether the field is required */
|
|
11
|
+
required?: boolean;
|
|
12
|
+
/** Animation delay index for staggered animations */
|
|
13
|
+
animationIndex?: number;
|
|
14
|
+
/** Callback when the field value changes */
|
|
15
|
+
onChange: (value: unknown) => void;
|
|
16
|
+
/** Current workflow node (optional, used for template variable API mode) */
|
|
17
|
+
node?: WorkflowNode;
|
|
18
|
+
/** All workflow nodes (optional, used for port-derived variables) */
|
|
19
|
+
nodes?: WorkflowNode[];
|
|
20
|
+
/** All workflow edges (optional, used for port-derived variables) */
|
|
21
|
+
edges?: WorkflowEdge[];
|
|
22
|
+
/** Workflow ID (optional, used for template variable API mode) */
|
|
23
|
+
workflowId?: string;
|
|
24
|
+
/** Auth provider (optional, used for API requests) */
|
|
25
|
+
authProvider?: AuthProvider;
|
|
26
|
+
}
|
|
27
|
+
declare const FormField: import("svelte").Component<Props, {}, "">;
|
|
28
|
+
type FormField = ReturnType<typeof FormField>;
|
|
29
|
+
export default FormField;
|