@flowdrop/flowdrop 1.0.0 → 1.1.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 (388) hide show
  1. package/README.md +50 -50
  2. package/dist/adapters/WorkflowAdapter.d.ts +1 -1
  3. package/dist/adapters/WorkflowAdapter.js +25 -25
  4. package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +2 -2
  5. package/dist/adapters/agentspec/AgentSpecAdapter.js +133 -122
  6. package/dist/adapters/agentspec/agentAdapter.d.ts +2 -2
  7. package/dist/adapters/agentspec/agentAdapter.js +10 -10
  8. package/dist/adapters/agentspec/autoLayout.d.ts +1 -1
  9. package/dist/adapters/agentspec/autoLayout.js +2 -2
  10. package/dist/adapters/agentspec/componentTypeDefaults.d.ts +1 -1
  11. package/dist/adapters/agentspec/componentTypeDefaults.js +120 -120
  12. package/dist/adapters/agentspec/defaultNodeTypes.d.ts +2 -2
  13. package/dist/adapters/agentspec/defaultNodeTypes.js +307 -307
  14. package/dist/adapters/agentspec/index.d.ts +10 -10
  15. package/dist/adapters/agentspec/index.js +6 -6
  16. package/dist/adapters/agentspec/validator.d.ts +2 -2
  17. package/dist/adapters/agentspec/validator.js +22 -20
  18. package/dist/api/enhanced-client.d.ts +3 -3
  19. package/dist/api/enhanced-client.js +73 -72
  20. package/dist/components/App.svelte +1081 -961
  21. package/dist/components/App.svelte.d.ts +9 -6
  22. package/dist/components/CanvasBanner.stories.svelte +23 -20
  23. package/dist/components/CanvasBanner.stories.svelte.d.ts +1 -1
  24. package/dist/components/CanvasBanner.svelte +46 -46
  25. package/dist/components/ConfigForm.svelte +1164 -1065
  26. package/dist/components/ConfigForm.svelte.d.ts +2 -2
  27. package/dist/components/ConfigModal.svelte +180 -180
  28. package/dist/components/ConfigModal.svelte.d.ts +1 -1
  29. package/dist/components/ConfigPanel.stories.svelte +35 -35
  30. package/dist/components/ConfigPanel.stories.svelte.d.ts +1 -1
  31. package/dist/components/ConfigPanel.svelte +178 -167
  32. package/dist/components/ConfigPanel.svelte.d.ts +1 -1
  33. package/dist/components/ConnectionLine.svelte +25 -25
  34. package/dist/components/EdgeRefresher.svelte +26 -26
  35. package/dist/components/FlowDropEdge.stories.svelte +197 -0
  36. package/dist/components/FlowDropEdge.stories.svelte.d.ts +26 -0
  37. package/dist/components/FlowDropEdge.svelte +168 -0
  38. package/dist/components/FlowDropEdge.svelte.d.ts +4 -0
  39. package/dist/components/FlowDropZone.svelte +63 -60
  40. package/dist/components/FlowDropZone.svelte.d.ts +1 -1
  41. package/dist/components/LoadingSpinner.stories.svelte +19 -19
  42. package/dist/components/LoadingSpinner.stories.svelte.d.ts +1 -1
  43. package/dist/components/LoadingSpinner.svelte +21 -21
  44. package/dist/components/LoadingSpinner.svelte.d.ts +1 -1
  45. package/dist/components/Logo.stories.svelte +13 -13
  46. package/dist/components/Logo.stories.svelte.d.ts +1 -1
  47. package/dist/components/Logo.svelte +101 -95
  48. package/dist/components/LogsSidebar.svelte +553 -546
  49. package/dist/components/LogsSidebar.svelte.d.ts +1 -1
  50. package/dist/components/MarkdownDisplay.stories.svelte +29 -23
  51. package/dist/components/MarkdownDisplay.stories.svelte.d.ts +1 -1
  52. package/dist/components/MarkdownDisplay.svelte +16 -14
  53. package/dist/components/Navbar.stories.svelte +43 -38
  54. package/dist/components/Navbar.stories.svelte.d.ts +1 -1
  55. package/dist/components/Navbar.svelte +760 -706
  56. package/dist/components/Navbar.svelte.d.ts +1 -1
  57. package/dist/components/NodeSidebar.svelte +900 -746
  58. package/dist/components/NodeSidebar.svelte.d.ts +3 -1
  59. package/dist/components/NodeStatusOverlay.stories.svelte +82 -70
  60. package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +1 -1
  61. package/dist/components/NodeStatusOverlay.svelte +295 -280
  62. package/dist/components/NodeStatusOverlay.svelte.d.ts +3 -3
  63. package/dist/components/PipelineStatus.svelte +326 -300
  64. package/dist/components/PipelineStatus.svelte.d.ts +4 -4
  65. package/dist/components/PortCoordinateTracker.svelte +49 -47
  66. package/dist/components/PortCoordinateTracker.svelte.d.ts +1 -1
  67. package/dist/components/ReadOnlyDetails.svelte +156 -156
  68. package/dist/components/SchemaForm.stories.svelte +106 -98
  69. package/dist/components/SchemaForm.stories.svelte.d.ts +1 -1
  70. package/dist/components/SchemaForm.svelte +490 -463
  71. package/dist/components/SchemaForm.svelte.d.ts +2 -2
  72. package/dist/components/SettingsModal.svelte +226 -223
  73. package/dist/components/SettingsModal.svelte.d.ts +1 -1
  74. package/dist/components/SettingsPanel.svelte +637 -601
  75. package/dist/components/SettingsPanel.svelte.d.ts +1 -1
  76. package/dist/components/StatusIcon.stories.svelte +62 -49
  77. package/dist/components/StatusIcon.stories.svelte.d.ts +1 -1
  78. package/dist/components/StatusIcon.svelte +87 -87
  79. package/dist/components/StatusIcon.svelte.d.ts +2 -2
  80. package/dist/components/StatusLabel.stories.svelte +12 -12
  81. package/dist/components/StatusLabel.stories.svelte.d.ts +1 -1
  82. package/dist/components/StatusLabel.svelte +19 -19
  83. package/dist/components/ThemeToggle.stories.svelte +16 -16
  84. package/dist/components/ThemeToggle.stories.svelte.d.ts +1 -1
  85. package/dist/components/ThemeToggle.svelte +180 -169
  86. package/dist/components/ThemeToggle.svelte.d.ts +1 -1
  87. package/dist/components/UniversalNode.svelte +150 -138
  88. package/dist/components/UniversalNode.svelte.d.ts +3 -3
  89. package/dist/components/WorkflowEditor.svelte +1069 -1007
  90. package/dist/components/WorkflowEditor.svelte.d.ts +4 -4
  91. package/dist/components/form/FormArray.svelte +1034 -973
  92. package/dist/components/form/FormArray.svelte.d.ts +1 -1
  93. package/dist/components/form/FormAutocomplete.svelte +1021 -978
  94. package/dist/components/form/FormAutocomplete.svelte.d.ts +1 -1
  95. package/dist/components/form/FormCheckboxGroup.stories.svelte +23 -20
  96. package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +1 -1
  97. package/dist/components/form/FormCheckboxGroup.svelte +136 -136
  98. package/dist/components/form/FormCodeEditor.svelte +452 -434
  99. package/dist/components/form/FormField.svelte +366 -355
  100. package/dist/components/form/FormField.svelte.d.ts +2 -2
  101. package/dist/components/form/FormFieldLight.svelte +400 -384
  102. package/dist/components/form/FormFieldLight.svelte.d.ts +1 -1
  103. package/dist/components/form/FormFieldWrapper.stories.svelte +42 -42
  104. package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +1 -1
  105. package/dist/components/form/FormFieldWrapper.svelte +100 -93
  106. package/dist/components/form/FormFieldWrapper.svelte.d.ts +1 -1
  107. package/dist/components/form/FormFieldset.svelte +108 -108
  108. package/dist/components/form/FormFieldset.svelte.d.ts +2 -2
  109. package/dist/components/form/FormMarkdownEditor.svelte +758 -725
  110. package/dist/components/form/FormNumberField.stories.svelte +25 -25
  111. package/dist/components/form/FormNumberField.stories.svelte.d.ts +1 -1
  112. package/dist/components/form/FormNumberField.svelte +88 -88
  113. package/dist/components/form/FormRangeField.stories.svelte +20 -20
  114. package/dist/components/form/FormRangeField.stories.svelte.d.ts +1 -1
  115. package/dist/components/form/FormRangeField.svelte +234 -226
  116. package/dist/components/form/FormSelect.stories.svelte +38 -38
  117. package/dist/components/form/FormSelect.stories.svelte.d.ts +1 -1
  118. package/dist/components/form/FormSelect.svelte +101 -101
  119. package/dist/components/form/FormSelect.svelte.d.ts +1 -1
  120. package/dist/components/form/FormTemplateEditor.svelte +847 -798
  121. package/dist/components/form/FormTemplateEditor.svelte.d.ts +1 -1
  122. package/dist/components/form/FormTextField.stories.svelte +29 -23
  123. package/dist/components/form/FormTextField.stories.svelte.d.ts +1 -1
  124. package/dist/components/form/FormTextField.svelte +68 -68
  125. package/dist/components/form/FormTextarea.stories.svelte +28 -25
  126. package/dist/components/form/FormTextarea.stories.svelte.d.ts +1 -1
  127. package/dist/components/form/FormTextarea.svelte +74 -74
  128. package/dist/components/form/FormToggle.stories.svelte +23 -20
  129. package/dist/components/form/FormToggle.stories.svelte.d.ts +1 -1
  130. package/dist/components/form/FormToggle.svelte +98 -98
  131. package/dist/components/form/FormUISchemaRenderer.svelte +120 -113
  132. package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +3 -3
  133. package/dist/components/form/index.d.ts +19 -19
  134. package/dist/components/form/index.js +18 -18
  135. package/dist/components/form/templateAutocomplete.d.ts +2 -2
  136. package/dist/components/form/templateAutocomplete.js +64 -55
  137. package/dist/components/form/types.d.ts +6 -6
  138. package/dist/components/form/types.js +9 -4
  139. package/dist/components/icons/AlertCircleIcon.svelte +11 -0
  140. package/dist/components/icons/AlertCircleIcon.svelte.d.ts +26 -0
  141. package/dist/components/icons/CogIcon.svelte +11 -0
  142. package/dist/components/icons/CogIcon.svelte.d.ts +26 -0
  143. package/dist/components/interrupt/ChoicePrompt.stories.svelte +54 -38
  144. package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +1 -1
  145. package/dist/components/interrupt/ChoicePrompt.svelte +407 -383
  146. package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +1 -1
  147. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +48 -48
  148. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +1 -1
  149. package/dist/components/interrupt/ConfirmationPrompt.svelte +280 -274
  150. package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +1 -1
  151. package/dist/components/interrupt/FormPrompt.svelte +223 -218
  152. package/dist/components/interrupt/FormPrompt.svelte.d.ts +1 -1
  153. package/dist/components/interrupt/InterruptBubble.svelte +617 -583
  154. package/dist/components/interrupt/InterruptBubble.svelte.d.ts +2 -2
  155. package/dist/components/interrupt/ReviewPrompt.stories.svelte +66 -56
  156. package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +1 -1
  157. package/dist/components/interrupt/ReviewPrompt.svelte +861 -841
  158. package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +1 -1
  159. package/dist/components/interrupt/TextInputPrompt.stories.svelte +38 -33
  160. package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +1 -1
  161. package/dist/components/interrupt/TextInputPrompt.svelte +333 -328
  162. package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +1 -1
  163. package/dist/components/interrupt/index.d.ts +5 -5
  164. package/dist/components/interrupt/index.js +5 -5
  165. package/dist/components/layouts/MainLayout.svelte +724 -691
  166. package/dist/components/layouts/MainLayout.svelte.d.ts +6 -6
  167. package/dist/components/nodes/GatewayNode.stories.svelte +100 -99
  168. package/dist/components/nodes/GatewayNode.svelte +605 -571
  169. package/dist/components/nodes/GatewayNode.svelte.d.ts +3 -3
  170. package/dist/components/nodes/IdeaNode.stories.svelte +44 -43
  171. package/dist/components/nodes/IdeaNode.svelte +451 -437
  172. package/dist/components/nodes/IdeaNode.svelte.d.ts +1 -1
  173. package/dist/components/nodes/NotesNode.stories.svelte +65 -64
  174. package/dist/components/nodes/NotesNode.svelte +380 -369
  175. package/dist/components/nodes/NotesNode.svelte.d.ts +1 -1
  176. package/dist/components/nodes/SimpleNode.stories.svelte +145 -144
  177. package/dist/components/nodes/SimpleNode.svelte +486 -424
  178. package/dist/components/nodes/SimpleNode.svelte.d.ts +1 -1
  179. package/dist/components/nodes/SquareNode.stories.svelte +73 -73
  180. package/dist/components/nodes/SquareNode.svelte +439 -380
  181. package/dist/components/nodes/SquareNode.svelte.d.ts +1 -1
  182. package/dist/components/nodes/TerminalNode.stories.svelte +13 -13
  183. package/dist/components/nodes/TerminalNode.svelte +709 -670
  184. package/dist/components/nodes/TerminalNode.svelte.d.ts +1 -1
  185. package/dist/components/nodes/ToolNode.stories.svelte +181 -180
  186. package/dist/components/nodes/ToolNode.svelte +505 -447
  187. package/dist/components/nodes/ToolNode.svelte.d.ts +1 -1
  188. package/dist/components/nodes/WorkflowNode.stories.svelte +70 -46
  189. package/dist/components/nodes/WorkflowNode.svelte +621 -551
  190. package/dist/components/nodes/WorkflowNode.svelte.d.ts +3 -3
  191. package/dist/components/playground/ChatPanel.svelte +945 -889
  192. package/dist/components/playground/ExecutionLogs.svelte +495 -472
  193. package/dist/components/playground/InputCollector.svelte +449 -428
  194. package/dist/components/playground/MessageBubble.stories.svelte +47 -47
  195. package/dist/components/playground/MessageBubble.stories.svelte.d.ts +1 -1
  196. package/dist/components/playground/MessageBubble.svelte +626 -610
  197. package/dist/components/playground/MessageBubble.svelte.d.ts +1 -1
  198. package/dist/components/playground/Playground.svelte +1088 -1057
  199. package/dist/components/playground/Playground.svelte.d.ts +3 -3
  200. package/dist/components/playground/PlaygroundModal.svelte +208 -204
  201. package/dist/components/playground/PlaygroundModal.svelte.d.ts +3 -3
  202. package/dist/components/playground/SessionManager.svelte +527 -521
  203. package/dist/components/playground/SessionManager.svelte.d.ts +1 -1
  204. package/dist/config/agentSpecEndpoints.d.ts +1 -1
  205. package/dist/config/agentSpecEndpoints.js +20 -20
  206. package/dist/config/constants.d.ts +8 -0
  207. package/dist/config/constants.js +10 -2
  208. package/dist/config/defaultCategories.d.ts +1 -1
  209. package/dist/config/defaultCategories.js +86 -86
  210. package/dist/config/defaultPortConfig.d.ts +1 -1
  211. package/dist/config/defaultPortConfig.js +144 -144
  212. package/dist/config/endpoints.d.ts +4 -4
  213. package/dist/config/endpoints.js +65 -65
  214. package/dist/config/runtimeConfig.d.ts +2 -2
  215. package/dist/config/runtimeConfig.js +8 -8
  216. package/dist/core/index.d.ts +63 -59
  217. package/dist/core/index.js +35 -33
  218. package/dist/display/index.d.ts +2 -2
  219. package/dist/display/index.js +2 -2
  220. package/dist/editor/index.d.ts +62 -62
  221. package/dist/editor/index.js +53 -53
  222. package/dist/form/code.d.ts +5 -5
  223. package/dist/form/code.js +14 -14
  224. package/dist/form/fieldRegistry.d.ts +3 -3
  225. package/dist/form/fieldRegistry.js +11 -9
  226. package/dist/form/full.d.ts +8 -8
  227. package/dist/form/full.js +9 -9
  228. package/dist/form/index.d.ts +18 -18
  229. package/dist/form/index.js +16 -16
  230. package/dist/form/markdown.d.ts +4 -4
  231. package/dist/form/markdown.js +8 -8
  232. package/dist/helpers/proximityConnect.d.ts +3 -3
  233. package/dist/helpers/proximityConnect.js +34 -32
  234. package/dist/helpers/workflowEditorHelper.d.ts +5 -5
  235. package/dist/helpers/workflowEditorHelper.js +108 -96
  236. package/dist/index.d.ts +6 -6
  237. package/dist/index.js +6 -6
  238. package/dist/mocks/app-environment.js +2 -2
  239. package/dist/mocks/app-forms.js +9 -9
  240. package/dist/mocks/app-navigation.js +11 -11
  241. package/dist/mocks/app-stores.js +8 -8
  242. package/dist/playground/index.d.ts +19 -19
  243. package/dist/playground/index.js +16 -16
  244. package/dist/playground/mount.d.ts +3 -3
  245. package/dist/playground/mount.js +24 -24
  246. package/dist/registry/builtinFormats.js +13 -13
  247. package/dist/registry/builtinNodes.d.ts +2 -2
  248. package/dist/registry/builtinNodes.js +77 -77
  249. package/dist/registry/index.d.ts +4 -4
  250. package/dist/registry/index.js +4 -4
  251. package/dist/registry/nodeComponentRegistry.d.ts +8 -8
  252. package/dist/registry/nodeComponentRegistry.js +11 -9
  253. package/dist/registry/plugin.d.ts +2 -2
  254. package/dist/registry/plugin.js +11 -11
  255. package/dist/registry/workflowFormatRegistry.d.ts +3 -3
  256. package/dist/registry/workflowFormatRegistry.js +2 -2
  257. package/dist/schema/index.d.ts +1 -1
  258. package/dist/schema/index.js +2 -2
  259. package/dist/schemas/v1/workflow.schema.json +22 -107
  260. package/dist/services/agentSpecExecutionService.d.ts +3 -3
  261. package/dist/services/agentSpecExecutionService.js +59 -55
  262. package/dist/services/api.d.ts +18 -4
  263. package/dist/services/api.js +46 -43
  264. package/dist/services/apiVariableService.d.ts +1 -1
  265. package/dist/services/apiVariableService.js +41 -34
  266. package/dist/services/autoSaveService.js +8 -8
  267. package/dist/services/categoriesApi.d.ts +2 -2
  268. package/dist/services/categoriesApi.js +8 -8
  269. package/dist/services/draftStorage.d.ts +1 -1
  270. package/dist/services/draftStorage.js +11 -11
  271. package/dist/services/dynamicSchemaService.d.ts +1 -1
  272. package/dist/services/dynamicSchemaService.js +41 -39
  273. package/dist/services/globalSave.d.ts +2 -2
  274. package/dist/services/globalSave.js +53 -42
  275. package/dist/services/historyService.d.ts +1 -1
  276. package/dist/services/historyService.js +8 -8
  277. package/dist/services/interruptService.d.ts +1 -1
  278. package/dist/services/interruptService.js +35 -29
  279. package/dist/services/nodeExecutionService.d.ts +1 -1
  280. package/dist/services/nodeExecutionService.js +45 -44
  281. package/dist/services/playgroundService.d.ts +1 -1
  282. package/dist/services/playgroundService.js +29 -29
  283. package/dist/services/portConfigApi.d.ts +2 -2
  284. package/dist/services/portConfigApi.js +8 -8
  285. package/dist/services/settingsService.d.ts +2 -2
  286. package/dist/services/settingsService.js +25 -19
  287. package/dist/services/toastService.d.ts +4 -4
  288. package/dist/services/toastService.js +33 -33
  289. package/dist/services/variableService.d.ts +1 -1
  290. package/dist/services/variableService.js +36 -36
  291. package/dist/services/workflowStorage.d.ts +2 -2
  292. package/dist/services/workflowStorage.js +13 -13
  293. package/dist/settings/index.d.ts +7 -7
  294. package/dist/settings/index.js +6 -6
  295. package/dist/skins/default.d.ts +2 -0
  296. package/dist/skins/default.js +1 -0
  297. package/dist/skins/index.d.ts +13 -0
  298. package/dist/skins/index.js +30 -0
  299. package/dist/skins/slate.d.ts +2 -0
  300. package/dist/skins/slate.js +78 -0
  301. package/dist/stores/categoriesStore.svelte.d.ts +1 -1
  302. package/dist/stores/categoriesStore.svelte.js +5 -5
  303. package/dist/stores/editorStateMachine.svelte.d.ts +2 -2
  304. package/dist/stores/editorStateMachine.svelte.js +65 -33
  305. package/dist/stores/historyStore.svelte.d.ts +4 -4
  306. package/dist/stores/historyStore.svelte.js +4 -4
  307. package/dist/stores/interruptStore.svelte.d.ts +3 -3
  308. package/dist/stores/interruptStore.svelte.js +21 -21
  309. package/dist/stores/playgroundStore.svelte.d.ts +2 -2
  310. package/dist/stores/playgroundStore.svelte.js +25 -18
  311. package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
  312. package/dist/stores/portCoordinateStore.svelte.js +15 -8
  313. package/dist/stores/settingsStore.svelte.d.ts +2 -2
  314. package/dist/stores/settingsStore.svelte.js +62 -57
  315. package/dist/stores/workflowStore.svelte.d.ts +3 -3
  316. package/dist/stores/workflowStore.svelte.js +50 -47
  317. package/dist/stories/CanvasDecorator.svelte +35 -32
  318. package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
  319. package/dist/stories/EdgeDecorator.svelte +125 -0
  320. package/dist/stories/EdgeDecorator.svelte.d.ts +17 -0
  321. package/dist/stories/NodeDecorator.svelte +59 -53
  322. package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
  323. package/dist/stories/utils.d.ts +2 -2
  324. package/dist/stories/utils.js +105 -67
  325. package/dist/styles/base.css +599 -595
  326. package/dist/styles/toast.css +14 -14
  327. package/dist/styles/tokens.css +409 -378
  328. package/dist/svelte-app.d.ts +9 -9
  329. package/dist/svelte-app.js +39 -39
  330. package/dist/themes/default.d.ts +2 -0
  331. package/dist/themes/default.js +9 -0
  332. package/dist/themes/index.d.ts +13 -0
  333. package/dist/themes/index.js +44 -0
  334. package/dist/themes/minimal.d.ts +2 -0
  335. package/dist/themes/minimal.js +11 -0
  336. package/dist/types/agentspec.d.ts +18 -18
  337. package/dist/types/agentspec.js +2 -2
  338. package/dist/types/auth.d.ts +1 -1
  339. package/dist/types/auth.js +6 -6
  340. package/dist/types/config.d.ts +6 -6
  341. package/dist/types/events.d.ts +2 -2
  342. package/dist/types/events.js +2 -2
  343. package/dist/types/index.d.ts +32 -32
  344. package/dist/types/index.js +6 -6
  345. package/dist/types/interrupt.d.ts +6 -6
  346. package/dist/types/interrupt.js +21 -21
  347. package/dist/types/interruptState.d.ts +12 -12
  348. package/dist/types/interruptState.js +66 -66
  349. package/dist/types/playground.d.ts +7 -7
  350. package/dist/types/playground.js +14 -14
  351. package/dist/types/settings.d.ts +5 -3
  352. package/dist/types/settings.js +25 -18
  353. package/dist/types/skin.d.ts +31 -0
  354. package/dist/types/skin.js +1 -0
  355. package/dist/types/theme.d.ts +35 -0
  356. package/dist/types/theme.js +1 -0
  357. package/dist/types/uischema.d.ts +4 -4
  358. package/dist/types/uischema.js +3 -3
  359. package/dist/utils/colors.d.ts +1 -1
  360. package/dist/utils/colors.js +97 -95
  361. package/dist/utils/config.d.ts +2 -2
  362. package/dist/utils/config.js +48 -48
  363. package/dist/utils/connections.d.ts +2 -2
  364. package/dist/utils/connections.js +15 -15
  365. package/dist/utils/errors.js +3 -3
  366. package/dist/utils/fetchWithAuth.d.ts +1 -1
  367. package/dist/utils/fetchWithAuth.js +2 -2
  368. package/dist/utils/handleIds.d.ts +2 -2
  369. package/dist/utils/handleIds.js +8 -8
  370. package/dist/utils/handlePositioning.d.ts +1 -1
  371. package/dist/utils/handlePositioning.js +2 -2
  372. package/dist/utils/icons.d.ts +1 -1
  373. package/dist/utils/icons.js +74 -74
  374. package/dist/utils/logger.d.ts +1 -1
  375. package/dist/utils/logger.js +7 -7
  376. package/dist/utils/nodeStatus.d.ts +1 -1
  377. package/dist/utils/nodeStatus.js +48 -48
  378. package/dist/utils/nodeTypes.d.ts +1 -1
  379. package/dist/utils/nodeTypes.js +21 -20
  380. package/dist/utils/nodeWrapper.d.ts +7 -7
  381. package/dist/utils/nodeWrapper.js +21 -19
  382. package/dist/utils/performanceUtils.d.ts +1 -1
  383. package/dist/utils/performanceUtils.js +2 -1
  384. package/dist/utils/sanitize.js +1 -1
  385. package/dist/utils/uischema.d.ts +2 -2
  386. package/dist/utils/uischema.js +8 -8
  387. package/dist/utils/validation.js +20 -8
  388. package/package.json +296 -291
