@flowdrop/flowdrop 1.0.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 (403) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +252 -0
  3. package/dist/adapters/WorkflowAdapter.d.ts +167 -0
  4. package/dist/adapters/WorkflowAdapter.js +368 -0
  5. package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +96 -0
  6. package/dist/adapters/agentspec/AgentSpecAdapter.js +626 -0
  7. package/dist/adapters/agentspec/agentAdapter.d.ts +59 -0
  8. package/dist/adapters/agentspec/agentAdapter.js +91 -0
  9. package/dist/adapters/agentspec/autoLayout.d.ts +34 -0
  10. package/dist/adapters/agentspec/autoLayout.js +127 -0
  11. package/dist/adapters/agentspec/componentTypeDefaults.d.ts +73 -0
  12. package/dist/adapters/agentspec/componentTypeDefaults.js +238 -0
  13. package/dist/adapters/agentspec/defaultNodeTypes.d.ts +53 -0
  14. package/dist/adapters/agentspec/defaultNodeTypes.js +561 -0
  15. package/dist/adapters/agentspec/index.d.ts +37 -0
  16. package/dist/adapters/agentspec/index.js +39 -0
  17. package/dist/adapters/agentspec/validator.d.ts +34 -0
  18. package/dist/adapters/agentspec/validator.js +169 -0
  19. package/dist/api/enhanced-client.d.ts +183 -0
  20. package/dist/api/enhanced-client.js +430 -0
  21. package/dist/components/App.svelte +981 -0
  22. package/dist/components/App.svelte.d.ts +54 -0
  23. package/dist/components/CanvasBanner.stories.svelte +29 -0
  24. package/dist/components/CanvasBanner.stories.svelte.d.ts +27 -0
  25. package/dist/components/CanvasBanner.svelte +57 -0
  26. package/dist/components/CanvasBanner.svelte.d.ts +8 -0
  27. package/dist/components/ConfigForm.svelte +1138 -0
  28. package/dist/components/ConfigForm.svelte.d.ts +44 -0
  29. package/dist/components/ConfigModal.svelte +188 -0
  30. package/dist/components/ConfigModal.svelte.d.ts +13 -0
  31. package/dist/components/ConfigPanel.stories.svelte +47 -0
  32. package/dist/components/ConfigPanel.stories.svelte.d.ts +27 -0
  33. package/dist/components/ConfigPanel.svelte +182 -0
  34. package/dist/components/ConfigPanel.svelte.d.ts +32 -0
  35. package/dist/components/ConnectionLine.svelte +32 -0
  36. package/dist/components/ConnectionLine.svelte.d.ts +3 -0
  37. package/dist/components/EdgeRefresher.svelte +41 -0
  38. package/dist/components/EdgeRefresher.svelte.d.ts +9 -0
  39. package/dist/components/FlowDropZone.svelte +83 -0
  40. package/dist/components/FlowDropZone.svelte.d.ts +13 -0
  41. package/dist/components/LoadingSpinner.stories.svelte +30 -0
  42. package/dist/components/LoadingSpinner.stories.svelte.d.ts +27 -0
  43. package/dist/components/LoadingSpinner.svelte +36 -0
  44. package/dist/components/LoadingSpinner.svelte.d.ts +8 -0
  45. package/dist/components/Logo.stories.svelte +22 -0
  46. package/dist/components/Logo.stories.svelte.d.ts +27 -0
  47. package/dist/components/Logo.svelte +102 -0
  48. package/dist/components/Logo.svelte.d.ts +26 -0
  49. package/dist/components/LogsSidebar.svelte +563 -0
  50. package/dist/components/LogsSidebar.svelte.d.ts +17 -0
  51. package/dist/components/MarkdownDisplay.stories.svelte +36 -0
  52. package/dist/components/MarkdownDisplay.stories.svelte.d.ts +27 -0
  53. package/dist/components/MarkdownDisplay.svelte +29 -0
  54. package/dist/components/MarkdownDisplay.svelte.d.ts +7 -0
  55. package/dist/components/Navbar.stories.svelte +53 -0
  56. package/dist/components/Navbar.stories.svelte.d.ts +27 -0
  57. package/dist/components/Navbar.svelte +726 -0
  58. package/dist/components/Navbar.svelte.d.ts +29 -0
  59. package/dist/components/NodeSidebar.svelte +762 -0
  60. package/dist/components/NodeSidebar.svelte.d.ts +9 -0
  61. package/dist/components/NodeStatusOverlay.stories.svelte +85 -0
  62. package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +27 -0
  63. package/dist/components/NodeStatusOverlay.svelte +327 -0
  64. package/dist/components/NodeStatusOverlay.svelte.d.ts +11 -0
  65. package/dist/components/PipelineStatus.svelte +314 -0
  66. package/dist/components/PipelineStatus.svelte.d.ts +20 -0
  67. package/dist/components/PortCoordinateTracker.svelte +58 -0
  68. package/dist/components/PortCoordinateTracker.svelte.d.ts +12 -0
  69. package/dist/components/ReadOnlyDetails.svelte +170 -0
  70. package/dist/components/ReadOnlyDetails.svelte.d.ts +25 -0
  71. package/dist/components/SchemaForm.stories.svelte +116 -0
  72. package/dist/components/SchemaForm.stories.svelte.d.ts +27 -0
  73. package/dist/components/SchemaForm.svelte +536 -0
  74. package/dist/components/SchemaForm.svelte.d.ts +83 -0
  75. package/dist/components/SettingsModal.svelte +279 -0
  76. package/dist/components/SettingsModal.svelte.d.ts +23 -0
  77. package/dist/components/SettingsPanel.svelte +638 -0
  78. package/dist/components/SettingsPanel.svelte.d.ts +21 -0
  79. package/dist/components/StatusIcon.stories.svelte +60 -0
  80. package/dist/components/StatusIcon.stories.svelte.d.ts +27 -0
  81. package/dist/components/StatusIcon.svelte +119 -0
  82. package/dist/components/StatusIcon.svelte.d.ts +10 -0
  83. package/dist/components/StatusLabel.stories.svelte +17 -0
  84. package/dist/components/StatusLabel.stories.svelte.d.ts +27 -0
  85. package/dist/components/StatusLabel.svelte +33 -0
  86. package/dist/components/StatusLabel.svelte.d.ts +7 -0
  87. package/dist/components/ThemeToggle.stories.svelte +25 -0
  88. package/dist/components/ThemeToggle.stories.svelte.d.ts +27 -0
  89. package/dist/components/ThemeToggle.svelte +185 -0
  90. package/dist/components/ThemeToggle.svelte.d.ts +14 -0
  91. package/dist/components/UniversalNode.svelte +155 -0
  92. package/dist/components/UniversalNode.svelte.d.ts +15 -0
  93. package/dist/components/WorkflowEditor.svelte +1035 -0
  94. package/dist/components/WorkflowEditor.svelte.d.ts +23 -0
  95. package/dist/components/form/FormArray.svelte +1049 -0
  96. package/dist/components/form/FormArray.svelte.d.ts +22 -0
  97. package/dist/components/form/FormAutocomplete.svelte +1009 -0
  98. package/dist/components/form/FormAutocomplete.svelte.d.ts +25 -0
  99. package/dist/components/form/FormCheckboxGroup.stories.svelte +28 -0
  100. package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +27 -0
  101. package/dist/components/form/FormCheckboxGroup.svelte +155 -0
  102. package/dist/components/form/FormCheckboxGroup.svelte.d.ts +17 -0
  103. package/dist/components/form/FormCodeEditor.svelte +458 -0
  104. package/dist/components/form/FormCodeEditor.svelte.d.ts +25 -0
  105. package/dist/components/form/FormField.svelte +417 -0
  106. package/dist/components/form/FormField.svelte.d.ts +29 -0
  107. package/dist/components/form/FormFieldLight.svelte +425 -0
  108. package/dist/components/form/FormFieldLight.svelte.d.ts +18 -0
  109. package/dist/components/form/FormFieldWrapper.stories.svelte +53 -0
  110. package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +27 -0
  111. package/dist/components/form/FormFieldWrapper.svelte +125 -0
  112. package/dist/components/form/FormFieldWrapper.svelte.d.ts +18 -0
  113. package/dist/components/form/FormFieldset.svelte +142 -0
  114. package/dist/components/form/FormFieldset.svelte.d.ts +11 -0
  115. package/dist/components/form/FormMarkdownEditor.svelte +752 -0
  116. package/dist/components/form/FormMarkdownEditor.svelte.d.ts +33 -0
  117. package/dist/components/form/FormNumberField.stories.svelte +36 -0
  118. package/dist/components/form/FormNumberField.stories.svelte.d.ts +27 -0
  119. package/dist/components/form/FormNumberField.svelte +112 -0
  120. package/dist/components/form/FormNumberField.svelte.d.ts +25 -0
  121. package/dist/components/form/FormRangeField.stories.svelte +31 -0
  122. package/dist/components/form/FormRangeField.stories.svelte.d.ts +27 -0
  123. package/dist/components/form/FormRangeField.svelte +246 -0
  124. package/dist/components/form/FormRangeField.svelte.d.ts +23 -0
  125. package/dist/components/form/FormSelect.stories.svelte +50 -0
  126. package/dist/components/form/FormSelect.stories.svelte.d.ts +27 -0
  127. package/dist/components/form/FormSelect.svelte +129 -0
  128. package/dist/components/form/FormSelect.svelte.d.ts +20 -0
  129. package/dist/components/form/FormTemplateEditor.svelte +825 -0
  130. package/dist/components/form/FormTemplateEditor.svelte.d.ts +41 -0
  131. package/dist/components/form/FormTextField.stories.svelte +30 -0
  132. package/dist/components/form/FormTextField.stories.svelte.d.ts +27 -0
  133. package/dist/components/form/FormTextField.svelte +91 -0
  134. package/dist/components/form/FormTextField.svelte.d.ts +19 -0
  135. package/dist/components/form/FormTextarea.stories.svelte +34 -0
  136. package/dist/components/form/FormTextarea.stories.svelte.d.ts +27 -0
  137. package/dist/components/form/FormTextarea.svelte +97 -0
  138. package/dist/components/form/FormTextarea.svelte.d.ts +21 -0
  139. package/dist/components/form/FormToggle.stories.svelte +30 -0
  140. package/dist/components/form/FormToggle.stories.svelte.d.ts +27 -0
  141. package/dist/components/form/FormToggle.svelte +126 -0
  142. package/dist/components/form/FormToggle.svelte.d.ts +19 -0
  143. package/dist/components/form/FormUISchemaRenderer.svelte +136 -0
  144. package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +32 -0
  145. package/dist/components/form/index.d.ts +50 -0
  146. package/dist/components/form/index.js +54 -0
  147. package/dist/components/form/templateAutocomplete.d.ts +29 -0
  148. package/dist/components/form/templateAutocomplete.js +254 -0
  149. package/dist/components/form/types.d.ts +485 -0
  150. package/dist/components/form/types.js +73 -0
  151. package/dist/components/interrupt/ChoicePrompt.stories.svelte +52 -0
  152. package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +27 -0
  153. package/dist/components/interrupt/ChoicePrompt.svelte +401 -0
  154. package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +23 -0
  155. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +71 -0
  156. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +27 -0
  157. package/dist/components/interrupt/ConfirmationPrompt.svelte +292 -0
  158. package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +25 -0
  159. package/dist/components/interrupt/FormPrompt.svelte +236 -0
  160. package/dist/components/interrupt/FormPrompt.svelte.d.ts +23 -0
  161. package/dist/components/interrupt/InterruptBubble.svelte +601 -0
  162. package/dist/components/interrupt/InterruptBubble.svelte.d.ts +16 -0
  163. package/dist/components/interrupt/ReviewPrompt.stories.svelte +67 -0
  164. package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +27 -0
  165. package/dist/components/interrupt/ReviewPrompt.svelte +861 -0
  166. package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +23 -0
  167. package/dist/components/interrupt/TextInputPrompt.stories.svelte +47 -0
  168. package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +27 -0
  169. package/dist/components/interrupt/TextInputPrompt.svelte +346 -0
  170. package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +23 -0
  171. package/dist/components/interrupt/index.d.ts +13 -0
  172. package/dist/components/interrupt/index.js +15 -0
  173. package/dist/components/layouts/MainLayout.svelte +718 -0
  174. package/dist/components/layouts/MainLayout.svelte.d.ts +62 -0
  175. package/dist/components/nodes/GatewayNode.stories.svelte +108 -0
  176. package/dist/components/nodes/GatewayNode.stories.svelte.d.ts +26 -0
  177. package/dist/components/nodes/GatewayNode.svelte +591 -0
  178. package/dist/components/nodes/GatewayNode.svelte.d.ts +15 -0
  179. package/dist/components/nodes/IdeaNode.stories.svelte +52 -0
  180. package/dist/components/nodes/IdeaNode.stories.svelte.d.ts +26 -0
  181. package/dist/components/nodes/IdeaNode.svelte +455 -0
  182. package/dist/components/nodes/IdeaNode.svelte.d.ts +24 -0
  183. package/dist/components/nodes/NotesNode.stories.svelte +76 -0
  184. package/dist/components/nodes/NotesNode.stories.svelte.d.ts +26 -0
  185. package/dist/components/nodes/NotesNode.svelte +378 -0
  186. package/dist/components/nodes/NotesNode.svelte.d.ts +24 -0
  187. package/dist/components/nodes/SimpleNode.stories.svelte +159 -0
  188. package/dist/components/nodes/SimpleNode.stories.svelte.d.ts +26 -0
  189. package/dist/components/nodes/SimpleNode.svelte +451 -0
  190. package/dist/components/nodes/SimpleNode.svelte.d.ts +25 -0
  191. package/dist/components/nodes/SquareNode.stories.svelte +82 -0
  192. package/dist/components/nodes/SquareNode.stories.svelte.d.ts +26 -0
  193. package/dist/components/nodes/SquareNode.svelte +407 -0
  194. package/dist/components/nodes/SquareNode.svelte.d.ts +25 -0
  195. package/dist/components/nodes/TerminalNode.stories.svelte +25 -0
  196. package/dist/components/nodes/TerminalNode.stories.svelte.d.ts +26 -0
  197. package/dist/components/nodes/TerminalNode.svelte +690 -0
  198. package/dist/components/nodes/TerminalNode.svelte.d.ts +25 -0
  199. package/dist/components/nodes/ToolNode.stories.svelte +189 -0
  200. package/dist/components/nodes/ToolNode.stories.svelte.d.ts +26 -0
  201. package/dist/components/nodes/ToolNode.svelte +471 -0
  202. package/dist/components/nodes/ToolNode.svelte.d.ts +36 -0
  203. package/dist/components/nodes/WorkflowNode.stories.svelte +55 -0
  204. package/dist/components/nodes/WorkflowNode.stories.svelte.d.ts +26 -0
  205. package/dist/components/nodes/WorkflowNode.svelte +571 -0
  206. package/dist/components/nodes/WorkflowNode.svelte.d.ts +15 -0
  207. package/dist/components/playground/ChatPanel.svelte +905 -0
  208. package/dist/components/playground/ChatPanel.svelte.d.ts +46 -0
  209. package/dist/components/playground/ExecutionLogs.svelte +488 -0
  210. package/dist/components/playground/ExecutionLogs.svelte.d.ts +14 -0
  211. package/dist/components/playground/InputCollector.svelte +444 -0
  212. package/dist/components/playground/InputCollector.svelte.d.ts +16 -0
  213. package/dist/components/playground/MessageBubble.stories.svelte +62 -0
  214. package/dist/components/playground/MessageBubble.stories.svelte.d.ts +27 -0
  215. package/dist/components/playground/MessageBubble.svelte +633 -0
  216. package/dist/components/playground/MessageBubble.svelte.d.ts +24 -0
  217. package/dist/components/playground/Playground.svelte +1075 -0
  218. package/dist/components/playground/Playground.svelte.d.ts +25 -0
  219. package/dist/components/playground/PlaygroundModal.svelte +220 -0
  220. package/dist/components/playground/PlaygroundModal.svelte.d.ts +25 -0
  221. package/dist/components/playground/SessionManager.svelte +538 -0
  222. package/dist/components/playground/SessionManager.svelte.d.ts +20 -0
  223. package/dist/config/agentSpecEndpoints.d.ts +70 -0
  224. package/dist/config/agentSpecEndpoints.js +65 -0
  225. package/dist/config/constants.d.ts +43 -0
  226. package/dist/config/constants.js +31 -0
  227. package/dist/config/defaultCategories.d.ts +7 -0
  228. package/dist/config/defaultCategories.js +126 -0
  229. package/dist/config/defaultPortConfig.d.ts +6 -0
  230. package/dist/config/defaultPortConfig.js +201 -0
  231. package/dist/config/endpoints.d.ts +160 -0
  232. package/dist/config/endpoints.js +146 -0
  233. package/dist/config/runtimeConfig.d.ts +47 -0
  234. package/dist/config/runtimeConfig.js +80 -0
  235. package/dist/core/index.d.ts +75 -0
  236. package/dist/core/index.js +92 -0
  237. package/dist/display/index.d.ts +29 -0
  238. package/dist/display/index.js +36 -0
  239. package/dist/editor/index.d.ts +95 -0
  240. package/dist/editor/index.js +138 -0
  241. package/dist/form/code.d.ts +101 -0
  242. package/dist/form/code.js +168 -0
  243. package/dist/form/fieldRegistry.d.ts +169 -0
  244. package/dist/form/fieldRegistry.js +152 -0
  245. package/dist/form/full.d.ts +56 -0
  246. package/dist/form/full.js +80 -0
  247. package/dist/form/index.d.ts +77 -0
  248. package/dist/form/index.js +91 -0
  249. package/dist/form/markdown.d.ts +69 -0
  250. package/dist/form/markdown.js +103 -0
  251. package/dist/helpers/nodeLayoutHelper.d.ts +14 -0
  252. package/dist/helpers/nodeLayoutHelper.js +19 -0
  253. package/dist/helpers/proximityConnect.d.ts +94 -0
  254. package/dist/helpers/proximityConnect.js +314 -0
  255. package/dist/helpers/workflowEditorHelper.d.ts +183 -0
  256. package/dist/helpers/workflowEditorHelper.js +595 -0
  257. package/dist/index.d.ts +37 -0
  258. package/dist/index.js +64 -0
  259. package/dist/mocks/app-environment.d.ts +8 -0
  260. package/dist/mocks/app-environment.js +16 -0
  261. package/dist/mocks/app-forms.d.ts +2 -0
  262. package/dist/mocks/app-forms.js +22 -0
  263. package/dist/mocks/app-navigation.d.ts +5 -0
  264. package/dist/mocks/app-navigation.js +36 -0
  265. package/dist/mocks/app-stores.d.ts +14 -0
  266. package/dist/mocks/app-stores.js +26 -0
  267. package/dist/playground/index.d.ts +131 -0
  268. package/dist/playground/index.js +172 -0
  269. package/dist/playground/mount.d.ts +203 -0
  270. package/dist/playground/mount.js +235 -0
  271. package/dist/registry/BaseRegistry.d.ts +92 -0
  272. package/dist/registry/BaseRegistry.js +124 -0
  273. package/dist/registry/builtinFormats.d.ts +23 -0
  274. package/dist/registry/builtinFormats.js +70 -0
  275. package/dist/registry/builtinNodes.d.ts +77 -0
  276. package/dist/registry/builtinNodes.js +211 -0
  277. package/dist/registry/index.d.ts +8 -0
  278. package/dist/registry/index.js +12 -0
  279. package/dist/registry/nodeComponentRegistry.d.ts +276 -0
  280. package/dist/registry/nodeComponentRegistry.js +262 -0
  281. package/dist/registry/plugin.d.ts +215 -0
  282. package/dist/registry/plugin.js +249 -0
  283. package/dist/registry/workflowFormatRegistry.d.ts +122 -0
  284. package/dist/registry/workflowFormatRegistry.js +96 -0
  285. package/dist/schema/index.d.ts +23 -0
  286. package/dist/schema/index.js +23 -0
  287. package/dist/schemas/v1/workflow.schema.json +1078 -0
  288. package/dist/services/agentSpecExecutionService.d.ts +106 -0
  289. package/dist/services/agentSpecExecutionService.js +334 -0
  290. package/dist/services/api.d.ts +115 -0
  291. package/dist/services/api.js +214 -0
  292. package/dist/services/apiVariableService.d.ts +114 -0
  293. package/dist/services/apiVariableService.js +338 -0
  294. package/dist/services/autoSaveService.d.ts +112 -0
  295. package/dist/services/autoSaveService.js +227 -0
  296. package/dist/services/categoriesApi.d.ts +14 -0
  297. package/dist/services/categoriesApi.js +49 -0
  298. package/dist/services/draftStorage.d.ts +171 -0
  299. package/dist/services/draftStorage.js +299 -0
  300. package/dist/services/dynamicSchemaService.d.ts +108 -0
  301. package/dist/services/dynamicSchemaService.js +444 -0
  302. package/dist/services/globalSave.d.ts +69 -0
  303. package/dist/services/globalSave.js +248 -0
  304. package/dist/services/historyService.d.ts +208 -0
  305. package/dist/services/historyService.js +321 -0
  306. package/dist/services/interruptService.d.ts +133 -0
  307. package/dist/services/interruptService.js +280 -0
  308. package/dist/services/nodeExecutionService.d.ts +63 -0
  309. package/dist/services/nodeExecutionService.js +266 -0
  310. package/dist/services/playgroundService.d.ts +130 -0
  311. package/dist/services/playgroundService.js +321 -0
  312. package/dist/services/portConfigApi.d.ts +14 -0
  313. package/dist/services/portConfigApi.js +54 -0
  314. package/dist/services/settingsService.d.ts +92 -0
  315. package/dist/services/settingsService.js +196 -0
  316. package/dist/services/toastService.d.ts +156 -0
  317. package/dist/services/toastService.js +265 -0
  318. package/dist/services/variableService.d.ts +141 -0
  319. package/dist/services/variableService.js +463 -0
  320. package/dist/services/workflowStorage.d.ts +37 -0
  321. package/dist/services/workflowStorage.js +116 -0
  322. package/dist/settings/index.d.ts +25 -0
  323. package/dist/settings/index.js +33 -0
  324. package/dist/stores/categoriesStore.svelte.d.ts +32 -0
  325. package/dist/stores/categoriesStore.svelte.js +77 -0
  326. package/dist/stores/editorStateMachine.svelte.d.ts +42 -0
  327. package/dist/stores/editorStateMachine.svelte.js +132 -0
  328. package/dist/stores/historyStore.svelte.d.ts +136 -0
  329. package/dist/stores/historyStore.svelte.js +207 -0
  330. package/dist/stores/interruptStore.svelte.d.ts +179 -0
  331. package/dist/stores/interruptStore.svelte.js +346 -0
  332. package/dist/stores/playgroundStore.svelte.d.ts +230 -0
  333. package/dist/stores/playgroundStore.svelte.js +515 -0
  334. package/dist/stores/portCoordinateStore.svelte.d.ts +66 -0
  335. package/dist/stores/portCoordinateStore.svelte.js +186 -0
  336. package/dist/stores/settingsStore.svelte.d.ts +158 -0
  337. package/dist/stores/settingsStore.svelte.js +544 -0
  338. package/dist/stores/workflowStore.svelte.d.ts +260 -0
  339. package/dist/stores/workflowStore.svelte.js +649 -0
  340. package/dist/stories/CanvasDecorator.svelte +49 -0
  341. package/dist/stories/CanvasDecorator.svelte.d.ts +8 -0
  342. package/dist/stories/NodeDecorator.svelte +73 -0
  343. package/dist/stories/NodeDecorator.svelte.d.ts +8 -0
  344. package/dist/stories/utils.d.ts +93 -0
  345. package/dist/stories/utils.js +122 -0
  346. package/dist/styles/base.css +1300 -0
  347. package/dist/styles/toast.css +35 -0
  348. package/dist/styles/tokens.css +475 -0
  349. package/dist/svelte-app.d.ts +150 -0
  350. package/dist/svelte-app.js +295 -0
  351. package/dist/types/agentspec.d.ts +318 -0
  352. package/dist/types/agentspec.js +48 -0
  353. package/dist/types/auth.d.ts +263 -0
  354. package/dist/types/auth.js +229 -0
  355. package/dist/types/config.d.ts +151 -0
  356. package/dist/types/config.js +7 -0
  357. package/dist/types/events.d.ts +190 -0
  358. package/dist/types/events.js +30 -0
  359. package/dist/types/index.d.ts +1234 -0
  360. package/dist/types/index.js +27 -0
  361. package/dist/types/interrupt.d.ts +390 -0
  362. package/dist/types/interrupt.js +145 -0
  363. package/dist/types/interruptState.d.ts +211 -0
  364. package/dist/types/interruptState.js +308 -0
  365. package/dist/types/playground.d.ts +351 -0
  366. package/dist/types/playground.js +95 -0
  367. package/dist/types/settings.d.ts +189 -0
  368. package/dist/types/settings.js +97 -0
  369. package/dist/types/uischema.d.ts +144 -0
  370. package/dist/types/uischema.js +51 -0
  371. package/dist/utils/colors.d.ts +288 -0
  372. package/dist/utils/colors.js +548 -0
  373. package/dist/utils/config.d.ts +37 -0
  374. package/dist/utils/config.js +226 -0
  375. package/dist/utils/connections.d.ts +125 -0
  376. package/dist/utils/connections.js +414 -0
  377. package/dist/utils/errors.d.ts +28 -0
  378. package/dist/utils/errors.js +44 -0
  379. package/dist/utils/fetchWithAuth.d.ts +25 -0
  380. package/dist/utils/fetchWithAuth.js +34 -0
  381. package/dist/utils/handleIds.d.ts +35 -0
  382. package/dist/utils/handleIds.js +58 -0
  383. package/dist/utils/handlePositioning.d.ts +31 -0
  384. package/dist/utils/handlePositioning.js +35 -0
  385. package/dist/utils/icons.d.ts +106 -0
  386. package/dist/utils/icons.js +157 -0
  387. package/dist/utils/logger.d.ts +47 -0
  388. package/dist/utils/logger.js +72 -0
  389. package/dist/utils/nodeStatus.d.ts +53 -0
  390. package/dist/utils/nodeStatus.js +183 -0
  391. package/dist/utils/nodeTypes.d.ts +117 -0
  392. package/dist/utils/nodeTypes.js +244 -0
  393. package/dist/utils/nodeWrapper.d.ts +39 -0
  394. package/dist/utils/nodeWrapper.js +62 -0
  395. package/dist/utils/performanceUtils.d.ts +30 -0
  396. package/dist/utils/performanceUtils.js +108 -0
  397. package/dist/utils/sanitize.d.ts +19 -0
  398. package/dist/utils/sanitize.js +31 -0
  399. package/dist/utils/uischema.d.ts +52 -0
  400. package/dist/utils/uischema.js +88 -0
  401. package/dist/utils/validation.d.ts +29 -0
  402. package/dist/utils/validation.js +39 -0
  403. package/package.json +292 -0
