@flowdrop/flowdrop 1.5.0 → 1.7.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 (435) hide show
  1. package/README.md +46 -47
  2. package/dist/adapters/WorkflowAdapter.d.ts +1 -1
  3. package/dist/adapters/WorkflowAdapter.js +26 -26
  4. package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +2 -2
  5. package/dist/adapters/agentspec/AgentSpecAdapter.js +122 -133
  6. package/dist/adapters/agentspec/agentAdapter.d.ts +2 -2
  7. package/dist/adapters/agentspec/agentAdapter.js +10 -10
  8. package/dist/adapters/agentspec/autoLayout.d.ts +1 -1
  9. package/dist/adapters/agentspec/autoLayout.js +7 -9
  10. package/dist/adapters/agentspec/componentTypeDefaults.d.ts +1 -1
  11. package/dist/adapters/agentspec/componentTypeDefaults.js +120 -120
  12. package/dist/adapters/agentspec/defaultNodeTypes.d.ts +2 -2
  13. package/dist/adapters/agentspec/defaultNodeTypes.js +307 -307
  14. package/dist/adapters/agentspec/index.d.ts +10 -10
  15. package/dist/adapters/agentspec/index.js +6 -6
  16. package/dist/adapters/agentspec/validator.d.ts +2 -2
  17. package/dist/adapters/agentspec/validator.js +20 -22
  18. package/dist/api/enhanced-client.d.ts +3 -3
  19. package/dist/api/enhanced-client.js +72 -73
  20. package/dist/chat/commandClassifier.js +6 -6
  21. package/dist/chat/index.d.ts +5 -5
  22. package/dist/chat/index.js +4 -4
  23. package/dist/chat/responseParser.d.ts +6 -6
  24. package/dist/chat/responseParser.js +28 -24
  25. package/dist/commands/batch.d.ts +1 -1
  26. package/dist/commands/batch.js +5 -7
  27. package/dist/commands/executor.d.ts +2 -2
  28. package/dist/commands/executor.js +320 -231
  29. package/dist/commands/index.d.ts +6 -6
  30. package/dist/commands/index.js +5 -5
  31. package/dist/commands/parser.d.ts +1 -1
  32. package/dist/commands/parser.js +91 -74
  33. package/dist/commands/positioner.d.ts +2 -2
  34. package/dist/commands/positioner.js +1 -1
  35. package/dist/commands/storeIntegration.svelte.d.ts +2 -2
  36. package/dist/commands/storeIntegration.svelte.js +5 -5
  37. package/dist/commands/types.d.ts +42 -42
  38. package/dist/commands/types.js +2 -2
  39. package/dist/components/App.svelte +280 -303
  40. package/dist/components/App.svelte.d.ts +11 -9
  41. package/dist/components/CanvasBanner.stories.svelte +10 -16
  42. package/dist/components/CanvasBanner.stories.svelte.d.ts +1 -1
  43. package/dist/components/CanvasBanner.svelte +2 -2
  44. package/dist/components/CanvasBanner.svelte.d.ts +1 -1
  45. package/dist/components/CanvasController.svelte +3 -4
  46. package/dist/components/ConfigForm.svelte +118 -256
  47. package/dist/components/ConfigForm.svelte.d.ts +2 -2
  48. package/dist/components/ConfigMappingRow.svelte +7 -9
  49. package/dist/components/ConfigMappingRow.svelte.d.ts +1 -1
  50. package/dist/components/ConfigModal.svelte +3 -3
  51. package/dist/components/ConfigModal.svelte.d.ts +1 -1
  52. package/dist/components/ConfigPanel.stories.svelte +19 -19
  53. package/dist/components/ConfigPanel.stories.svelte.d.ts +1 -1
  54. package/dist/components/ConfigPanel.svelte +9 -20
  55. package/dist/components/ConfigPanel.svelte.d.ts +1 -1
  56. package/dist/components/ConnectionLine.svelte +4 -4
  57. package/dist/components/EdgeRefresher.svelte +1 -1
  58. package/dist/components/FlowDropEdge.stories.svelte +110 -110
  59. package/dist/components/FlowDropEdge.svelte +9 -9
  60. package/dist/components/FlowDropEdge.svelte.d.ts +1 -1
  61. package/dist/components/FlowDropZone.svelte +6 -9
  62. package/dist/components/FlowDropZone.svelte.d.ts +1 -1
  63. package/dist/components/LoadingSpinner.stories.svelte +13 -13
  64. package/dist/components/LoadingSpinner.stories.svelte.d.ts +1 -1
  65. package/dist/components/LoadingSpinner.svelte +3 -3
  66. package/dist/components/LoadingSpinner.svelte.d.ts +1 -1
  67. package/dist/components/Logo.stories.svelte +4 -4
  68. package/dist/components/Logo.stories.svelte.d.ts +1 -1
  69. package/dist/components/Logo.svelte +3 -9
  70. package/dist/components/LogsSidebar.svelte +41 -48
  71. package/dist/components/LogsSidebar.svelte.d.ts +1 -1
  72. package/dist/components/MarkdownDisplay.stories.svelte +10 -14
  73. package/dist/components/MarkdownDisplay.stories.svelte.d.ts +1 -1
  74. package/dist/components/MarkdownDisplay.svelte +4 -6
  75. package/dist/components/Navbar.stories.svelte +19 -19
  76. package/dist/components/Navbar.stories.svelte.d.ts +1 -1
  77. package/dist/components/Navbar.svelte +28 -49
  78. package/dist/components/Navbar.svelte.d.ts +2 -2
  79. package/dist/components/NodeSidebar.svelte +42 -88
  80. package/dist/components/NodeSidebar.svelte.d.ts +1 -1
  81. package/dist/components/NodeStatusOverlay.stories.svelte +19 -31
  82. package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +1 -1
  83. package/dist/components/NodeStatusOverlay.svelte +40 -55
  84. package/dist/components/NodeStatusOverlay.svelte.d.ts +3 -3
  85. package/dist/components/NodeSwapPicker.svelte +20 -64
  86. package/dist/components/NodeSwapPicker.svelte.d.ts +1 -1
  87. package/dist/components/PipelineStatus.svelte +63 -89
  88. package/dist/components/PipelineStatus.svelte.d.ts +4 -4
  89. package/dist/components/PortCoordinateTracker.svelte +5 -7
  90. package/dist/components/PortCoordinateTracker.svelte.d.ts +1 -1
  91. package/dist/components/PortMappingRow.svelte +20 -24
  92. package/dist/components/PortMappingRow.svelte.d.ts +2 -2
  93. package/dist/components/ReadOnlyDetails.svelte +1 -1
  94. package/dist/components/SchemaForm.stories.svelte +53 -53
  95. package/dist/components/SchemaForm.stories.svelte.d.ts +1 -1
  96. package/dist/components/SchemaForm.svelte +24 -51
  97. package/dist/components/SchemaForm.svelte.d.ts +2 -2
  98. package/dist/components/SettingsModal.svelte +6 -9
  99. package/dist/components/SettingsModal.svelte.d.ts +1 -1
  100. package/dist/components/SettingsPanel.svelte +138 -158
  101. package/dist/components/SettingsPanel.svelte.d.ts +1 -1
  102. package/dist/components/StatusIcon.stories.svelte +16 -29
  103. package/dist/components/StatusIcon.stories.svelte.d.ts +1 -1
  104. package/dist/components/StatusIcon.svelte +19 -19
  105. package/dist/components/StatusIcon.svelte.d.ts +2 -2
  106. package/dist/components/StatusLabel.stories.svelte +8 -8
  107. package/dist/components/StatusLabel.stories.svelte.d.ts +1 -1
  108. package/dist/components/SwapMappingEditor.svelte +35 -56
  109. package/dist/components/SwapMappingEditor.svelte.d.ts +2 -2
  110. package/dist/components/ThemeToggle.stories.svelte +10 -10
  111. package/dist/components/ThemeToggle.stories.svelte.d.ts +1 -1
  112. package/dist/components/ThemeToggle.svelte +22 -33
  113. package/dist/components/ThemeToggle.svelte.d.ts +1 -1
  114. package/dist/components/UniversalNode.svelte +29 -41
  115. package/dist/components/UniversalNode.svelte.d.ts +3 -3
  116. package/dist/components/WorkflowEditor.svelte +113 -168
  117. package/dist/components/WorkflowEditor.svelte.d.ts +4 -4
  118. package/dist/components/chat/AIChatPanel.svelte +272 -133
  119. package/dist/components/chat/AIChatPanel.svelte.d.ts +3 -3
  120. package/dist/components/chat/CommandPreview.svelte +74 -24
  121. package/dist/components/chat/CommandPreview.svelte.d.ts +1 -1
  122. package/dist/components/console/CommandConsole.stories.svelte +71 -53
  123. package/dist/components/console/CommandConsole.stories.svelte.d.ts +1 -1
  124. package/dist/components/console/CommandConsole.svelte +39 -35
  125. package/dist/components/console/CommandConsole.svelte.d.ts +2 -2
  126. package/dist/components/console/ConsoleAutocomplete.svelte +6 -3
  127. package/dist/components/console/ConsoleInput.svelte +148 -89
  128. package/dist/components/console/ConsoleInput.svelte.d.ts +1 -1
  129. package/dist/components/console/ConsoleOutput.svelte +5 -10
  130. package/dist/components/console/ConsoleOutput.svelte.d.ts +1 -1
  131. package/dist/components/console/formatters.d.ts +1 -1
  132. package/dist/components/console/formatters.js +27 -29
  133. package/dist/components/form/FormArray.svelte +75 -132
  134. package/dist/components/form/FormArray.svelte.d.ts +1 -1
  135. package/dist/components/form/FormAutocomplete.svelte +65 -108
  136. package/dist/components/form/FormAutocomplete.svelte.d.ts +1 -1
  137. package/dist/components/form/FormCheckboxGroup.stories.svelte +13 -16
  138. package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +1 -1
  139. package/dist/components/form/FormCheckboxGroup.svelte +2 -2
  140. package/dist/components/form/FormCodeEditor.svelte +46 -59
  141. package/dist/components/form/FormField.svelte +79 -90
  142. package/dist/components/form/FormField.svelte.d.ts +2 -2
  143. package/dist/components/form/FormFieldLight.svelte +72 -88
  144. package/dist/components/form/FormFieldLight.svelte.d.ts +1 -1
  145. package/dist/components/form/FormFieldWrapper.stories.svelte +14 -14
  146. package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +1 -1
  147. package/dist/components/form/FormFieldWrapper.svelte +2 -9
  148. package/dist/components/form/FormFieldWrapper.svelte.d.ts +1 -1
  149. package/dist/components/form/FormFieldset.svelte +3 -3
  150. package/dist/components/form/FormFieldset.svelte.d.ts +2 -2
  151. package/dist/components/form/FormMarkdownEditor.svelte +123 -156
  152. package/dist/components/form/FormNumberField.stories.svelte +18 -18
  153. package/dist/components/form/FormNumberField.stories.svelte.d.ts +1 -1
  154. package/dist/components/form/FormNumberField.svelte +6 -6
  155. package/dist/components/form/FormRangeField.stories.svelte +13 -13
  156. package/dist/components/form/FormRangeField.stories.svelte.d.ts +1 -1
  157. package/dist/components/form/FormRangeField.svelte +4 -12
  158. package/dist/components/form/FormSelect.stories.svelte +21 -21
  159. package/dist/components/form/FormSelect.stories.svelte.d.ts +1 -1
  160. package/dist/components/form/FormSelect.svelte +5 -5
  161. package/dist/components/form/FormSelect.svelte.d.ts +1 -1
  162. package/dist/components/form/FormTemplateEditor.svelte +126 -175
  163. package/dist/components/form/FormTemplateEditor.svelte.d.ts +1 -1
  164. package/dist/components/form/FormTextField.stories.svelte +17 -23
  165. package/dist/components/form/FormTextField.stories.svelte.d.ts +1 -1
  166. package/dist/components/form/FormTextField.svelte +4 -4
  167. package/dist/components/form/FormTextarea.stories.svelte +18 -21
  168. package/dist/components/form/FormTextarea.stories.svelte.d.ts +1 -1
  169. package/dist/components/form/FormTextarea.svelte +4 -4
  170. package/dist/components/form/FormToggle.stories.svelte +13 -16
  171. package/dist/components/form/FormToggle.stories.svelte.d.ts +1 -1
  172. package/dist/components/form/FormToggle.svelte +3 -3
  173. package/dist/components/form/FormUISchemaRenderer.svelte +12 -19
  174. package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +3 -3
  175. package/dist/components/form/index.d.ts +19 -19
  176. package/dist/components/form/index.js +18 -18
  177. package/dist/components/form/templateAutocomplete.d.ts +2 -2
  178. package/dist/components/form/templateAutocomplete.js +55 -64
  179. package/dist/components/form/types.d.ts +6 -6
  180. package/dist/components/form/types.js +4 -9
  181. package/dist/components/icons/AlertCircleIcon.svelte +1 -6
  182. package/dist/components/icons/CogIcon.svelte +1 -6
  183. package/dist/components/interrupt/ChoicePrompt.stories.svelte +27 -27
  184. package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +1 -1
  185. package/dist/components/interrupt/ChoicePrompt.svelte +17 -41
  186. package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +1 -1
  187. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +17 -17
  188. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +1 -1
  189. package/dist/components/interrupt/ConfirmationPrompt.svelte +10 -16
  190. package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +1 -1
  191. package/dist/components/interrupt/FormPrompt.svelte +10 -15
  192. package/dist/components/interrupt/FormPrompt.svelte.d.ts +1 -1
  193. package/dist/components/interrupt/InterruptBubble.svelte +87 -121
  194. package/dist/components/interrupt/InterruptBubble.svelte.d.ts +2 -2
  195. package/dist/components/interrupt/ReviewPrompt.stories.svelte +37 -37
  196. package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +1 -1
  197. package/dist/components/interrupt/ReviewPrompt.svelte +55 -75
  198. package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +1 -1
  199. package/dist/components/interrupt/TextInputPrompt.stories.svelte +16 -17
  200. package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +1 -1
  201. package/dist/components/interrupt/TextInputPrompt.svelte +13 -18
  202. package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +1 -1
  203. package/dist/components/interrupt/index.d.ts +6 -6
  204. package/dist/components/interrupt/index.js +6 -6
  205. package/dist/components/layouts/MainLayout.svelte +46 -84
  206. package/dist/components/layouts/MainLayout.svelte.d.ts +6 -6
  207. package/dist/components/nodes/GatewayNode.stories.svelte +64 -65
  208. package/dist/components/nodes/GatewayNode.svelte +37 -70
  209. package/dist/components/nodes/GatewayNode.svelte.d.ts +3 -3
  210. package/dist/components/nodes/IdeaNode.stories.svelte +25 -26
  211. package/dist/components/nodes/IdeaNode.svelte +22 -36
  212. package/dist/components/nodes/IdeaNode.svelte.d.ts +1 -1
  213. package/dist/components/nodes/NotesNode.stories.svelte +37 -38
  214. package/dist/components/nodes/NotesNode.svelte +28 -39
  215. package/dist/components/nodes/NotesNode.svelte.d.ts +1 -1
  216. package/dist/components/nodes/SimpleNode.stories.svelte +137 -138
  217. package/dist/components/nodes/SimpleNode.svelte +51 -81
  218. package/dist/components/nodes/SimpleNode.svelte.d.ts +1 -1
  219. package/dist/components/nodes/SquareNode.stories.svelte +75 -75
  220. package/dist/components/nodes/SquareNode.svelte +42 -68
  221. package/dist/components/nodes/SquareNode.svelte.d.ts +1 -1
  222. package/dist/components/nodes/TerminalNode.stories.svelte +10 -10
  223. package/dist/components/nodes/TerminalNode.svelte +74 -112
  224. package/dist/components/nodes/TerminalNode.svelte.d.ts +1 -1
  225. package/dist/components/nodes/ToolNode.stories.svelte +115 -116
  226. package/dist/components/nodes/ToolNode.svelte +31 -64
  227. package/dist/components/nodes/ToolNode.svelte.d.ts +1 -1
  228. package/dist/components/nodes/WorkflowNode.stories.svelte +84 -89
  229. package/dist/components/nodes/WorkflowNode.svelte +50 -103
  230. package/dist/components/nodes/WorkflowNode.svelte.d.ts +3 -3
  231. package/dist/components/playground/ChatPanel.svelte +47 -103
  232. package/dist/components/playground/ExecutionLogs.svelte +45 -68
  233. package/dist/components/playground/InputCollector.svelte +32 -51
  234. package/dist/components/playground/MessageBubble.stories.svelte +25 -25
  235. package/dist/components/playground/MessageBubble.stories.svelte.d.ts +1 -1
  236. package/dist/components/playground/MessageBubble.svelte +54 -70
  237. package/dist/components/playground/MessageBubble.svelte.d.ts +1 -1
  238. package/dist/components/playground/Playground.svelte +60 -91
  239. package/dist/components/playground/Playground.svelte.d.ts +3 -3
  240. package/dist/components/playground/PlaygroundModal.svelte +8 -12
  241. package/dist/components/playground/PlaygroundModal.svelte.d.ts +3 -3
  242. package/dist/components/playground/SessionManager.svelte +34 -40
  243. package/dist/components/playground/SessionManager.svelte.d.ts +1 -1
  244. package/dist/config/agentSpecEndpoints.d.ts +1 -1
  245. package/dist/config/agentSpecEndpoints.js +20 -20
  246. package/dist/config/constants.js +2 -2
  247. package/dist/config/defaultCategories.d.ts +1 -1
  248. package/dist/config/defaultCategories.js +86 -86
  249. package/dist/config/defaultPortConfig.d.ts +1 -1
  250. package/dist/config/defaultPortConfig.js +144 -144
  251. package/dist/config/endpoints.d.ts +4 -4
  252. package/dist/config/endpoints.js +68 -68
  253. package/dist/config/runtimeConfig.d.ts +2 -2
  254. package/dist/config/runtimeConfig.js +8 -8
  255. package/dist/core/index.d.ts +68 -68
  256. package/dist/core/index.js +38 -38
  257. package/dist/display/index.d.ts +2 -2
  258. package/dist/display/index.js +2 -2
  259. package/dist/editor/index.d.ts +64 -64
  260. package/dist/editor/index.js +54 -54
  261. package/dist/form/code.d.ts +5 -5
  262. package/dist/form/code.js +14 -14
  263. package/dist/form/fieldRegistry.d.ts +3 -3
  264. package/dist/form/fieldRegistry.js +9 -11
  265. package/dist/form/full.d.ts +8 -8
  266. package/dist/form/full.js +9 -9
  267. package/dist/form/index.d.ts +18 -18
  268. package/dist/form/index.js +16 -16
  269. package/dist/form/markdown.d.ts +4 -4
  270. package/dist/form/markdown.js +8 -8
  271. package/dist/helpers/proximityConnect.d.ts +3 -3
  272. package/dist/helpers/proximityConnect.js +32 -34
  273. package/dist/helpers/workflowEditorHelper.d.ts +6 -6
  274. package/dist/helpers/workflowEditorHelper.js +64 -68
  275. package/dist/index.d.ts +6 -6
  276. package/dist/index.js +6 -6
  277. package/dist/mocks/app-environment.js +2 -2
  278. package/dist/mocks/app-forms.js +1 -1
  279. package/dist/mocks/app-navigation.js +2 -2
  280. package/dist/mocks/app-stores.js +3 -3
  281. package/dist/playground/index.d.ts +19 -19
  282. package/dist/playground/index.js +16 -16
  283. package/dist/playground/mount.d.ts +3 -3
  284. package/dist/playground/mount.js +24 -24
  285. package/dist/registry/builtinFormats.js +13 -13
  286. package/dist/registry/builtinNodes.d.ts +2 -2
  287. package/dist/registry/builtinNodes.js +77 -77
  288. package/dist/registry/index.d.ts +4 -4
  289. package/dist/registry/index.js +4 -4
  290. package/dist/registry/nodeComponentRegistry.d.ts +8 -8
  291. package/dist/registry/nodeComponentRegistry.js +9 -11
  292. package/dist/registry/plugin.d.ts +2 -2
  293. package/dist/registry/plugin.js +11 -11
  294. package/dist/registry/workflowFormatRegistry.d.ts +3 -3
  295. package/dist/registry/workflowFormatRegistry.js +2 -2
  296. package/dist/schema/index.d.ts +1 -1
  297. package/dist/schema/index.js +2 -2
  298. package/dist/schemas/v1/workflow.schema.json +5 -0
  299. package/dist/services/agentSpecExecutionService.d.ts +3 -3
  300. package/dist/services/agentSpecExecutionService.js +55 -56
  301. package/dist/services/api.d.ts +2 -2
  302. package/dist/services/api.js +37 -37
  303. package/dist/services/apiVariableService.d.ts +1 -1
  304. package/dist/services/apiVariableService.js +34 -41
  305. package/dist/services/autoSaveService.js +8 -8
  306. package/dist/services/categoriesApi.d.ts +2 -2
  307. package/dist/services/categoriesApi.js +8 -8
  308. package/dist/services/chatService.d.ts +1 -1
  309. package/dist/services/chatService.js +18 -18
  310. package/dist/services/draftStorage.d.ts +1 -1
  311. package/dist/services/draftStorage.js +11 -11
  312. package/dist/services/dynamicSchemaService.d.ts +1 -1
  313. package/dist/services/dynamicSchemaService.js +39 -41
  314. package/dist/services/globalSave.d.ts +2 -2
  315. package/dist/services/globalSave.js +38 -41
  316. package/dist/services/historyService.d.ts +1 -1
  317. package/dist/services/historyService.js +10 -10
  318. package/dist/services/interruptService.d.ts +1 -1
  319. package/dist/services/interruptService.js +29 -35
  320. package/dist/services/nodeExecutionService.d.ts +1 -1
  321. package/dist/services/nodeExecutionService.js +44 -45
  322. package/dist/services/playgroundService.d.ts +1 -1
  323. package/dist/services/playgroundService.js +29 -29
  324. package/dist/services/portConfigApi.d.ts +2 -2
  325. package/dist/services/portConfigApi.js +8 -8
  326. package/dist/services/settingsService.d.ts +2 -2
  327. package/dist/services/settingsService.js +19 -25
  328. package/dist/services/toastService.d.ts +4 -4
  329. package/dist/services/toastService.js +33 -33
  330. package/dist/services/variableService.d.ts +1 -1
  331. package/dist/services/variableService.js +36 -36
  332. package/dist/services/workflowStorage.d.ts +2 -2
  333. package/dist/services/workflowStorage.js +13 -13
  334. package/dist/settings/index.d.ts +7 -7
  335. package/dist/settings/index.js +6 -6
  336. package/dist/skins/default.d.ts +1 -1
  337. package/dist/skins/default.js +1 -1
  338. package/dist/skins/index.d.ts +3 -3
  339. package/dist/skins/index.js +7 -7
  340. package/dist/skins/slate.d.ts +1 -1
  341. package/dist/skins/slate.js +69 -69
  342. package/dist/stores/categoriesStore.svelte.d.ts +1 -1
  343. package/dist/stores/categoriesStore.svelte.js +5 -5
  344. package/dist/stores/editorStateMachine.svelte.d.ts +2 -2
  345. package/dist/stores/editorStateMachine.svelte.js +34 -34
  346. package/dist/stores/historyStore.svelte.d.ts +4 -4
  347. package/dist/stores/historyStore.svelte.js +4 -4
  348. package/dist/stores/interruptStore.svelte.d.ts +3 -3
  349. package/dist/stores/interruptStore.svelte.js +21 -21
  350. package/dist/stores/playgroundStore.svelte.d.ts +2 -2
  351. package/dist/stores/playgroundStore.svelte.js +18 -21
  352. package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
  353. package/dist/stores/portCoordinateStore.svelte.js +10 -13
  354. package/dist/stores/settingsStore.svelte.d.ts +2 -2
  355. package/dist/stores/settingsStore.svelte.js +57 -62
  356. package/dist/stores/workflowStore.svelte.d.ts +4 -3
  357. package/dist/stores/workflowStore.svelte.js +47 -47
  358. package/dist/stories/CanvasDecorator.svelte +7 -10
  359. package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
  360. package/dist/stories/EdgeDecorator.svelte +28 -31
  361. package/dist/stories/EdgeDecorator.svelte.d.ts +1 -1
  362. package/dist/stories/NodeDecorator.svelte +14 -20
  363. package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
  364. package/dist/stories/utils.d.ts +2 -2
  365. package/dist/stories/utils.js +89 -93
  366. package/dist/styles/base.css +16 -50
  367. package/dist/styles/tokens.css +10 -28
  368. package/dist/svelte-app.d.ts +10 -10
  369. package/dist/svelte-app.js +39 -39
  370. package/dist/themes/default.d.ts +1 -1
  371. package/dist/themes/default.js +4 -4
  372. package/dist/themes/index.d.ts +3 -3
  373. package/dist/themes/index.js +11 -11
  374. package/dist/themes/minimal.d.ts +1 -1
  375. package/dist/themes/minimal.js +5 -5
  376. package/dist/types/agentspec.d.ts +18 -18
  377. package/dist/types/agentspec.js +2 -2
  378. package/dist/types/auth.d.ts +1 -1
  379. package/dist/types/auth.js +6 -6
  380. package/dist/types/chat.d.ts +2 -2
  381. package/dist/types/config.d.ts +6 -6
  382. package/dist/types/events.d.ts +3 -3
  383. package/dist/types/events.js +2 -2
  384. package/dist/types/index.d.ts +34 -32
  385. package/dist/types/index.js +6 -6
  386. package/dist/types/interrupt.d.ts +6 -6
  387. package/dist/types/interrupt.js +21 -21
  388. package/dist/types/interruptState.d.ts +12 -12
  389. package/dist/types/interruptState.js +66 -66
  390. package/dist/types/playground.d.ts +7 -7
  391. package/dist/types/playground.js +14 -14
  392. package/dist/types/settings.d.ts +7 -5
  393. package/dist/types/settings.js +19 -24
  394. package/dist/types/skin.d.ts +1 -1
  395. package/dist/types/theme.d.ts +2 -2
  396. package/dist/types/uischema.d.ts +4 -4
  397. package/dist/types/uischema.js +3 -3
  398. package/dist/utils/colors.d.ts +1 -1
  399. package/dist/utils/colors.js +95 -97
  400. package/dist/utils/config.d.ts +2 -2
  401. package/dist/utils/config.js +48 -48
  402. package/dist/utils/connections.d.ts +6 -2
  403. package/dist/utils/connections.js +21 -15
  404. package/dist/utils/edgeStyling.d.ts +2 -2
  405. package/dist/utils/edgeStyling.js +36 -39
  406. package/dist/utils/errors.js +3 -3
  407. package/dist/utils/fetchWithAuth.d.ts +1 -1
  408. package/dist/utils/fetchWithAuth.js +2 -2
  409. package/dist/utils/handleIds.d.ts +2 -2
  410. package/dist/utils/handleIds.js +8 -8
  411. package/dist/utils/handlePositioning.d.ts +1 -1
  412. package/dist/utils/handlePositioning.js +2 -2
  413. package/dist/utils/icons.d.ts +1 -1
  414. package/dist/utils/icons.js +74 -74
  415. package/dist/utils/logger.d.ts +1 -1
  416. package/dist/utils/logger.js +7 -7
  417. package/dist/utils/nodeIds.d.ts +1 -1
  418. package/dist/utils/nodeIds.js +1 -1
  419. package/dist/utils/nodeStatus.d.ts +1 -1
  420. package/dist/utils/nodeStatus.js +48 -48
  421. package/dist/utils/nodeSwap.d.ts +9 -9
  422. package/dist/utils/nodeSwap.js +52 -58
  423. package/dist/utils/nodeTypes.d.ts +1 -1
  424. package/dist/utils/nodeTypes.js +20 -21
  425. package/dist/utils/nodeWrapper.d.ts +7 -7
  426. package/dist/utils/nodeWrapper.js +19 -21
  427. package/dist/utils/performanceUtils.d.ts +1 -1
  428. package/dist/utils/performanceUtils.js +1 -2
  429. package/dist/utils/portUtils.d.ts +2 -2
  430. package/dist/utils/portUtils.js +1 -1
  431. package/dist/utils/sanitize.js +1 -1
  432. package/dist/utils/uischema.d.ts +2 -2
  433. package/dist/utils/uischema.js +8 -8
  434. package/dist/utils/validation.js +8 -8
  435. package/package.json +7 -11