@@ -70,278 +70,304 @@
70
70
  */
71
71
 
72
72
  :root {
73
- /* =========================================================================
73
+ /* =========================================================================
74
74
  INTERNAL PALETTE (Private - not documented for users)
75
75
  Prefix: --_ indicates internal/private tokens
76
76
  @internal — Do NOT override these in consumer stylesheets.
77
77
  ========================================================================= */
78
78
 
79
- /* Grays - Tinted scale with subtle blue undertone for modern feel, 9 steps */
80
- --_gray-1: #fafafc; /* @internal */
81
- --_gray-2: #f5f5f8; /* @internal */
82
- --_gray-3: #eaeaef; /* @internal */
83
- --_gray-4: #dcdce4; /* @internal */
84
- --_gray-5: #a3a3ad; /* @internal */
85
- --_gray-6: #71717b; /* @internal */
86
- --_gray-7: #52525c; /* @internal */
87
- --_gray-8: #27272b; /* @internal */
88
- --_gray-9: #18181c; /* @internal */
89
-
90
- /* Blue - Primary/interactive color */
91
- --_blue-1: #eff6ff; /* @internal */
92
- --_blue-2: #3b82f6; /* @internal */
93
- --_blue-3: #1d4ed8; /* @internal */
94
-
95
- /* Green - Success states */
96
- --_green-1: #f0fdf4; /* @internal */
97
- --_green-2: #22c55e; /* @internal */
98
- --_green-3: #15803d; /* @internal */
99
-
100
- /* Red - Error/destructive states */
101
- --_red-1: #fef2f2; /* @internal */
102
- --_red-2: #ef4444; /* @internal */
103
- --_red-3: #b91c1c; /* @internal */
104
-
105
- /* Amber - Warning states */
106
- --_amber-1: #fffbeb; /* @internal */
107
- --_amber-2: #f59e0b; /* @internal */
108
- --_amber-3: #b45309; /* @internal */
109
-
110
- /* Violet - Selection/accent */
111
- --_violet-1: #f5f3ff; /* @internal */
112
- --_violet-2: #8b5cf6; /* @internal */
113
- --_violet-3: #6d28d9; /* @internal */
114
-
115
- /* =========================================================================
79
+ /* Grays - Tinted scale with subtle blue undertone for modern feel, 9 steps */
80
+ --_gray-1: #fafafc; /* @internal */
81
+ --_gray-2: #f5f5f8; /* @internal */
82
+ --_gray-3: #eaeaef; /* @internal */
83
+ --_gray-4: #dcdce4; /* @internal */
84
+ --_gray-5: #a3a3ad; /* @internal */
85
+ --_gray-6: #71717b; /* @internal */
86
+ --_gray-7: #52525c; /* @internal */
87
+ --_gray-8: #27272b; /* @internal */
88
+ --_gray-9: #18181c; /* @internal */
89
+
90
+ /* Blue - Primary/interactive color */
91
+ --_blue-1: #eff6ff; /* @internal */
92
+ --_blue-2: #3b82f6; /* @internal */
93
+ --_blue-3: #1d4ed8; /* @internal */
94
+
95
+ /* Green - Success states */
96
+ --_green-1: #f0fdf4; /* @internal */
97
+ --_green-2: #22c55e; /* @internal */
98
+ --_green-3: #15803d; /* @internal */
99
+
100
+ /* Red - Error/destructive states */
101
+ --_red-1: #fef2f2; /* @internal */
102
+ --_red-2: #ef4444; /* @internal */
103
+ --_red-3: #b91c1c; /* @internal */
104
+
105
+ /* Amber - Warning states */
106
+ --_amber-1: #fffbeb; /* @internal */
107
+ --_amber-2: #f59e0b; /* @internal */
108
+ --_amber-3: #b45309; /* @internal */
109
+
110
+ /* Violet - Selection/accent */
111
+ --_violet-1: #f5f3ff; /* @internal */
112
+ --_violet-2: #8b5cf6; /* @internal */
113
+ --_violet-3: #6d28d9; /* @internal */
114
+
115
+ /* =========================================================================
116
116
  SEMANTIC TOKENS (Public API)
117
117
  These are the tokens users override for theming.
118
118
  @public — All tokens in this section are safe to override.
119
119
  ========================================================================= */
120
120
 
121
- /* ----- SURFACES (Backgrounds) ----- */
122
- --fd-background: #ffffff; /* @public */
123
- --fd-foreground: var(--_gray-9); /* @public */
124
- --fd-muted: #f8f8fb; /* @public */
125
- --fd-muted-foreground: var(--_gray-6); /* @public */
126
- --fd-subtle: #f0f0f5; /* @public */
127
- --fd-card: #ffffff; /* @public */
128
- --fd-card-foreground: var(--_gray-9); /* @public */
129
-
130
- /* ----- HEADER (Distinct header styling) ----- */
131
- --fd-header: #f5f7fa; /* @public */
132
- --fd-header-foreground: var(--_gray-8); /* @public */
133
- --fd-header-gradient: linear-gradient(180deg, #f8f9fc 0%, #f4f5f8 100%); /* @public */
134
-
135
- /* ----- SURFACE TINT (Subtle accent for surfaces) ----- */
136
- --fd-surface-tint: rgba(99, 102, 241, 0.02); /* @public */
137
-
138
- /* ----- BORDERS ----- */
139
- --fd-border: var(--_gray-4); /* @public */
140
- --fd-border-muted: var(--_gray-3); /* @public */
141
- --fd-border-strong: var(--_gray-5); /* @public */
142
- --fd-ring: var(--_blue-2); /* @public */
143
-
144
- /* ----- NODE BORDERS (Higher contrast for visibility when zoomed out) ----- */
145
- --fd-node-border: var(--_gray-5); /* @public */
146
- --fd-node-border-hover: var(--_gray-6); /* @public */
147
-
148
- /* ----- PRIMARY (Interactive/Brand) ----- */
149
- --fd-primary: var(--_blue-2); /* @public */
150
- --fd-primary-hover: var(--_blue-3); /* @public */
151
- --fd-primary-foreground: #ffffff; /* @public */
152
- --fd-primary-muted: var(--_blue-1); /* @public */
153
-
154
- /* ----- SECONDARY ----- */
155
- --fd-secondary: var(--_gray-2); /* @public */
156
- --fd-secondary-hover: var(--_gray-3); /* @public */
157
- --fd-secondary-foreground: var(--_gray-9); /* @public */
158
-
159
- /* ----- ACCENT ----- */
160
- --fd-accent: var(--_violet-2); /* @public */
161
- --fd-accent-hover: var(--_violet-3); /* @public */
162
- --fd-accent-foreground: #ffffff; /* @public */
163
- --fd-accent-muted: var(--_violet-1); /* @public */
164
-
165
- /* ----- STATUS: SUCCESS ----- */
166
- --fd-success: var(--_green-2); /* @public */
167
- --fd-success-hover: var(--_green-3); /* @public */
168
- --fd-success-foreground: #ffffff; /* @public */
169
- --fd-success-muted: var(--_green-1); /* @public */
170
-
171
- /* ----- STATUS: WARNING ----- */
172
- --fd-warning: var(--_amber-2); /* @public */
173
- --fd-warning-hover: var(--_amber-3); /* @public */
174
- --fd-warning-foreground: var(--_gray-9); /* @public */
175
- --fd-warning-muted: var(--_amber-1); /* @public */
176
-
177
- /* ----- STATUS: ERROR/DESTRUCTIVE ----- */
178
- --fd-error: var(--_red-2); /* @public */
179
- --fd-error-hover: var(--_red-3); /* @public */
180
- --fd-error-foreground: #ffffff; /* @public */
181
- --fd-error-muted: var(--_red-1); /* @public */
182
-
183
- /* ----- STATUS: INFO ----- */
184
- --fd-info: var(--_blue-2); /* @public */
185
- --fd-info-hover: var(--_blue-3); /* @public */
186
- --fd-info-foreground: #ffffff; /* @public */
187
- --fd-info-muted: var(--_blue-1); /* @public */
188
-
189
- /* ----- SPACING SCALE (Named sizes) ----- */
190
- --fd-space-0: 0; /* @public */
191
- --fd-space-3xs: 0.25rem; /* @public 4px */
192
- --fd-space-2xs: 0.375rem; /* @public 6px */
193
- --fd-space-xs: 0.5rem; /* @public 8px */
194
- --fd-space-sm: 0.625rem; /* @public 10px */
195
- --fd-space-md: 0.75rem; /* @public 12px */
196
- --fd-space-lg: 0.875rem; /* @public 14px */
197
- --fd-space-xl: 1rem; /* @public 16px */
198
- --fd-space-2xl: 1.25rem; /* @public 20px */
199
- --fd-space-3xl: 1.5rem; /* @public 24px */
200
- --fd-space-4xl: 2rem; /* @public 32px */
201
- --fd-space-5xl: 2.5rem; /* @public 40px */
202
- --fd-space-6xl: 3rem; /* @public 48px */
203
- --fd-space-7xl: 4rem; /* @public 64px */
204
-
205
- /* ----- BORDER RADIUS ----- */
206
- --fd-radius-none: 0; /* @public */
207
- --fd-radius-sm: 0.25rem; /* @public 4px */
208
- --fd-radius-md: 0.375rem; /* @public 6px */
209
- --fd-radius-lg: 0.5rem; /* @public 8px */
210
- --fd-radius-xl: 0.75rem; /* @public 12px */
211
- --fd-radius-2xl: 1rem; /* @public 16px */
212
- --fd-radius-full: 9999px; /* @public */
213
-
214
- /* ----- SHADOWS (Refined layered shadows for modern depth) ----- */
215
- --fd-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.04), 0 1px 3px rgb(0 0 0 / 0.06); /* @public */
216
- --fd-shadow-md: 0 4px 8px rgb(0 0 0 / 0.06), 0 2px 4px rgb(0 0 0 / 0.04); /* @public */
217
- --fd-shadow-lg: 0 10px 20px rgb(0 0 0 / 0.08), 0 4px 8px rgb(0 0 0 / 0.04); /* @public */
218
- --fd-shadow-xl: 0 20px 30px rgb(0 0 0 / 0.1), 0 8px 16px rgb(0 0 0 / 0.06); /* @public */
219
-
220
- /* ----- FONT SIZES ----- */
221
- --fd-text-2xs: 0.6875rem; /* @public 11px */
222
- --fd-text-xs: 0.75rem; /* @public 12px */
223
- --fd-text-xsm: 0.8125rem; /* @public 13px */
224
- --fd-text-sm: 0.875rem; /* @public 14px */
225
- --fd-text-md: 0.9375rem; /* @public 15px */
226
- --fd-text-base: 1rem; /* @public 16px */
227
- --fd-text-lg: 1.125rem; /* @public 18px */
228
- --fd-text-xl: 1.25rem; /* @public 20px */
229
- --fd-text-2xl: 1.5rem; /* @public 24px */
230
-
231
- /* ----- LINE HEIGHTS ----- */
232
- --fd-leading-tight: 1.4; /* @public */
233
- --fd-leading-normal: 1.5; /* @public */
234
- --fd-leading-relaxed: 1.6; /* @public */
235
-
236
- /* ----- FONT FAMILIES ----- */
237
- --fd-font-mono:
238
- ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace; /* @public */
239
-
240
- /* ----- COMPONENT SIZES ----- */
241
- --fd-size-icon-btn: 1.75rem; /* @internal 28px — may change with component redesigns */
242
- --fd-size-btn-min: 2.5rem; /* @internal 40px — may change with component redesigns */
243
- --fd-size-avatar: 2.25rem; /* @internal 36px — may change with component redesigns */
244
- --fd-size-spinner: 1rem; /* @internal 16px may change with component redesigns */
245
-
246
- /* ----- TRANSITIONS ----- */
247
- --fd-transition-fast: 150ms ease; /* @public */
248
- --fd-transition-normal: 200ms ease; /* @public */
249
- --fd-transition-slow: 300ms ease; /* @public */
250
-
251
- /* =========================================================================
121
+ /* ----- SURFACES (Backgrounds) ----- */
122
+ --fd-background: #ffffff; /* @public */
123
+ --fd-foreground: var(--_gray-9); /* @public */
124
+ --fd-muted: #f8f8fb; /* @public */
125
+ --fd-muted-foreground: var(--_gray-6); /* @public */
126
+ --fd-subtle: #f0f0f5; /* @public */
127
+ --fd-card: #ffffff; /* @public */
128
+ --fd-card-foreground: var(--_gray-9); /* @public */
129
+
130
+ /* ----- HEADER (Distinct header styling) ----- */
131
+ --fd-header: #f5f7fa; /* @public */
132
+ --fd-header-foreground: var(--_gray-8); /* @public */
133
+ --fd-header-gradient: linear-gradient(
134
+ 180deg,
135
+ #f8f9fc 0%,
136
+ #f4f5f8 100%
137
+ ); /* @public */
138
+
139
+ /* ----- SURFACE TINT (Subtle accent for surfaces) ----- */
140
+ --fd-surface-tint: rgba(99, 102, 241, 0.02); /* @public */
141
+
142
+ /* ----- BORDERS ----- */
143
+ --fd-border: var(--_gray-4); /* @public */
144
+ --fd-border-muted: var(--_gray-3); /* @public */
145
+ --fd-border-strong: var(--_gray-5); /* @public */
146
+ --fd-ring: var(--_blue-2); /* @public */
147
+
148
+ /* ----- NODE BORDERS (Higher contrast for visibility when zoomed out) ----- */
149
+ --fd-node-border: var(--_gray-5); /* @public */
150
+ --fd-node-border-hover: var(--_gray-6); /* @public */
151
+
152
+ /* ----- PRIMARY (Interactive/Brand) ----- */
153
+ --fd-primary: var(--_blue-2); /* @public */
154
+ --fd-primary-hover: var(--_blue-3); /* @public */
155
+ --fd-primary-foreground: #ffffff; /* @public */
156
+ --fd-primary-muted: var(--_blue-1); /* @public */
157
+
158
+ /* ----- SECONDARY ----- */
159
+ --fd-secondary: var(--_gray-2); /* @public */
160
+ --fd-secondary-hover: var(--_gray-3); /* @public */
161
+ --fd-secondary-foreground: var(--_gray-9); /* @public */
162
+
163
+ /* ----- ACCENT ----- */
164
+ --fd-accent: var(--_violet-2); /* @public */
165
+ --fd-accent-hover: var(--_violet-3); /* @public */
166
+ --fd-accent-foreground: #ffffff; /* @public */
167
+ --fd-accent-muted: var(--_violet-1); /* @public */
168
+
169
+ /* ----- STATUS: SUCCESS ----- */
170
+ --fd-success: var(--_green-2); /* @public */
171
+ --fd-success-hover: var(--_green-3); /* @public */
172
+ --fd-success-foreground: #ffffff; /* @public */
173
+ --fd-success-muted: var(--_green-1); /* @public */
174
+
175
+ /* ----- STATUS: WARNING ----- */
176
+ --fd-warning: var(--_amber-2); /* @public */
177
+ --fd-warning-hover: var(--_amber-3); /* @public */
178
+ --fd-warning-foreground: var(--_gray-9); /* @public */
179
+ --fd-warning-muted: var(--_amber-1); /* @public */
180
+
181
+ /* ----- STATUS: ERROR/DESTRUCTIVE ----- */
182
+ --fd-error: var(--_red-2); /* @public */
183
+ --fd-error-hover: var(--_red-3); /* @public */
184
+ --fd-error-foreground: #ffffff; /* @public */
185
+ --fd-error-muted: var(--_red-1); /* @public */
186
+
187
+ /* ----- STATUS: INFO ----- */
188
+ --fd-info: var(--_blue-2); /* @public */
189
+ --fd-info-hover: var(--_blue-3); /* @public */
190
+ --fd-info-foreground: #ffffff; /* @public */
191
+ --fd-info-muted: var(--_blue-1); /* @public */
192
+
193
+ /* ----- SPACING SCALE (Named sizes) ----- */
194
+ --fd-space-0: 0; /* @public */
195
+ --fd-space-3xs: 0.25rem; /* @public 4px */
196
+ --fd-space-2xs: 0.375rem; /* @public 6px */
197
+ --fd-space-xs: 0.5rem; /* @public 8px */
198
+ --fd-space-sm: 0.625rem; /* @public 10px */
199
+ --fd-space-md: 0.75rem; /* @public 12px */
200
+ --fd-space-lg: 0.875rem; /* @public 14px */
201
+ --fd-space-xl: 1rem; /* @public 16px */
202
+ --fd-space-2xl: 1.25rem; /* @public 20px */
203
+ --fd-space-3xl: 1.5rem; /* @public 24px */
204
+ --fd-space-4xl: 2rem; /* @public 32px */
205
+ --fd-space-5xl: 2.5rem; /* @public 40px */
206
+ --fd-space-6xl: 3rem; /* @public 48px */
207
+ --fd-space-7xl: 4rem; /* @public 64px */
208
+
209
+ /* ----- BORDER RADIUS ----- */
210
+ --fd-radius-none: 0; /* @public */
211
+ --fd-radius-sm: 0.25rem; /* @public 4px */
212
+ --fd-radius-md: 0.375rem; /* @public 6px */
213
+ --fd-radius-lg: 0.5rem; /* @public 8px */
214
+ --fd-radius-xl: 0.75rem; /* @public 12px */
215
+ --fd-radius-2xl: 1rem; /* @public 16px */
216
+ --fd-radius-full: 9999px; /* @public */
217
+
218
+ /* ----- SHADOWS (Refined layered shadows for modern depth) ----- */
219
+ --fd-shadow-sm:
220
+ 0 1px 2px rgb(0 0 0 / 0.04), 0 1px 3px rgb(0 0 0 / 0.06); /* @public */
221
+ --fd-shadow-md:
222
+ 0 4px 8px rgb(0 0 0 / 0.06), 0 2px 4px rgb(0 0 0 / 0.04); /* @public */
223
+ --fd-shadow-lg:
224
+ 0 10px 20px rgb(0 0 0 / 0.08), 0 4px 8px rgb(0 0 0 / 0.04); /* @public */
225
+ --fd-shadow-xl:
226
+ 0 20px 30px rgb(0 0 0 / 0.1), 0 8px 16px rgb(0 0 0 / 0.06); /* @public */
227
+
228
+ /* ----- FONT SIZES ----- */
229
+ --fd-text-2xs: 0.6875rem; /* @public 11px */
230
+ --fd-text-xs: 0.75rem; /* @public 12px */
231
+ --fd-text-xsm: 0.8125rem; /* @public 13px */
232
+ --fd-text-sm: 0.875rem; /* @public 14px */
233
+ --fd-text-md: 0.9375rem; /* @public 15px */
234
+ --fd-text-base: 1rem; /* @public 16px */
235
+ --fd-text-lg: 1.125rem; /* @public 18px */
236
+ --fd-text-xl: 1.25rem; /* @public 20px */
237
+ --fd-text-2xl: 1.5rem; /* @public 24px */
238
+
239
+ /* ----- LINE HEIGHTS ----- */
240
+ --fd-leading-tight: 1.4; /* @public */
241
+ --fd-leading-normal: 1.5; /* @public */
242
+ --fd-leading-relaxed: 1.6; /* @public */
243
+
244
+ /* ----- FONT FAMILIES ----- */
245
+ --fd-font-mono:
246
+ ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono",
247
+ monospace; /* @public */
248
+
249
+ /* ----- COMPONENT SIZES ----- */
250
+ --fd-size-icon-btn: 1.75rem; /* @internal 28px — may change with component redesigns */
251
+ --fd-size-btn-min: 2.5rem; /* @internal 40px — may change with component redesigns */
252
+ --fd-size-avatar: 2.25rem; /* @internal 36px — may change with component redesigns */
253
+ --fd-size-spinner: 1rem; /* @internal 16px — may change with component redesigns */
254
+
255
+ /* ----- TRANSITIONS ----- */
256
+ --fd-transition-fast: 150ms ease; /* @public */
257
+ --fd-transition-normal: 200ms ease; /* @public */
258
+ --fd-transition-slow: 300ms ease; /* @public */
259
+
260
+ /* =========================================================================
252
261
  COMPONENT TOKENS
253
262
  These provide fine-grained control while defaulting to semantic tokens.
254
263
  @public tokens in this section are safe to override.
255
264
  @internal tokens may change without notice.
256
265
  ========================================================================= */
257
266
 
258
- /* ----- LAYOUT ----- */
259
- --fd-sidebar-width: 320px; /* @internal — controlled programmatically */
260
- --fd-navbar-height: 60px; /* @internal — controlled programmatically */
261
- --fd-toolbar-height: 40px; /* @internal — controlled programmatically */
262
-
263
- /* ----- NODE COLORS (for workflow editor) ----- */
264
- --fd-node-emerald: #10b981; /* @public */
265
- --fd-node-blue: #2563eb; /* @public */
266
- --fd-node-amber: #f59e0b; /* @public */
267
- --fd-node-orange: #f97316; /* @public */
268
- --fd-node-red: #ef4444; /* @public */
269
- --fd-node-pink: #ec4899; /* @public */
270
- --fd-node-indigo: #6366f1; /* @public */
271
- --fd-node-teal: #14b8a6; /* @public */
272
- --fd-node-cyan: #06b6d4; /* @public */
273
- --fd-node-lime: #84cc16; /* @public */
274
- --fd-node-slate: #64748b; /* @public */
275
- --fd-node-purple: #9333ea; /* @public */
276
-
277
- /** Icon on node squircle: dark in light theme, white in dark theme */
278
- --fd-node-icon: var(--_gray-9); /* @public */
279
- /** Opacity of the icon squircle background (color-mix percentage). Light mode: 15% / 22% hover; dark mode uses higher values. */
280
- --fd-node-icon-bg-opacity: 20%; /* @public */
281
- --fd-node-icon-bg-opacity-hover: 50%; /* @public */
282
-
283
- /* ----- EDGE TOKENS ----- */
284
- --fd-edge-trigger: var(--_gray-9); /* @public */
285
- --fd-edge-trigger-hover: var(--_gray-9); /* @public */
286
- --fd-edge-trigger-selected: var(--_violet-2); /* @public */
287
- --fd-edge-trigger-width: 2px; /* @public */
288
- --fd-edge-trigger-width-hover: 3px; /* @public */
289
-
290
- --fd-edge-tool: var(--_amber-2); /* @public */
291
- --fd-edge-tool-hover: var(--_amber-3); /* @public */
292
- --fd-edge-tool-selected: var(--_violet-2); /* @public */
293
-
294
- --fd-edge-data: var(--_gray-5); /* @public */
295
- --fd-edge-data-hover: var(--_gray-6); /* @public */
296
- --fd-edge-data-selected: var(--_violet-2); /* @public */
297
-
298
- --fd-edge-loopback: var(--_gray-6); /* @public */
299
- --fd-edge-loopback-hover: var(--_gray-7); /* @public */
300
- --fd-edge-loopback-selected: var(--_violet-2); /* @public */
301
- --fd-edge-loopback-width: 1.5px; /* @public */
302
- --fd-edge-loopback-width-hover: 2.5px; /* @public */
303
- --fd-edge-loopback-dasharray: 5 5; /* @public */
304
- --fd-edge-loopback-opacity: 0.85; /* @public */
305
-
306
- /* ----- SCROLLBAR COLORS ----- */
307
- --fd-scrollbar-thumb: var(--_gray-4); /* @internal */
308
- --fd-scrollbar-thumb-hover: var(--_gray-5); /* @internal */
309
- --fd-scrollbar-track: var(--_gray-2); /* @internal */
310
-
311
- /* ----- BACKDROP/OVERLAY ----- */
312
- --fd-backdrop: rgba(255, 255, 255, 0.8); /* @internal */
313
- --fd-backdrop-blur: blur(8px); /* @internal */
314
-
315
- /* ----- HANDLE (Node connection points) ----- */
316
- /* White ring around handles for contrast against node backgrounds */
317
- --fd-handle-border: #ffffff; /* @public */
318
- /* Outer size = connection/hit area (px); visual = visible circle (px) */
319
- --fd-handle-size: 20px; /* @public */
320
- --fd-handle-visual-size: 12px; /* @public */
321
- --fd-handle-offset: calc(
322
- -1 * var(--fd-handle-size) / 2
323
- ); /* @internal — half handle size for edge positioning */
324
-
325
- /* ----- NODE LAYOUT (Dimensions and port alignment; multiples of 10 for grid) ----- */
326
- --fd-node-grid-step: 10; /* @internal — layout algorithm detail */
327
- --fd-node-default-width: 290px; /* @public */
328
- --fd-node-header-height: 60px; /* @public */
329
- --fd-node-header-title-height: 40px; /* @internal */
330
- --fd-node-header-desc-line: 20px; /* @internal */
331
- --fd-node-header-gap: 10px; /* @internal */
332
- --fd-node-port-row-height: 20px; /* @internal */
333
- --fd-node-terminal-size: 80px; /* @public */
334
- --fd-node-square-size: 80px; /* @public */
335
- --fd-node-simple-height: 80px; /* @public */
336
- --fd-node-tool-min-height: 80px; /* @public */
337
-
338
- /* ----- LAYOUT BACKGROUND (Main content area gradient) ----- */
339
- --fd-layout-background: linear-gradient(
340
- 135deg,
341
- #f9fafb 0%,
342
- #e0e7ff 50%,
343
- #c7d2fe 100%
344
- ); /* @public */
267
+ /* ----- LAYOUT ----- */
268
+ --fd-sidebar-width: 320px; /* @internal — controlled programmatically */
269
+ --fd-navbar-height: 60px; /* @internal — controlled programmatically */
270
+ --fd-toolbar-height: 40px; /* @internal — controlled programmatically */
271
+
272
+ /* ----- NODE COLORS (for workflow editor) ----- */
273
+ --fd-node-emerald: #10b981; /* @public */
274
+ --fd-node-blue: #2563eb; /* @public */
275
+ --fd-node-amber: #f59e0b; /* @public */
276
+ --fd-node-orange: #f97316; /* @public */
277
+ --fd-node-red: #ef4444; /* @public */
278
+ --fd-node-pink: #ec4899; /* @public */
279
+ --fd-node-indigo: #6366f1; /* @public */
280
+ --fd-node-teal: #14b8a6; /* @public */
281
+ --fd-node-cyan: #06b6d4; /* @public */
282
+ --fd-node-lime: #84cc16; /* @public */
283
+ --fd-node-slate: #64748b; /* @public */
284
+ --fd-node-purple: #9333ea; /* @public */
285
+
286
+ /** Icon on node squircle: dark in light theme, white in dark theme */
287
+ --fd-node-icon: var(--_gray-9); /* @public */
288
+ /** Opacity of the icon squircle background (color-mix percentage). Light mode: 15% / 22% hover; dark mode uses higher values. */
289
+ --fd-node-icon-bg-opacity: 20%; /* @public */
290
+ --fd-node-icon-bg-opacity-hover: 50%; /* @public */
291
+
292
+ /* ----- EDGE TOKENS ----- */
293
+ --fd-edge-trigger: var(--_gray-9); /* @public */
294
+ --fd-edge-trigger-hover: var(--_gray-9); /* @public */
295
+ --fd-edge-trigger-selected: var(--_violet-2); /* @public */
296
+ --fd-edge-trigger-width: 2px; /* @public */
297
+ --fd-edge-trigger-width-hover: 3px; /* @public */
298
+
299
+ --fd-edge-tool: var(--_amber-2); /* @public */
300
+ --fd-edge-tool-hover: var(--_amber-3); /* @public */
301
+ --fd-edge-tool-selected: var(--_violet-2); /* @public */
302
+
303
+ --fd-edge-data: var(--_gray-5); /* @public */
304
+ --fd-edge-data-hover: var(--_gray-6); /* @public */
305
+ --fd-edge-data-selected: var(--_violet-2); /* @public */
306
+
307
+ --fd-edge-loopback: var(--_gray-6); /* @public */
308
+ --fd-edge-loopback-hover: var(--_gray-7); /* @public */
309
+ --fd-edge-loopback-selected: var(--_violet-2); /* @public */
310
+ --fd-edge-loopback-width: 1.5px; /* @public */
311
+ --fd-edge-loopback-width-hover: 2.5px; /* @public */
312
+ --fd-edge-loopback-dasharray: 5 5; /* @public */
313
+ --fd-edge-loopback-opacity: 0.85; /* @public */
314
+
315
+ /* ----- SCROLLBAR COLORS ----- */
316
+ --fd-scrollbar-thumb: var(--_gray-4); /* @internal */
317
+ --fd-scrollbar-thumb-hover: var(--_gray-5); /* @internal */
318
+ --fd-scrollbar-track: var(--_gray-2); /* @internal */
319
+
320
+ /* ----- BACKDROP/OVERLAY ----- */
321
+ --fd-backdrop: rgba(255, 255, 255, 0.8); /* @internal */
322
+ --fd-backdrop-blur: blur(8px); /* @internal */
323
+
324
+ /* ----- HANDLE (Node connection points) ----- */
325
+ /* White ring around handles for contrast against node backgrounds */
326
+ --fd-handle-border: #ffffff; /* @public */
327
+ /* Outer size = connection/hit area (px); visual = visible circle (px) */
328
+ --fd-handle-size: 20px; /* @public */
329
+ --fd-handle-visual-size: 12px; /* @public */
330
+ --fd-handle-offset: calc(
331
+ -1 * var(--fd-handle-size) / 2
332
+ ); /* @internal — half handle size for edge positioning */
333
+
334
+ /* ----- NODE LAYOUT (Dimensions and port alignment; multiples of 10 for grid) ----- */
335
+ --fd-node-grid-step: 10; /* @internal — layout algorithm detail */
336
+ --fd-node-default-width: 290px; /* @public */
337
+ --fd-node-header-height: 60px; /* @public */
338
+ --fd-node-header-title-height: 40px; /* @internal */
339
+ --fd-node-header-desc-line: 20px; /* @internal */
340
+ --fd-node-header-gap: 10px; /* @internal */
341
+ --fd-node-port-row-height: 20px; /* @internal */
342
+ --fd-node-terminal-size: 80px; /* @public */
343
+ --fd-node-square-size: 80px; /* @public */
344
+ --fd-node-simple-height: 80px; /* @public */
345
+ --fd-node-tool-min-height: 80px; /* @public */
346
+
347
+ /* ----- LAYOUT BACKGROUND (Main content area gradient) ----- */
348
+ --fd-layout-background: linear-gradient(
349
+ 135deg,
350
+ #f9fafb 0%,
351
+ #e0e7ff 50%,
352
+ #c7d2fe 100%
353
+ ); /* @public */
354
+
355
+ /* ----- SKIN DISPLAY CONTROL TOKENS ----- */
356
+ /* @public — override these in a skin's tokens dict to toggle visual variants */
357
+ --fd-node-icon-display: flex; /* @public show squircle icon wrapper */
358
+ --fd-node-circle-display: none; /* @public hide circle dot */
359
+ --fd-sidebar-search-display: flex; /* @public show sidebar search input */
360
+ --fd-sidebar-header-display: flex; /* @public show sidebar "Components" header */
361
+ --fd-sidebar-card-display: block; /* @public show accordion card node list */
362
+ --fd-sidebar-flat-display: none; /* @public hide flat dot-name node list */
363
+ --fd-sidebar-category-color: var(
364
+ --fd-muted-foreground
365
+ ); /* @public category header text color */
366
+ --fd-sidebar-flat-item-color: var(
367
+ --fd-foreground
368
+ ); /* @public flat list item text color */
369
+ --fd-navbar-split-display: none; /* @public show all actions as separate buttons */
370
+ --fd-navbar-dropdown-display: flex; /* @public show primary-action + dropdown chevron */
345
371
  }
