@flowdrop/flowdrop 1.5.0 → 1.6.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 +240 -294
- package/dist/components/App.svelte.d.ts +9 -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 +42 -56
- 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 +44 -74
- 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/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 +3 -3
- package/dist/stores/workflowStore.svelte.js +46 -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 +32 -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 +2 -2
- package/dist/utils/connections.js +15 -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
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* These types provide a foundation for dynamic form rendering based on JSON Schema
|
|
6
6
|
* and support extensibility for complex field types like arrays and objects.
|
|
7
7
|
*/
|
|
8
|
-
import type { AutocompleteConfig, TemplateVariablesConfig } from
|
|
8
|
+
import type { AutocompleteConfig, TemplateVariablesConfig } from '../../types/index.js';
|
|
9
9
|
/**
|
|
10
10
|
* Supported field types for form rendering
|
|
11
11
|
* Aligned with JSON Schema specification (draft-07)
|
|
@@ -14,7 +14,7 @@ import type { AutocompleteConfig, TemplateVariablesConfig } from "../../types/in
|
|
|
14
14
|
* - Use `enum` for simple value lists
|
|
15
15
|
* - Use `oneOf` with `const`/`title` for labeled options
|
|
16
16
|
*/
|
|
17
|
-
export type FieldType =
|
|
17
|
+
export type FieldType = 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object';
|
|
18
18
|
/**
|
|
19
19
|
* Field format for specialized rendering
|
|
20
20
|
* - multiline: Renders as textarea
|
|
@@ -26,7 +26,7 @@ export type FieldType = "string" | "number" | "integer" | "boolean" | "array" |
|
|
|
26
26
|
* - template: Renders as CodeMirror editor with Twig/Liquid syntax highlighting
|
|
27
27
|
* - autocomplete: Renders as text input with autocomplete suggestions from callback URL
|
|
28
28
|
*/
|
|
29
|
-
export type FieldFormat =
|
|
29
|
+
export type FieldFormat = 'multiline' | 'hidden' | 'range' | 'json' | 'code' | 'markdown' | 'template' | 'autocomplete' | string;
|
|
30
30
|
/**
|
|
31
31
|
* Option type for select and checkbox group fields
|
|
32
32
|
*
|
|
@@ -216,7 +216,7 @@ export interface AutocompleteFieldProps extends BaseFieldProps<string | string[]
|
|
|
216
216
|
* Autocomplete configuration imported from main types
|
|
217
217
|
* Re-exported here for convenience
|
|
218
218
|
*/
|
|
219
|
-
export type { AutocompleteConfig } from
|
|
219
|
+
export type { AutocompleteConfig } from '../../types/index.js';
|
|
220
220
|
/**
|
|
221
221
|
* Field schema definition derived from JSON Schema property
|
|
222
222
|
* Used to determine which field component to render
|
|
@@ -408,7 +408,7 @@ export interface SchemaFormProps {
|
|
|
408
408
|
* Properties define the form fields to render.
|
|
409
409
|
*/
|
|
410
410
|
schema: {
|
|
411
|
-
type:
|
|
411
|
+
type: 'object';
|
|
412
412
|
properties: Record<string, FieldSchema>;
|
|
413
413
|
required?: string[];
|
|
414
414
|
additionalProperties?: boolean;
|
|
@@ -476,7 +476,7 @@ export interface SchemaFormProps {
|
|
|
476
476
|
* Authentication provider for autocomplete fields.
|
|
477
477
|
* Used to add authentication headers when fetching suggestions from callback URLs.
|
|
478
478
|
*/
|
|
479
|
-
authProvider?: import(
|
|
479
|
+
authProvider?: import('../../types/index.js').AuthProvider;
|
|
480
480
|
/**
|
|
481
481
|
* Base URL for resolving relative autocomplete callback URLs.
|
|
482
482
|
* @default ""
|
|
@@ -9,18 +9,13 @@
|
|
|
9
9
|
* Type guard to check if options are FieldOption objects
|
|
10
10
|
*/
|
|
11
11
|
export function isFieldOptionArray(options) {
|
|
12
|
-
return
|
|
13
|
-
typeof options[0] === "object" &&
|
|
14
|
-
"value" in options[0]);
|
|
12
|
+
return options.length > 0 && typeof options[0] === 'object' && 'value' in options[0];
|
|
15
13
|
}
|
|
16
14
|
/**
|
|
17
15
|
* Type guard to check if items are OneOfItem objects (JSON Schema oneOf pattern)
|
|
18
16
|
*/
|
|
19
17
|
export function isOneOfArray(items) {
|
|
20
|
-
return (items.length > 0 &&
|
|
21
|
-
typeof items[0] === "object" &&
|
|
22
|
-
items[0] !== null &&
|
|
23
|
-
"const" in items[0]);
|
|
18
|
+
return (items.length > 0 && typeof items[0] === 'object' && items[0] !== null && 'const' in items[0]);
|
|
24
19
|
}
|
|
25
20
|
/**
|
|
26
21
|
* Convert JSON Schema oneOf items to FieldOption format
|
|
@@ -32,7 +27,7 @@ export function isOneOfArray(items) {
|
|
|
32
27
|
export function oneOfToOptions(oneOfItems) {
|
|
33
28
|
return oneOfItems.map((item) => ({
|
|
34
29
|
value: String(item.const),
|
|
35
|
-
label: item.title ?? String(item.const)
|
|
30
|
+
label: item.title ?? String(item.const)
|
|
36
31
|
}));
|
|
37
32
|
}
|
|
38
33
|
/**
|
|
@@ -60,7 +55,7 @@ export function normalizeOptions(options) {
|
|
|
60
55
|
// Handle string array (simple enum values)
|
|
61
56
|
return options.map((opt) => ({
|
|
62
57
|
value: String(opt),
|
|
63
|
-
label: String(opt)
|
|
58
|
+
label: String(opt)
|
|
64
59
|
}));
|
|
65
60
|
}
|
|
66
61
|
/**
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
<!-- Inline SVG equivalent of mdi:alert-circle (Material Design Icons) -->
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
viewBox="0 0 24 24"
|
|
5
|
-
fill="currentColor"
|
|
6
|
-
aria-hidden="true"
|
|
7
|
-
>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
|
|
8
3
|
<path
|
|
9
4
|
d="M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"
|
|
10
5
|
/>
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
<!-- Inline SVG equivalent of mdi:cog (Material Design Icons) -->
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
viewBox="0 0 24 24"
|
|
5
|
-
fill="currentColor"
|
|
6
|
-
aria-hidden="true"
|
|
7
|
-
>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
|
|
8
3
|
<path
|
|
9
4
|
d="M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.68 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z"
|
|
10
5
|
/>
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
<script module>
|
|
2
|
-
import { defineMeta } from
|
|
3
|
-
import ChoicePrompt from
|
|
4
|
-
import { fn } from
|
|
5
|
-
import { createChoiceConfig } from
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import ChoicePrompt from './ChoicePrompt.svelte';
|
|
4
|
+
import { fn } from 'storybook/test';
|
|
5
|
+
import { createChoiceConfig } from '../../stories/utils.js';
|
|
6
6
|
|
|
7
7
|
const { Story } = defineMeta({
|
|
8
|
-
title:
|
|
8
|
+
title: 'Interrupt/ChoicePrompt',
|
|
9
9
|
component: ChoicePrompt,
|
|
10
|
-
tags: [
|
|
10
|
+
tags: ['autodocs'],
|
|
11
11
|
args: {
|
|
12
12
|
config: createChoiceConfig(),
|
|
13
13
|
isResolved: false,
|
|
14
14
|
isSubmitting: false,
|
|
15
|
-
onSubmit: fn()
|
|
16
|
-
}
|
|
15
|
+
onSubmit: fn()
|
|
16
|
+
}
|
|
17
17
|
});
|
|
18
18
|
</script>
|
|
19
19
|
|
|
@@ -23,31 +23,31 @@
|
|
|
23
23
|
name="Multi Select"
|
|
24
24
|
args={{
|
|
25
25
|
config: createChoiceConfig({
|
|
26
|
-
message:
|
|
26
|
+
message: 'Select the features to enable:',
|
|
27
27
|
multiple: true,
|
|
28
28
|
options: [
|
|
29
29
|
{
|
|
30
|
-
value:
|
|
31
|
-
label:
|
|
32
|
-
description:
|
|
30
|
+
value: 'auth',
|
|
31
|
+
label: 'Authentication',
|
|
32
|
+
description: 'User login and signup'
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
value:
|
|
36
|
-
label:
|
|
37
|
-
description:
|
|
35
|
+
value: 'analytics',
|
|
36
|
+
label: 'Analytics',
|
|
37
|
+
description: 'Usage tracking and metrics'
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
|
-
value:
|
|
41
|
-
label:
|
|
42
|
-
description:
|
|
40
|
+
value: 'notifications',
|
|
41
|
+
label: 'Notifications',
|
|
42
|
+
description: 'Email and push alerts'
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
value:
|
|
46
|
-
label:
|
|
47
|
-
description:
|
|
48
|
-
}
|
|
49
|
-
]
|
|
50
|
-
})
|
|
45
|
+
value: 'export',
|
|
46
|
+
label: 'Data Export',
|
|
47
|
+
description: 'CSV and JSON export'
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
})
|
|
51
51
|
}}
|
|
52
52
|
/>
|
|
53
53
|
|
|
@@ -55,14 +55,14 @@
|
|
|
55
55
|
name="Resolved"
|
|
56
56
|
args={{
|
|
57
57
|
isResolved: true,
|
|
58
|
-
resolvedValue:
|
|
59
|
-
resolvedByUserName:
|
|
58
|
+
resolvedValue: 'high',
|
|
59
|
+
resolvedByUserName: 'Bob'
|
|
60
60
|
}}
|
|
61
61
|
/>
|
|
62
62
|
|
|
63
63
|
<Story
|
|
64
64
|
name="Submitting"
|
|
65
65
|
args={{
|
|
66
|
-
isSubmitting: true
|
|
66
|
+
isSubmitting: true
|
|
67
67
|
}}
|
|
68
68
|
/>
|
|
@@ -11,7 +11,7 @@ declare const ChoicePrompt: $$__sveltets_2_IsomorphicComponent<{
|
|
|
11
11
|
}, {
|
|
12
12
|
[evt: string]: CustomEvent<any>;
|
|
13
13
|
}, {}, {}, string>;
|
|
14
|
-
import ChoicePrompt from
|
|
14
|
+
import ChoicePrompt from './ChoicePrompt.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;
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
-->
|
|
9
9
|
|
|
10
10
|
<script lang="ts">
|
|
11
|
-
import Icon from
|
|
12
|
-
import type { ChoiceConfig, InterruptChoice } from
|
|
11
|
+
import Icon from '@iconify/svelte';
|
|
12
|
+
import type { ChoiceConfig, InterruptChoice } from '../../types/interrupt.js';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Component props
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
isSubmitting,
|
|
39
39
|
error,
|
|
40
40
|
resolvedByUserName,
|
|
41
|
-
onSubmit
|
|
41
|
+
onSubmit
|
|
42
42
|
}: Props = $props();
|
|
43
43
|
|
|
44
44
|
/** Local state for selected values */
|
|
@@ -51,14 +51,11 @@
|
|
|
51
51
|
const minSelections = $derived(config.minSelections ?? (isMultiple ? 0 : 1));
|
|
52
52
|
|
|
53
53
|
/** Maximum selections allowed */
|
|
54
|
-
const maxSelections = $derived(
|
|
55
|
-
config.maxSelections ?? (isMultiple ? config.options.length : 1),
|
|
56
|
-
);
|
|
54
|
+
const maxSelections = $derived(config.maxSelections ?? (isMultiple ? config.options.length : 1));
|
|
57
55
|
|
|
58
56
|
/** Check if submit is valid */
|
|
59
57
|
const isValidSelection = $derived(
|
|
60
|
-
selectedValues.size >= minSelections &&
|
|
61
|
-
selectedValues.size <= maxSelections,
|
|
58
|
+
selectedValues.size >= minSelections && selectedValues.size <= maxSelections
|
|
62
59
|
);
|
|
63
60
|
|
|
64
61
|
/** Check if an option was selected in resolved state */
|
|
@@ -108,7 +105,7 @@
|
|
|
108
105
|
if (isMultiple) {
|
|
109
106
|
onSubmit(values);
|
|
110
107
|
} else {
|
|
111
|
-
onSubmit(values[0] ??
|
|
108
|
+
onSubmit(values[0] ?? '');
|
|
112
109
|
}
|
|
113
110
|
}
|
|
114
111
|
</script>
|
|
@@ -130,48 +127,34 @@
|
|
|
130
127
|
{/if}
|
|
131
128
|
|
|
132
129
|
<!-- Options -->
|
|
133
|
-
<div
|
|
134
|
-
class="choice-prompt__options"
|
|
135
|
-
role={isMultiple ? "group" : "radiogroup"}
|
|
136
|
-
>
|
|
130
|
+
<div class="choice-prompt__options" role={isMultiple ? 'group' : 'radiogroup'}>
|
|
137
131
|
{#each config.options as option (option.value)}
|
|
138
|
-
{@const isChecked = isResolved
|
|
139
|
-
? isOptionResolved(option)
|
|
140
|
-
: selectedValues.has(option.value)}
|
|
132
|
+
{@const isChecked = isResolved ? isOptionResolved(option) : selectedValues.has(option.value)}
|
|
141
133
|
<label
|
|
142
134
|
class="choice-prompt__option"
|
|
143
135
|
class:choice-prompt__option--selected={isChecked}
|
|
144
136
|
class:choice-prompt__option--resolved={isResolved && isChecked}
|
|
145
137
|
>
|
|
146
138
|
<input
|
|
147
|
-
type={isMultiple ?
|
|
139
|
+
type={isMultiple ? 'checkbox' : 'radio'}
|
|
148
140
|
name="choice-option"
|
|
149
141
|
value={option.value}
|
|
150
142
|
checked={isChecked}
|
|
151
143
|
disabled={isResolved || isSubmitting}
|
|
152
|
-
onchange={(e) =>
|
|
153
|
-
handleOptionChange(option, (e.target as HTMLInputElement).checked)}
|
|
144
|
+
onchange={(e) => handleOptionChange(option, (e.target as HTMLInputElement).checked)}
|
|
154
145
|
class="choice-prompt__input"
|
|
155
146
|
/>
|
|
156
147
|
<span class="choice-prompt__checkmark">
|
|
157
148
|
{#if isChecked}
|
|
158
|
-
<Icon
|
|
159
|
-
icon={isMultiple ? "mdi:checkbox-marked" : "mdi:radiobox-marked"}
|
|
160
|
-
/>
|
|
149
|
+
<Icon icon={isMultiple ? 'mdi:checkbox-marked' : 'mdi:radiobox-marked'} />
|
|
161
150
|
{:else}
|
|
162
|
-
<Icon
|
|
163
|
-
icon={isMultiple
|
|
164
|
-
? "mdi:checkbox-blank-outline"
|
|
165
|
-
: "mdi:radiobox-blank"}
|
|
166
|
-
/>
|
|
151
|
+
<Icon icon={isMultiple ? 'mdi:checkbox-blank-outline' : 'mdi:radiobox-blank'} />
|
|
167
152
|
{/if}
|
|
168
153
|
</span>
|
|
169
154
|
<span class="choice-prompt__option-content">
|
|
170
155
|
<span class="choice-prompt__option-label">{option.label}</span>
|
|
171
156
|
{#if option.description}
|
|
172
|
-
<span class="choice-prompt__option-description"
|
|
173
|
-
>{option.description}</span
|
|
174
|
-
>
|
|
157
|
+
<span class="choice-prompt__option-description">{option.description}</span>
|
|
175
158
|
{/if}
|
|
176
159
|
</span>
|
|
177
160
|
</label>
|
|
@@ -217,9 +200,7 @@
|
|
|
217
200
|
<div class="choice-prompt__resolved-badge">
|
|
218
201
|
<Icon icon="mdi:check-circle" />
|
|
219
202
|
<span>
|
|
220
|
-
{resolvedByUserName
|
|
221
|
-
? `Response submitted by ${resolvedByUserName}`
|
|
222
|
-
: "Response submitted"}
|
|
203
|
+
{resolvedByUserName ? `Response submitted by ${resolvedByUserName}` : 'Response submitted'}
|
|
223
204
|
</span>
|
|
224
205
|
</div>
|
|
225
206
|
{/if}
|
|
@@ -277,9 +258,7 @@
|
|
|
277
258
|
transition: all var(--fd-transition-fast);
|
|
278
259
|
}
|
|
279
260
|
|
|
280
|
-
.choice-prompt__option:hover:not(
|
|
281
|
-
.choice-prompt--resolved .choice-prompt__option
|
|
282
|
-
) {
|
|
261
|
+
.choice-prompt__option:hover:not(.choice-prompt--resolved .choice-prompt__option) {
|
|
283
262
|
background-color: var(--fd-subtle);
|
|
284
263
|
border-color: var(--fd-border-strong);
|
|
285
264
|
}
|
|
@@ -289,9 +268,7 @@
|
|
|
289
268
|
border-color: var(--fd-interrupt-completed-border);
|
|
290
269
|
}
|
|
291
270
|
|
|
292
|
-
.choice-prompt__option--selected:hover:not(
|
|
293
|
-
.choice-prompt--resolved .choice-prompt__option
|
|
294
|
-
) {
|
|
271
|
+
.choice-prompt__option--selected:hover:not(.choice-prompt--resolved .choice-prompt__option) {
|
|
295
272
|
background-color: var(--fd-primary-muted);
|
|
296
273
|
}
|
|
297
274
|
|
|
@@ -302,8 +279,7 @@
|
|
|
302
279
|
cursor: default;
|
|
303
280
|
}
|
|
304
281
|
|
|
305
|
-
.choice-prompt--resolved
|
|
306
|
-
.choice-prompt__option:not(.choice-prompt__option--resolved) {
|
|
282
|
+
.choice-prompt--resolved .choice-prompt__option:not(.choice-prompt__option--resolved) {
|
|
307
283
|
opacity: var(--fd-interrupt-not-selected-opacity);
|
|
308
284
|
cursor: default;
|
|
309
285
|
}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
<script module>
|
|
2
|
-
import { defineMeta } from
|
|
3
|
-
import ConfirmationPrompt from
|
|
4
|
-
import { fn } from
|
|
5
|
-
import { createConfirmationConfig } from
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import ConfirmationPrompt from './ConfirmationPrompt.svelte';
|
|
4
|
+
import { fn } from 'storybook/test';
|
|
5
|
+
import { createConfirmationConfig } from '../../stories/utils.js';
|
|
6
6
|
|
|
7
7
|
const { Story } = defineMeta({
|
|
8
|
-
title:
|
|
8
|
+
title: 'Interrupt/ConfirmationPrompt',
|
|
9
9
|
component: ConfirmationPrompt,
|
|
10
|
-
tags: [
|
|
10
|
+
tags: ['autodocs'],
|
|
11
11
|
args: {
|
|
12
12
|
config: createConfirmationConfig(),
|
|
13
13
|
isResolved: false,
|
|
14
14
|
isSubmitting: false,
|
|
15
15
|
onConfirm: fn(),
|
|
16
|
-
onDecline: fn()
|
|
17
|
-
}
|
|
16
|
+
onDecline: fn()
|
|
17
|
+
}
|
|
18
18
|
});
|
|
19
19
|
</script>
|
|
20
20
|
|
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
name="Custom Labels"
|
|
25
25
|
args={{
|
|
26
26
|
config: createConfirmationConfig({
|
|
27
|
-
message:
|
|
28
|
-
confirmLabel:
|
|
29
|
-
cancelLabel:
|
|
30
|
-
})
|
|
27
|
+
message: 'Deploy to production?',
|
|
28
|
+
confirmLabel: 'Deploy',
|
|
29
|
+
cancelLabel: 'Abort'
|
|
30
|
+
})
|
|
31
31
|
}}
|
|
32
32
|
/>
|
|
33
33
|
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
name="Confirmed"
|
|
36
36
|
args={{
|
|
37
37
|
isResolved: true,
|
|
38
|
-
resolvedValue: true
|
|
38
|
+
resolvedValue: true
|
|
39
39
|
}}
|
|
40
40
|
/>
|
|
41
41
|
|
|
@@ -43,21 +43,21 @@
|
|
|
43
43
|
name="Declined"
|
|
44
44
|
args={{
|
|
45
45
|
isResolved: true,
|
|
46
|
-
resolvedValue: false
|
|
46
|
+
resolvedValue: false
|
|
47
47
|
}}
|
|
48
48
|
/>
|
|
49
49
|
|
|
50
50
|
<Story
|
|
51
51
|
name="Submitting"
|
|
52
52
|
args={{
|
|
53
|
-
isSubmitting: true
|
|
53
|
+
isSubmitting: true
|
|
54
54
|
}}
|
|
55
55
|
/>
|
|
56
56
|
|
|
57
57
|
<Story
|
|
58
58
|
name="With Error"
|
|
59
59
|
args={{
|
|
60
|
-
error:
|
|
60
|
+
error: 'Network error: Failed to submit response'
|
|
61
61
|
}}
|
|
62
62
|
/>
|
|
63
63
|
|
|
@@ -66,6 +66,6 @@
|
|
|
66
66
|
args={{
|
|
67
67
|
isResolved: true,
|
|
68
68
|
resolvedValue: true,
|
|
69
|
-
resolvedByUserName:
|
|
69
|
+
resolvedByUserName: 'Alice'
|
|
70
70
|
}}
|
|
71
71
|
/>
|
|
@@ -11,7 +11,7 @@ declare const ConfirmationPrompt: $$__sveltets_2_IsomorphicComponent<{
|
|
|
11
11
|
}, {
|
|
12
12
|
[evt: string]: CustomEvent<any>;
|
|
13
13
|
}, {}, {}, string>;
|
|
14
|
-
import ConfirmationPrompt from
|
|
14
|
+
import ConfirmationPrompt from './ConfirmationPrompt.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;
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
-->
|
|
9
9
|
|
|
10
10
|
<script lang="ts">
|
|
11
|
-
import Icon from
|
|
12
|
-
import type { ConfirmationConfig } from
|
|
11
|
+
import Icon from '@iconify/svelte';
|
|
12
|
+
import type { ConfirmationConfig } from '../../types/interrupt.js';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Component props
|
|
@@ -41,14 +41,14 @@
|
|
|
41
41
|
error,
|
|
42
42
|
resolvedByUserName,
|
|
43
43
|
onConfirm,
|
|
44
|
-
onDecline
|
|
44
|
+
onDecline
|
|
45
45
|
}: Props = $props();
|
|
46
46
|
|
|
47
47
|
/** Computed label for confirm button */
|
|
48
|
-
const confirmLabel = $derived(config.confirmLabel ??
|
|
48
|
+
const confirmLabel = $derived(config.confirmLabel ?? 'Yes');
|
|
49
49
|
|
|
50
50
|
/** Computed label for decline/cancel button */
|
|
51
|
-
const declineLabel = $derived(config.cancelLabel ??
|
|
51
|
+
const declineLabel = $derived(config.cancelLabel ?? 'No');
|
|
52
52
|
</script>
|
|
53
53
|
|
|
54
54
|
<div
|
|
@@ -72,10 +72,8 @@
|
|
|
72
72
|
<button
|
|
73
73
|
type="button"
|
|
74
74
|
class="confirmation-prompt__button confirmation-prompt__button--decline"
|
|
75
|
-
class:confirmation-prompt__button--selected={isResolved &&
|
|
76
|
-
|
|
77
|
-
class:confirmation-prompt__button--not-selected={isResolved &&
|
|
78
|
-
resolvedValue !== false}
|
|
75
|
+
class:confirmation-prompt__button--selected={isResolved && resolvedValue === false}
|
|
76
|
+
class:confirmation-prompt__button--not-selected={isResolved && resolvedValue !== false}
|
|
79
77
|
onclick={onDecline}
|
|
80
78
|
disabled={isResolved || isSubmitting}
|
|
81
79
|
aria-label={declineLabel}
|
|
@@ -96,10 +94,8 @@
|
|
|
96
94
|
<button
|
|
97
95
|
type="button"
|
|
98
96
|
class="confirmation-prompt__button confirmation-prompt__button--confirm"
|
|
99
|
-
class:confirmation-prompt__button--selected={isResolved &&
|
|
100
|
-
|
|
101
|
-
class:confirmation-prompt__button--not-selected={isResolved &&
|
|
102
|
-
resolvedValue !== true}
|
|
97
|
+
class:confirmation-prompt__button--selected={isResolved && resolvedValue === true}
|
|
98
|
+
class:confirmation-prompt__button--not-selected={isResolved && resolvedValue !== true}
|
|
103
99
|
onclick={onConfirm}
|
|
104
100
|
disabled={isResolved || isSubmitting}
|
|
105
101
|
aria-label={confirmLabel}
|
|
@@ -123,9 +119,7 @@
|
|
|
123
119
|
<div class="confirmation-prompt__resolved-badge">
|
|
124
120
|
<Icon icon="mdi:check-circle" />
|
|
125
121
|
<span>
|
|
126
|
-
{resolvedByUserName
|
|
127
|
-
? `Response submitted by ${resolvedByUserName}`
|
|
128
|
-
: "Response submitted"}
|
|
122
|
+
{resolvedByUserName ? `Response submitted by ${resolvedByUserName}` : 'Response submitted'}
|
|
129
123
|
</span>
|
|
130
124
|
</div>
|
|
131
125
|
{/if}
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
-->
|
|
9
9
|
|
|
10
10
|
<script lang="ts">
|
|
11
|
-
import Icon from
|
|
12
|
-
import SchemaForm from
|
|
13
|
-
import type { FormConfig } from
|
|
11
|
+
import Icon from '@iconify/svelte';
|
|
12
|
+
import SchemaForm from '../SchemaForm.svelte';
|
|
13
|
+
import type { FormConfig } from '../../types/interrupt.js';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Component props
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
isSubmitting,
|
|
40
40
|
error,
|
|
41
41
|
resolvedByUserName,
|
|
42
|
-
onSubmit
|
|
42
|
+
onSubmit
|
|
43
43
|
}: Props = $props();
|
|
44
44
|
|
|
45
45
|
/** Local state for form values */
|
|
@@ -47,9 +47,7 @@
|
|
|
47
47
|
let formValues = $state<Record<string, unknown>>(config.defaultValues ?? {});
|
|
48
48
|
|
|
49
49
|
/** Display values - either resolved or current form values */
|
|
50
|
-
const displayValues = $derived(
|
|
51
|
-
isResolved ? (resolvedValue ?? {}) : formValues,
|
|
52
|
-
);
|
|
50
|
+
const displayValues = $derived(isResolved ? (resolvedValue ?? {}) : formValues);
|
|
53
51
|
|
|
54
52
|
/**
|
|
55
53
|
* Handle form value changes
|
|
@@ -71,9 +69,9 @@
|
|
|
71
69
|
* Format resolved value for display
|
|
72
70
|
*/
|
|
73
71
|
function formatResolvedValue(value: unknown): string {
|
|
74
|
-
if (value === null || value === undefined) return
|
|
75
|
-
if (typeof value ===
|
|
76
|
-
if (typeof value ===
|
|
72
|
+
if (value === null || value === undefined) return '—';
|
|
73
|
+
if (typeof value === 'boolean') return value ? 'Yes' : 'No';
|
|
74
|
+
if (typeof value === 'object') return JSON.stringify(value, null, 2);
|
|
77
75
|
return String(value);
|
|
78
76
|
}
|
|
79
77
|
</script>
|
|
@@ -116,8 +114,7 @@
|
|
|
116
114
|
<div class="form-prompt__values-list">
|
|
117
115
|
{#each Object.entries(config.schema.properties ?? {}) as [key, field]}
|
|
118
116
|
{@const value = displayValues[key]}
|
|
119
|
-
{@const fieldTitle =
|
|
120
|
-
((field as Record<string, unknown>).title as string) ?? key}
|
|
117
|
+
{@const fieldTitle = ((field as Record<string, unknown>).title as string) ?? key}
|
|
121
118
|
<div class="form-prompt__value-item">
|
|
122
119
|
<span class="form-prompt__value-label">{fieldTitle}</span>
|
|
123
120
|
<span class="form-prompt__value-content">
|
|
@@ -134,9 +131,7 @@
|
|
|
134
131
|
<div class="form-prompt__resolved-badge">
|
|
135
132
|
<Icon icon="mdi:check-circle" />
|
|
136
133
|
<span>
|
|
137
|
-
{resolvedByUserName
|
|
138
|
-
? `Response submitted by ${resolvedByUserName}`
|
|
139
|
-
: "Response submitted"}
|
|
134
|
+
{resolvedByUserName ? `Response submitted by ${resolvedByUserName}` : 'Response submitted'}
|
|
140
135
|
</span>
|
|
141
136
|
</div>
|
|
142
137
|
{/if}
|