@flowdrop/flowdrop 1.6.0 → 1.8.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.
Files changed (78) hide show
  1. package/README.md +10 -0
  2. package/dist/components/App.svelte +153 -84
  3. package/dist/components/App.svelte.d.ts +16 -1
  4. package/dist/components/ConfigModal.svelte +2 -1
  5. package/dist/components/ConfigPanel.svelte +3 -2
  6. package/dist/components/FlowDropZone.svelte +2 -1
  7. package/dist/components/LogsSidebar.svelte +3 -2
  8. package/dist/components/Navbar.svelte +10 -6
  9. package/dist/components/NodeSidebar.svelte +4 -3
  10. package/dist/components/NodeStatusOverlay.svelte +14 -7
  11. package/dist/components/NodeSwapPicker.svelte +2 -1
  12. package/dist/components/PipelineStatus.svelte +10 -7
  13. package/dist/components/ReadOnlyDetails.svelte +4 -2
  14. package/dist/components/SchemaForm.svelte +20 -9
  15. package/dist/components/SchemaForm.svelte.d.ts +2 -4
  16. package/dist/components/SettingsModal.svelte +4 -3
  17. package/dist/components/SettingsPanel.svelte +3 -2
  18. package/dist/components/SwapMappingEditor.svelte +2 -1
  19. package/dist/components/WorkflowEditor.svelte +3 -2
  20. package/dist/components/chat/AIChatPanel.svelte +22 -7
  21. package/dist/components/chat/AIChatPanel.svelte.d.ts +3 -0
  22. package/dist/components/chat/CommandPreview.svelte +10 -6
  23. package/dist/components/console/CommandConsole.svelte +4 -3
  24. package/dist/components/form/FormArray.svelte +33 -20
  25. package/dist/components/form/FormArray.svelte.d.ts +3 -1
  26. package/dist/components/form/FormAutocomplete.svelte +18 -7
  27. package/dist/components/form/FormCodeEditor.svelte +6 -4
  28. package/dist/components/form/FormFieldWrapper.svelte +2 -1
  29. package/dist/components/form/FormMarkdownEditor.svelte +152 -108
  30. package/dist/components/form/FormMarkdownEditor.svelte.d.ts +1 -1
  31. package/dist/components/form/FormTemplateEditor.svelte +2 -1
  32. package/dist/components/form/FormToggle.svelte +23 -5
  33. package/dist/components/form/FormToggle.svelte.d.ts +6 -2
  34. package/dist/components/interrupt/ChoicePrompt.svelte +14 -5
  35. package/dist/components/interrupt/ConfirmationPrompt.svelte +8 -5
  36. package/dist/components/interrupt/FormPrompt.svelte +28 -7
  37. package/dist/components/interrupt/InterruptBubble.svelte +27 -18
  38. package/dist/components/interrupt/ReviewPrompt.svelte +32 -22
  39. package/dist/components/interrupt/TextInputPrompt.svelte +12 -5
  40. package/dist/components/layouts/MainLayout.svelte +4 -3
  41. package/dist/components/nodes/GatewayNode.svelte +8 -3
  42. package/dist/components/nodes/IdeaNode.svelte +2 -1
  43. package/dist/components/nodes/NotesNode.svelte +18 -12
  44. package/dist/components/nodes/SimpleNode.svelte +8 -8
  45. package/dist/components/nodes/WorkflowNode.svelte +8 -3
  46. package/dist/components/playground/ChatPanel.svelte +36 -24
  47. package/dist/components/playground/MessageBubble.svelte +15 -7
  48. package/dist/components/playground/Playground.svelte +2 -1
  49. package/dist/components/playground/PlaygroundModal.svelte +2 -1
  50. package/dist/components/playground/SessionManager.svelte +14 -10
  51. package/dist/core/index.d.ts +2 -0
  52. package/dist/core/index.js +9 -0
  53. package/dist/editor/index.d.ts +1 -1
  54. package/dist/editor/index.js +1 -1
  55. package/dist/messages/context.d.ts +29 -0
  56. package/dist/messages/context.js +38 -0
  57. package/dist/messages/defaults.d.ts +396 -0
  58. package/dist/messages/defaults.js +356 -0
  59. package/dist/messages/deprecation.d.ts +20 -0
  60. package/dist/messages/deprecation.js +33 -0
  61. package/dist/messages/index.d.ts +11 -0
  62. package/dist/messages/index.js +10 -0
  63. package/dist/messages/merge.d.ts +28 -0
  64. package/dist/messages/merge.js +53 -0
  65. package/dist/messages/types.d.ts +29 -0
  66. package/dist/messages/types.js +13 -0
  67. package/dist/schemas/v1/workflow.schema.json +5 -0
  68. package/dist/services/draftStorage.d.ts +13 -0
  69. package/dist/services/draftStorage.js +36 -0
  70. package/dist/stores/workflowStore.svelte.d.ts +1 -0
  71. package/dist/stores/workflowStore.svelte.js +1 -0
  72. package/dist/styles/base.css +13 -4
  73. package/dist/svelte-app.d.ts +11 -0
  74. package/dist/svelte-app.js +11 -2
  75. package/dist/types/index.d.ts +2 -0
  76. package/dist/utils/connections.d.ts +4 -0
  77. package/dist/utils/connections.js +6 -0
  78. package/package.json +1 -1
