@flowdrop/flowdrop 1.0.1 → 1.2.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 (385) hide show
  1. package/README.md +50 -50
  2. package/dist/adapters/WorkflowAdapter.d.ts +1 -1
  3. package/dist/adapters/WorkflowAdapter.js +25 -25
  4. package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +2 -2
  5. package/dist/adapters/agentspec/AgentSpecAdapter.js +133 -122
  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 +2 -2
  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 +22 -20
  18. package/dist/api/enhanced-client.d.ts +3 -3
  19. package/dist/api/enhanced-client.js +73 -72
  20. package/dist/components/App.svelte +1090 -961
  21. package/dist/components/App.svelte.d.ts +9 -6
  22. package/dist/components/CanvasBanner.stories.svelte +23 -20
  23. package/dist/components/CanvasBanner.stories.svelte.d.ts +1 -1
  24. package/dist/components/CanvasBanner.svelte +52 -46
  25. package/dist/components/ConfigForm.svelte +1164 -1065
  26. package/dist/components/ConfigForm.svelte.d.ts +2 -2
  27. package/dist/components/ConfigModal.svelte +180 -180
  28. package/dist/components/ConfigModal.svelte.d.ts +1 -1
  29. package/dist/components/ConfigPanel.stories.svelte +35 -35
  30. package/dist/components/ConfigPanel.stories.svelte.d.ts +1 -1
  31. package/dist/components/ConfigPanel.svelte +178 -167
  32. package/dist/components/ConfigPanel.svelte.d.ts +1 -1
  33. package/dist/components/ConnectionLine.svelte +25 -25
  34. package/dist/components/EdgeRefresher.svelte +26 -26
  35. package/dist/components/FlowDropEdge.stories.svelte +179 -143
  36. package/dist/components/FlowDropEdge.svelte +147 -147
  37. package/dist/components/FlowDropEdge.svelte.d.ts +1 -1
  38. package/dist/components/FlowDropZone.svelte +63 -60
  39. package/dist/components/FlowDropZone.svelte.d.ts +1 -1
  40. package/dist/components/LoadingSpinner.stories.svelte +19 -19
  41. package/dist/components/LoadingSpinner.stories.svelte.d.ts +1 -1
  42. package/dist/components/LoadingSpinner.svelte +21 -21
  43. package/dist/components/LoadingSpinner.svelte.d.ts +1 -1
  44. package/dist/components/Logo.stories.svelte +13 -13
  45. package/dist/components/Logo.stories.svelte.d.ts +1 -1
  46. package/dist/components/Logo.svelte +101 -95
  47. package/dist/components/LogsSidebar.svelte +553 -546
  48. package/dist/components/LogsSidebar.svelte.d.ts +1 -1
  49. package/dist/components/MarkdownDisplay.stories.svelte +29 -23
  50. package/dist/components/MarkdownDisplay.stories.svelte.d.ts +1 -1
  51. package/dist/components/MarkdownDisplay.svelte +16 -14
  52. package/dist/components/Navbar.stories.svelte +43 -38
  53. package/dist/components/Navbar.stories.svelte.d.ts +1 -1
  54. package/dist/components/Navbar.svelte +760 -706
  55. package/dist/components/Navbar.svelte.d.ts +1 -1
  56. package/dist/components/NodeSidebar.svelte +905 -746
  57. package/dist/components/NodeSidebar.svelte.d.ts +5 -1
  58. package/dist/components/NodeStatusOverlay.stories.svelte +82 -70
  59. package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +1 -1
  60. package/dist/components/NodeStatusOverlay.svelte +295 -280
  61. package/dist/components/NodeStatusOverlay.svelte.d.ts +3 -3
  62. package/dist/components/PipelineStatus.svelte +326 -300
  63. package/dist/components/PipelineStatus.svelte.d.ts +4 -4
  64. package/dist/components/PortCoordinateTracker.svelte +49 -47
  65. package/dist/components/PortCoordinateTracker.svelte.d.ts +1 -1
  66. package/dist/components/ReadOnlyDetails.svelte +156 -156
  67. package/dist/components/SchemaForm.stories.svelte +106 -98
  68. package/dist/components/SchemaForm.stories.svelte.d.ts +1 -1
  69. package/dist/components/SchemaForm.svelte +490 -463
  70. package/dist/components/SchemaForm.svelte.d.ts +2 -2
  71. package/dist/components/SettingsModal.svelte +226 -223
  72. package/dist/components/SettingsModal.svelte.d.ts +1 -1
  73. package/dist/components/SettingsPanel.svelte +637 -601
  74. package/dist/components/SettingsPanel.svelte.d.ts +1 -1
  75. package/dist/components/StatusIcon.stories.svelte +62 -49
  76. package/dist/components/StatusIcon.stories.svelte.d.ts +1 -1
  77. package/dist/components/StatusIcon.svelte +87 -87
  78. package/dist/components/StatusIcon.svelte.d.ts +2 -2
  79. package/dist/components/StatusLabel.stories.svelte +12 -12
  80. package/dist/components/StatusLabel.stories.svelte.d.ts +1 -1
  81. package/dist/components/StatusLabel.svelte +19 -19
  82. package/dist/components/ThemeToggle.stories.svelte +16 -16
  83. package/dist/components/ThemeToggle.stories.svelte.d.ts +1 -1
  84. package/dist/components/ThemeToggle.svelte +180 -169
  85. package/dist/components/ThemeToggle.svelte.d.ts +1 -1
  86. package/dist/components/UniversalNode.svelte +150 -138
  87. package/dist/components/UniversalNode.svelte.d.ts +3 -3
  88. package/dist/components/WorkflowEditor.svelte +1069 -1014
  89. package/dist/components/WorkflowEditor.svelte.d.ts +4 -4
  90. package/dist/components/form/FormArray.svelte +1034 -973
  91. package/dist/components/form/FormArray.svelte.d.ts +1 -1
  92. package/dist/components/form/FormAutocomplete.svelte +1021 -978
  93. package/dist/components/form/FormAutocomplete.svelte.d.ts +1 -1
  94. package/dist/components/form/FormCheckboxGroup.stories.svelte +23 -20
  95. package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +1 -1
  96. package/dist/components/form/FormCheckboxGroup.svelte +136 -136
  97. package/dist/components/form/FormCodeEditor.svelte +452 -434
  98. package/dist/components/form/FormField.svelte +366 -355
  99. package/dist/components/form/FormField.svelte.d.ts +2 -2
  100. package/dist/components/form/FormFieldLight.svelte +400 -384
  101. package/dist/components/form/FormFieldLight.svelte.d.ts +1 -1
  102. package/dist/components/form/FormFieldWrapper.stories.svelte +42 -42
  103. package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +1 -1
  104. package/dist/components/form/FormFieldWrapper.svelte +100 -93
  105. package/dist/components/form/FormFieldWrapper.svelte.d.ts +1 -1
  106. package/dist/components/form/FormFieldset.svelte +108 -108
  107. package/dist/components/form/FormFieldset.svelte.d.ts +2 -2
  108. package/dist/components/form/FormMarkdownEditor.svelte +758 -725
  109. package/dist/components/form/FormNumberField.stories.svelte +25 -25
  110. package/dist/components/form/FormNumberField.stories.svelte.d.ts +1 -1
  111. package/dist/components/form/FormNumberField.svelte +88 -88
  112. package/dist/components/form/FormRangeField.stories.svelte +20 -20
  113. package/dist/components/form/FormRangeField.stories.svelte.d.ts +1 -1
  114. package/dist/components/form/FormRangeField.svelte +234 -226
  115. package/dist/components/form/FormSelect.stories.svelte +38 -38
  116. package/dist/components/form/FormSelect.stories.svelte.d.ts +1 -1
  117. package/dist/components/form/FormSelect.svelte +101 -101
  118. package/dist/components/form/FormSelect.svelte.d.ts +1 -1
  119. package/dist/components/form/FormTemplateEditor.svelte +847 -798
  120. package/dist/components/form/FormTemplateEditor.svelte.d.ts +1 -1
  121. package/dist/components/form/FormTextField.stories.svelte +29 -23
  122. package/dist/components/form/FormTextField.stories.svelte.d.ts +1 -1
  123. package/dist/components/form/FormTextField.svelte +68 -68
  124. package/dist/components/form/FormTextarea.stories.svelte +28 -25
  125. package/dist/components/form/FormTextarea.stories.svelte.d.ts +1 -1
  126. package/dist/components/form/FormTextarea.svelte +74 -74
  127. package/dist/components/form/FormToggle.stories.svelte +23 -20
  128. package/dist/components/form/FormToggle.stories.svelte.d.ts +1 -1
  129. package/dist/components/form/FormToggle.svelte +98 -98
  130. package/dist/components/form/FormUISchemaRenderer.svelte +120 -113
  131. package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +3 -3
  132. package/dist/components/form/index.d.ts +19 -19
  133. package/dist/components/form/index.js +18 -18
  134. package/dist/components/form/templateAutocomplete.d.ts +2 -2
  135. package/dist/components/form/templateAutocomplete.js +64 -55
  136. package/dist/components/form/types.d.ts +6 -6
  137. package/dist/components/form/types.js +9 -4
  138. package/dist/components/icons/AlertCircleIcon.svelte +11 -0
  139. package/dist/components/icons/AlertCircleIcon.svelte.d.ts +26 -0
  140. package/dist/components/icons/CogIcon.svelte +11 -0
  141. package/dist/components/icons/CogIcon.svelte.d.ts +26 -0
  142. package/dist/components/interrupt/ChoicePrompt.stories.svelte +54 -38
  143. package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +1 -1
  144. package/dist/components/interrupt/ChoicePrompt.svelte +407 -383
  145. package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +1 -1
  146. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +48 -48
  147. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +1 -1
  148. package/dist/components/interrupt/ConfirmationPrompt.svelte +280 -274
  149. package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +1 -1
  150. package/dist/components/interrupt/FormPrompt.svelte +223 -218
  151. package/dist/components/interrupt/FormPrompt.svelte.d.ts +1 -1
  152. package/dist/components/interrupt/InterruptBubble.svelte +617 -583
  153. package/dist/components/interrupt/InterruptBubble.svelte.d.ts +2 -2
  154. package/dist/components/interrupt/ReviewPrompt.stories.svelte +66 -56
  155. package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +1 -1
  156. package/dist/components/interrupt/ReviewPrompt.svelte +861 -841
  157. package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +1 -1
  158. package/dist/components/interrupt/TextInputPrompt.stories.svelte +38 -33
  159. package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +1 -1
  160. package/dist/components/interrupt/TextInputPrompt.svelte +333 -328
  161. package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +1 -1
  162. package/dist/components/interrupt/index.d.ts +5 -5
  163. package/dist/components/interrupt/index.js +5 -5
  164. package/dist/components/layouts/MainLayout.svelte +724 -691
  165. package/dist/components/layouts/MainLayout.svelte.d.ts +6 -6
  166. package/dist/components/nodes/GatewayNode.stories.svelte +100 -99
  167. package/dist/components/nodes/GatewayNode.svelte +605 -571
  168. package/dist/components/nodes/GatewayNode.svelte.d.ts +3 -3
  169. package/dist/components/nodes/IdeaNode.stories.svelte +44 -43
  170. package/dist/components/nodes/IdeaNode.svelte +451 -437
  171. package/dist/components/nodes/IdeaNode.svelte.d.ts +1 -1
  172. package/dist/components/nodes/NotesNode.stories.svelte +65 -64
  173. package/dist/components/nodes/NotesNode.svelte +380 -369
  174. package/dist/components/nodes/NotesNode.svelte.d.ts +1 -1
  175. package/dist/components/nodes/SimpleNode.stories.svelte +145 -144
  176. package/dist/components/nodes/SimpleNode.svelte +486 -424
  177. package/dist/components/nodes/SimpleNode.svelte.d.ts +1 -1
  178. package/dist/components/nodes/SquareNode.stories.svelte +73 -73
  179. package/dist/components/nodes/SquareNode.svelte +439 -380
  180. package/dist/components/nodes/SquareNode.svelte.d.ts +1 -1
  181. package/dist/components/nodes/TerminalNode.stories.svelte +13 -13
  182. package/dist/components/nodes/TerminalNode.svelte +709 -670
  183. package/dist/components/nodes/TerminalNode.svelte.d.ts +1 -1
  184. package/dist/components/nodes/ToolNode.stories.svelte +181 -180
  185. package/dist/components/nodes/ToolNode.svelte +505 -447
  186. package/dist/components/nodes/ToolNode.svelte.d.ts +1 -1
  187. package/dist/components/nodes/WorkflowNode.stories.svelte +70 -46
  188. package/dist/components/nodes/WorkflowNode.svelte +621 -551
  189. package/dist/components/nodes/WorkflowNode.svelte.d.ts +3 -3
  190. package/dist/components/playground/ChatPanel.svelte +945 -889
  191. package/dist/components/playground/ExecutionLogs.svelte +495 -472
  192. package/dist/components/playground/InputCollector.svelte +449 -428
  193. package/dist/components/playground/MessageBubble.stories.svelte +47 -47
  194. package/dist/components/playground/MessageBubble.stories.svelte.d.ts +1 -1
  195. package/dist/components/playground/MessageBubble.svelte +626 -610
  196. package/dist/components/playground/MessageBubble.svelte.d.ts +1 -1
  197. package/dist/components/playground/Playground.svelte +1088 -1057
  198. package/dist/components/playground/Playground.svelte.d.ts +3 -3
  199. package/dist/components/playground/PlaygroundModal.svelte +208 -204
  200. package/dist/components/playground/PlaygroundModal.svelte.d.ts +3 -3
  201. package/dist/components/playground/SessionManager.svelte +527 -521
  202. package/dist/components/playground/SessionManager.svelte.d.ts +1 -1
  203. package/dist/config/agentSpecEndpoints.d.ts +1 -1
  204. package/dist/config/agentSpecEndpoints.js +20 -20
  205. package/dist/config/constants.js +2 -2
  206. package/dist/config/defaultCategories.d.ts +1 -1
  207. package/dist/config/defaultCategories.js +86 -86
  208. package/dist/config/defaultPortConfig.d.ts +1 -1
  209. package/dist/config/defaultPortConfig.js +144 -144
  210. package/dist/config/endpoints.d.ts +4 -4
  211. package/dist/config/endpoints.js +65 -65
  212. package/dist/config/runtimeConfig.d.ts +2 -2
  213. package/dist/config/runtimeConfig.js +8 -8
  214. package/dist/core/index.d.ts +63 -59
  215. package/dist/core/index.js +35 -33
  216. package/dist/display/index.d.ts +2 -2
  217. package/dist/display/index.js +2 -2
  218. package/dist/editor/index.d.ts +62 -62
  219. package/dist/editor/index.js +53 -53
  220. package/dist/form/code.d.ts +5 -5
  221. package/dist/form/code.js +14 -14
  222. package/dist/form/fieldRegistry.d.ts +3 -3
  223. package/dist/form/fieldRegistry.js +11 -9
  224. package/dist/form/full.d.ts +8 -8
  225. package/dist/form/full.js +9 -9
  226. package/dist/form/index.d.ts +18 -18
  227. package/dist/form/index.js +16 -16
  228. package/dist/form/markdown.d.ts +4 -4
  229. package/dist/form/markdown.js +8 -8
  230. package/dist/helpers/proximityConnect.d.ts +3 -3
  231. package/dist/helpers/proximityConnect.js +34 -32
  232. package/dist/helpers/workflowEditorHelper.d.ts +5 -5
  233. package/dist/helpers/workflowEditorHelper.js +108 -96
  234. package/dist/index.d.ts +6 -6
  235. package/dist/index.js +6 -6
  236. package/dist/mocks/app-environment.js +2 -2
  237. package/dist/mocks/app-forms.js +9 -9
  238. package/dist/mocks/app-navigation.js +11 -11
  239. package/dist/mocks/app-stores.js +8 -8
  240. package/dist/playground/index.d.ts +19 -19
  241. package/dist/playground/index.js +16 -16
  242. package/dist/playground/mount.d.ts +3 -3
  243. package/dist/playground/mount.js +24 -24
  244. package/dist/registry/builtinFormats.js +13 -13
  245. package/dist/registry/builtinNodes.d.ts +2 -2
  246. package/dist/registry/builtinNodes.js +77 -77
  247. package/dist/registry/index.d.ts +4 -4
  248. package/dist/registry/index.js +4 -4
  249. package/dist/registry/nodeComponentRegistry.d.ts +8 -8
  250. package/dist/registry/nodeComponentRegistry.js +11 -9
  251. package/dist/registry/plugin.d.ts +2 -2
  252. package/dist/registry/plugin.js +11 -11
  253. package/dist/registry/workflowFormatRegistry.d.ts +3 -3
  254. package/dist/registry/workflowFormatRegistry.js +2 -2
  255. package/dist/schema/index.d.ts +1 -1
  256. package/dist/schema/index.js +2 -2
  257. package/dist/services/agentSpecExecutionService.d.ts +3 -3
  258. package/dist/services/agentSpecExecutionService.js +59 -55
  259. package/dist/services/api.d.ts +2 -2
  260. package/dist/services/api.js +37 -37
  261. package/dist/services/apiVariableService.d.ts +1 -1
  262. package/dist/services/apiVariableService.js +41 -34
  263. package/dist/services/autoSaveService.js +8 -8
  264. package/dist/services/categoriesApi.d.ts +2 -2
  265. package/dist/services/categoriesApi.js +8 -8
  266. package/dist/services/draftStorage.d.ts +1 -1
  267. package/dist/services/draftStorage.js +11 -11
  268. package/dist/services/dynamicSchemaService.d.ts +1 -1
  269. package/dist/services/dynamicSchemaService.js +41 -39
  270. package/dist/services/globalSave.d.ts +2 -2
  271. package/dist/services/globalSave.js +41 -38
  272. package/dist/services/historyService.d.ts +1 -1
  273. package/dist/services/historyService.js +8 -8
  274. package/dist/services/interruptService.d.ts +1 -1
  275. package/dist/services/interruptService.js +35 -29
  276. package/dist/services/nodeExecutionService.d.ts +1 -1
  277. package/dist/services/nodeExecutionService.js +45 -44
  278. package/dist/services/playgroundService.d.ts +1 -1
  279. package/dist/services/playgroundService.js +29 -29
  280. package/dist/services/portConfigApi.d.ts +2 -2
  281. package/dist/services/portConfigApi.js +8 -8
  282. package/dist/services/settingsService.d.ts +2 -2
  283. package/dist/services/settingsService.js +25 -19
  284. package/dist/services/toastService.d.ts +4 -4
  285. package/dist/services/toastService.js +33 -33
  286. package/dist/services/variableService.d.ts +1 -1
  287. package/dist/services/variableService.js +36 -36
  288. package/dist/services/workflowStorage.d.ts +2 -2
  289. package/dist/services/workflowStorage.js +13 -13
  290. package/dist/settings/index.d.ts +7 -7
  291. package/dist/settings/index.js +6 -6
  292. package/dist/skins/default.d.ts +2 -0
  293. package/dist/skins/default.js +1 -0
  294. package/dist/skins/index.d.ts +13 -0
  295. package/dist/skins/index.js +30 -0
  296. package/dist/skins/slate.d.ts +2 -0
  297. package/dist/skins/slate.js +78 -0
  298. package/dist/stores/categoriesStore.svelte.d.ts +1 -1
  299. package/dist/stores/categoriesStore.svelte.js +5 -5
  300. package/dist/stores/editorStateMachine.svelte.d.ts +2 -2
  301. package/dist/stores/editorStateMachine.svelte.js +65 -33
  302. package/dist/stores/historyStore.svelte.d.ts +4 -4
  303. package/dist/stores/historyStore.svelte.js +4 -4
  304. package/dist/stores/interruptStore.svelte.d.ts +3 -3
  305. package/dist/stores/interruptStore.svelte.js +21 -21
  306. package/dist/stores/playgroundStore.svelte.d.ts +2 -2
  307. package/dist/stores/playgroundStore.svelte.js +25 -18
  308. package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
  309. package/dist/stores/portCoordinateStore.svelte.js +15 -8
  310. package/dist/stores/settingsStore.svelte.d.ts +2 -2
  311. package/dist/stores/settingsStore.svelte.js +62 -57
  312. package/dist/stores/workflowStore.svelte.d.ts +3 -3
  313. package/dist/stores/workflowStore.svelte.js +50 -47
  314. package/dist/stories/CanvasDecorator.svelte +35 -32
  315. package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
  316. package/dist/stories/EdgeDecorator.svelte +102 -99
  317. package/dist/stories/EdgeDecorator.svelte.d.ts +1 -1
  318. package/dist/stories/NodeDecorator.svelte +59 -53
  319. package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
  320. package/dist/stories/utils.d.ts +2 -2
  321. package/dist/stories/utils.js +105 -67
  322. package/dist/styles/base.css +599 -595
  323. package/dist/styles/toast.css +14 -14
  324. package/dist/styles/tokens.css +409 -378
  325. package/dist/svelte-app.d.ts +12 -9
  326. package/dist/svelte-app.js +40 -39
  327. package/dist/themes/default.d.ts +2 -0
  328. package/dist/themes/default.js +9 -0
  329. package/dist/themes/index.d.ts +13 -0
  330. package/dist/themes/index.js +44 -0
  331. package/dist/themes/minimal.d.ts +2 -0
  332. package/dist/themes/minimal.js +11 -0
  333. package/dist/types/agentspec.d.ts +18 -18
  334. package/dist/types/agentspec.js +2 -2
  335. package/dist/types/auth.d.ts +1 -1
  336. package/dist/types/auth.js +6 -6
  337. package/dist/types/config.d.ts +6 -6
  338. package/dist/types/events.d.ts +2 -2
  339. package/dist/types/events.js +2 -2
  340. package/dist/types/index.d.ts +32 -32
  341. package/dist/types/index.js +6 -6
  342. package/dist/types/interrupt.d.ts +6 -6
  343. package/dist/types/interrupt.js +21 -21
  344. package/dist/types/interruptState.d.ts +12 -12
  345. package/dist/types/interruptState.js +66 -66
  346. package/dist/types/playground.d.ts +7 -7
  347. package/dist/types/playground.js +14 -14
  348. package/dist/types/settings.d.ts +5 -3
  349. package/dist/types/settings.js +25 -18
  350. package/dist/types/skin.d.ts +31 -0
  351. package/dist/types/skin.js +1 -0
  352. package/dist/types/theme.d.ts +35 -0
  353. package/dist/types/theme.js +1 -0
  354. package/dist/types/uischema.d.ts +4 -4
  355. package/dist/types/uischema.js +3 -3
  356. package/dist/utils/colors.d.ts +1 -1
  357. package/dist/utils/colors.js +97 -95
  358. package/dist/utils/config.d.ts +2 -2
  359. package/dist/utils/config.js +48 -48
  360. package/dist/utils/connections.d.ts +2 -2
  361. package/dist/utils/connections.js +15 -15
  362. package/dist/utils/errors.js +3 -3
  363. package/dist/utils/fetchWithAuth.d.ts +1 -1
  364. package/dist/utils/fetchWithAuth.js +2 -2
  365. package/dist/utils/handleIds.d.ts +2 -2
  366. package/dist/utils/handleIds.js +8 -8
  367. package/dist/utils/handlePositioning.d.ts +1 -1
  368. package/dist/utils/handlePositioning.js +2 -2
  369. package/dist/utils/icons.d.ts +1 -1
  370. package/dist/utils/icons.js +74 -74
  371. package/dist/utils/logger.d.ts +1 -1
  372. package/dist/utils/logger.js +7 -7
  373. package/dist/utils/nodeStatus.d.ts +1 -1
  374. package/dist/utils/nodeStatus.js +48 -48
  375. package/dist/utils/nodeTypes.d.ts +1 -1
  376. package/dist/utils/nodeTypes.js +21 -20
  377. package/dist/utils/nodeWrapper.d.ts +7 -7
  378. package/dist/utils/nodeWrapper.js +21 -19
  379. package/dist/utils/performanceUtils.d.ts +1 -1
  380. package/dist/utils/performanceUtils.js +2 -1
  381. package/dist/utils/sanitize.js +1 -1
  382. package/dist/utils/uischema.d.ts +2 -2
  383. package/dist/utils/uischema.js +8 -8
  384. package/dist/utils/validation.js +20 -8
  385. package/package.json +1 -1
