@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
|
@@ -9,15 +9,15 @@
|
|
|
9
9
|
-->
|
|
10
10
|
|
|
11
11
|
<script lang="ts">
|
|
12
|
-
import Icon from
|
|
13
|
-
import { diffWords, diffArrays, diffJson } from
|
|
14
|
-
import type { Change } from
|
|
15
|
-
import { sanitizeHtml } from
|
|
12
|
+
import Icon from '@iconify/svelte';
|
|
13
|
+
import { diffWords, diffArrays, diffJson } from 'diff';
|
|
14
|
+
import type { Change } from 'diff';
|
|
15
|
+
import { sanitizeHtml } from '../../utils/sanitize.js';
|
|
16
16
|
import type {
|
|
17
17
|
ReviewConfig,
|
|
18
18
|
ReviewResolution,
|
|
19
|
-
ReviewFieldDecision
|
|
20
|
-
} from
|
|
19
|
+
ReviewFieldDecision
|
|
20
|
+
} from '../../types/interrupt.js';
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Component props
|
|
@@ -46,38 +46,34 @@
|
|
|
46
46
|
isSubmitting,
|
|
47
47
|
error,
|
|
48
48
|
resolvedByUserName,
|
|
49
|
-
onSubmit
|
|
49
|
+
onSubmit
|
|
50
50
|
}: Props = $props();
|
|
51
51
|
|
|
52
52
|
/** Local state: map of field -> accepted boolean. Default all to true (accept). */
|
|
53
53
|
// svelte-ignore state_referenced_locally — initial default, user toggles during review
|
|
54
54
|
let decisions = $state<Record<string, boolean>>(
|
|
55
|
-
Object.fromEntries(config.changes.map((c) => [c.field, true]))
|
|
55
|
+
Object.fromEntries(config.changes.map((c) => [c.field, true]))
|
|
56
56
|
);
|
|
57
57
|
|
|
58
58
|
/** Local state: map of field -> HTML view mode ('rendered' or 'raw'). Default to 'rendered'. */
|
|
59
59
|
// svelte-ignore state_referenced_locally
|
|
60
|
-
let htmlViewMode = $state<Record<string,
|
|
61
|
-
Object.fromEntries(config.changes.map((c) => [c.field,
|
|
60
|
+
let htmlViewMode = $state<Record<string, 'rendered' | 'raw'>>(
|
|
61
|
+
Object.fromEntries(config.changes.map((c) => [c.field, 'rendered']))
|
|
62
62
|
);
|
|
63
63
|
|
|
64
64
|
/** Count of accepted fields */
|
|
65
|
-
const acceptedCount = $derived(
|
|
66
|
-
Object.values(decisions).filter((v) => v).length,
|
|
67
|
-
);
|
|
65
|
+
const acceptedCount = $derived(Object.values(decisions).filter((v) => v).length);
|
|
68
66
|
|
|
69
67
|
/** Count of rejected fields */
|
|
70
|
-
const rejectedCount = $derived(
|
|
71
|
-
Object.values(decisions).filter((v) => !v).length,
|
|
72
|
-
);
|
|
68
|
+
const rejectedCount = $derived(Object.values(decisions).filter((v) => !v).length);
|
|
73
69
|
|
|
74
70
|
/** Total number of changes */
|
|
75
71
|
const totalCount = $derived(config.changes.length);
|
|
76
72
|
|
|
77
73
|
/** Button labels with defaults */
|
|
78
|
-
const acceptAllLabel = $derived(config.acceptAllLabel ??
|
|
79
|
-
const rejectAllLabel = $derived(config.rejectAllLabel ??
|
|
80
|
-
const submitLabel = $derived(config.submitLabel ??
|
|
74
|
+
const acceptAllLabel = $derived(config.acceptAllLabel ?? 'Accept All');
|
|
75
|
+
const rejectAllLabel = $derived(config.rejectAllLabel ?? 'Reject All');
|
|
76
|
+
const submitLabel = $derived(config.submitLabel ?? 'Submit Review');
|
|
81
77
|
|
|
82
78
|
/**
|
|
83
79
|
* Set a specific field's decision
|
|
@@ -114,7 +110,7 @@
|
|
|
114
110
|
const accepted = decisions[change.field] ?? true;
|
|
115
111
|
fieldDecisions[change.field] = {
|
|
116
112
|
accepted,
|
|
117
|
-
value: accepted ? change.proposed : change.original
|
|
113
|
+
value: accepted ? change.proposed : change.original
|
|
118
114
|
};
|
|
119
115
|
}
|
|
120
116
|
|
|
@@ -123,8 +119,8 @@
|
|
|
123
119
|
summary: {
|
|
124
120
|
accepted: acceptedCount,
|
|
125
121
|
rejected: rejectedCount,
|
|
126
|
-
total: totalCount
|
|
127
|
-
}
|
|
122
|
+
total: totalCount
|
|
123
|
+
}
|
|
128
124
|
};
|
|
129
125
|
|
|
130
126
|
onSubmit(resolution);
|
|
@@ -136,7 +132,7 @@
|
|
|
136
132
|
function toggleHtmlView(field: string): void {
|
|
137
133
|
htmlViewMode = {
|
|
138
134
|
...htmlViewMode,
|
|
139
|
-
[field]: htmlViewMode[field] ===
|
|
135
|
+
[field]: htmlViewMode[field] === 'rendered' ? 'raw' : 'rendered'
|
|
140
136
|
};
|
|
141
137
|
}
|
|
142
138
|
|
|
@@ -144,7 +140,7 @@
|
|
|
144
140
|
* Check if a string contains HTML tags.
|
|
145
141
|
*/
|
|
146
142
|
function containsHtml(value: unknown): boolean {
|
|
147
|
-
return typeof value ===
|
|
143
|
+
return typeof value === 'string' && /<[a-z][\s\S]*?>/i.test(value);
|
|
148
144
|
}
|
|
149
145
|
|
|
150
146
|
/**
|
|
@@ -153,16 +149,16 @@
|
|
|
153
149
|
*/
|
|
154
150
|
function stripHtmlTags(html: string): string {
|
|
155
151
|
return html
|
|
156
|
-
.replace(/<br\s*\/?>/gi,
|
|
157
|
-
.replace(/<\/(?:p|div|li|h[1-6])>/gi,
|
|
158
|
-
.replace(/<[^>]+>/g,
|
|
159
|
-
.replace(/&/g,
|
|
160
|
-
.replace(/</g,
|
|
161
|
-
.replace(/>/g,
|
|
152
|
+
.replace(/<br\s*\/?>/gi, '\n')
|
|
153
|
+
.replace(/<\/(?:p|div|li|h[1-6])>/gi, '\n')
|
|
154
|
+
.replace(/<[^>]+>/g, '')
|
|
155
|
+
.replace(/&/g, '&')
|
|
156
|
+
.replace(/</g, '<')
|
|
157
|
+
.replace(/>/g, '>')
|
|
162
158
|
.replace(/"/g, '"')
|
|
163
159
|
.replace(/'/g, "'")
|
|
164
|
-
.replace(/ /g,
|
|
165
|
-
.replace(/\n{3,}/g,
|
|
160
|
+
.replace(/ /g, ' ')
|
|
161
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
166
162
|
.trim();
|
|
167
163
|
}
|
|
168
164
|
|
|
@@ -170,10 +166,10 @@
|
|
|
170
166
|
* Format a value for display
|
|
171
167
|
*/
|
|
172
168
|
function formatValue(value: unknown): string {
|
|
173
|
-
if (value === null || value === undefined) return
|
|
174
|
-
if (typeof value ===
|
|
175
|
-
if (typeof value ===
|
|
176
|
-
if (typeof value ===
|
|
169
|
+
if (value === null || value === undefined) return '(empty)';
|
|
170
|
+
if (typeof value === 'string') return value;
|
|
171
|
+
if (typeof value === 'boolean') return value ? 'Yes' : 'No';
|
|
172
|
+
if (typeof value === 'object') return JSON.stringify(value, null, 2);
|
|
177
173
|
return String(value);
|
|
178
174
|
}
|
|
179
175
|
|
|
@@ -185,29 +181,27 @@
|
|
|
185
181
|
function computeDiff(
|
|
186
182
|
original: unknown,
|
|
187
183
|
proposed: unknown,
|
|
188
|
-
rawMode: boolean = false
|
|
184
|
+
rawMode: boolean = false
|
|
189
185
|
): Change[] | null {
|
|
190
|
-
if (typeof original ===
|
|
191
|
-
const origText =
|
|
192
|
-
|
|
193
|
-
const propText =
|
|
194
|
-
!rawMode && containsHtml(proposed) ? stripHtmlTags(proposed) : proposed;
|
|
186
|
+
if (typeof original === 'string' && typeof proposed === 'string') {
|
|
187
|
+
const origText = !rawMode && containsHtml(original) ? stripHtmlTags(original) : original;
|
|
188
|
+
const propText = !rawMode && containsHtml(proposed) ? stripHtmlTags(proposed) : proposed;
|
|
195
189
|
return diffWords(origText, propText);
|
|
196
190
|
}
|
|
197
191
|
if (Array.isArray(original) && Array.isArray(proposed)) {
|
|
198
192
|
const arrayChanges = diffArrays(original, proposed);
|
|
199
193
|
return arrayChanges.map((part) => ({
|
|
200
|
-
value: part.value.map((v: unknown) => JSON.stringify(v)).join(
|
|
194
|
+
value: part.value.map((v: unknown) => JSON.stringify(v)).join(', '),
|
|
201
195
|
added: part.added,
|
|
202
196
|
removed: part.removed,
|
|
203
|
-
count: part.count
|
|
197
|
+
count: part.count
|
|
204
198
|
}));
|
|
205
199
|
}
|
|
206
200
|
if (
|
|
207
|
-
typeof original ===
|
|
201
|
+
typeof original === 'object' &&
|
|
208
202
|
original !== null &&
|
|
209
203
|
!Array.isArray(original) &&
|
|
210
|
-
typeof proposed ===
|
|
204
|
+
typeof proposed === 'object' &&
|
|
211
205
|
proposed !== null &&
|
|
212
206
|
!Array.isArray(proposed)
|
|
213
207
|
) {
|
|
@@ -220,7 +214,7 @@
|
|
|
220
214
|
* Check if a diff result contains multi-line content (e.g. JSON diffs).
|
|
221
215
|
*/
|
|
222
216
|
function isMultiLineDiff(changes: Change[]): boolean {
|
|
223
|
-
return changes.some((part) => part.value.includes(
|
|
217
|
+
return changes.some((part) => part.value.includes('\n'));
|
|
224
218
|
}
|
|
225
219
|
</script>
|
|
226
220
|
|
|
@@ -275,9 +269,8 @@
|
|
|
275
269
|
{@const isAccepted = isResolved
|
|
276
270
|
? (resolvedValue?.decisions[change.field]?.accepted ?? true)
|
|
277
271
|
: (decisions[change.field] ?? true)}
|
|
278
|
-
{@const isHtml =
|
|
279
|
-
|
|
280
|
-
{@const isRawView = htmlViewMode[change.field] === "raw"}
|
|
272
|
+
{@const isHtml = containsHtml(change.original) || containsHtml(change.proposed)}
|
|
273
|
+
{@const isRawView = htmlViewMode[change.field] === 'raw'}
|
|
281
274
|
{@const diff = computeDiff(change.original, change.proposed, isRawView)}
|
|
282
275
|
<div
|
|
283
276
|
class="review-prompt__change"
|
|
@@ -340,16 +333,15 @@
|
|
|
340
333
|
class="review-prompt__html-toggle-btn"
|
|
341
334
|
onclick={() => toggleHtmlView(change.field)}
|
|
342
335
|
>
|
|
343
|
-
<Icon icon={isRawView ?
|
|
344
|
-
<span>{isRawView ?
|
|
336
|
+
<Icon icon={isRawView ? 'mdi:eye' : 'mdi:code-tags'} />
|
|
337
|
+
<span>{isRawView ? 'Rendered' : 'Raw HTML'}</span>
|
|
345
338
|
</button>
|
|
346
339
|
</div>
|
|
347
340
|
{/if}
|
|
348
341
|
<div class="review-prompt__diff-row">
|
|
349
342
|
<span class="review-prompt__diff-label">Original:</span>
|
|
350
343
|
{#if isHtml && !isRawView}
|
|
351
|
-
<span
|
|
352
|
-
class="review-prompt__diff-value review-prompt__html-content"
|
|
344
|
+
<span class="review-prompt__diff-value review-prompt__html-content"
|
|
353
345
|
>{@html sanitizeHtml(String(change.original))}</span
|
|
354
346
|
>
|
|
355
347
|
{:else if isHtml && isRawView}
|
|
@@ -375,9 +367,7 @@
|
|
|
375
367
|
>{change.proposed}</code
|
|
376
368
|
>
|
|
377
369
|
{:else}
|
|
378
|
-
<span
|
|
379
|
-
class="review-prompt__diff-value review-prompt__diff-value--proposed"
|
|
380
|
-
>
|
|
370
|
+
<span class="review-prompt__diff-value review-prompt__diff-value--proposed">
|
|
381
371
|
{formatValue(change.proposed)}
|
|
382
372
|
</span>
|
|
383
373
|
{/if}
|
|
@@ -388,25 +378,17 @@
|
|
|
388
378
|
{#if isMultiLineDiff(diff)}
|
|
389
379
|
<pre
|
|
390
380
|
class="review-prompt__diff-value review-prompt__diff-block">{#each diff as part}{#if part.added}<span
|
|
391
|
-
class="review-prompt__diff-token--added"
|
|
392
|
-
|
|
393
|
-
>{:else if part.removed}<span
|
|
394
|
-
class="review-prompt__diff-token--removed"
|
|
381
|
+
class="review-prompt__diff-token--added">{part.value}</span
|
|
382
|
+
>{:else if part.removed}<span class="review-prompt__diff-token--removed"
|
|
395
383
|
>{part.value}</span
|
|
396
384
|
>{:else}<span>{part.value}</span>{/if}{/each}</pre>
|
|
397
385
|
{:else}
|
|
398
|
-
<span
|
|
399
|
-
class="review-prompt__diff-value review-prompt__diff-inline"
|
|
400
|
-
>
|
|
386
|
+
<span class="review-prompt__diff-value review-prompt__diff-inline">
|
|
401
387
|
{#each diff as part}
|
|
402
388
|
{#if part.added}
|
|
403
|
-
<span class="review-prompt__diff-token--added"
|
|
404
|
-
>{part.value}</span
|
|
405
|
-
>
|
|
389
|
+
<span class="review-prompt__diff-token--added">{part.value}</span>
|
|
406
390
|
{:else if part.removed}
|
|
407
|
-
<span class="review-prompt__diff-token--removed"
|
|
408
|
-
>{part.value}</span
|
|
409
|
-
>
|
|
391
|
+
<span class="review-prompt__diff-token--removed">{part.value}</span>
|
|
410
392
|
{:else}
|
|
411
393
|
<span>{part.value}</span>
|
|
412
394
|
{/if}
|
|
@@ -443,8 +425,8 @@
|
|
|
443
425
|
{#if isResolved && resolvedValue}
|
|
444
426
|
<div class="review-prompt__summary">
|
|
445
427
|
<span class="review-prompt__summary-text">
|
|
446
|
-
{resolvedValue.summary.accepted} accepted, {resolvedValue.summary
|
|
447
|
-
.
|
|
428
|
+
{resolvedValue.summary.accepted} accepted, {resolvedValue.summary.rejected} rejected out of {resolvedValue
|
|
429
|
+
.summary.total} changes
|
|
448
430
|
</span>
|
|
449
431
|
</div>
|
|
450
432
|
{/if}
|
|
@@ -454,9 +436,7 @@
|
|
|
454
436
|
<div class="review-prompt__resolved-badge">
|
|
455
437
|
<Icon icon="mdi:check-circle" />
|
|
456
438
|
<span>
|
|
457
|
-
{resolvedByUserName
|
|
458
|
-
? `Response submitted by ${resolvedByUserName}`
|
|
459
|
-
: "Response submitted"}
|
|
439
|
+
{resolvedByUserName ? `Response submitted by ${resolvedByUserName}` : 'Response submitted'}
|
|
460
440
|
</span>
|
|
461
441
|
</div>
|
|
462
442
|
{/if}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
<script module>
|
|
2
|
-
import { defineMeta } from
|
|
3
|
-
import TextInputPrompt from
|
|
4
|
-
import { fn } from
|
|
5
|
-
import { createTextConfig } from
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import TextInputPrompt from './TextInputPrompt.svelte';
|
|
4
|
+
import { fn } from 'storybook/test';
|
|
5
|
+
import { createTextConfig } from '../../stories/utils.js';
|
|
6
6
|
|
|
7
7
|
const { Story } = defineMeta({
|
|
8
|
-
title:
|
|
8
|
+
title: 'Interrupt/TextInputPrompt',
|
|
9
9
|
component: TextInputPrompt,
|
|
10
|
-
tags: [
|
|
10
|
+
tags: ['autodocs'],
|
|
11
11
|
args: {
|
|
12
12
|
config: createTextConfig(),
|
|
13
13
|
isResolved: false,
|
|
14
14
|
isSubmitting: false,
|
|
15
|
-
onSubmit: fn()
|
|
16
|
-
}
|
|
15
|
+
onSubmit: fn()
|
|
16
|
+
}
|
|
17
17
|
});
|
|
18
18
|
</script>
|
|
19
19
|
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
name="Multiline"
|
|
24
24
|
args={{
|
|
25
25
|
config: createTextConfig({
|
|
26
|
-
message:
|
|
26
|
+
message: 'Describe the issue in detail:',
|
|
27
27
|
multiline: true,
|
|
28
|
-
placeholder:
|
|
29
|
-
})
|
|
28
|
+
placeholder: 'Type your description...'
|
|
29
|
+
})
|
|
30
30
|
}}
|
|
31
31
|
/>
|
|
32
32
|
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
name="With Constraints"
|
|
35
35
|
args={{
|
|
36
36
|
config: createTextConfig({
|
|
37
|
-
message:
|
|
37
|
+
message: 'Enter a short summary:',
|
|
38
38
|
minLength: 10,
|
|
39
|
-
maxLength: 100
|
|
40
|
-
})
|
|
39
|
+
maxLength: 100
|
|
40
|
+
})
|
|
41
41
|
}}
|
|
42
42
|
/>
|
|
43
43
|
|
|
@@ -45,8 +45,7 @@
|
|
|
45
45
|
name="Resolved"
|
|
46
46
|
args={{
|
|
47
47
|
isResolved: true,
|
|
48
|
-
resolvedValue:
|
|
49
|
-
|
|
50
|
-
resolvedByUserName: "Charlie",
|
|
48
|
+
resolvedValue: 'The workflow completed successfully with all checks passed.',
|
|
49
|
+
resolvedByUserName: 'Charlie'
|
|
51
50
|
}}
|
|
52
51
|
/>
|
|
@@ -11,7 +11,7 @@ declare const TextInputPrompt: $$__sveltets_2_IsomorphicComponent<{
|
|
|
11
11
|
}, {
|
|
12
12
|
[evt: string]: CustomEvent<any>;
|
|
13
13
|
}, {}, {}, string>;
|
|
14
|
-
import TextInputPrompt from
|
|
14
|
+
import TextInputPrompt from './TextInputPrompt.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 { TextConfig } from
|
|
11
|
+
import Icon from '@iconify/svelte';
|
|
12
|
+
import type { TextConfig } from '../../types/interrupt.js';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Component props
|
|
@@ -38,17 +38,15 @@
|
|
|
38
38
|
isSubmitting,
|
|
39
39
|
error,
|
|
40
40
|
resolvedByUserName,
|
|
41
|
-
onSubmit
|
|
41
|
+
onSubmit
|
|
42
42
|
}: Props = $props();
|
|
43
43
|
|
|
44
44
|
/** Local state for input value */
|
|
45
45
|
// svelte-ignore state_referenced_locally — initial default, user edits the input
|
|
46
|
-
let inputValue = $state(config.defaultValue ??
|
|
46
|
+
let inputValue = $state(config.defaultValue ?? '');
|
|
47
47
|
|
|
48
48
|
/** Display value - either resolved or current input */
|
|
49
|
-
const displayValue = $derived(
|
|
50
|
-
isResolved ? (resolvedValue ?? "") : inputValue,
|
|
51
|
-
);
|
|
49
|
+
const displayValue = $derived(isResolved ? (resolvedValue ?? '') : inputValue);
|
|
52
50
|
|
|
53
51
|
/** Whether the input is multiline */
|
|
54
52
|
const isMultiline = $derived(config.multiline ?? false);
|
|
@@ -59,9 +57,8 @@
|
|
|
59
57
|
/** Check if input is valid */
|
|
60
58
|
const isValidInput = $derived(
|
|
61
59
|
inputValue.length > 0 &&
|
|
62
|
-
(config.minLength === undefined ||
|
|
63
|
-
|
|
64
|
-
(config.maxLength === undefined || inputValue.length <= config.maxLength),
|
|
60
|
+
(config.minLength === undefined || inputValue.length >= config.minLength) &&
|
|
61
|
+
(config.maxLength === undefined || inputValue.length <= config.maxLength)
|
|
65
62
|
);
|
|
66
63
|
|
|
67
64
|
/**
|
|
@@ -85,7 +82,7 @@
|
|
|
85
82
|
* Handle Enter key for single-line input
|
|
86
83
|
*/
|
|
87
84
|
function handleKeyDown(event: KeyboardEvent): void {
|
|
88
|
-
if (event.key ===
|
|
85
|
+
if (event.key === 'Enter' && !isMultiline && !event.shiftKey) {
|
|
89
86
|
event.preventDefault();
|
|
90
87
|
handleSubmit();
|
|
91
88
|
}
|
|
@@ -115,7 +112,7 @@
|
|
|
115
112
|
class="text-prompt__textarea"
|
|
116
113
|
class:text-prompt__textarea--resolved={isResolved}
|
|
117
114
|
value={displayValue}
|
|
118
|
-
placeholder={config.placeholder ??
|
|
115
|
+
placeholder={config.placeholder ?? 'Enter your response...'}
|
|
119
116
|
disabled={isResolved || isSubmitting}
|
|
120
117
|
oninput={handleInput}
|
|
121
118
|
onkeydown={handleKeyDown}
|
|
@@ -129,7 +126,7 @@
|
|
|
129
126
|
class="text-prompt__input"
|
|
130
127
|
class:text-prompt__input--resolved={isResolved}
|
|
131
128
|
value={displayValue}
|
|
132
|
-
placeholder={config.placeholder ??
|
|
129
|
+
placeholder={config.placeholder ?? 'Enter your response...'}
|
|
133
130
|
disabled={isResolved || isSubmitting}
|
|
134
131
|
oninput={handleInput}
|
|
135
132
|
onkeydown={handleKeyDown}
|
|
@@ -143,8 +140,8 @@
|
|
|
143
140
|
{#if !isResolved && (config.minLength !== undefined || config.maxLength !== undefined)}
|
|
144
141
|
<div class="text-prompt__char-count">
|
|
145
142
|
<span
|
|
146
|
-
class:text-prompt__char-count--warning={config.maxLength !==
|
|
147
|
-
|
|
143
|
+
class:text-prompt__char-count--warning={config.maxLength !== undefined &&
|
|
144
|
+
charCount > config.maxLength * 0.9}
|
|
148
145
|
>
|
|
149
146
|
{charCount}
|
|
150
147
|
{#if config.maxLength !== undefined}
|
|
@@ -181,9 +178,7 @@
|
|
|
181
178
|
<div class="text-prompt__resolved-badge">
|
|
182
179
|
<Icon icon="mdi:check-circle" />
|
|
183
180
|
<span>
|
|
184
|
-
{resolvedByUserName
|
|
185
|
-
? `Response submitted by ${resolvedByUserName}`
|
|
186
|
-
: "Response submitted"}
|
|
181
|
+
{resolvedByUserName ? `Response submitted by ${resolvedByUserName}` : 'Response submitted'}
|
|
187
182
|
</span>
|
|
188
183
|
</div>
|
|
189
184
|
{/if}
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module components/interrupt
|
|
8
8
|
*/
|
|
9
|
-
export { default as InterruptBubble } from
|
|
10
|
-
export { default as ConfirmationPrompt } from
|
|
11
|
-
export { default as ChoicePrompt } from
|
|
12
|
-
export { default as TextInputPrompt } from
|
|
13
|
-
export { default as FormPrompt } from
|
|
14
|
-
export { default as ReviewPrompt } from
|
|
9
|
+
export { default as InterruptBubble } from './InterruptBubble.svelte';
|
|
10
|
+
export { default as ConfirmationPrompt } from './ConfirmationPrompt.svelte';
|
|
11
|
+
export { default as ChoicePrompt } from './ChoicePrompt.svelte';
|
|
12
|
+
export { default as TextInputPrompt } from './TextInputPrompt.svelte';
|
|
13
|
+
export { default as FormPrompt } from './FormPrompt.svelte';
|
|
14
|
+
export { default as ReviewPrompt } from './ReviewPrompt.svelte';
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
* @module components/interrupt
|
|
8
8
|
*/
|
|
9
9
|
// Main container component
|
|
10
|
-
export { default as InterruptBubble } from
|
|
10
|
+
export { default as InterruptBubble } from './InterruptBubble.svelte';
|
|
11
11
|
// Prompt components
|
|
12
|
-
export { default as ConfirmationPrompt } from
|
|
13
|
-
export { default as ChoicePrompt } from
|
|
14
|
-
export { default as TextInputPrompt } from
|
|
15
|
-
export { default as FormPrompt } from
|
|
16
|
-
export { default as ReviewPrompt } from
|
|
12
|
+
export { default as ConfirmationPrompt } from './ConfirmationPrompt.svelte';
|
|
13
|
+
export { default as ChoicePrompt } from './ChoicePrompt.svelte';
|
|
14
|
+
export { default as TextInputPrompt } from './TextInputPrompt.svelte';
|
|
15
|
+
export { default as FormPrompt } from './FormPrompt.svelte';
|
|
16
|
+
export { default as ReviewPrompt } from './ReviewPrompt.svelte';
|