@@ -10,29 +10,22 @@
10
10
  -->
11
11
 
12
12
  <script lang="ts">
13
- import { Position, Handle } from "@xyflow/svelte";
13
+ import { Position, Handle } from '@xyflow/svelte';
14
14
  import type {
15
15
  ConfigValues,
16
16
  NodeMetadata,
17
17
  NodeExtensions,
18
18
  NodePort,
19
- DynamicPort,
20
- } from "../../types/index.js";
21
- import { dynamicPortToNodePort } from "../../types/index.js";
22
- import Icon from "@iconify/svelte";
23
- import {
24
- getDataTypeColor,
25
- getCategoryColorToken,
26
- } from "../../utils/colors.js";
27
- import { getNodeIcon } from "../../utils/icons.js";
28
- import { getConnectedHandles } from "../../stores/workflowStore.svelte.js";
29
- import {
30
- applyPortOrder,
31
- getPortTop,
32
- isPortVisible,
33
- } from "../../utils/portUtils.js";
34
- import CogIcon from "../icons/CogIcon.svelte";
35
- import AlertCircleIcon from "../icons/AlertCircleIcon.svelte";
19
+ DynamicPort
20
+ } from '../../types/index.js';
21
+ import { dynamicPortToNodePort } from '../../types/index.js';
22
+ import Icon from '@iconify/svelte';
23
+ import { getDataTypeColor, getCategoryColorToken } from '../../utils/colors.js';
24
+ import { getNodeIcon } from '../../utils/icons.js';
25
+ import { getConnectedHandles } from '../../stores/workflowStore.svelte.js';
26
+ import { applyPortOrder, getPortTop, isPortVisible } from '../../utils/portUtils.js';
27
+ import CogIcon from '../icons/CogIcon.svelte';
28
+ import AlertCircleIcon from '../icons/AlertCircleIcon.svelte';
36
29
 