@@ -39,13 +39,22 @@
39
39
  --xy-controls-button-border-color: var(--fd-controls-button-border, var(--fd-border));
40
40
  --xy-controls-box-shadow: var(--fd-controls-box-shadow, 0 0 2px 1px rgba(0, 0, 0, 0.08));
41
41
 
42
- --xy-minimap-background-color: var(--fd-minimap-bg, var(--fd-card));
42
+ --xy-minimap-background-color: var(--fd-minimap-bg, var(--fd-muted));
43
43
  --xy-minimap-mask-background-color: var(--fd-minimap-mask-bg, var(--fd-backdrop));
44
44
  --xy-minimap-mask-stroke-color: var(--fd-minimap-mask-stroke, var(--fd-border));
45
45
  --xy-minimap-mask-stroke-width: var(--fd-minimap-mask-stroke-width, 1);
46
- --xy-minimap-node-background-color: var(--fd-minimap-node-bg, var(--fd-muted));
47
- --xy-minimap-node-stroke-color: var(--fd-minimap-node-stroke, var(--fd-border-muted));
48
- --xy-minimap-node-stroke-width: var(--fd-minimap-node-stroke-width, 2);
46
+ --xy-minimap-node-background-color: var(--fd-minimap-node-bg, var(--fd-muted-foreground));
47
+ --xy-minimap-node-stroke-color: var(--fd-minimap-node-stroke, var(--fd-border-strong));
48
+ --xy-minimap-node-stroke-width: var(--fd-minimap-node-stroke-width, 1);
49
+ }
50
+
51
+ /* Minimap: render as a clearly bounded floating panel so users don't mistake
52
+ it for the canvas and pan unintentionally when clicking/dragging on it. */
53
+ .svelte-flow .svelte-flow__minimap {
54
+ border: 1px solid var(--fd-border-strong);
55
+ border-radius: var(--fd-radius-md);
56
+ box-shadow: var(--fd-shadow-md);
57
+ overflow: hidden;
49
58
  }
50
59
 
51
60
  /* Flow node handles: 20px connection area, 12px visible circle (::before)
@@ -109,6 +109,17 @@ export interface MountedFlowDropApp {
109
109
  * Trigger export operation (downloads JSON)
110
110
  */
111
111
  export: () => void;
112
+ /**
113
+ * Clear all FlowDrop workflow drafts from `localStorage`.
114
+ *
115
+ * Removes every key beginning with `flowdrop:draft:` plus the custom
116
+ * `draftStorageKey` configured at mount time (if any). Call this from
117
+ * the host application's logout handler so drafts do not persist across
118
+ * user sessions on shared devices.
119
+ *
120
+ * @returns The number of entries removed.
121
+ */
122
+ clearAllDrafts: () => number;
112
123
  }