346
372
 
347
373
  /* =========================================================================
@@ -350,126 +376,131 @@
350
376
  Designed for softer contrast and reduced eye strain
351
377
  ========================================================================= */
352
378
 
353
- [data-theme='dark'] {
354
- /* ----- SURFACES (Backgrounds) - Softer contrast ----- */
355
- --fd-background: #1a1a1e;
356
- --fd-foreground: var(--_gray-2);
357
- --fd-muted: #242428;
358
- --fd-muted-foreground: var(--_gray-4);
359
- --fd-subtle: #2a2a30;
360
- --fd-card: #222226;
361
- --fd-card-foreground: var(--_gray-2);
362
-
363
- /* ----- HEADER (Distinct header styling for dark mode) ----- */
364
- --fd-header: #1f1f24;
365
- --fd-header-foreground: var(--_gray-3);
366
- --fd-header-gradient: linear-gradient(180deg, #222228 0%, #1e1e24 100%);
367
-
368
- /* ----- SURFACE TINT (Subtle accent for surfaces) ----- */
369
- --fd-surface-tint: rgba(99, 102, 241, 0.03);
370
-
371
- /* ----- HANDLE (Node connection points) ----- */
372
- /* White ring around handles provides contrast on dark node backgrounds */
373
- --fd-handle-border: rgba(255, 255, 255, 0.9);
374
-
375
- /* ----- BORDERS - Subtle in dark mode for softer contrast ----- */
376
- --fd-border: #3a3a40;
377
- --fd-border-muted: #2e2e33;
378
- --fd-border-strong: #4a4a52;
379
- --fd-ring: #60a5fa;
380
-
381
- /* ----- NODE BORDERS (Higher contrast for visibility when zoomed out) ----- */
382
- --fd-node-border: #4a4a52;
383
- --fd-node-border-hover: #5a5a62;
384
-
385
- /* ----- NODE COLORS (port type labels/badges - lighter for readability on dark surfaces) ----- */
386
- --fd-node-emerald: #34d399;
387
- --fd-node-blue: #60a5fa;
388
- --fd-node-amber: #fbbf24;
389
- --fd-node-orange: #fb923c;
390
- --fd-node-red: #f87171;
391
- --fd-node-pink: #f472b6;
392
- --fd-node-indigo: #818cf8;
393
- --fd-node-teal: #2dd4bf;
394
- --fd-node-cyan: #22d3ee;
395
- --fd-node-lime: #a3e635;
396
- --fd-node-slate: #94a3b8;
397
- --fd-node-purple: #c084fc;
398
-
399
- /** Icon on node squircle: white in dark theme */
400
- --fd-node-icon: #ffffff;
401
- /** Icon squircle background opacity: higher in dark mode for visibility on dark surfaces */
402
- --fd-node-icon-bg-opacity: 50%;
403
- --fd-node-icon-bg-opacity-hover: 80%;
404
-
405
- /* ----- PRIMARY (Interactive/Brand) ----- */
406
- --fd-primary: #60a5fa;
407
- --fd-primary-hover: #93c5fd;
408
- --fd-primary-foreground: var(--_gray-9);
409
- --fd-primary-muted: rgba(59, 130, 246, 0.12);
410
-
411
- /* ----- SECONDARY ----- */
412
- --fd-secondary: #2d2d32;
413
- --fd-secondary-hover: #3a3a3f;
414
- --fd-secondary-foreground: var(--_gray-2);
415
-
416
- /* ----- ACCENT ----- */
417
- --fd-accent: #a78bfa;
418
- --fd-accent-hover: #c4b5fd;
419
- --fd-accent-foreground: var(--_gray-9);
420
- --fd-accent-muted: rgba(139, 92, 246, 0.12);
421
-
422
- /* ----- STATUS: SUCCESS ----- */
423
- --fd-success: #4ade80;
424
- --fd-success-hover: #86efac;
425
- --fd-success-foreground: var(--_gray-9);
426
- --fd-success-muted: rgba(34, 197, 94, 0.12);
427
-
428
- /* ----- STATUS: WARNING ----- */
429
- --fd-warning: #fbbf24;
430
- --fd-warning-hover: #fcd34d;
431
- --fd-warning-foreground: var(--_gray-9);
432
- --fd-warning-muted: rgba(245, 158, 11, 0.12);
433
-
434
- /* ----- STATUS: ERROR/DESTRUCTIVE ----- */
435
- --fd-error: #f87171;
436
- --fd-error-hover: #fca5a5;
437
- --fd-error-foreground: var(--_gray-9);
438
- --fd-error-muted: rgba(239, 68, 68, 0.12);
439
-
440
- /* ----- STATUS: INFO ----- */
441
- --fd-info: #60a5fa;
442
- --fd-info-hover: #93c5fd;
443
- --fd-info-foreground: var(--_gray-9);
444
- --fd-info-muted: rgba(59, 130, 246, 0.12);
445
-
446
- /* ----- SHADOWS (softer for dark mode) ----- */
447
- --fd-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.2);
448
- --fd-shadow-md: 0 4px 6px rgb(0 0 0 / 0.25);
449
- --fd-shadow-lg: 0 10px 15px rgb(0 0 0 / 0.3);
450
- --fd-shadow-xl: 0 20px 25px rgb(0 0 0 / 0.4);
451
-
452
- /* ----- SCROLLBAR COLORS ----- */
453
- --fd-scrollbar-thumb: var(--_gray-5);
454
- --fd-scrollbar-thumb-hover: var(--_gray-4);
455
- --fd-scrollbar-track: #242428;
456
-
457
- /* ----- BACKDROP/OVERLAY ----- */
458
- --fd-backdrop: rgba(26, 26, 30, 0.85);
459
-
460
- /* ----- EDGE TOKENS (adjusted for dark mode visibility) ----- */
461
- --fd-edge-trigger: var(--_gray-3);
462
- --fd-edge-trigger-hover: var(--_gray-2);
463
- --fd-edge-trigger-selected: #a78bfa;
464
- --fd-edge-data: var(--_gray-5);
465
- --fd-edge-data-hover: var(--_gray-4);
466
- --fd-edge-data-selected: #a78bfa;
467
- --fd-edge-tool-hover: #fbbf24;
468
- --fd-edge-tool-selected: #a78bfa;
469
- --fd-edge-loopback: var(--_gray-5);
470
- --fd-edge-loopback-hover: var(--_gray-4);
471
- --fd-edge-loopback-selected: #a78bfa;
472
-
473
- /* ----- LAYOUT BACKGROUND (darker gradient for dark mode) ----- */
474
- --fd-layout-background: linear-gradient(135deg, #141418 0%, #1a1a2e 50%, #16162a 100%);
379
+ [data-theme="dark"] {
380
+ /* ----- SURFACES (Backgrounds) - Softer contrast ----- */
381
+ --fd-background: #1a1a1e;
382
+ --fd-foreground: var(--_gray-2);
383
+ --fd-muted: #242428;
384
+ --fd-muted-foreground: var(--_gray-4);
385
+ --fd-subtle: #2a2a30;
386
+ --fd-card: #222226;
387
+ --fd-card-foreground: var(--_gray-2);
388
+
389
+ /* ----- HEADER (Distinct header styling for dark mode) ----- */
390
+ --fd-header: #1f1f24;
391
+ --fd-header-foreground: var(--_gray-3);
392
+ --fd-header-gradient: linear-gradient(180deg, #222228 0%, #1e1e24 100%);
393
+
394
+ /* ----- SURFACE TINT (Subtle accent for surfaces) ----- */
395
+ --fd-surface-tint: rgba(99, 102, 241, 0.03);
396
+
397
+ /* ----- HANDLE (Node connection points) ----- */
398
+ /* White ring around handles provides contrast on dark node backgrounds */
399
+ --fd-handle-border: rgba(255, 255, 255, 0.9);
400
+
401
+ /* ----- BORDERS - Subtle in dark mode for softer contrast ----- */
402
+ --fd-border: #3a3a40;
403
+ --fd-border-muted: #2e2e33;
404
+ --fd-border-strong: #4a4a52;
405
+ --fd-ring: #60a5fa;
406
+
407
+ /* ----- NODE BORDERS (Higher contrast for visibility when zoomed out) ----- */
408
+ --fd-node-border: #4a4a52;
409
+ --fd-node-border-hover: #5a5a62;
410
+
411
+ /* ----- NODE COLORS (port type labels/badges - lighter for readability on dark surfaces) ----- */
412
+ --fd-node-emerald: #34d399;
413
+ --fd-node-blue: #60a5fa;
414
+ --fd-node-amber: #fbbf24;
415
+ --fd-node-orange: #fb923c;
416
+ --fd-node-red: #f87171;
417
+ --fd-node-pink: #f472b6;
418
+ --fd-node-indigo: #818cf8;
419
+ --fd-node-teal: #2dd4bf;
420
+ --fd-node-cyan: #22d3ee;
421
+ --fd-node-lime: #a3e635;
422
+ --fd-node-slate: #94a3b8;
423
+ --fd-node-purple: #c084fc;
424
+
425
+ /** Icon on node squircle: white in dark theme */
426
+ --fd-node-icon: #ffffff;
427
+ /** Icon squircle background opacity: higher in dark mode for visibility on dark surfaces */
428
+ --fd-node-icon-bg-opacity: 50%;
429
+ --fd-node-icon-bg-opacity-hover: 80%;
430
+
431
+ /* ----- PRIMARY (Interactive/Brand) ----- */
432
+ --fd-primary: #60a5fa;
433
+ --fd-primary-hover: #93c5fd;
434
+ --fd-primary-foreground: var(--_gray-9);
435
+ --fd-primary-muted: rgba(59, 130, 246, 0.12);
436
+
437
+ /* ----- SECONDARY ----- */
438
+ --fd-secondary: #2d2d32;
439
+ --fd-secondary-hover: #3a3a3f;
440
+ --fd-secondary-foreground: var(--_gray-2);
441
+
442
+ /* ----- ACCENT ----- */
443
+ --fd-accent: #a78bfa;
444
+ --fd-accent-hover: #c4b5fd;
445
+ --fd-accent-foreground: var(--_gray-9);
446
+ --fd-accent-muted: rgba(139, 92, 246, 0.12);
447
+
448
+ /* ----- STATUS: SUCCESS ----- */
449
+ --fd-success: #4ade80;
450
+ --fd-success-hover: #86efac;
451
+ --fd-success-foreground: var(--_gray-9);
452
+ --fd-success-muted: rgba(34, 197, 94, 0.12);
453
+
454
+ /* ----- STATUS: WARNING ----- */
455
+ --fd-warning: #fbbf24;
456
+ --fd-warning-hover: #fcd34d;
457
+ --fd-warning-foreground: var(--_gray-9);
458
+ --fd-warning-muted: rgba(245, 158, 11, 0.12);
459
+
460
+ /* ----- STATUS: ERROR/DESTRUCTIVE ----- */
461
+ --fd-error: #f87171;
462
+ --fd-error-hover: #fca5a5;
463
+ --fd-error-foreground: var(--_gray-9);
464
+ --fd-error-muted: rgba(239, 68, 68, 0.12);
465
+
466
+ /* ----- STATUS: INFO ----- */
467
+ --fd-info: #60a5fa;
468
+ --fd-info-hover: #93c5fd;
469
+ --fd-info-foreground: var(--_gray-9);
470
+ --fd-info-muted: rgba(59, 130, 246, 0.12);
471
+
472
+ /* ----- SHADOWS (softer for dark mode) ----- */
473
+ --fd-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.2);
474
+ --fd-shadow-md: 0 4px 6px rgb(0 0 0 / 0.25);
475
+ --fd-shadow-lg: 0 10px 15px rgb(0 0 0 / 0.3);
476
+ --fd-shadow-xl: 0 20px 25px rgb(0 0 0 / 0.4);
477
+
478
+ /* ----- SCROLLBAR COLORS ----- */
479
+ --fd-scrollbar-thumb: var(--_gray-5);
480
+ --fd-scrollbar-thumb-hover: var(--_gray-4);
481
+ --fd-scrollbar-track: #242428;
482
+
483
+ /* ----- BACKDROP/OVERLAY ----- */
484
+ --fd-backdrop: rgba(26, 26, 30, 0.85);
485
+
486
+ /* ----- EDGE TOKENS (adjusted for dark mode visibility) ----- */
487
+ --fd-edge-trigger: var(--_gray-3);
488
+ --fd-edge-trigger-hover: var(--_gray-2);
489
+ --fd-edge-trigger-selected: #a78bfa;
490
+ --fd-edge-data: var(--_gray-5);
491
+ --fd-edge-data-hover: var(--_gray-4);
492
+ --fd-edge-data-selected: #a78bfa;
493
+ --fd-edge-tool-hover: #fbbf24;
494
+ --fd-edge-tool-selected: #a78bfa;
495
+ --fd-edge-loopback: var(--_gray-5);
496
+ --fd-edge-loopback-hover: var(--_gray-4);
497
+ --fd-edge-loopback-selected: #a78bfa;
498
+
499
+ /* ----- LAYOUT BACKGROUND (darker gradient for dark mode) ----- */
500
+ --fd-layout-background: linear-gradient(
501
+ 135deg,
502
+ #141418 0%,
503
+ #1a1a2e 50%,
504
+ #16162a 100%
505
+ );
475
506
  }