@@ -0,0 +1,351 @@
1
+ /**
2
+ * Playground Types
3
+ *
4
+ * TypeScript types for the Playground feature, enabling interactive
5
+ * workflow testing with chat interface and session management.
6
+ *
7
+ * @module types/playground
8
+ */
9
+ import type { ConfigProperty } from './index.js';
10
+ /**
11
+ * Status of a playground session
12
+ */
13
+ export type PlaygroundSessionStatus = 'idle' | 'running' | 'awaiting_input' | 'completed' | 'failed';
14
+ /**
15
+ * Statuses that stop polling by default (resource efficiency)
16
+ */
17
+ export declare const DEFAULT_STOP_POLLING_STATUSES: PlaygroundSessionStatus[];
18
+ /**
19
+ * Statuses that are considered terminal by default (clears isExecuting)
20
+ */
21
+ export declare const DEFAULT_TERMINAL_STATUSES: PlaygroundSessionStatus[];
22
+ /**
23
+ * Default implementation for determining if polling should stop.
24
+ * Consumers can override this via PlaygroundConfig.shouldStopPolling.
25
+ *
26
+ * @param status - The current session status
27
+ * @returns True if polling should stop
28
+ */
29
+ export declare function defaultShouldStopPolling(status: PlaygroundSessionStatus): boolean;
30
+ /**
31
+ * Default implementation for determining if a status is terminal (clears isExecuting).
32
+ * Consumers can override this via PlaygroundConfig.isTerminalStatus.
33
+ *
34
+ * @param status - The current session status
35
+ * @returns True if the status is terminal
36
+ */
37
+ export declare function defaultIsTerminalStatus(status: PlaygroundSessionStatus): boolean;
38
+ /**
39
+ * Role of a message sender in the playground
40
+ *
41
+ * - `user`: Message from the user
42
+ * - `assistant`: Response from the workflow/AI
43
+ * - `system`: System notifications
44
+ * - `log`: Execution log entries
45
+ */
46
+ export type PlaygroundMessageRole = 'user' | 'assistant' | 'system' | 'log';
47
+ /**
48
+ * Log level for log-type messages
49
+ */
50
+ export type PlaygroundMessageLevel = 'info' | 'warning' | 'error' | 'debug';
51
+ /**
52
+ * Status of a playground message
53
+ */
54
+ export type PlaygroundMessageStatus = 'pending' | 'processing' | 'completed' | 'failed';
55
+ /**
56
+ * Playground session representing a test conversation
57
+ *
58
+ * Sessions maintain conversation history and allow interactive testing
59
+ * of workflows in an isolated environment.
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const session: PlaygroundSession = {
64
+ * id: "sess-123",
65
+ * workflowId: "wf-456",
66
+ * name: "Test Session 1",
67
+ * status: "idle",
68
+ * createdAt: "2024-01-20T10:00:00Z",
69
+ * updatedAt: "2024-01-20T10:30:00Z"
70
+ * };
71
+ * ```
72
+ */
73
+ export interface PlaygroundSession {
74
+ /** Session unique identifier */
75
+ id: string;
76
+ /** Associated workflow ID */
77
+ workflowId: string;
78
+ /** Session display name */
79
+ name: string;
80
+ /** Current session status */
81
+ status: PlaygroundSessionStatus;
82
+ /** Session creation timestamp (ISO 8601) */
83
+ createdAt: string;
84
+ /** Last activity timestamp (ISO 8601) */
85
+ updatedAt: string;
86
+ /** Custom session metadata */
87
+ metadata?: Record<string, unknown>;
88
+ }
89
+ /**
90
+ * Message metadata containing additional context
91
+ */
92
+ export interface PlaygroundMessageMetadata {
93
+ /** Log level for log-type messages */
94
+ level?: PlaygroundMessageLevel;
95
+ /** Execution duration in milliseconds */
96
+ duration?: number;
97
+ /** Human-readable node label */
98
+ nodeLabel?: string;
99
+ /** Node output data */
100
+ outputs?: Record<string, unknown>;
101
+ /** User's display name for user-role messages (from backend) */
102
+ userName?: string;
103
+ /** Allow additional properties */
104
+ [key: string]: unknown;
105
+ }
106
+ /**
107
+ * Message in a playground session
108
+ *
109
+ * Messages can be user inputs, assistant responses, system notifications,
110
+ * or execution logs. Each message is timestamped and can be associated
111
+ * with a specific workflow node.
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * const message: PlaygroundMessage = {
116
+ * id: "msg-123",
117
+ * sessionId: "sess-456",
118
+ * role: "assistant",
119
+ * content: "I've analyzed your data and found 3 patterns.",
120
+ * timestamp: "2024-01-20T10:30:00Z",
121
+ * nodeId: "node-ai-analyzer",
122
+ * metadata: { duration: 2500, nodeLabel: "AI Analyzer" }
123
+ * };
124
+ * ```
125
+ */
126
+ export interface PlaygroundMessage {
127
+ /** Message unique identifier */
128
+ id: string;
129
+ /** Parent session ID */
130
+ sessionId: string;
131
+ /** Role of the message sender */
132
+ role: PlaygroundMessageRole;
133
+ /** Message content */
134
+ content: string;
135
+ /** Message timestamp (ISO 8601) */
136
+ timestamp: string;
137
+ /** Message status */
138
+ status?: PlaygroundMessageStatus;
139
+ /**
140
+ * Sequence number for ordering messages
141
+ * - User messages: incrementing numbers (1, 2, 3, ...)
142
+ * - Assistant/system responses: 0 (sorted after parent via parentMessageId)
143
+ */
144
+ sequenceNumber?: number;
145
+ /** Parent message ID (for assistant responses linked to user messages) */
146
+ parentMessageId?: string;
147
+ /** Associated node ID (for log/assistant messages) */
148
+ nodeId?: string | null;
149
+ /** Additional message metadata */
150
+ metadata?: PlaygroundMessageMetadata;
151
+ }
152
+ /**
153
+ * Input field derived from workflow input nodes
154
+ *
155
+ * Used to auto-generate input forms in the playground based on
156
+ * the workflow's input nodes' configSchema.
157
+ *
158
+ * @example
159
+ * ```typescript
160
+ * const inputField: PlaygroundInputField = {
161
+ * nodeId: "node-text-input",
162
+ * fieldId: "user_message",
163
+ * label: "User Message",
164
+ * type: "string",
165
+ * defaultValue: "Hello!",
166
+ * required: true,
167
+ * schema: { type: "string", format: "multiline" }
168
+ * };
169
+ * ```
170
+ */
171
+ export interface PlaygroundInputField {
172
+ /** Source node ID */
173
+ nodeId: string;
174
+ /** Field identifier */
175
+ fieldId: string;
176
+ /** Display label */
177
+ label: string;
178
+ /** Field data type */
179
+ type: string;
180
+ /** Default value from node config */
181
+ defaultValue?: unknown;
182
+ /** Whether the field is required */
183
+ required: boolean;
184
+ /** JSON Schema for the field */
185
+ schema?: ConfigProperty;
186
+ }
187
+ /**
188
+ * Request payload for sending a message to the playground
189
+ */
190
+ export interface PlaygroundMessageRequest {
191
+ /** Message content (typically user input) */
192
+ content: string;
193
+ /** Additional input values for workflow nodes */
194
+ inputs?: Record<string, unknown>;
195
+ }
196
+ /**
197
+ * Response from the messages endpoint with polling support
198
+ */
199
+ export interface PlaygroundMessagesResult {
200
+ /** Array of messages */
201
+ messages: PlaygroundMessage[];
202
+ /** Whether there are more messages to fetch */
203
+ hasMore: boolean;
204
+ /** Current session status (useful for polling) */
205
+ sessionStatus: PlaygroundSessionStatus;
206
+ }
207
+ /**
208
+ * Configuration for the Playground component
209
+ */
210
+ export interface PlaygroundConfig {
211
+ /** Polling interval in milliseconds (default: 1500) */
212
+ pollingInterval?: number;
213
+ /** Maximum number of messages to display (default: 500) */
214
+ maxMessages?: number;
215
+ /** Auto-scroll to bottom on new messages (default: true) */
216
+ autoScroll?: boolean;
217
+ /** Show timestamps on messages (default: true) */
218
+ showTimestamps?: boolean;
219
+ /** Show log messages inline or in collapsible section (default: "collapsible") */
220
+ logDisplayMode?: 'inline' | 'collapsible';
221
+ /** Enable markdown rendering in messages (default: true) */
222
+ enableMarkdown?: boolean;
223
+ /**
224
+ * Whether to show the chat text input (default: true)
225
+ * When false, only the "Run" button is displayed for workflow execution.
226
+ */
227
+ showChatInput?: boolean;
228
+ /**
229
+ * Whether to show the "Run" button (default: true)
230
+ * When false, the Run button is hidden. If both showChatInput and showRunButton
231
+ * are false, a helpful message is displayed to the user.
232
+ */
233
+ showRunButton?: boolean;
234
+ /**
235
+ * Predefined message to send when "Run" button is clicked (default: "Run workflow")
236
+ * Used when showChatInput is false to provide a default message for workflow execution.
237
+ */
238
+ predefinedMessage?: string;
239
+ /**
240
+ * Automatically run the workflow once when the playground loads (default: false)
241
+ * When true, the workflow will execute immediately using the predefinedMessage.
242
+ * This is useful for scenarios where the workflow should start without user interaction.
243
+ * Note: Only runs once per session - subsequent runs require clicking the Run button.
244
+ */
245
+ autoRun?: boolean;
246
+ /**
247
+ * Width of the sidebar in CSS units (default: "280px")
248
+ * Accepts any valid CSS width value, e.g. "300px", "20rem".
249
+ */
250
+ sidebarWidth?: string;
251
+ /**
252
+ * Whether to show the sidebar with session list (default: true)
253
+ * When false, the sidebar is hidden, creating a minimal chat widget experience.
254
+ * Use with initialSessionId to load a pre-created session directly.
255
+ */
256
+ showSidebar?: boolean;
257
+ /**
258
+ * Whether to show the session header bar (default: true)
259
+ * When false, the header with session name and close button is hidden.
260
+ * Typically used together with showSidebar: false for minimal UI.
261
+ */
262
+ showSessionHeader?: boolean;
263
+ /**
264
+ * Determines if polling should stop for a given session status.
265
+ * Override to customize which statuses pause polling.
266
+ * @default defaultShouldStopPolling (stops on idle, completed, failed, awaiting_input)
267
+ */
268
+ shouldStopPolling?: (status: PlaygroundSessionStatus) => boolean;
269
+ /**
270
+ * Determines if a session status is terminal (clears isExecuting).
271
+ * Override to customize which statuses end the executing state.
272
+ * @default defaultIsTerminalStatus (terminal on idle, completed, failed, awaiting_input)
273
+ */
274
+ isTerminalStatus?: (status: PlaygroundSessionStatus) => boolean;
275
+ }
276
+ /**
277
+ * Metadata field to control Run button state from backend.
278
+ * When a message contains this field set to true, the Run button becomes enabled.
279
+ *
280
+ * @example
281
+ * ```typescript
282
+ * // Backend sends a message with this metadata to re-enable Run button:
283
+ * const message: PlaygroundMessage = {
284
+ * id: "msg-123",
285
+ * sessionId: "sess-456",
286
+ * role: "system",
287
+ * content: "Workflow completed. Ready for next run.",
288
+ * timestamp: new Date().toISOString(),
289
+ * metadata: {
290
+ * enableRun: true
291
+ * }
292
+ * };
293
+ * ```
294
+ */
295
+ export declare const ENABLE_RUN_METADATA_KEY = "enableRun";
296
+ /**
297
+ * Check if a message metadata contains the enableRun flag
298
+ *
299
+ * @param metadata - The message metadata to check
300
+ * @returns True if the metadata signals to enable the Run button
301
+ */
302
+ export declare function hasEnableRunFlag(metadata: PlaygroundMessageMetadata | undefined): boolean;
303
+ /**
304
+ * Display mode for the Playground component
305
+ */
306
+ export type PlaygroundMode = 'embedded' | 'standalone' | 'modal';
307
+ /**
308
+ * Chat input detection patterns for identifying chat nodes in workflows
309
+ */
310
+ export declare const CHAT_INPUT_PATTERNS: readonly ["chat_input", "text_input", "user_input", "message_input", "prompt_input"];
311
+ /**
312
+ * Check if a node type is a chat input node
313
+ *
314
+ * @param nodeTypeId - The node type identifier
315
+ * @returns True if the node is a chat input type
316
+ */
317
+ export declare function isChatInputNode(nodeTypeId: string): boolean;
318
+ /**
319
+ * API response wrapper for playground endpoints
320
+ */
321
+ export interface PlaygroundApiResponse<T> {
322
+ /** Whether the request was successful */
323
+ success: boolean;
324
+ /** Response data */
325
+ data?: T;
326
+ /** Error message if unsuccessful */
327
+ error?: string;
328
+ /** Human-readable message */
329
+ message?: string;
330
+ }
331
+ /**
332
+ * Type alias for session list response
333
+ */
334
+ export type PlaygroundSessionsResponse = PlaygroundApiResponse<PlaygroundSession[]>;
335
+ /**
336
+ * Type alias for single session response
337
+ */
338
+ export type PlaygroundSessionResponse = PlaygroundApiResponse<PlaygroundSession>;
339
+ /**
340
+ * Type alias for message response
341
+ */
342
+ export type PlaygroundMessageResponse = PlaygroundApiResponse<PlaygroundMessage>;
343
+ /**
344
+ * Type alias for messages list response with polling metadata
345
+ */
346
+ export interface PlaygroundMessagesApiResponse extends PlaygroundApiResponse<PlaygroundMessage[]> {
347
+ /** Whether there are more messages to fetch */
348
+ hasMore?: boolean;
349
+ /** Current session status */
350
+ sessionStatus?: PlaygroundSessionStatus;
351
+ }
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Playground Types
3
+ *
4
+ * TypeScript types for the Playground feature, enabling interactive
5
+ * workflow testing with chat interface and session management.
6
+ *
7
+ * @module types/playground
8
+ */
9
+ /**
10
+ * Statuses that stop polling by default (resource efficiency)
11
+ */
12
+ export const DEFAULT_STOP_POLLING_STATUSES = [
13
+ 'idle',
14
+ 'completed',
15
+ 'failed',
16
+ 'awaiting_input'
17
+ ];
18
+ /**
19
+ * Statuses that are considered terminal by default (clears isExecuting)
20
+ */
21
+ export const DEFAULT_TERMINAL_STATUSES = [
22
+ 'idle',
23
+ 'completed',
24
+ 'failed',
25
+ 'awaiting_input'
26
+ ];
27
+ /**
28
+ * Default implementation for determining if polling should stop.
29
+ * Consumers can override this via PlaygroundConfig.shouldStopPolling.
30
+ *
31
+ * @param status - The current session status
32
+ * @returns True if polling should stop
33
+ */
34
+ export function defaultShouldStopPolling(status) {
35
+ return DEFAULT_STOP_POLLING_STATUSES.includes(status);
36
+ }
37
+ /**
38
+ * Default implementation for determining if a status is terminal (clears isExecuting).
39
+ * Consumers can override this via PlaygroundConfig.isTerminalStatus.
40
+ *
41
+ * @param status - The current session status
42
+ * @returns True if the status is terminal
43
+ */
44
+ export function defaultIsTerminalStatus(status) {
45
+ return DEFAULT_TERMINAL_STATUSES.includes(status);
46
+ }
47
+ /**
48
+ * Metadata field to control Run button state from backend.
49
+ * When a message contains this field set to true, the Run button becomes enabled.
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * // Backend sends a message with this metadata to re-enable Run button:
54
+ * const message: PlaygroundMessage = {
55
+ * id: "msg-123",
56
+ * sessionId: "sess-456",
57
+ * role: "system",
58
+ * content: "Workflow completed. Ready for next run.",
59
+ * timestamp: new Date().toISOString(),
60
+ * metadata: {
61
+ * enableRun: true
62
+ * }
63
+ * };
64
+ * ```
65
+ */
66
+ export const ENABLE_RUN_METADATA_KEY = 'enableRun';
67
+ /**
68
+ * Check if a message metadata contains the enableRun flag
69
+ *
70
+ * @param metadata - The message metadata to check
71
+ * @returns True if the metadata signals to enable the Run button
72
+ */
73
+ export function hasEnableRunFlag(metadata) {
74
+ return metadata?.[ENABLE_RUN_METADATA_KEY] === true;
75
+ }
76
+ /**
77
+ * Chat input detection patterns for identifying chat nodes in workflows
78
+ */
79
+ export const CHAT_INPUT_PATTERNS = [
80
+ 'chat_input',
81
+ 'text_input',
82
+ 'user_input',
83
+ 'message_input',
84
+ 'prompt_input'
85
+ ];
86
+ /**
87
+ * Check if a node type is a chat input node
88
+ *
89
+ * @param nodeTypeId - The node type identifier
90
+ * @returns True if the node is a chat input type
91
+ */
92
+ export function isChatInputNode(nodeTypeId) {
93
+ const normalizedId = nodeTypeId.toLowerCase();
94
+ return CHAT_INPUT_PATTERNS.some((pattern) => normalizedId.includes(pattern));
95
+ }
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Settings Types for FlowDrop
3
+ *
4
+ * Provides comprehensive type definitions for all user-configurable settings.
5
+ * Supports theme, editor, UI, behavior, and API settings with hybrid persistence.
6
+ *
7
+ * @module types/settings
8
+ */
9
+ /**
10
+ * Theme preference options
11
+ * - 'light': Force light theme
12
+ * - 'dark': Force dark theme
13
+ * - 'auto': Follow system preference
14
+ */
15
+ export type ThemePreference = 'light' | 'dark' | 'auto';
16
+ /**
17
+ * Resolved theme (actual applied theme, never 'auto')
18
+ */
19
+ export type ResolvedTheme = 'light' | 'dark';
20
+ /**
21
+ * Theme-related settings
22
+ */
23
+ export interface ThemeSettings {
24
+ /** User's theme preference */
25
+ preference: ThemePreference;
26
+ }
27
+ /**
28
+ * Editor canvas and interaction settings
29
+ */
30
+ export interface EditorSettings {
31
+ /** Show grid lines on the canvas */
32
+ showGrid: boolean;
33
+ /** Snap nodes to grid when dragging */
34
+ snapToGrid: boolean;
35
+ /** Grid cell size in pixels */
36
+ gridSize: number;
37
+ /** Show minimap for navigation */
38
+ showMinimap: boolean;
39
+ /** Default zoom level (1 = 100%) */
40
+ defaultZoom: number;
41
+ /** Automatically fit workflow to view on load */
42
+ fitViewOnLoad: boolean;
43
+ /** Enable proximity connect when dragging nodes near other nodes */
44
+ proximityConnect: boolean;
45
+ /** Distance threshold in pixels for proximity connect */
46
+ proximityConnectDistance: number;
47
+ }
48
+ /**
49
+ * UI layout and display settings
50
+ */
51
+ export interface UISettings {
52
+ /** Width of the node sidebar in pixels */
53
+ sidebarWidth: number;
54
+ /** Whether the sidebar is collapsed */
55
+ sidebarCollapsed: boolean;
56
+ /** Enable compact mode for denser UI */
57
+ compactMode: boolean;
58
+ }
59
+ /**
60
+ * Application behavior and automation settings
61
+ */
62
+ export interface BehaviorSettings {
63
+ /** Automatically save changes */
64
+ autoSave: boolean;
65
+ /** Auto-save interval in milliseconds */
66
+ autoSaveInterval: number;
67
+ /** Maximum number of undo history entries */
68
+ undoHistoryLimit: number;
69
+ /** Show confirmation dialog before deleting nodes */
70
+ confirmDelete: boolean;
71
+ }
72
+ /**
73
+ * API connection and request settings
74
+ */
75
+ export interface ApiSettings {
76
+ /** Request timeout in milliseconds */
77
+ timeout: number;
78
+ /** Enable automatic retry on failure */
79
+ retryEnabled: boolean;
80
+ /** Maximum number of retry attempts */
81
+ retryAttempts: number;
82
+ /** Enable response caching */
83
+ cacheEnabled: boolean;
84
+ }
85
+ /**
86
+ * All FlowDrop settings organized by category
87
+ */
88
+ export interface FlowDropSettings {
89
+ /** Theme appearance settings */
90
+ theme: ThemeSettings;
91
+ /** Editor canvas settings */
92
+ editor: EditorSettings;
93
+ /** UI layout settings */
94
+ ui: UISettings;
95
+ /** Application behavior settings */
96
+ behavior: BehaviorSettings;
97
+ /** API connection settings */
98
+ api: ApiSettings;
99
+ }
100
+ /**
101
+ * Settings category names for iteration and tab rendering
102
+ */
103
+ export type SettingsCategory = keyof FlowDropSettings;
104
+ /**
105
+ * All available settings categories
106
+ */
107
+ export declare const SETTINGS_CATEGORIES: SettingsCategory[];
108
+ /**
109
+ * Human-readable labels for settings categories
110
+ */
111
+ export declare const SETTINGS_CATEGORY_LABELS: Record<SettingsCategory, string>;
112
+ /**
113
+ * Icons for settings categories (Iconify icon names)
114
+ */
115
+ export declare const SETTINGS_CATEGORY_ICONS: Record<SettingsCategory, string>;
116
+ /**
117
+ * Default theme settings
118
+ */
119
+ export declare const DEFAULT_THEME_SETTINGS: ThemeSettings;
120
+ /**
121
+ * Default editor settings
122
+ */
123
+ export declare const DEFAULT_EDITOR_SETTINGS: EditorSettings;
124
+ /**
125
+ * Default UI settings
126
+ */
127
+ export declare const DEFAULT_UI_SETTINGS: UISettings;
128
+ /**
129
+ * Default behavior settings
130
+ */
131
+ export declare const DEFAULT_BEHAVIOR_SETTINGS: BehaviorSettings;
132
+ /**
133
+ * Default API settings
134
+ */
135
+ export declare const DEFAULT_API_SETTINGS: ApiSettings;
136
+ /**
137
+ * Complete default settings object
138
+ */
139
+ export declare const DEFAULT_SETTINGS: FlowDropSettings;
140
+ /**
141
+ * Deep partial type for nested settings updates
142
+ */
143
+ export type DeepPartial<T> = {
144
+ [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
145
+ };
146
+ /**
147
+ * Partial settings for incremental updates
148
+ */
149
+ export type PartialSettings = DeepPartial<FlowDropSettings>;
150
+ /**
151
+ * Event payload for settings changes
152
+ */
153
+ export interface SettingsChangeEvent {
154
+ /** The category that changed */
155
+ category: SettingsCategory;
156
+ /** The key within the category that changed */
157
+ key: string;
158
+ /** The previous value */
159
+ previousValue: unknown;
160
+ /** The new value */
161
+ newValue: unknown;
162
+ }
163
+ /**
164
+ * Callback type for settings change listeners
165
+ */
166
+ export type SettingsChangeCallback = (event: SettingsChangeEvent) => void;
167
+ /**
168
+ * localStorage key for persisting settings
169
+ */
170
+ export declare const SETTINGS_STORAGE_KEY = "flowdrop-settings";
171
+ /**
172
+ * API sync status
173
+ */
174
+ export type SyncStatus = 'idle' | 'syncing' | 'synced' | 'error';
175
+ /**
176
+ * Settings store state including sync metadata
177
+ */
178
+ export interface SettingsStoreState {
179
+ /** Current settings values */
180
+ settings: FlowDropSettings;
181
+ /** Whether settings have been loaded from storage */
182
+ initialized: boolean;
183
+ /** API sync status */
184
+ syncStatus: SyncStatus;
185
+ /** Last sync timestamp */
186
+ lastSyncedAt: number | null;
187
+ /** Last sync error message */
188
+ syncError: string | null;
189
+ }