37
30
  const props = $props<{
38
31
  data: {
@@ -58,45 +51,37 @@
58
51
  const hideUnconnectedHandles = $derived(
59
52
  props.data.extensions?.ui?.hideUnconnectedHandles ??
60
53
  props.data.metadata?.extensions?.ui?.hideUnconnectedHandles ??
61
- false,
54
+ false
62
55
  );
63
56
 
64
57
  const hiddenPorts = $derived(
65
- props.data.extensions?.ui?.hiddenPorts ??
66
- props.data.metadata?.extensions?.ui?.hiddenPorts ??
67
- {},
58
+ props.data.extensions?.ui?.hiddenPorts ?? props.data.metadata?.extensions?.ui?.hiddenPorts ?? {}
68
59
  );
69
60
 
70
61
  const portOrder = $derived(
71
- props.data.extensions?.ui?.portOrder ??
72
- props.data.metadata?.extensions?.ui?.portOrder ??
73
- {},
62
+ props.data.extensions?.ui?.portOrder ?? props.data.metadata?.extensions?.ui?.portOrder ?? {}
74
63
  );
75
64
 
76
65
  /**
77
66
  * Get icon using the same resolution as WorkflowNode
78
67
  * Uses getNodeIcon utility with category fallback
79
68
  */
80
- let squareIcon = $derived(
81
- getNodeIcon(props.data.metadata?.icon, props.data.metadata?.category),
82
- );
69
+ let squareIcon = $derived(getNodeIcon(props.data.metadata?.icon, props.data.metadata?.category));
83
70
 
84
71
  /**
85
72
  * Get icon color using category-based color tokens for consistency
86
73
  * Falls back to primary color if category not available
87
74
  */
88
- let squareColor = $derived(
89
- getCategoryColorToken(props.data.metadata?.category),
90
- );
75
+ let squareColor = $derived(getCategoryColorToken(props.data.metadata?.category));
91
76
 
92
77
  // Handle configuration sidebar - now using global ConfigSidebar
93
78
  function openConfigSidebar(): void {
94
79
  if (props.data.onConfigOpen) {
95
80
  // Create a WorkflowNodeType-like object for the global ConfigSidebar
96
81
  const nodeForConfig = {
97
- id: props.data.nodeId || "unknown",
98
- type: "square",
99
- data: props.data,
82
+ id: props.data.nodeId || 'unknown',
83
+ type: 'square',
84
+ data: props.data
100
85
  };
101
86
  props.data.onConfigOpen(nodeForConfig);
102
87
  }
@@ -114,21 +99,21 @@
114
99
 
115
100
  // Handle keyboard events
116
101
  function handleKeydown(event: KeyboardEvent): void {
117
- if (event.key === "Enter" || event.key === " ") {
102
+ if (event.key === 'Enter' || event.key === ' ') {
118
103
  event.preventDefault();
119
104
  openConfigSidebar();
120
105
  }
121
106
  }
122
107
  const dynamicInputs = $derived(
123
108
  ((props.data.config?.dynamicInputs as DynamicPort[]) || []).map((port) =>
124
- dynamicPortToNodePort(port, "input"),
125
- ),
109
+ dynamicPortToNodePort(port, 'input')
110
+ )
126
111
  );
127
112
 
128
113
  const dynamicOutputs = $derived(
129
114
  ((props.data.config?.dynamicOutputs as DynamicPort[]) || []).map((port) =>
130
- dynamicPortToNodePort(port, "output"),
131
- ),
115
+ dynamicPortToNodePort(port, 'output')
116
+ )
132
117
  );
133
118
 
134
119
  /**
@@ -137,17 +122,17 @@
137
122
  const visibleInputPorts = $derived(
138
123
  applyPortOrder(
139
124
  [...(props.data.metadata?.inputs ?? []), ...dynamicInputs],
140
- portOrder.inputs,
125
+ portOrder.inputs
141
126
  ).filter((p: NodePort) =>
142
127
  isPortVisible(
143
128
  p,
144
- "input",
129
+ 'input',
145
130
  hiddenPorts,
146
131
  hideUnconnectedHandles,
147
132
  getConnectedHandles(),
148
- props.data.nodeId,
149
- ),
150
- ),
133
+ props.data.nodeId
134
+ )
135
+ )
151
136
  );
152
137
 
153
138
  /**
@@ -156,17 +141,17 @@
156
141
  const visibleOutputPorts = $derived(
157
142
  applyPortOrder(
158
143
  [...(props.data.metadata?.outputs ?? []), ...dynamicOutputs],
159
- portOrder.outputs,
144
+ portOrder.outputs
160
145
  ).filter((p: NodePort) =>
161
146
  isPortVisible(
162
147
  p,
163
- "output",
148
+ 'output',
164
149
  hiddenPorts,
165
150
  hideUnconnectedHandles,
166
151
  getConnectedHandles(),
167
- props.data.nodeId,
168
- ),
169
- ),
152
+ props.data.nodeId
153
+ )
154
+ )
170
155
  );
171
156
 
172
157
  /**
@@ -175,13 +160,9 @@
175
160
  */
176
161
  const nodeSize = $derived(
177
162
  (() => {
178
- const maxPorts = Math.max(
179
- visibleInputPorts.length,
180
- visibleOutputPorts.length,
181
- 1,
182
- );
163
+ const maxPorts = Math.max(visibleInputPorts.length, visibleOutputPorts.length, 1);
183
164
  return maxPorts <= 1 ? 80 : 20 + maxPorts * 40;
184
- })(),
165
+ })()
185
166
  );