@@ -8,339 +8,344 @@
8
8
  -->
9
9
 
10
10
  <script lang="ts">
11
- import Icon from '@iconify/svelte';
12
- import type { TextConfig } from '../../types/interrupt.js';
13
-
14
- /**
15
- * Component props
16
- */
17
- interface Props {
18
- /** Text configuration from the interrupt */
19
- config: TextConfig;
20
- /** Whether this interrupt has been resolved */
21
- isResolved: boolean;
22
- /** The resolved value if resolved */
23
- resolvedValue?: string;
24
- /** Whether the form is currently submitting */
25
- isSubmitting: boolean;
26
- /** Error message if submission failed */
27
- error?: string;
28
- /** Username of the person who resolved the interrupt */
29
- resolvedByUserName?: string;
30
- /** Callback when user submits text */
31
- onSubmit: (value: string) => void;
32
- }
33
-
34
- let {
35
- config,
36
- isResolved,
37
- resolvedValue,
38
- isSubmitting,
39
- error,
40
- resolvedByUserName,
41
- onSubmit
42
- }: Props = $props();
43
-
44
- /** Local state for input value */
45
- // svelte-ignore state_referenced_locally — initial default, user edits the input
46
- let inputValue = $state(config.defaultValue ?? '');
47
-
48
- /** Display value - either resolved or current input */
49
- const displayValue = $derived(isResolved ? (resolvedValue ?? '') : inputValue);
50
-
51
- /** Whether the input is multiline */
52
- const isMultiline = $derived(config.multiline ?? false);
53
-
54
- /** Character count */
55
- const charCount = $derived(inputValue.length);
56
-
57
- /** Check if input is valid */
58
- const isValidInput = $derived(
59
- inputValue.length > 0 &&
60
- (config.minLength === undefined || inputValue.length >= config.minLength) &&
61
- (config.maxLength === undefined || inputValue.length <= config.maxLength)
62
- );
63
-
64
- /**
65
- * Handle input change
66
- */
67
- function handleInput(event: Event): void {
68
- if (isResolved || isSubmitting) return;
69
- const target = event.target as HTMLInputElement | HTMLTextAreaElement;
70
- inputValue = target.value;
71
- }
72
-
73
- /**
74
- * Handle form submission
75
- */
76
- function handleSubmit(): void {
77
- if (!isValidInput || isResolved || isSubmitting) return;
78
- onSubmit(inputValue);
79
- }
80
-
81
- /**
82
- * Handle Enter key for single-line input
83
- */
84
- function handleKeyDown(event: KeyboardEvent): void {
85
- if (event.key === 'Enter' && !isMultiline && !event.shiftKey) {
86
- event.preventDefault();
87
- handleSubmit();
88
- }
89
- }
11
+ import Icon from "@iconify/svelte";
12
+ import type { TextConfig } from "../../types/interrupt.js";
13
+
14
+ /**
15
+ * Component props
16
+ */
17
+ interface Props {
18
+ /** Text configuration from the interrupt */
19
+ config: TextConfig;
20
+ /** Whether this interrupt has been resolved */
21
+ isResolved: boolean;
22
+ /** The resolved value if resolved */
23
+ resolvedValue?: string;
24
+ /** Whether the form is currently submitting */
25
+ isSubmitting: boolean;
26
+ /** Error message if submission failed */
27
+ error?: string;
28
+ /** Username of the person who resolved the interrupt */
29
+ resolvedByUserName?: string;
30
+ /** Callback when user submits text */
31
+ onSubmit: (value: string) => void;
32
+ }
33
+
34
+ let {
35
+ config,
36
+ isResolved,
37
+ resolvedValue,
38
+ isSubmitting,
39
+ error,
40
+ resolvedByUserName,
41
+ onSubmit,
42
+ }: Props = $props();
43
+
44
+ /** Local state for input value */
45
+ // svelte-ignore state_referenced_locally — initial default, user edits the input
46
+ let inputValue = $state(config.defaultValue ?? "");
47
+
48
+ /** Display value - either resolved or current input */
49
+ const displayValue = $derived(
50
+ isResolved ? (resolvedValue ?? "") : inputValue,
51
+ );
52
+
53
+ /** Whether the input is multiline */
54
+ const isMultiline = $derived(config.multiline ?? false);
55
+
56
+ /** Character count */
57
+ const charCount = $derived(inputValue.length);
58
+
59
+ /** Check if input is valid */
60
+ const isValidInput = $derived(
61
+ inputValue.length > 0 &&
62
+ (config.minLength === undefined ||
63
+ inputValue.length >= config.minLength) &&
64
+ (config.maxLength === undefined || inputValue.length <= config.maxLength),
65
+ );
66
+
67
+ /**
68
+ * Handle input change
69
+ */
70
+ function handleInput(event: Event): void {
71
+ if (isResolved || isSubmitting) return;
72
+ const target = event.target as HTMLInputElement | HTMLTextAreaElement;
73
+ inputValue = target.value;
74
+ }
75
+
76
+ /**
77
+ * Handle form submission
78
+ */
79
+ function handleSubmit(): void {
80
+ if (!isValidInput || isResolved || isSubmitting) return;
81
+ onSubmit(inputValue);
82
+ }
83
+
84
+ /**
85
+ * Handle Enter key for single-line input
86
+ */
87
+ function handleKeyDown(event: KeyboardEvent): void {
88
+ if (event.key === "Enter" && !isMultiline && !event.shiftKey) {
89
+ event.preventDefault();
90
+ handleSubmit();
91
+ }
92
+ }
90
93
  </script>
