@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,138 @@
1
+ /**
2
+ * FlowDrop Editor Module
3
+ *
4
+ * Provides the WorkflowEditor component and related functionality for
5
+ * building visual workflow editors. This module includes @xyflow/svelte
6
+ * and all node components.
7
+ *
8
+ * **Important: Single-instance only.** FlowDrop uses module-level singleton
9
+ * stores for state management. Only one FlowDrop editor instance per page
10
+ * is supported. This is a known architectural limitation.
11
+ *
12
+ * @module editor
13
+ *
14
+ * @example Mounting a standalone workflow editor:
15
+ * ```typescript
16
+ * import { mountFlowDropApp, WorkflowEditor } from "@flowdrop/flowdrop/editor";
17
+ * import "@flowdrop/flowdrop/styles";
18
+ *
19
+ * const app = await mountFlowDropApp(document.getElementById("editor"), {
20
+ * workflow: myWorkflow,
21
+ * nodes: availableNodes
22
+ * });
23
+ * ```
24
+ *
25
+ * @example Using WorkflowEditor in Svelte:
26
+ * ```svelte
27
+ * <script>
28
+ * import { WorkflowEditor } from "@flowdrop/flowdrop/editor";
29
+ * </script>
30
+ *
31
+ * <WorkflowEditor nodes={availableNodes} />
32
+ * ```
33
+ */
34
+ // ============================================================================
35
+ // Initialize Built-in Nodes
36
+ // This side effect is intentional for the editor module - users importing
37
+ // the editor expect all node types to be available.
38
+ // ============================================================================
39
+ import '../registry/builtinNodes.js';
40
+ // ============================================================================
41
+ // Main Editor Components
42
+ // ============================================================================
43
+ export { default as WorkflowEditor } from '../components/WorkflowEditor.svelte';
44
+ export { default as App } from '../components/App.svelte';
45
+ // ============================================================================
46
+ // Node Components
47
+ // ============================================================================
48
+ export { default as WorkflowNodeComponent } from '../components/nodes/WorkflowNode.svelte';
49
+ export { default as SimpleNode } from '../components/nodes/SimpleNode.svelte';
50
+ export { default as ToolNode } from '../components/nodes/ToolNode.svelte';
51
+ export { default as NotesNode } from '../components/nodes/NotesNode.svelte';
52
+ export { default as GatewayNode } from '../components/nodes/GatewayNode.svelte';
53
+ export { default as SquareNode } from '../components/nodes/SquareNode.svelte';
54
+ export { default as TerminalNode } from '../components/nodes/TerminalNode.svelte';
55
+ export { default as UniversalNode } from '../components/UniversalNode.svelte';
56
+ // ============================================================================
57
+ // Supporting Editor Components
58
+ // ============================================================================
59
+ export { default as NodeSidebar } from '../components/NodeSidebar.svelte';
60
+ export { default as CanvasBanner } from '../components/CanvasBanner.svelte';
61
+ export { default as LoadingSpinner } from '../components/LoadingSpinner.svelte';
62
+ export { default as StatusIcon } from '../components/StatusIcon.svelte';
63
+ export { default as StatusLabel } from '../components/StatusLabel.svelte';
64
+ export { default as NodeStatusOverlay } from '../components/NodeStatusOverlay.svelte';
65
+ export { default as ConfigForm } from '../components/ConfigForm.svelte';
66
+ export { default as ConfigModal } from '../components/ConfigModal.svelte';
67
+ export { default as ConfigPanel } from '../components/ConfigPanel.svelte';
68
+ export { default as ReadOnlyDetails } from '../components/ReadOnlyDetails.svelte';
69
+ export { default as ConnectionLine } from '../components/ConnectionLine.svelte';
70
+ export { default as LogsSidebar } from '../components/LogsSidebar.svelte';
71
+ export { default as PipelineStatus } from '../components/PipelineStatus.svelte';
72
+ export { default as Navbar } from '../components/Navbar.svelte';
73
+ export { default as Logo } from '../components/Logo.svelte';
74
+ // Playground Components
75
+ export { default as Playground } from '../components/playground/Playground.svelte';
76
+ export { default as PlaygroundModal } from '../components/playground/PlaygroundModal.svelte';
77
+ export { default as ChatPanel } from '../components/playground/ChatPanel.svelte';
78
+ export { default as SessionManager } from '../components/playground/SessionManager.svelte';
79
+ export { default as InputCollector } from '../components/playground/InputCollector.svelte';
80
+ export { default as ExecutionLogs } from '../components/playground/ExecutionLogs.svelte';
81
+ export { default as MessageBubble } from '../components/playground/MessageBubble.svelte';
82
+ // ============================================================================
83
+ // Mount Functions
84
+ // ============================================================================
85
+ export { mountWorkflowEditor, mountFlowDropApp, unmountFlowDropApp } from '../svelte-app.js';
86
+ // ============================================================================
87
+ // Node Component Registry
88
+ // ============================================================================
89
+ export {
90
+ // Core registry
91
+ nodeComponentRegistry, createNamespacedType, parseNamespacedType,
92
+ // Built-in nodes
93
+ BUILTIN_NODE_COMPONENTS, BUILTIN_NODE_TYPES, FLOWDROP_SOURCE, registerBuiltinNodes, areBuiltinsRegistered, isBuiltinType, getBuiltinTypes, resolveBuiltinAlias,
94
+ // Plugin system
95
+ registerFlowDropPlugin, unregisterFlowDropPlugin, registerCustomNode, createPlugin, isValidNamespace, getRegisteredPlugins, getPluginNodeCount } from '../registry/index.js';
96
+ // ============================================================================
97
+ // Editor Helpers
98
+ // ============================================================================
99
+ export { EdgeStylingHelper, NodeOperationsHelper, WorkflowOperationsHelper, ConfigurationHelper } from '../helpers/workflowEditorHelper.js';
100
+ // ============================================================================
101
+ // Stores
102
+ // ============================================================================
103
+ export { getWorkflowStore, workflowActions, getWorkflowId, getWorkflowName, getWorkflowNodes, getWorkflowEdges, getWorkflowMetadata, getWorkflowFormat, getWorkflowChanged, getWorkflowValidation, getWorkflowMetadataChanged, getConnectedHandles,
104
+ // Dirty state tracking
105
+ getIsDirty, isDirty, markAsSaved, getWorkflow as getWorkflowFromStore, setOnDirtyStateChange, setOnWorkflowChange,
106
+ // History control
107
+ setHistoryEnabled, isHistoryEnabled, setRestoringFromHistory } from '../stores/workflowStore.svelte.js';
108
+ // Port Coordinate Store (Svelte 5 runes-based)
109
+ export { rebuildAllPortCoordinates, updateNodePortCoordinates, removeNodePortCoordinates, getPortCoordinate, getNodePortCoordinates, getPortCoordinateSnapshot, getPortCoordinates } from '../stores/portCoordinateStore.svelte.js';
110
+ // History Store and Service
111
+ export { getHistoryState, getCanUndo, getCanRedo, historyActions, setOnRestoreCallback, cleanupHistorySubscription, historyService, HistoryService } from '../stores/historyStore.svelte.js';
112
+ // ============================================================================
113
+ // Services
114
+ // ============================================================================
115
+ export { setEndpointConfig, getEndpointConfig, nodeApi, workflowApi, api } from '../services/api.js';
116
+ export { showSuccess, showError, showWarning, showInfo, showLoading, dismissToast, dismissAllToasts, showPromise, showConfirmation, apiToasts, workflowToasts, pipelineToasts } from '../services/toastService.js';
117
+ export { NodeExecutionService, nodeExecutionService } from '../services/nodeExecutionService.js';
118
+ // Playground Service and Store
119
+ export { PlaygroundService, playgroundService } from '../services/playgroundService.js';
120
+ export { getCurrentSession, getSessions, getMessages, getIsExecuting, getIsLoading, getError as getPlaygroundError, getCurrentWorkflow, getLastPollTimestamp, getSessionStatus, getMessageCount, getChatMessages, getLogMessages, getLatestMessage, getInputFields, getHasChatInput, getSessionCount, playgroundActions, createPollingCallback, subscribeToSessionStatus, getCurrentSessionId, isSessionSelected, getMessagesSnapshot, getLatestMessageTimestamp } from '../stores/playgroundStore.svelte.js';
121
+ export { saveWorkflow, updateWorkflow, getWorkflow, getWorkflows, deleteWorkflow, getWorkflowCount, initializeSampleWorkflows } from '../services/workflowStorage.js';
122
+ export { globalSaveWorkflow, globalExportWorkflow } from '../services/globalSave.js';
123
+ export { fetchPortConfig, validatePortConfig } from '../services/portConfigApi.js';
124
+ export { fetchCategories, validateCategories } from '../services/categoriesApi.js';
125
+ export { fetchDynamicSchema, resolveExternalEditUrl, getEffectiveConfigEditOptions, clearSchemaCache, invalidateSchemaCache, hasConfigEditOptions, shouldShowExternalEdit, shouldUseDynamicSchema } from '../services/dynamicSchemaService.js';
126
+ export { getDraftStorageKey, saveDraft, loadDraft, deleteDraft, hasDraft, getDraftMetadata, DraftAutoSaveManager } from '../services/draftStorage.js';
127
+ // ============================================================================
128
+ // API Clients
129
+ // ============================================================================
130
+ export { EnhancedFlowDropApiClient, ApiError } from '../api/enhanced-client.js';
131
+ // ============================================================================
132
+ // Connection Utilities
133
+ // ============================================================================
134
+ export { isLoopbackEdge, isValidLoopbackCycle, PortCompatibilityChecker, initializePortCompatibility, getPortCompatibilityChecker, getPossibleConnections, validateConnection, getConnectionSuggestions, hasCycles, hasInvalidCycles, getExecutionOrder } from '../utils/connections.js';
135
+ // ============================================================================
136
+ // Runtime Configuration
137
+ // ============================================================================
138
+ export { fetchRuntimeConfig, getRuntimeConfig, clearRuntimeConfigCache, initRuntimeConfig } from '../config/runtimeConfig.js';
@@ -0,0 +1,101 @@
1
+ /**
2
+ * FlowDrop Form Code Editor Module
3
+ *
4
+ * Adds CodeMirror-based code/JSON editor support to SchemaForm.
5
+ * This module bundles CodeMirror dependencies (~300KB).
6
+ *
7
+ * @module form/code
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { SchemaForm } from "@flowdrop/flowdrop/form";
12
+ * import { registerCodeEditorField, registerTemplateEditorField } from "@flowdrop/flowdrop/form/code";
13
+ *
14
+ * // Register code editor support (call once at app startup)
15
+ * registerCodeEditorField();
16
+ *
17
+ * // Optionally also register template editor
18
+ * registerTemplateEditorField();
19
+ *
20
+ * // Now SchemaForm will render code editors for format: "json", "code", or "template"
21
+ * ```
22
+ */
23
+ import type { FieldComponent } from './fieldRegistry.js';
24
+ import type { FieldSchema } from '../components/form/types.js';
25
+ export { default as FormCodeEditor } from '../components/form/FormCodeEditor.svelte';
26
+ export { default as FormTemplateEditor } from '../components/form/FormTemplateEditor.svelte';
27
+ export type { CodeEditorFieldProps, TemplateEditorFieldProps } from '../components/form/types.js';
28
+ /**
29
+ * Matcher for code/JSON editor fields
30
+ * Matches: format "json", "code", or type "object" without specific format
31
+ */
32
+ export declare function codeEditorFieldMatcher(schema: FieldSchema): boolean;
33
+ /**
34
+ * Matcher for template editor fields
35
+ * Matches: format "template" (Twig/Liquid-style templates)
36
+ */
37
+ export declare function templateEditorFieldMatcher(schema: FieldSchema): boolean;
38
+ /**
39
+ * Register the code/JSON editor field component
40
+ *
41
+ * Call this function once at application startup to enable
42
+ * code editor fields in SchemaForm. This loads CodeMirror dependencies.
43
+ *
44
+ * @param priority - Priority for field matching (default: 100)
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * // In your app's entry point:
49
+ * import { registerCodeEditorField } from "@flowdrop/flowdrop/form/code";
50
+ *
51
+ * registerCodeEditorField();
52
+ * ```
53
+ */
54
+ export declare function registerCodeEditorField(priority?: number): void;
55
+ /**
56
+ * Register the template editor field component
57
+ *
58
+ * Call this function once at application startup to enable
59
+ * template editor fields (Twig/Liquid syntax) in SchemaForm.
60
+ *
61
+ * @param priority - Priority for field matching (default: 100)
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * // In your app's entry point:
66
+ * import { registerTemplateEditorField } from "@flowdrop/flowdrop/form/code";
67
+ *
68
+ * registerTemplateEditorField();
69
+ * ```
70
+ */
71
+ export declare function registerTemplateEditorField(priority?: number): void;
72
+ /**
73
+ * Register all code-related editor fields (code + template)
74
+ *
75
+ * Convenience function to register both code editor types at once.
76
+ *
77
+ * @param priority - Priority for field matching (default: 100)
78
+ */
79
+ export declare function registerAllCodeEditors(priority?: number): void;
80
+ /**
81
+ * Synchronously register code editor field using the imported component
82
+ *
83
+ * Use this when you've already imported the component and want immediate registration.
84
+ *
85
+ * @param priority - Priority for field matching (default: 100)
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * import { registerCodeEditorFieldWithComponent, FormCodeEditor } from "@flowdrop/flowdrop/form/code";
90
+ * registerCodeEditorFieldWithComponent(FormCodeEditor);
91
+ * ```
92
+ */
93
+ export declare function registerCodeEditorFieldWithComponent(component: FieldComponent, priority?: number): void;
94
+ /**
95
+ * Check if code editor field is registered
96
+ */
97
+ export declare function isCodeEditorRegistered(): boolean;
98
+ /**
99
+ * Check if template editor field is registered
100
+ */
101
+ export declare function isTemplateEditorRegistered(): boolean;
@@ -0,0 +1,168 @@
1
+ /**
2
+ * FlowDrop Form Code Editor Module
3
+ *
4
+ * Adds CodeMirror-based code/JSON editor support to SchemaForm.
5
+ * This module bundles CodeMirror dependencies (~300KB).
6
+ *
7
+ * @module form/code
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { SchemaForm } from "@flowdrop/flowdrop/form";
12
+ * import { registerCodeEditorField, registerTemplateEditorField } from "@flowdrop/flowdrop/form/code";
13
+ *
14
+ * // Register code editor support (call once at app startup)
15
+ * registerCodeEditorField();
16
+ *
17
+ * // Optionally also register template editor
18
+ * registerTemplateEditorField();
19
+ *
20
+ * // Now SchemaForm will render code editors for format: "json", "code", or "template"
21
+ * ```
22
+ */
23
+ import { fieldComponentRegistry } from './fieldRegistry.js';
24
+ // Re-export the components for direct usage if needed
25
+ export { default as FormCodeEditor } from '../components/form/FormCodeEditor.svelte';
26
+ export { default as FormTemplateEditor } from '../components/form/FormTemplateEditor.svelte';
27
+ /**
28
+ * Matcher for code/JSON editor fields
29
+ * Matches: format "json", "code", or type "object" without specific format
30
+ */
31
+ export function codeEditorFieldMatcher(schema) {
32
+ // JSON/code format
33
+ if (schema.format === 'json' || schema.format === 'code') {
34
+ return true;
35
+ }
36
+ // Object type without specific format (render as JSON editor)
37
+ if (schema.type === 'object' && !schema.format) {
38
+ return true;
39
+ }
40
+ return false;
41
+ }
42
+ /**
43
+ * Matcher for template editor fields
44
+ * Matches: format "template" (Twig/Liquid-style templates)
45
+ */
46
+ export function templateEditorFieldMatcher(schema) {
47
+ return schema.format === 'template';
48
+ }
49
+ /**
50
+ * Track if code editor is registered
51
+ */
52
+ let codeEditorRegistered = false;
53
+ /**
54
+ * Track if template editor is registered
55
+ */
56
+ let templateEditorRegistered = false;
57
+ // Sync registration flags with registry.clear() for test isolation
58
+ fieldComponentRegistry.onClear(() => {
59
+ codeEditorRegistered = false;
60
+ templateEditorRegistered = false;
61
+ });
62
+ /**
63
+ * Register the code/JSON editor field component
64
+ *
65
+ * Call this function once at application startup to enable
66
+ * code editor fields in SchemaForm. This loads CodeMirror dependencies.
67
+ *
68
+ * @param priority - Priority for field matching (default: 100)
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * // In your app's entry point:
73
+ * import { registerCodeEditorField } from "@flowdrop/flowdrop/form/code";
74
+ *
75
+ * registerCodeEditorField();
76
+ * ```
77
+ */
78
+ export function registerCodeEditorField(priority = 100) {
79
+ if (codeEditorRegistered) {
80
+ return;
81
+ }
82
+ // Dynamic import to ensure proper code splitting
83
+ import('../components/form/FormCodeEditor.svelte').then((module) => {
84
+ fieldComponentRegistry.register('code-editor', {
85
+ component: module.default,
86
+ matcher: codeEditorFieldMatcher,
87
+ priority
88
+ });
89
+ codeEditorRegistered = true;
90
+ });
91
+ }
92
+ /**
93
+ * Register the template editor field component
94
+ *
95
+ * Call this function once at application startup to enable
96
+ * template editor fields (Twig/Liquid syntax) in SchemaForm.
97
+ *
98
+ * @param priority - Priority for field matching (default: 100)
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * // In your app's entry point:
103
+ * import { registerTemplateEditorField } from "@flowdrop/flowdrop/form/code";
104
+ *
105
+ * registerTemplateEditorField();
106
+ * ```
107
+ */
108
+ export function registerTemplateEditorField(priority = 100) {
109
+ if (templateEditorRegistered) {
110
+ return;
111
+ }
112
+ // Dynamic import to ensure proper code splitting
113
+ import('../components/form/FormTemplateEditor.svelte').then((module) => {
114
+ fieldComponentRegistry.register('template-editor', {
115
+ component: module.default,
116
+ matcher: templateEditorFieldMatcher,
117
+ priority
118
+ });
119
+ templateEditorRegistered = true;
120
+ });
121
+ }
122
+ /**
123
+ * Register all code-related editor fields (code + template)
124
+ *
125
+ * Convenience function to register both code editor types at once.
126
+ *
127
+ * @param priority - Priority for field matching (default: 100)
128
+ */
129
+ export function registerAllCodeEditors(priority = 100) {
130
+ registerCodeEditorField(priority);
131
+ registerTemplateEditorField(priority);
132
+ }
133
+ /**
134
+ * Synchronously register code editor field using the imported component
135
+ *
136
+ * Use this when you've already imported the component and want immediate registration.
137
+ *
138
+ * @param priority - Priority for field matching (default: 100)
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * import { registerCodeEditorFieldWithComponent, FormCodeEditor } from "@flowdrop/flowdrop/form/code";
143
+ * registerCodeEditorFieldWithComponent(FormCodeEditor);
144
+ * ```
145
+ */
146
+ export function registerCodeEditorFieldWithComponent(component, priority = 100) {
147
+ if (codeEditorRegistered) {
148
+ return;
149
+ }
150
+ fieldComponentRegistry.register('code-editor', {
151
+ component,
152
+ matcher: codeEditorFieldMatcher,
153
+ priority
154
+ });
155
+ codeEditorRegistered = true;
156
+ }
157
+ /**
158
+ * Check if code editor field is registered
159
+ */
160
+ export function isCodeEditorRegistered() {
161
+ return codeEditorRegistered;
162
+ }
163
+ /**
164
+ * Check if template editor field is registered
165
+ */
166
+ export function isTemplateEditorRegistered() {
167
+ return templateEditorRegistered;
168
+ }
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Form Field Component Registry
3
+ *
4
+ * Provides a registry system for form field components that enables:
5
+ * - Tree-shaking: Heavy components (code editor, markdown) are only bundled when registered
6
+ * - Dynamic field types: Users can add custom field renderers
7
+ * - Lazy loading: Components can be registered at runtime
8
+ *
9
+ * Extends BaseRegistry for shared mechanics (subscribe, onClear, etc.).
10
+ *
11
+ * @module form/fieldRegistry
12
+ *
13
+ * @example Basic usage with light fields only (no codemirror):
14
+ * ```typescript
15
+ * import { SchemaForm } from "@flowdrop/flowdrop/form";
16
+ * // Uses only basic fields - small bundle size
17
+ * ```
18
+ *
19
+ * @example Adding code editor support:
20
+ * ```typescript
21
+ * import { fieldComponentRegistry } from "@flowdrop/flowdrop/form";
22
+ * import { FormCodeEditor, codeEditorFieldMatcher } from "@flowdrop/flowdrop/form/code";
23
+ *
24
+ * fieldComponentRegistry.register("code-editor", {
25
+ * component: FormCodeEditor,
26
+ * matcher: codeEditorFieldMatcher,
27
+ * priority: 100
28
+ * });
29
+ * ```
30
+ */
31
+ import type { Component } from 'svelte';
32
+ import type { FieldSchema } from '../components/form/types.js';
33
+ import { BaseRegistry } from '../registry/BaseRegistry.js';
34
+ /**
35
+ * Base field component props that all registered field components should accept.
36
+ * Components may have additional specific props.
37
+ */
38
+ export interface FieldComponentProps {
39
+ /** Field identifier */
40
+ id: string;
41
+ /** Current field value */
42
+ value: unknown;
43
+ /** Placeholder text */
44
+ placeholder?: string;
45
+ /** Whether field is required */
46
+ required?: boolean;
47
+ /** ARIA description ID */
48
+ ariaDescribedBy?: string;
49
+ /** Change callback */
50
+ onChange: (value: unknown) => void;
51
+ /** Additional schema-derived props */
52
+ [key: string]: unknown;
53
+ }
54
+ /**
55
+ * Function type for determining if a field schema should use a specific component
56
+ */
57
+ export type FieldMatcher = (schema: FieldSchema) => boolean;
58
+ /**
59
+ * Generic component type that accepts any props
60
+ * This is needed because different field components have different prop requirements
61
+ */
62
+ export type FieldComponent = Component<any, any, any>;
63
+ /**
64
+ * Framework-agnostic matcher registration (no Svelte dependency).
65
+ * Contains the matching logic and priority without the component.
66
+ */
67
+ export interface FieldMatcherRegistration {
68
+ /** Function to determine if this registration should handle a given schema */
69
+ matcher: FieldMatcher;
70
+ /** Priority for matching (higher = checked first) */
71
+ priority: number;
72
+ }
73
+ /**
74
+ * Full registration entry for a field component.
75
+ * Extends FieldMatcherRegistration with the Svelte component needed for rendering.
76
+ */
77
+ export interface FieldComponentRegistration extends FieldMatcherRegistration {
78
+ /** The Svelte component to render */
79
+ component: FieldComponent;
80
+ }
81
+ /**
82
+ * Class-based field component registry.
83
+ * Extends BaseRegistry with priority-based field resolution.
84
+ */
85
+ declare class FieldComponentRegistry extends BaseRegistry<string, FieldComponentRegistration> {
86
+ /** Cached ordered keys by priority (highest first), invalidated on mutation */
87
+ private orderedKeys;
88
+ /**
89
+ * Register a field component.
90
+ * Silently overwrites existing registrations (preserves legacy behavior).
91
+ *
92
+ * @param type - Unique identifier for this field type
93
+ * @param registration - The field component registration
94
+ */
95
+ register(type: string, registration: FieldComponentRegistration): void;
96
+ /**
97
+ * Override unregister to invalidate the priority cache.
98
+ */
99
+ unregister(key: string): boolean;
100
+ /**
101
+ * Override clear to invalidate the priority cache.
102
+ */
103
+ clear(): void;
104
+ /**
105
+ * Resolve which component should render a given field schema.
106
+ * Checks registered matchers in priority order (highest first).
107
+ *
108
+ * @param schema - The field schema to resolve
109
+ * @returns The matching registration or null if no match
110
+ */
111
+ resolveFieldComponent(schema: FieldSchema): FieldComponentRegistration | null;
112
+ /**
113
+ * Get keys ordered by priority (cached).
114
+ */
115
+ private getOrderedKeys;
116
+ }
117
+ /** Singleton instance of the field component registry */
118
+ export declare const fieldComponentRegistry: FieldComponentRegistry;
119
+ /**
120
+ * Matcher for hidden fields (should not render)
121
+ */
122
+ export declare const hiddenFieldMatcher: FieldMatcher;
123
+ /**
124
+ * Matcher for checkbox group fields (enum with multiple)
125
+ */
126
+ export declare const checkboxGroupMatcher: FieldMatcher;
127
+ /**
128
+ * Matcher for enum select fields
129
+ */
130
+ export declare const enumSelectMatcher: FieldMatcher;
131
+ /**
132
+ * Matcher for multiline textarea fields
133
+ */
134
+ export declare const textareaMatcher: FieldMatcher;
135
+ /**
136
+ * Matcher for range slider fields
137
+ */
138
+ export declare const rangeMatcher: FieldMatcher;
139
+ /**
140
+ * Matcher for string text fields
141
+ */
142
+ export declare const textFieldMatcher: FieldMatcher;
143
+ /**
144
+ * Matcher for number fields
145
+ */
146
+ export declare const numberFieldMatcher: FieldMatcher;
147
+ /**
148
+ * Matcher for boolean toggle fields
149
+ */
150
+ export declare const toggleMatcher: FieldMatcher;
151
+ /**
152
+ * Matcher for select fields with labeled options (JSON Schema oneOf pattern)
153
+ *
154
+ * @example
155
+ * ```json
156
+ * { "type": "string", "oneOf": [{ "const": "a", "title": "Option A" }] }
157
+ * ```
158
+ */
159
+ export declare const selectOptionsMatcher: FieldMatcher;
160
+ /**
161
+ * Matcher for array fields
162
+ */
163
+ export declare const arrayMatcher: FieldMatcher;
164
+ /**
165
+ * Matcher for autocomplete fields
166
+ * Matches when format is "autocomplete" and autocomplete config with URL is provided
167
+ */
168
+ export declare const autocompleteMatcher: FieldMatcher;
169
+ export {};