186
167
  </script>
187
168
 
@@ -191,10 +172,10 @@
191
172
  type="target"
192
173
  position={Position.Left}
193
174
  style="--fd-handle-fill: var(--fd-port-skin-color, {getDataTypeColor(
194
- port.dataType,
175
+ port.dataType
195
176
  )}); --fd-handle-border-color: var(--fd-handle-border); top: {getPortTop(
196
177
  index,
197
- visibleInputPorts.length,
178
+ visibleInputPorts.length
198
179
  )}px; transform: translateY(-50%); z-index: 30;"
199
180
  id={`${props.data.nodeId}-input-${port.id}`}
200
181
  />
@@ -216,10 +197,7 @@
216
197
  <!-- Square Layout: Always compact with centered icon in squircle wrapper -->
217
198
  <div class="flowdrop-square-node__compact-content">
218
199
  <!-- Squircle icon — visibility controlled by --fd-node-icon-display -->
219
- <div
220
- class="flowdrop-square-node__icon-wrapper"
221
- style="--_icon-color: {squareColor}"
222
- >
200
+ <div class="flowdrop-square-node__icon-wrapper" style="--_icon-color: {squareColor}">
223
201
  <Icon icon={squareIcon} class="flowdrop-square-node__icon" />
224
202
  </div>
