@d34dman/flowdrop 0.0.60 → 0.0.62
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 +6 -0
- package/dist/adapters/WorkflowAdapter.d.ts +1 -1
- package/dist/adapters/agentspec/AgentSpecAdapter.js +3 -1
- package/dist/api/client.d.ts +4 -0
- package/dist/api/client.js +6 -1
- package/dist/api/enhanced-client.js +7 -6
- package/dist/components/App.svelte +143 -219
- package/dist/components/CanvasBanner.stories.svelte +25 -0
- package/dist/components/CanvasBanner.stories.svelte.d.ts +27 -0
- package/dist/components/CanvasBanner.svelte +2 -2
- package/dist/components/ConfigForm.svelte +37 -36
- package/dist/components/ConfigPanel.stories.svelte +38 -0
- package/dist/components/ConfigPanel.stories.svelte.d.ts +27 -0
- package/dist/components/ConfigPanel.svelte +2 -2
- package/dist/components/ConnectionLine.svelte +2 -2
- package/dist/components/FlowDropZone.svelte +18 -2
- package/dist/components/FlowDropZone.svelte.d.ts +2 -0
- package/dist/components/LoadingSpinner.stories.svelte +30 -0
- package/dist/components/LoadingSpinner.stories.svelte.d.ts +27 -0
- package/dist/components/Logo.stories.svelte +22 -0
- package/dist/components/Logo.stories.svelte.d.ts +27 -0
- package/dist/components/Logo.svelte +33 -13
- package/dist/components/Logo.svelte.d.ts +1 -1
- package/dist/components/MarkdownDisplay.stories.svelte +21 -0
- package/dist/components/MarkdownDisplay.stories.svelte.d.ts +27 -0
- package/dist/components/MarkdownDisplay.svelte +4 -3
- package/dist/components/Navbar.stories.svelte +41 -0
- package/dist/components/Navbar.stories.svelte.d.ts +27 -0
- package/dist/components/Navbar.svelte +4 -4
- package/dist/components/NodeSidebar.svelte +12 -12
- package/dist/components/NodeStatusOverlay.stories.svelte +74 -0
- package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +27 -0
- package/dist/components/PipelineStatus.svelte +11 -4
- package/dist/components/PortCoordinateTracker.svelte +1 -1
- package/dist/components/SchemaForm.stories.svelte +101 -0
- package/dist/components/SchemaForm.stories.svelte.d.ts +27 -0
- package/dist/components/SchemaForm.svelte +17 -12
- package/dist/components/SettingsModal.svelte +3 -3
- package/dist/components/SettingsPanel.svelte +23 -22
- package/dist/components/StatusIcon.stories.svelte +60 -0
- package/dist/components/StatusIcon.stories.svelte.d.ts +27 -0
- package/dist/components/StatusIcon.svelte +7 -0
- package/dist/components/StatusLabel.stories.svelte +17 -0
- package/dist/components/StatusLabel.stories.svelte.d.ts +27 -0
- package/dist/components/ThemeToggle.stories.svelte +25 -0
- package/dist/components/ThemeToggle.stories.svelte.d.ts +27 -0
- package/dist/components/ThemeToggle.svelte +8 -8
- package/dist/components/UniversalNode.svelte +1 -1
- package/dist/components/WorkflowEditor.svelte +298 -294
- package/dist/components/form/FormAutocomplete.svelte +20 -19
- package/dist/components/form/FormCheckboxGroup.stories.svelte +28 -0
- package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormField.svelte +3 -3
- package/dist/components/form/FormFieldLight.svelte +2 -2
- package/dist/components/form/FormFieldWrapper.stories.svelte +31 -0
- package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormFieldset.svelte +7 -7
- package/dist/components/form/FormNumberField.stories.svelte +33 -0
- package/dist/components/form/FormNumberField.stories.svelte.d.ts +27 -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/FormSelect.stories.svelte +50 -0
- package/dist/components/form/FormSelect.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormTemplateEditor.svelte +2 -1
- package/dist/components/form/FormTextField.stories.svelte +30 -0
- package/dist/components/form/FormTextField.stories.svelte.d.ts +27 -0
- package/dist/components/form/FormTextarea.stories.svelte +31 -0
- package/dist/components/form/FormTextarea.stories.svelte.d.ts +27 -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/FormUISchemaRenderer.svelte +1 -1
- package/dist/components/form/types.d.ts +15 -47
- package/dist/components/interrupt/ChoicePrompt.stories.svelte +43 -0
- package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ChoicePrompt.svelte +24 -24
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +49 -0
- package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ConfirmationPrompt.svelte +19 -19
- package/dist/components/interrupt/FormPrompt.svelte +15 -15
- package/dist/components/interrupt/InterruptBubble.svelte +202 -236
- package/dist/components/interrupt/InterruptBubble.svelte.d.ts +1 -1
- package/dist/components/interrupt/ReviewPrompt.stories.svelte +46 -0
- package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/ReviewPrompt.svelte +842 -0
- package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +23 -0
- package/dist/components/interrupt/TextInputPrompt.stories.svelte +34 -0
- package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +27 -0
- package/dist/components/interrupt/TextInputPrompt.svelte +21 -21
- package/dist/components/nodes/GatewayNode.stories.svelte +76 -0
- package/dist/components/nodes/GatewayNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/GatewayNode.svelte +19 -17
- package/dist/components/nodes/IdeaNode.stories.svelte +48 -0
- package/dist/components/nodes/IdeaNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/IdeaNode.svelte +10 -26
- package/dist/components/nodes/NotesNode.stories.svelte +69 -0
- package/dist/components/nodes/NotesNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/NotesNode.svelte +8 -8
- package/dist/components/nodes/SimpleNode.stories.svelte +101 -0
- package/dist/components/nodes/SimpleNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/SimpleNode.svelte +16 -24
- package/dist/components/nodes/SquareNode.stories.svelte +56 -0
- package/dist/components/nodes/SquareNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/SquareNode.svelte +13 -21
- 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 +6 -6
- package/dist/components/nodes/ToolNode.stories.svelte +71 -0
- package/dist/components/nodes/ToolNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/ToolNode.svelte +7 -15
- package/dist/components/nodes/WorkflowNode.stories.svelte +50 -0
- package/dist/components/nodes/WorkflowNode.stories.svelte.d.ts +26 -0
- package/dist/components/nodes/WorkflowNode.svelte +13 -13
- package/dist/components/playground/ChatPanel.svelte +48 -48
- package/dist/components/playground/ExecutionLogs.svelte +23 -23
- package/dist/components/playground/InputCollector.svelte +24 -24
- package/dist/components/playground/MessageBubble.stories.svelte +49 -0
- package/dist/components/playground/MessageBubble.stories.svelte.d.ts +27 -0
- package/dist/components/playground/MessageBubble.svelte +49 -46
- package/dist/components/playground/Playground.svelte +203 -172
- package/dist/components/playground/PlaygroundModal.svelte +5 -5
- package/dist/components/playground/SessionManager.svelte +26 -26
- package/dist/config/constants.d.ts +22 -0
- package/dist/config/constants.js +22 -0
- package/dist/config/endpoints.d.ts +19 -0
- package/dist/config/runtimeConfig.js +2 -1
- package/dist/core/index.d.ts +5 -2
- package/dist/core/index.js +9 -1
- package/dist/editor/index.d.ts +13 -9
- package/dist/editor/index.js +15 -11
- package/dist/form/code.d.ts +2 -1
- package/dist/form/code.js +1 -3
- package/dist/form/markdown.d.ts +2 -1
- package/dist/form/markdown.js +1 -3
- package/dist/helpers/workflowEditorHelper.js +13 -9
- package/dist/mocks/app-forms.js +1 -0
- package/dist/mocks/app-navigation.js +3 -1
- package/dist/mocks/app-stores.d.ts +4 -4
- package/dist/playground/index.d.ts +5 -4
- package/dist/playground/index.js +15 -11
- package/dist/playground/mount.d.ts +20 -1
- package/dist/playground/mount.js +24 -6
- package/dist/services/agentSpecExecutionService.js +2 -1
- package/dist/services/api.js +10 -18
- package/dist/services/apiVariableService.js +2 -1
- package/dist/services/autoSaveService.d.ts +3 -3
- package/dist/services/autoSaveService.js +21 -17
- package/dist/services/categoriesApi.js +13 -5
- package/dist/services/draftStorage.js +5 -4
- package/dist/services/dynamicSchemaService.js +4 -4
- package/dist/services/globalSave.d.ts +60 -11
- package/dist/services/globalSave.js +160 -83
- package/dist/services/historyService.d.ts +2 -1
- package/dist/services/historyService.js +7 -3
- package/dist/services/interruptService.js +9 -8
- package/dist/services/nodeExecutionService.js +14 -6
- package/dist/services/playgroundService.d.ts +3 -2
- package/dist/services/playgroundService.js +8 -7
- package/dist/services/portConfigApi.js +11 -7
- package/dist/services/toastService.d.ts +1 -1
- package/dist/services/toastService.js +6 -5
- package/dist/services/variableService.js +3 -2
- package/dist/settings/index.d.ts +1 -1
- package/dist/settings/index.js +1 -1
- package/dist/stores/{categoriesStore.d.ts → categoriesStore.svelte.d.ts} +3 -3
- package/dist/stores/{categoriesStore.js → categoriesStore.svelte.js} +15 -18
- package/dist/stores/editorStateMachine.svelte.d.ts +42 -0
- package/dist/stores/editorStateMachine.svelte.js +132 -0
- package/dist/stores/{historyStore.d.ts → historyStore.svelte.d.ts} +18 -15
- package/dist/stores/{historyStore.js → historyStore.svelte.js} +40 -21
- package/dist/stores/{interruptStore.d.ts → interruptStore.svelte.d.ts} +16 -15
- package/dist/stores/{interruptStore.js → interruptStore.svelte.js} +85 -94
- package/dist/stores/{playgroundStore.d.ts → playgroundStore.svelte.d.ts} +52 -34
- package/dist/stores/{playgroundStore.js → playgroundStore.svelte.js} +193 -100
- package/dist/stores/{portCoordinateStore.d.ts → portCoordinateStore.svelte.d.ts} +10 -4
- package/dist/stores/{portCoordinateStore.js → portCoordinateStore.svelte.js} +38 -35
- package/dist/stores/{settingsStore.d.ts → settingsStore.svelte.d.ts} +45 -28
- package/dist/stores/{settingsStore.js → settingsStore.svelte.js} +169 -128
- package/dist/stores/{workflowStore.d.ts → workflowStore.svelte.d.ts} +101 -65
- package/dist/stores/{workflowStore.js → workflowStore.svelte.js} +285 -239
- package/dist/stories/CanvasDecorator.svelte +50 -0
- package/dist/stories/CanvasDecorator.svelte.d.ts +8 -0
- package/dist/stories/NodeDecorator.svelte +74 -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 +114 -61
- package/dist/styles/toast.css +2 -2
- package/dist/styles/tokens.css +250 -185
- package/dist/svelte-app.d.ts +0 -6
- package/dist/svelte-app.js +13 -31
- package/dist/types/index.d.ts +2 -0
- package/dist/types/interrupt.d.ts +89 -5
- package/dist/types/interrupt.js +13 -1
- package/dist/types/playground.d.ts +42 -1
- package/dist/types/playground.js +38 -0
- package/dist/types/settings.js +1 -1
- package/dist/utils/colors.js +4 -4
- package/dist/utils/connections.js +33 -8
- package/dist/utils/icons.js +1 -1
- package/dist/utils/logger.d.ts +47 -0
- package/dist/utils/logger.js +72 -0
- package/dist/utils/nodeWrapper.js +1 -1
- package/dist/utils/sanitize.d.ts +19 -0
- package/dist/utils/sanitize.js +31 -0
- package/dist/utils/validation.d.ts +29 -0
- package/dist/utils/validation.js +39 -0
- package/package.json +243 -232
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
CanvasDecorator: Renders child components inside an empty SvelteFlow canvas,
|
|
3
|
+
matching how overlay components (e.g. CanvasBanner) appear in the workflow editor.
|
|
4
|
+
-->
|
|
5
|
+
<script lang="ts">
|
|
6
|
+
import { SvelteFlow, Controls } from "@xyflow/svelte";
|
|
7
|
+
import type { ColorMode } from "@xyflow/svelte";
|
|
8
|
+
import "@xyflow/svelte/dist/style.css";
|
|
9
|
+
import type { Snippet } from "svelte";
|
|
10
|
+
|
|
11
|
+
let { children }: { children: Snippet } = $props();
|
|
12
|
+
|
|
13
|
+
// Watch the data-theme attribute set by Storybook's addon-themes
|
|
14
|
+
let colorMode = $state<ColorMode>(
|
|
15
|
+
(document.documentElement.getAttribute("data-theme") as ColorMode) || "light",
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
$effect(() => {
|
|
19
|
+
const observer = new MutationObserver(() => {
|
|
20
|
+
colorMode =
|
|
21
|
+
(document.documentElement.getAttribute("data-theme") as ColorMode) || "light";
|
|
22
|
+
});
|
|
23
|
+
observer.observe(document.documentElement, {
|
|
24
|
+
attributes: true,
|
|
25
|
+
attributeFilter: ["data-theme"],
|
|
26
|
+
});
|
|
27
|
+
return () => observer.disconnect();
|
|
28
|
+
});
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
<div class="canvas-decorator-wrapper">
|
|
32
|
+
<SvelteFlow nodes={[]} edges={[]} {colorMode}>
|
|
33
|
+
<Controls />
|
|
34
|
+
{@render children()}
|
|
35
|
+
</SvelteFlow>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<style>
|
|
39
|
+
.canvas-decorator-wrapper {
|
|
40
|
+
width: 800px;
|
|
41
|
+
height: 400px;
|
|
42
|
+
position: relative;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* Fix: SvelteFlow's scoped styles use non-prefixed --background-color-default
|
|
46
|
+
which doesn't update with colorMode="dark". Map the --xy- themed value. */
|
|
47
|
+
.canvas-decorator-wrapper :global(.svelte-flow.dark) {
|
|
48
|
+
--background-color-default: var(--xy-background-color-default);
|
|
49
|
+
}
|
|
50
|
+
</style>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import "@xyflow/svelte/dist/style.css";
|
|
2
|
+
import type { Snippet } from "svelte";
|
|
3
|
+
type $$ComponentProps = {
|
|
4
|
+
children: Snippet;
|
|
5
|
+
};
|
|
6
|
+
declare const CanvasDecorator: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
7
|
+
type CanvasDecorator = ReturnType<typeof CanvasDecorator>;
|
|
8
|
+
export default CanvasDecorator;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
NodeDecorator: Renders node components as real SvelteFlow nodes
|
|
3
|
+
inside a canvas, matching how they appear in the workflow editor.
|
|
4
|
+
-->
|
|
5
|
+
<script lang="ts">
|
|
6
|
+
import { SvelteFlow, Controls } from "@xyflow/svelte";
|
|
7
|
+
import type { Node, ColorMode } from "@xyflow/svelte";
|
|
8
|
+
import "@xyflow/svelte/dist/style.css";
|
|
9
|
+
import UniversalNode from "../components/UniversalNode.svelte";
|
|
10
|
+
import { registerBuiltinNodes } from "../registry/builtinNodes.js";
|
|
11
|
+
|
|
12
|
+
let { data, selected = false }: { data: Record<string, unknown>; selected?: boolean } = $props();
|
|
13
|
+
|
|
14
|
+
// Ensure built-in node components are registered
|
|
15
|
+
registerBuiltinNodes();
|
|
16
|
+
|
|
17
|
+
const nodeTypes = {
|
|
18
|
+
universalNode: UniversalNode,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
let nodes = $derived<Node[]>([
|
|
22
|
+
{
|
|
23
|
+
id: "story-node",
|
|
24
|
+
type: "universalNode",
|
|
25
|
+
position: { x: 0, y: 0 },
|
|
26
|
+
selected,
|
|
27
|
+
data,
|
|
28
|
+
},
|
|
29
|
+
]);
|
|
30
|
+
|
|
31
|
+
// Watch the data-theme attribute set by Storybook's addon-themes
|
|
32
|
+
let colorMode = $state<ColorMode>(
|
|
33
|
+
(document.documentElement.getAttribute("data-theme") as ColorMode) || "light",
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
$effect(() => {
|
|
37
|
+
const observer = new MutationObserver(() => {
|
|
38
|
+
colorMode =
|
|
39
|
+
(document.documentElement.getAttribute("data-theme") as ColorMode) || "light";
|
|
40
|
+
});
|
|
41
|
+
observer.observe(document.documentElement, {
|
|
42
|
+
attributes: true,
|
|
43
|
+
attributeFilter: ["data-theme"],
|
|
44
|
+
});
|
|
45
|
+
return () => observer.disconnect();
|
|
46
|
+
});
|
|
47
|
+
</script>
|
|
48
|
+
|
|
49
|
+
<div class="node-decorator-wrapper">
|
|
50
|
+
<SvelteFlow
|
|
51
|
+
{nodes}
|
|
52
|
+
edges={[]}
|
|
53
|
+
{nodeTypes}
|
|
54
|
+
fitView
|
|
55
|
+
fitViewOptions={{ maxZoom: 0.85, padding: 0.2 }}
|
|
56
|
+
{colorMode}
|
|
57
|
+
>
|
|
58
|
+
<Controls />
|
|
59
|
+
</SvelteFlow>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<style>
|
|
63
|
+
.node-decorator-wrapper {
|
|
64
|
+
width: 800px;
|
|
65
|
+
height: 400px;
|
|
66
|
+
position: relative;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* Fix: SvelteFlow's scoped styles use non-prefixed --background-color-default
|
|
70
|
+
which doesn't update with colorMode="dark". Map the --xy- themed value. */
|
|
71
|
+
.node-decorator-wrapper :global(.svelte-flow.dark) {
|
|
72
|
+
--background-color-default: var(--xy-background-color-default);
|
|
73
|
+
}
|
|
74
|
+
</style>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import "@xyflow/svelte/dist/style.css";
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
data: Record<string, unknown>;
|
|
4
|
+
selected?: boolean;
|
|
5
|
+
};
|
|
6
|
+
declare const NodeDecorator: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
7
|
+
type NodeDecorator = ReturnType<typeof NodeDecorator>;
|
|
8
|
+
export default NodeDecorator;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared story utilities
|
|
3
|
+
* Reusable mock data factories for Storybook stories
|
|
4
|
+
*/
|
|
5
|
+
import type { ConfirmationConfig, ChoiceConfig, TextConfig, ReviewConfig, ReviewChange } from "../types/interrupt.js";
|
|
6
|
+
export declare function createSampleNodeData(overrides?: Record<string, unknown>): {
|
|
7
|
+
label: string;
|
|
8
|
+
config: {};
|
|
9
|
+
metadata: {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
category: string;
|
|
14
|
+
version: string;
|
|
15
|
+
type: string;
|
|
16
|
+
inputs: {
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
type: string;
|
|
20
|
+
dataType: string;
|
|
21
|
+
required: boolean;
|
|
22
|
+
}[];
|
|
23
|
+
outputs: {
|
|
24
|
+
id: string;
|
|
25
|
+
name: string;
|
|
26
|
+
type: string;
|
|
27
|
+
dataType: string;
|
|
28
|
+
}[];
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export declare function createTerminalNodeData(variant?: "start" | "end" | "exit"): {
|
|
32
|
+
label: string;
|
|
33
|
+
config: {};
|
|
34
|
+
metadata: {
|
|
35
|
+
id: string;
|
|
36
|
+
name: string;
|
|
37
|
+
description: string;
|
|
38
|
+
category: string;
|
|
39
|
+
version: string;
|
|
40
|
+
type: string;
|
|
41
|
+
inputs: never[];
|
|
42
|
+
outputs: {
|
|
43
|
+
id: string;
|
|
44
|
+
name: string;
|
|
45
|
+
type: string;
|
|
46
|
+
dataType: string;
|
|
47
|
+
}[];
|
|
48
|
+
};
|
|
49
|
+
} | {
|
|
50
|
+
label: string;
|
|
51
|
+
config: {};
|
|
52
|
+
metadata: {
|
|
53
|
+
id: string;
|
|
54
|
+
name: string;
|
|
55
|
+
description: string;
|
|
56
|
+
category: string;
|
|
57
|
+
version: string;
|
|
58
|
+
type: string;
|
|
59
|
+
inputs: {
|
|
60
|
+
id: string;
|
|
61
|
+
name: string;
|
|
62
|
+
type: string;
|
|
63
|
+
dataType: string;
|
|
64
|
+
required: boolean;
|
|
65
|
+
}[];
|
|
66
|
+
outputs: never[];
|
|
67
|
+
};
|
|
68
|
+
} | {
|
|
69
|
+
label: string;
|
|
70
|
+
config: {};
|
|
71
|
+
metadata: {
|
|
72
|
+
id: string;
|
|
73
|
+
name: string;
|
|
74
|
+
description: string;
|
|
75
|
+
category: string;
|
|
76
|
+
version: string;
|
|
77
|
+
type: string;
|
|
78
|
+
subType: string;
|
|
79
|
+
inputs: {
|
|
80
|
+
id: string;
|
|
81
|
+
name: string;
|
|
82
|
+
type: string;
|
|
83
|
+
dataType: string;
|
|
84
|
+
required: boolean;
|
|
85
|
+
}[];
|
|
86
|
+
outputs: never[];
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
export declare function createConfirmationConfig(overrides?: Partial<ConfirmationConfig>): ConfirmationConfig;
|
|
90
|
+
export declare function createChoiceConfig(overrides?: Partial<ChoiceConfig>): ChoiceConfig;
|
|
91
|
+
export declare function createTextConfig(overrides?: Partial<TextConfig>): TextConfig;
|
|
92
|
+
export declare function createReviewConfig(overrides?: Partial<ReviewConfig>): ReviewConfig;
|
|
93
|
+
export declare function createReviewChange(overrides?: Partial<ReviewChange>): ReviewChange;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared story utilities
|
|
3
|
+
* Reusable mock data factories for Storybook stories
|
|
4
|
+
*/
|
|
5
|
+
export function createSampleNodeData(overrides) {
|
|
6
|
+
return {
|
|
7
|
+
label: "Sample Node",
|
|
8
|
+
config: {},
|
|
9
|
+
metadata: {
|
|
10
|
+
id: "sample-node",
|
|
11
|
+
name: "Sample Node",
|
|
12
|
+
description: "A sample node for stories",
|
|
13
|
+
category: "processing",
|
|
14
|
+
version: "1.0.0",
|
|
15
|
+
type: "default",
|
|
16
|
+
inputs: [{ id: "input", name: "Input", type: "input", dataType: "any", required: false }],
|
|
17
|
+
outputs: [{ id: "output", name: "Output", type: "output", dataType: "any" }]
|
|
18
|
+
},
|
|
19
|
+
...overrides
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function createTerminalNodeData(variant = "start") {
|
|
23
|
+
const configs = {
|
|
24
|
+
start: {
|
|
25
|
+
label: "Start",
|
|
26
|
+
config: {},
|
|
27
|
+
metadata: {
|
|
28
|
+
id: "start",
|
|
29
|
+
name: "Start",
|
|
30
|
+
description: "Workflow start point",
|
|
31
|
+
category: "terminal",
|
|
32
|
+
version: "1.0.0",
|
|
33
|
+
type: "terminal",
|
|
34
|
+
inputs: [],
|
|
35
|
+
outputs: [{ id: "output", name: "Output", type: "output", dataType: "any" }]
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
end: {
|
|
39
|
+
label: "End",
|
|
40
|
+
config: {},
|
|
41
|
+
metadata: {
|
|
42
|
+
id: "end",
|
|
43
|
+
name: "End",
|
|
44
|
+
description: "Workflow end point",
|
|
45
|
+
category: "terminal",
|
|
46
|
+
version: "1.0.0",
|
|
47
|
+
type: "terminal",
|
|
48
|
+
inputs: [{ id: "input", name: "Input", type: "input", dataType: "any", required: false }],
|
|
49
|
+
outputs: []
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
exit: {
|
|
53
|
+
label: "Exit",
|
|
54
|
+
config: {},
|
|
55
|
+
metadata: {
|
|
56
|
+
id: "exit",
|
|
57
|
+
name: "Exit",
|
|
58
|
+
description: "Early exit point",
|
|
59
|
+
category: "terminal",
|
|
60
|
+
version: "1.0.0",
|
|
61
|
+
type: "terminal",
|
|
62
|
+
subType: "exit",
|
|
63
|
+
inputs: [{ id: "input", name: "Input", type: "input", dataType: "any", required: false }],
|
|
64
|
+
outputs: []
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
return configs[variant];
|
|
69
|
+
}
|
|
70
|
+
export function createConfirmationConfig(overrides) {
|
|
71
|
+
return {
|
|
72
|
+
message: "Are you sure you want to proceed with this action?",
|
|
73
|
+
confirmLabel: "Yes, proceed",
|
|
74
|
+
cancelLabel: "Cancel",
|
|
75
|
+
...overrides
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
export function createChoiceConfig(overrides) {
|
|
79
|
+
return {
|
|
80
|
+
message: "Select a priority level for this task:",
|
|
81
|
+
options: [
|
|
82
|
+
{ value: "low", label: "Low", description: "Non-urgent task" },
|
|
83
|
+
{ value: "medium", label: "Medium", description: "Normal priority" },
|
|
84
|
+
{ value: "high", label: "High", description: "Urgent task" }
|
|
85
|
+
],
|
|
86
|
+
multiple: false,
|
|
87
|
+
...overrides
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export function createTextConfig(overrides) {
|
|
91
|
+
return {
|
|
92
|
+
message: "Please provide additional details:",
|
|
93
|
+
placeholder: "Enter your response here...",
|
|
94
|
+
multiline: false,
|
|
95
|
+
...overrides
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export function createReviewConfig(overrides) {
|
|
99
|
+
return {
|
|
100
|
+
message: "Review the following changes before submitting:",
|
|
101
|
+
changes: [
|
|
102
|
+
{ field: "title", label: "Title", original: "Old Title", proposed: "New Title" },
|
|
103
|
+
{
|
|
104
|
+
field: "description",
|
|
105
|
+
label: "Description",
|
|
106
|
+
original: "Old description text",
|
|
107
|
+
proposed: "Updated description text"
|
|
108
|
+
},
|
|
109
|
+
{ field: "status", label: "Status", original: "draft", proposed: "published" }
|
|
110
|
+
],
|
|
111
|
+
...overrides
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
export function createReviewChange(overrides) {
|
|
115
|
+
return {
|
|
116
|
+
field: "title",
|
|
117
|
+
label: "Title",
|
|
118
|
+
original: "Original value",
|
|
119
|
+
proposed: "Proposed value",
|
|
120
|
+
...overrides
|
|
121
|
+
};
|
|
122
|
+
}
|