113
124
  /**
114
125
  * Mount the full FlowDrop App with navbar, sidebars, and workflow editor
@@ -17,7 +17,7 @@ import { fetchPortConfig } from './services/portConfigApi.js';
17
17
  import { fetchCategories } from './services/categoriesApi.js';
18
18
  import { initializeCategories } from './stores/categoriesStore.svelte.js';
19
19
  import { isDirty, markAsSaved, getWorkflow as getWorkflowFromStore, setOnDirtyStateChange, setOnWorkflowChange } from './stores/workflowStore.svelte.js';
20
- import { DraftAutoSaveManager, getDraftStorageKey } from './services/draftStorage.js';
20
+ import { DraftAutoSaveManager, getDraftStorageKey, clearAllDrafts as clearAllDraftsFromStorage } from './services/draftStorage.js';
21
21
  import { mergeFeatures } from './types/events.js';
22
22
  import { initializeSettings } from './stores/settingsStore.svelte.js';
23
23
  import { logger } from './utils/logger.js';
@@ -199,6 +199,14 @@ export async function mountFlowDropApp(container, options = {}) {
199
199
  },
200
200
  export: () => {
201
201
  globalExportWorkflow();
202
+ },
203
+ clearAllDrafts: () => {
204
+ const extras = customDraftKey ? [customDraftKey] : [];
205
+ const removed = clearAllDraftsFromStorage(extras);
206
+ if (state.draftManager) {
207
+ state.draftManager.markAsSaved();
208
+ }
209
+ return removed;
202
210
  }
203
211
  };
204
212
  return mountedApp;
@@ -283,7 +291,8 @@ export async function mountWorkflowEditor(container, options = {}) {
283
291
  },
284
292
  export: () => {
285
293
  globalExportWorkflow();
286
- }
294
+ },
295
+ clearAllDrafts: () => clearAllDraftsFromStorage()
287
296
  };
288
297
  return mountedApp;
289
298
  }
@@ -1150,6 +1150,8 @@ export interface Workflow {
1150
1150
  /** Workflow format. Determines sidebar filtering and export behavior. */
1151
1151
  format?: WorkflowFormat;
1152
1152
  };
1153
+ /** Custom workflow-level configuration values, populated via workflowSettingsSchema. */
1154
+ config?: Record<string, unknown>;
1153
1155
  }
1154
1156
  /**
1155
1157
  * API response types
@@ -57,6 +57,10 @@ export declare class PortCompatibilityChecker {
57
57
  * Initialize the global port compatibility checker
58
58
  */
59
59
  export declare function initializePortCompatibility(portConfig: PortConfig): void;
60
+ /**
61
+ * Returns true if the port compatibility checker has been initialized.
62
+ */
63
+ export declare function isPortCompatibilityInitialized(): boolean;
60
64
  /**
61
65
  * Get the global port compatibility checker
62
66
  */
@@ -114,6 +114,12 @@ let globalCompatibilityChecker = null;
114
114
  export function initializePortCompatibility(portConfig) {
115
115
  globalCompatibilityChecker = new PortCompatibilityChecker(portConfig);
116
116
  }
117
+ /**
118
+ * Returns true if the port compatibility checker has been initialized.
119
+ */
120
+ export function isPortCompatibilityInitialized() {
121
+ return globalCompatibilityChecker !== null;
122
+ }
117
123
  /**
118
124
  * Get the global port compatibility checker
119
125
  */
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "A drop-in visual workflow editor for any web application. You own the backend. You own the data. You own the orchestration.",
4
4
  "license": "MIT",
5
5
  "private": false,
6
- "version": "1.6.0",
6
+ "version": "1.8.0",
7
7
  "author": "Shibin Das (D34dMan)",
8
8
  "bugs": {
9
9
  "url": "https://github.com/flowdrop-io/flowdrop/issues"