225
203
  <!-- Circle dot — visibility controlled by --fd-node-circle-display -->
@@ -259,10 +237,10 @@
259
237
  type="source"
260
238
  position={Position.Right}
261
239
  style="--fd-handle-fill: var(--fd-port-skin-color, {getDataTypeColor(
262
- port.dataType,
240
+ port.dataType
263
241
  )}); --fd-handle-border-color: var(--fd-handle-border); top: {getPortTop(
264
242
  index,
265
- visibleOutputPorts.length,
243
+ visibleOutputPorts.length
266
244
  )}px; transform: translateY(-50%); z-index: 30;"
267
245
  id={`${props.data.nodeId}-output-${port.id}`}
268
246
  />
@@ -342,11 +320,7 @@
342
320
  width: 3rem;
343
321
  height: 3rem;
344
322
  border-radius: 0.625rem;
345
- background: color-mix(
346
- in srgb,
347
- var(--_icon-color) var(--fd-node-icon-bg-opacity),
348
- transparent
349
- );
323
+ background: color-mix(in srgb, var(--_icon-color) var(--fd-node-icon-bg-opacity), transparent);
350
324
  flex-shrink: 0;
351
325
  transition: all var(--fd-transition-normal);
352
326
  }
@@ -1,4 +1,4 @@
1
- import type { ConfigValues, NodeMetadata, NodeExtensions } from "../../types/index.js";
1
+ import type { ConfigValues, NodeMetadata, NodeExtensions } from '../../types/index.js';
2
2
  type $$ComponentProps = {
3
3
  data: {
4
4
  label: string;
@@ -1,25 +1,25 @@
1
1
  <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import NodeDecorator from "../../stories/NodeDecorator.svelte";
4
- import { createTerminalNodeData } from "../../stories/utils.js";
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import NodeDecorator from '../../stories/NodeDecorator.svelte';
4
+ import { createTerminalNodeData } from '../../stories/utils.js';
5
5
 
6
6
  const { Story } = defineMeta({
7
- title: "Nodes/TerminalNode",
8
- tags: ["autodocs"],
7
+ title: 'Nodes/TerminalNode',
8
+ tags: ['autodocs'],
9
9
  parameters: {
10
- layout: "centered",
11
- },
10
+ layout: 'centered'
11
+ }
12
12
  });
13
13
  </script>
14
14
 
15
15
  <Story name="Start">
16
- <NodeDecorator data={createTerminalNodeData("start")} />
16
+ <NodeDecorator data={createTerminalNodeData('start')} />
17
17
  </Story>
18
18
 
19
19
  <Story name="End">
20
- <NodeDecorator data={createTerminalNodeData("end")} />
20
+ <NodeDecorator data={createTerminalNodeData('end')} />
21
21
  </Story>
22
22
 
23
23
  <Story name="Exit">
24
- <NodeDecorator data={createTerminalNodeData("exit")} />
24
+ <NodeDecorator data={createTerminalNodeData('exit')} />
25
25
  </Story>
@@ -9,26 +9,18 @@
9
9
  -->
10
10
 
11
11
  <script lang="ts">
12
- import { Position, Handle } from "@xyflow/svelte";
13
- import type {
14
- ConfigValues,
15
- NodeMetadata,
16
- NodeExtensions,
17
- NodePort,
18
- } from "../../types/index.js";
19
- import Icon from "@iconify/svelte";
20
- import {
21
- getDataTypeColor,
22
- getCategoryColorToken,
23
- } from "../../utils/colors.js";
24
- import { getNodeIcon } from "../../utils/icons.js";
25
- import { getCircleHandlePosition } from "../../utils/handlePositioning.js";
26
- import { getConnectedHandles } from "../../stores/workflowStore.svelte.js";
12
+ import { Position, Handle } from '@xyflow/svelte';
13
+ import type { ConfigValues, NodeMetadata, NodeExtensions, NodePort } from '../../types/index.js';
14
+ import Icon from '@iconify/svelte';
15
+ import { getDataTypeColor, getCategoryColorToken } from '../../utils/colors.js';
16
+ import { getNodeIcon } from '../../utils/icons.js';
17
+ import { getCircleHandlePosition } from '../../utils/handlePositioning.js';
18
+ import { getConnectedHandles } from '../../stores/workflowStore.svelte.js';
27
19
 
28
20
  /**
29
21
  * Terminal node variant types
30
22
  */
31
- type TerminalVariant = "start" | "end" | "exit";
23
+ type TerminalVariant = 'start' | 'end' | 'exit';
32
24
 
33
25
  /**
34
26
  * Configuration for each terminal variant
@@ -51,26 +43,26 @@
51
43
  */
52
44
  const VARIANT_CONFIGS: Record<TerminalVariant, VariantConfig> = {
53
45
  start: {
54
- icon: "mdi:play-circle",
55
- color: "var(--fd-node-emerald)",
56
- label: "Start",
46
+ icon: 'mdi:play-circle',
47
+ color: 'var(--fd-node-emerald)',
48
+ label: 'Start',
57
49
  hasInputs: false,
58
- hasOutputs: true,
50
+ hasOutputs: true
59
51
  },
60
52
  end: {
61
- icon: "mdi:stop-circle",
62
- color: "var(--fd-node-slate)",
63
- label: "End",
53
+ icon: 'mdi:stop-circle',
54
+ color: 'var(--fd-node-slate)',
55
+ label: 'End',
64
56
  hasInputs: true,
65
- hasOutputs: false,
57
+ hasOutputs: false
66
58
  },
67
59
  exit: {
68
- icon: "mdi:close-circle",
69
- color: "var(--fd-node-red)",
70
- label: "Exit",
60
+ icon: 'mdi:close-circle',
61
+ color: 'var(--fd-node-red)',
62
+ label: 'Exit',
71
63
  hasInputs: true,
72
- hasOutputs: false,
73
- },
64
+ hasOutputs: false
65
+ }
74
66
  };