91
94
 
92
95
  <div
93
- class="text-prompt"
94
- class:text-prompt--resolved={isResolved}
95
- class:text-prompt--submitting={isSubmitting}
96
+ class="text-prompt"
97
+ class:text-prompt--resolved={isResolved}
98
+ class:text-prompt--submitting={isSubmitting}
96
99
  >
97
- <!-- Message -->
98
- <p class="text-prompt__message">{config.message}</p>
99
-
100
- <!-- Error message -->
101
- {#if error}
102
- <div class="text-prompt__error">
103
- <Icon icon="mdi:alert-circle" />
104
- <span>{error}</span>
105
- </div>
106
- {/if}
107
-
108
- <!-- Input field -->
109
- <div class="text-prompt__input-wrapper">
110
- {#if isMultiline}
111
- <textarea
112
- class="text-prompt__textarea"
113
- class:text-prompt__textarea--resolved={isResolved}
114
- value={displayValue}
115
- placeholder={config.placeholder ?? 'Enter your response...'}
116
- disabled={isResolved || isSubmitting}
117
- oninput={handleInput}
118
- onkeydown={handleKeyDown}
119
- rows={4}
120
- minlength={config.minLength}
121
- maxlength={config.maxLength}
122
- ></textarea>
123
- {:else}
124
- <input
125
- type="text"
126
- class="text-prompt__input"
127
- class:text-prompt__input--resolved={isResolved}
128
- value={displayValue}
129
- placeholder={config.placeholder ?? 'Enter your response...'}
130
- disabled={isResolved || isSubmitting}
131
- oninput={handleInput}
132
- onkeydown={handleKeyDown}
133
- minlength={config.minLength}
134
- maxlength={config.maxLength}
135
- />
136
- {/if}
137
- </div>
138
-
139
- <!-- Character count -->
140
- {#if !isResolved && (config.minLength !== undefined || config.maxLength !== undefined)}
141
- <div class="text-prompt__char-count">
142
- <span
143
- class:text-prompt__char-count--warning={config.maxLength !== undefined &&
144
- charCount > config.maxLength * 0.9}
145
- >
146
- {charCount}
147
- {#if config.maxLength !== undefined}
148
- / {config.maxLength}
149
- {/if}
150
- {#if config.minLength !== undefined}
151
- (min: {config.minLength})
152
- {/if}
153
- </span>
154
- </div>
155
- {/if}
156
-
157
- <!-- Submit button -->
158
- {#if !isResolved}
159
- <div class="text-prompt__actions">
160
- <button
161
- type="button"
162
- class="text-prompt__submit"
163
- onclick={handleSubmit}
164
- disabled={!isValidInput || isSubmitting}
165
- >
166
- {#if isSubmitting}
167
- <span class="text-prompt__spinner"></span>
168
- {:else}
169
- <Icon icon="mdi:send" />
170
- {/if}
171
- <span>Submit</span>
172
- </button>
173
- </div>
174
- {/if}
175
-
176
- <!-- Resolved indicator -->
177
- {#if isResolved}
178
- <div class="text-prompt__resolved-badge">
179
- <Icon icon="mdi:check-circle" />
180
- <span>
181
- {resolvedByUserName ? `Response submitted by ${resolvedByUserName}` : 'Response submitted'}
182
- </span>
183
- </div>
184
- {/if}
100
+ <!-- Message -->
101
+ <p class="text-prompt__message">{config.message}</p>
102
+
103
+ <!-- Error message -->
104
+ {#if error}
105
+ <div class="text-prompt__error">
106
+ <Icon icon="mdi:alert-circle" />
107
+ <span>{error}</span>
108
+ </div>
109
+ {/if}
110
+
111
+ <!-- Input field -->
112
+ <div class="text-prompt__input-wrapper">
113
+ {#if isMultiline}
114
+ <textarea
115
+ class="text-prompt__textarea"
116
+ class:text-prompt__textarea--resolved={isResolved}
117
+ value={displayValue}
118
+ placeholder={config.placeholder ?? "Enter your response..."}
119
+ disabled={isResolved || isSubmitting}
120
+ oninput={handleInput}
121
+ onkeydown={handleKeyDown}
122
+ rows={4}
123
+ minlength={config.minLength}
124
+ maxlength={config.maxLength}
125
+ ></textarea>
126
+ {:else}
127
+ <input
128
+ type="text"
129
+ class="text-prompt__input"
130
+ class:text-prompt__input--resolved={isResolved}
131
+ value={displayValue}
132
+ placeholder={config.placeholder ?? "Enter your response..."}
133
+ disabled={isResolved || isSubmitting}
134
+ oninput={handleInput}
135
+ onkeydown={handleKeyDown}
136
+ minlength={config.minLength}
137
+ maxlength={config.maxLength}
138
+ />
139
+ {/if}
140
+ </div>
141
+
142
+ <!-- Character count -->
143
+ {#if !isResolved && (config.minLength !== undefined || config.maxLength !== undefined)}
144
+ <div class="text-prompt__char-count">
145
+ <span
146
+ class:text-prompt__char-count--warning={config.maxLength !==
147
+ undefined && charCount > config.maxLength * 0.9}
148
+ >
149
+ {charCount}
150
+ {#if config.maxLength !== undefined}
151
+ / {config.maxLength}
152
+ {/if}
153
+ {#if config.minLength !== undefined}
154
+ (min: {config.minLength})
155
+ {/if}
156
+ </span>
157
+ </div>
158
+ {/if}
159
+
160
+ <!-- Submit button -->
161
+ {#if !isResolved}
162
+ <div class="text-prompt__actions">
163
+ <button
164
+ type="button"
165
+ class="text-prompt__submit"
166
+ onclick={handleSubmit}
167
+ disabled={!isValidInput || isSubmitting}
168
+ >
169
+ {#if isSubmitting}
170
+ <span class="text-prompt__spinner"></span>
171
+ {:else}
172
+ <Icon icon="mdi:send" />
173
+ {/if}
174
+ <span>Submit</span>
175
+ </button>
176
+ </div>
177
+ {/if}
178
+
179
+ <!-- Resolved indicator -->
180
+ {#if isResolved}
181
+ <div class="text-prompt__resolved-badge">
182
+ <Icon icon="mdi:check-circle" />
183
+ <span>
184
+ {resolvedByUserName
185
+ ? `Response submitted by ${resolvedByUserName}`
186
+ : "Response submitted"}
187
+ </span>
188
+ </div>
189
+ {/if}
185
190
  </div>
186
191
 
187
192
  <style>
188
- /* Uses design tokens from base.css/tokens.css */
189
- .text-prompt {
190
- display: flex;
191
- flex-direction: column;
192
- gap: var(--fd-space-md);
193
- }
194
-
195
- .text-prompt--resolved {
196
- opacity: 0.85;
197
- }
198
-
199
- .text-prompt--submitting {
200
- pointer-events: none;
201
- }
202
-
203
- .text-prompt__message {
204
- margin: 0;
205
- font-size: var(--fd-interrupt-font-message);
206
- line-height: var(--fd-interrupt-line-height);
207
- color: var(--fd-foreground);
208
- }
209
-
210
- .text-prompt__error {
211
- display: flex;
212
- align-items: center;
213
- gap: var(--fd-space-2xs);
214
- padding: var(--fd-space-xs) var(--fd-space-md);
215
- background-color: var(--fd-error-muted);
216
- border-radius: var(--fd-radius-md);
217
- color: var(--fd-error);
218
- font-size: var(--fd-interrupt-font-error);
219
- }
220
-
221
- .text-prompt__input-wrapper {
222
- display: flex;
223
- flex-direction: column;
224
- }
225
-
226
- .text-prompt__input,
227
- .text-prompt__textarea {
228
- width: 100%;
229
- padding: var(--fd-space-md) var(--fd-space-xl);
230
- font-size: var(--fd-interrupt-font-message);
231
- font-family: inherit;
232
- line-height: var(--fd-interrupt-line-height);
233
- color: var(--fd-foreground);
234
- background-color: var(--fd-background);
235
- border: 1px solid var(--fd-border-strong);
236
- border-radius: var(--fd-radius-lg);
237
- outline: none;
238
- transition: all var(--fd-transition-fast);
239
- }
240
-
241
- .text-prompt__input::placeholder,
242
- .text-prompt__textarea::placeholder {
243
- color: var(--fd-muted-foreground);
244
- }
245
-
246
- .text-prompt__input:focus,
247
- .text-prompt__textarea:focus {
248
- border-color: var(--fd-interrupt-completed-border);
249
- box-shadow: 0 0 0 3px var(--fd-interrupt-completed-shadow);
250
- }
251
-
252
- .text-prompt__input:disabled,
253
- .text-prompt__textarea:disabled {
254
- background-color: var(--fd-muted);
255
- cursor: not-allowed;
256
- }
257
-
258
- /* Resolved state - neutral blue to match other interrupt prompts */
259
- .text-prompt__input--resolved,
260
- .text-prompt__textarea--resolved {
261
- background-color: var(--fd-primary-muted);
262
- border-color: var(--fd-interrupt-completed-border);
263
- }
264
-
265
- .text-prompt__textarea {
266
- resize: vertical;
267
- min-height: 100px;
268
- }
269
-
270
- .text-prompt__char-count {
271
- font-size: var(--fd-text-xs);
272
- color: var(--fd-muted-foreground);
273
- text-align: right;
274
- padding-right: var(--fd-space-3xs);
275
- }
276
-
277
- .text-prompt__char-count--warning {
278
- color: var(--fd-warning);
279
- }
280
-
281
- .text-prompt__actions {
282
- display: flex;
283
- gap: var(--fd-space-md);
284
- }
285
-
286
- .text-prompt__submit {
287
- display: inline-flex;
288
- align-items: center;
289
- justify-content: center;
290
- gap: var(--fd-space-xs);
291
- padding: var(--fd-space-sm) var(--fd-space-2xl);
292
- border-radius: var(--fd-radius-lg);
293
- font-size: var(--fd-text-sm);
294
- font-weight: 600;
295
- font-family: inherit;
296
- cursor: pointer;
297
- transition: all var(--fd-transition-normal);
298
- border: none;
299
- min-height: var(--fd-interrupt-btn-min-height);
300
- background: var(--fd-interrupt-btn-primary-bg);
301
- color: var(--fd-primary-foreground);
302
- box-shadow: 0 1px 3px var(--fd-interrupt-btn-primary-shadow);
303
- }
304
-
305
- .text-prompt__submit:hover:not(:disabled) {
306
- background: var(--fd-interrupt-btn-primary-bg-hover);
307
- box-shadow: 0 4px 12px var(--fd-interrupt-btn-primary-shadow);
308
- transform: translateY(-1px);
309
- }
310
-
311
- .text-prompt__submit:disabled {
312
- opacity: 0.5;
313
- cursor: not-allowed;
314
- transform: none;
315
- box-shadow: none;
316
- }
317
-
318
- .text-prompt__spinner {
319
- width: var(--fd-interrupt-spinner-size);
320
- height: var(--fd-interrupt-spinner-size);
321
- border: 2px solid var(--fd-border);
322
- border-top-color: currentColor;
323
- border-radius: 50%;
324
- animation: text-spin 0.6s linear infinite;
325
- }
326
-
327
- @keyframes text-spin {
328
- to {
329
- transform: rotate(360deg);
330
- }
331
- }
332
-
333
- /* Resolved badge - neutral blue theme */
334
- .text-prompt__resolved-badge {
335
- display: inline-flex;
336
- align-items: center;
337
- gap: var(--fd-space-2xs);
338
- padding: var(--fd-space-2xs) var(--fd-space-md);
339
- background-color: var(--fd-interrupt-badge-completed-bg);
340
- border-radius: var(--fd-radius-full);
341
- color: var(--fd-interrupt-badge-completed-text);
342
- font-size: var(--fd-text-xs);
343
- font-weight: 500;
344
- align-self: flex-start;
345
- }
193
+ /* Uses design tokens from base.css/tokens.css */
194
+ .text-prompt {
195
+ display: flex;
196
+ flex-direction: column;
197
+ gap: var(--fd-space-md);
198
+ }
199
+
200
+ .text-prompt--resolved {
201
+ opacity: 0.85;
202
+ }
203
+
204
+ .text-prompt--submitting {
205
+ pointer-events: none;
206
+ }
207
+
208
+ .text-prompt__message {
209
+ margin: 0;
210
+ font-size: var(--fd-interrupt-font-message);
211
+ line-height: var(--fd-interrupt-line-height);
212
+ color: var(--fd-foreground);
213
+ }
214
+
215
+ .text-prompt__error {
216
+ display: flex;
217
+ align-items: center;
218
+ gap: var(--fd-space-2xs);
219
+ padding: var(--fd-space-xs) var(--fd-space-md);
220
+ background-color: var(--fd-error-muted);
221
+ border-radius: var(--fd-radius-md);
222
+ color: var(--fd-error);
223
+ font-size: var(--fd-interrupt-font-error);
224
+ }
225
+
226
+ .text-prompt__input-wrapper {
227
+ display: flex;
228
+ flex-direction: column;
229
+ }
230
+
231
+ .text-prompt__input,
232
+ .text-prompt__textarea {
233
+ width: 100%;
234
+ padding: var(--fd-space-md) var(--fd-space-xl);
235
+ font-size: var(--fd-interrupt-font-message);
236
+ font-family: inherit;
237
+ line-height: var(--fd-interrupt-line-height);
238
+ color: var(--fd-foreground);
239
+ background-color: var(--fd-background);
240
+ border: 1px solid var(--fd-border-strong);
241
+ border-radius: var(--fd-radius-lg);
242
+ outline: none;
243
+ transition: all var(--fd-transition-fast);
244
+ }
245
+
246
+ .text-prompt__input::placeholder,
247
+ .text-prompt__textarea::placeholder {
248
+ color: var(--fd-muted-foreground);
249
+ }
250
+
251
+ .text-prompt__input:focus,
252
+ .text-prompt__textarea:focus {
253
+ border-color: var(--fd-interrupt-completed-border);
254
+ box-shadow: 0 0 0 3px var(--fd-interrupt-completed-shadow);
255
+ }
256
+
257
+ .text-prompt__input:disabled,
258
+ .text-prompt__textarea:disabled {
259
+ background-color: var(--fd-muted);
260
+ cursor: not-allowed;
261
+ }
262
+
263
+ /* Resolved state - neutral blue to match other interrupt prompts */
264
+ .text-prompt__input--resolved,
265
+ .text-prompt__textarea--resolved {
266
+ background-color: var(--fd-primary-muted);
267
+ border-color: var(--fd-interrupt-completed-border);
268
+ }
269
+
270
+ .text-prompt__textarea {
271
+ resize: vertical;
272
+ min-height: 100px;
273
+ }
274
+
275
+ .text-prompt__char-count {
276
+ font-size: var(--fd-text-xs);
277
+ color: var(--fd-muted-foreground);
278
+ text-align: right;
279
+ padding-right: var(--fd-space-3xs);
280
+ }
281
+
282
+ .text-prompt__char-count--warning {
283
+ color: var(--fd-warning);
284
+ }
285
+
286
+ .text-prompt__actions {
287
+ display: flex;
288
+ gap: var(--fd-space-md);
289
+ }
290
+
291
+ .text-prompt__submit {
292
+ display: inline-flex;
293
+ align-items: center;
294
+ justify-content: center;
295
+ gap: var(--fd-space-xs);
296
+ padding: var(--fd-space-sm) var(--fd-space-2xl);
297
+ border-radius: var(--fd-radius-lg);
298
+ font-size: var(--fd-text-sm);
299
+ font-weight: 600;
300
+ font-family: inherit;
301
+ cursor: pointer;
302
+ transition: all var(--fd-transition-normal);
303
+ border: none;
304
+ min-height: var(--fd-interrupt-btn-min-height);
305
+ background: var(--fd-interrupt-btn-primary-bg);
306
+ color: var(--fd-primary-foreground);
307
+ box-shadow: 0 1px 3px var(--fd-interrupt-btn-primary-shadow);
308
+ }
309
+
310
+ .text-prompt__submit:hover:not(:disabled) {
311
+ background: var(--fd-interrupt-btn-primary-bg-hover);
312
+ box-shadow: 0 4px 12px var(--fd-interrupt-btn-primary-shadow);
313
+ transform: translateY(-1px);
314
+ }
315
+
316
+ .text-prompt__submit:disabled {
317
+ opacity: 0.5;
318
+ cursor: not-allowed;
319
+ transform: none;
320
+ box-shadow: none;
321
+ }
322
+
323
+ .text-prompt__spinner {
324
+ width: var(--fd-interrupt-spinner-size);
325
+ height: var(--fd-interrupt-spinner-size);
326
+ border: 2px solid var(--fd-border);
327
+ border-top-color: currentColor;
328
+ border-radius: 50%;
329
+ animation: text-spin 0.6s linear infinite;
330
+ }
331
+
332
+ @keyframes text-spin {
333
+ to {
334
+ transform: rotate(360deg);
335
+ }
336
+ }
337
+
338
+ /* Resolved badge - neutral blue theme */
339
+ .text-prompt__resolved-badge {
340
+ display: inline-flex;
341
+ align-items: center;
342
+ gap: var(--fd-space-2xs);
343
+ padding: var(--fd-space-2xs) var(--fd-space-md);
344
+ background-color: var(--fd-interrupt-badge-completed-bg);
345
+ border-radius: var(--fd-radius-full);
346
+ color: var(--fd-interrupt-badge-completed-text);
347
+ font-size: var(--fd-text-xs);
348
+ font-weight: 500;
349
+ align-self: flex-start;
350
+ }
346
351
  </style>