75
67
 
76
68
  const props = $props<{
@@ -104,44 +96,36 @@
104
96
 
105
97
  // Check metadata tags for variant hints
106
98
  const tags = props.data.metadata?.tags || [];
107
- if (tags.includes("start") || tags.includes("entry")) {
108
- return "start";
99
+ if (tags.includes('start') || tags.includes('entry')) {
100
+ return 'start';
109
101
  }
110
- if (
111
- tags.includes("exit") ||
112
- tags.includes("abort") ||
113
- tags.includes("error")
114
- ) {
115
- return "exit";
102
+ if (tags.includes('exit') || tags.includes('abort') || tags.includes('error')) {
103
+ return 'exit';
116
104
  }
117
- if (
118
- tags.includes("end") ||
119
- tags.includes("finish") ||
120
- tags.includes("complete")
121
- ) {
122
- return "end";
105
+ if (tags.includes('end') || tags.includes('finish') || tags.includes('complete')) {
106
+ return 'end';
123
107
  }
124
108
 
125
109
  // Check metadata id/name for hints
126
- const idLower = (props.data.metadata?.id || "").toLowerCase();
127
- const nameLower = (props.data.metadata?.name || "").toLowerCase();
128
- if (idLower.includes("start") || nameLower.includes("start")) {
129
- return "start";
110
+ const idLower = (props.data.metadata?.id || '').toLowerCase();
111
+ const nameLower = (props.data.metadata?.name || '').toLowerCase();
112
+ if (idLower.includes('start') || nameLower.includes('start')) {
113
+ return 'start';
130
114
  }
131
115
  if (
132
- idLower.includes("exit") ||
133
- idLower.includes("abort") ||
134
- nameLower.includes("exit") ||
135
- nameLower.includes("abort")
116
+ idLower.includes('exit') ||
117
+ idLower.includes('abort') ||
118
+ nameLower.includes('exit') ||
119
+ nameLower.includes('abort')
136
120
  ) {
137
- return "exit";
121
+ return 'exit';
138
122
  }
139
- if (idLower.includes("end") || nameLower.includes("end")) {
140
- return "end";
123
+ if (idLower.includes('end') || nameLower.includes('end')) {
124
+ return 'end';
141
125
  }
142
126
 
143
127
  // Default to start
144
- return "start";
128
+ return 'start';
145
129
  }
146
130
 
147
131
  let variant = $derived(getVariant());
@@ -158,13 +142,13 @@
158
142
  const hideUnconnectedHandles = $derived(
159
143
  props.data.extensions?.ui?.hideUnconnectedHandles ??
160
144
  props.data.metadata?.extensions?.ui?.hideUnconnectedHandles ??
161
- false,
145
+ false
162
146
  );
163
147
 
164
148
  /**
165
149
  * Check if a port should be visible based on connection state and settings
166
150
  */
167
- function isPortVisible(port: NodePort, type: "input" | "output"): boolean {
151
+ function isPortVisible(port: NodePort, type: 'input' | 'output'): boolean {
168
152
  if (!hideUnconnectedHandles) {
169
153
  return true;
170
154
  }
@@ -182,7 +166,7 @@
182
166
  let terminalIcon = $derived(
183
167
  props.data.metadata?.icon
184
168
  ? getNodeIcon(props.data.metadata.icon, props.data.metadata?.category)
185
- : variantConfig.icon,
169
+ : variantConfig.icon
186
170
  );
187
171
 
188
172
  /**
@@ -192,7 +176,7 @@
192
176
  let terminalColor = $derived(
193
177
  props.data.metadata?.category
194
178
  ? getCategoryColorToken(props.data.metadata.category)
195
- : variantConfig.color,
179
+ : variantConfig.color
196
180
  );
197
181
 
198
182
  /**
@@ -204,7 +188,7 @@
204
188
  (props.data.config?.instanceTitle as string) ||
205
189
  props.data.label ||
206
190
  props.data.metadata?.name ||
207
- variantConfig.label,
191
+ variantConfig.label
208
192
  );
209
193
 
210
194
  /**
@@ -213,9 +197,7 @@
213
197
  * This allows users to customize the node description per-instance via config.
214
198
  */
215
199
  const displayDescription = $derived(
216
- (props.data.config?.instanceDescription as string) ||
217
- props.data.metadata?.description ||
218
- "",
200
+ (props.data.config?.instanceDescription as string) || props.data.metadata?.description || ''
219
201
  );
220
202
 
221
203
  /**
@@ -230,30 +212,28 @@
230
212
  /**
231
213
  * Check if metadata explicitly defines outputs (including empty array)
232
214
  */
233
- let hasExplicitOutputs = $derived(
234
- Array.isArray(props.data.metadata?.outputs),
235
- );
215
+ let hasExplicitOutputs = $derived(Array.isArray(props.data.metadata?.outputs));
236
216
 
237
217
  /**
238
218
  * Default trigger input port for end/exit nodes
239
219
  */
240
220
  const DEFAULT_INPUT_PORT = {
241
- id: "trigger",
242
- name: "Trigger",
243
- type: "input" as const,
244
- dataType: "trigger",
245
- description: "Workflow trigger input",
221
+ id: 'trigger',
222
+ name: 'Trigger',
223
+ type: 'input' as const,
224
+ dataType: 'trigger',
225
+ description: 'Workflow trigger input'
246
226
  };
247
227
 
248
228
  /**
249
229
  * Default trigger output port for start nodes
250
230
  */
251
231
  const DEFAULT_OUTPUT_PORT = {
252
- id: "trigger",
253
- name: "Trigger",
254
- type: "output" as const,
255
- dataType: "trigger",
256
- description: "Workflow trigger output",
232
+ id: 'trigger',
233
+ name: 'Trigger',
234
+ type: 'output' as const,
235
+ dataType: 'trigger',
236
+ description: 'Workflow trigger output'
257
237
  };
258
238
 
259
239
  /**
@@ -267,7 +247,7 @@
267
247
  ? props.data.metadata.inputs
268
248
  : variantConfig.hasInputs
269
249
  ? [DEFAULT_INPUT_PORT]
270
- : [],
250
+ : []
271
251
  );
272
252
 
273
253
  /**
@@ -281,21 +261,21 @@
281
261
  ? props.data.metadata.outputs
282
262
  : variantConfig.hasOutputs
283
263
  ? [DEFAULT_OUTPUT_PORT]
284
- : [],
264
+ : []
285
265
  );
286
266
 
287
267
  /**
288
268
  * Visible input ports filtered by hideUnconnectedHandles setting
289
269
  */
290
270
  let visibleInputPorts = $derived(
291
- inputPorts.filter((port: NodePort) => isPortVisible(port, "input")),
271
+ inputPorts.filter((port: NodePort) => isPortVisible(port, 'input'))
292
272
  );
293
273
 
294
274
  /**
295
275
  * Visible output ports filtered by hideUnconnectedHandles setting
296
276
  */
297
277
  let visibleOutputPorts = $derived(
298
- outputPorts.filter((port: NodePort) => isPortVisible(port, "output")),
278
+ outputPorts.filter((port: NodePort) => isPortVisible(port, 'output'))
299
279
  );
300
280
 
301
281
  /**
@@ -314,9 +294,9 @@
314
294
  function openConfigSidebar(): void {
315
295
  if (props.data.onConfigOpen) {
316
296
  const nodeForConfig = {
317
- id: props.data.nodeId || "unknown",
318
- type: "terminal",
319
- data: props.data,
297
+ id: props.data.nodeId || 'unknown',
298
+ type: 'terminal',
299
+ data: props.data
320
300
  };
321
301
  props.data.onConfigOpen(nodeForConfig);
322
302
  }
@@ -340,7 +320,7 @@
340
320
  * Handle keyboard events for accessibility
341
321
  */
342
322
  function handleKeydown(event: KeyboardEvent): void {
343
- if (event.key === "Enter" || event.key === " ") {
323
+ if (event.key === 'Enter' || event.key === ' ') {
344
324
  event.preventDefault();
345
325
  handleDoubleClick();
346
326
  }
@@ -353,9 +333,9 @@
353
333
  class:flowdrop-terminal-node--selected={props.selected}
354
334
  class:flowdrop-terminal-node--processing={props.isProcessing}
355
335
  class:flowdrop-terminal-node--error={props.isError}
356
- class:flowdrop-terminal-node--start={variant === "start"}
357
- class:flowdrop-terminal-node--end={variant === "end"}
358
- class:flowdrop-terminal-node--exit={variant === "exit"}
336
+ class:flowdrop-terminal-node--start={variant === 'start'}
337
+ class:flowdrop-terminal-node--end={variant === 'end'}
338
+ class:flowdrop-terminal-node--exit={variant === 'exit'}
359
339
  style="--terminal-color: {terminalColor};"
360
340
  onclick={handleClick}
361
341
  ondblclick={handleDoubleClick}
@@ -378,16 +358,12 @@
378
358
  <!-- Input Handles (for end/exit variants) -->
379
359
  {#if showInputs}
380
360
  {#each visibleInputPorts as port, index (`${port.id}-${visibleInputPorts.length}`)}
381
- {@const pos = getCircleHandlePosition(
382
- index,
383
- visibleInputPorts.length,
384
- "left",
385
- )}
361
+ {@const pos = getCircleHandlePosition(index, visibleInputPorts.length, 'left')}
386
362
  <Handle
387
363
  type="target"
388
364
  position={Position.Left}
389
365
  style="--fd-handle-fill: {getDataTypeColor(
390
- port.dataType,
366
+ port.dataType
391
367
  )}; --fd-handle-border-color: var(--fd-handle-border); left: {pos.left}px; top: {pos.top}px; transform: translate(-50%, -50%); z-index: 30;"
392
368
  id={`${props.data.nodeId}-input-${port.id}`}
393
369
  />
@@ -396,10 +372,7 @@
396
372
 
397
373
  <!-- Circular content with icon in squircle wrapper -->
398
374
  <div class="flowdrop-terminal-node__content">
399
- <div
400
- class="flowdrop-terminal-node__icon-wrapper"
401
- style="--_icon-color: {terminalColor}"
402
- >
375
+ <div class="flowdrop-terminal-node__icon-wrapper" style="--_icon-color: {terminalColor}">
403
376
  <Icon icon={terminalIcon} class="flowdrop-terminal-node__icon" />
404
377
  </div>
405
378
  </div>
@@ -407,17 +380,13 @@
407
380
  <!-- Output Handles (for start variant) -->
408
381
  {#if showOutputs}
409
382
  {#each visibleOutputPorts as port, index (`${port.id}-${visibleOutputPorts.length}`)}
410
- {@const pos = getCircleHandlePosition(
411
- index,
412
- visibleOutputPorts.length,
413
- "right",
414
- )}
383
+ {@const pos = getCircleHandlePosition(index, visibleOutputPorts.length, 'right')}
415
384
  <Handle
416
385
  type="source"
417
386
  position={Position.Right}
418
387
  id={`${props.data.nodeId}-output-${port.id}`}
419
388
  style="--fd-handle-fill: {getDataTypeColor(
420
- port.dataType,
389
+ port.dataType
421
390
  )}; --fd-handle-border-color: var(--fd-handle-border); left: {pos.left}px; top: {pos.top}px; transform: translate(-50%, -50%); z-index: 30;"
422
391
  />
423
392
  {/each}
@@ -446,10 +415,7 @@
446
415
  <!-- Error indicator -->
447
416
  {#if props.isError}
448
417
  <div class="flowdrop-terminal-node__error">
449
- <Icon
450
- icon="mdi:alert-circle"
451
- class="flowdrop-terminal-node__error-icon"
452
- />
418
+ <Icon icon="mdi:alert-circle" class="flowdrop-terminal-node__error-icon" />
453
419
  </div>
454
420
  {/if}
455
421
  </div>
@@ -571,11 +537,7 @@
571
537
  width: 2.75rem;
572
538
  height: 2.75rem;
573
539
  border-radius: 0.625rem;
574
- background: color-mix(
575
- in srgb,
576
- var(--_icon-color) var(--fd-node-icon-bg-opacity),
577
- transparent
578
- );
540
+ background: color-mix(in srgb, var(--_icon-color) var(--fd-node-icon-bg-opacity), transparent);
579
541
  flex-shrink: 0;
580
542
  transition: all var(--fd-transition-normal);
581
543
  }
@@ -1,4 +1,4 @@
1
- import type { ConfigValues, NodeMetadata, NodeExtensions } from "../../types/index.js";
1
+ import type { ConfigValues, NodeMetadata, NodeExtensions } from '../../types/index.js';
2
2
  type $$ComponentProps = {
3
3
  data: {
4
4
  label: string;