@flowdrop/flowdrop 1.0.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/README.md +50 -50
  2. package/dist/adapters/WorkflowAdapter.d.ts +1 -1
  3. package/dist/adapters/WorkflowAdapter.js +25 -25
  4. package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +2 -2
  5. package/dist/adapters/agentspec/AgentSpecAdapter.js +133 -122
  6. package/dist/adapters/agentspec/agentAdapter.d.ts +2 -2
  7. package/dist/adapters/agentspec/agentAdapter.js +10 -10
  8. package/dist/adapters/agentspec/autoLayout.d.ts +1 -1
  9. package/dist/adapters/agentspec/autoLayout.js +2 -2
  10. package/dist/adapters/agentspec/componentTypeDefaults.d.ts +1 -1
  11. package/dist/adapters/agentspec/componentTypeDefaults.js +120 -120
  12. package/dist/adapters/agentspec/defaultNodeTypes.d.ts +2 -2
  13. package/dist/adapters/agentspec/defaultNodeTypes.js +307 -307
  14. package/dist/adapters/agentspec/index.d.ts +10 -10
  15. package/dist/adapters/agentspec/index.js +6 -6
  16. package/dist/adapters/agentspec/validator.d.ts +2 -2
  17. package/dist/adapters/agentspec/validator.js +22 -20
  18. package/dist/api/enhanced-client.d.ts +3 -3
  19. package/dist/api/enhanced-client.js +73 -72
  20. package/dist/components/App.svelte +1090 -961
  21. package/dist/components/App.svelte.d.ts +9 -6
  22. package/dist/components/CanvasBanner.stories.svelte +23 -20
  23. package/dist/components/CanvasBanner.stories.svelte.d.ts +1 -1
  24. package/dist/components/CanvasBanner.svelte +52 -46
  25. package/dist/components/ConfigForm.svelte +1164 -1065
  26. package/dist/components/ConfigForm.svelte.d.ts +2 -2
  27. package/dist/components/ConfigModal.svelte +180 -180
  28. package/dist/components/ConfigModal.svelte.d.ts +1 -1
  29. package/dist/components/ConfigPanel.stories.svelte +35 -35
  30. package/dist/components/ConfigPanel.stories.svelte.d.ts +1 -1
  31. package/dist/components/ConfigPanel.svelte +178 -167
  32. package/dist/components/ConfigPanel.svelte.d.ts +1 -1
  33. package/dist/components/ConnectionLine.svelte +25 -25
  34. package/dist/components/EdgeRefresher.svelte +26 -26
  35. package/dist/components/FlowDropEdge.stories.svelte +179 -143
  36. package/dist/components/FlowDropEdge.svelte +147 -147
  37. package/dist/components/FlowDropEdge.svelte.d.ts +1 -1
  38. package/dist/components/FlowDropZone.svelte +63 -60
  39. package/dist/components/FlowDropZone.svelte.d.ts +1 -1
  40. package/dist/components/LoadingSpinner.stories.svelte +19 -19
  41. package/dist/components/LoadingSpinner.stories.svelte.d.ts +1 -1
  42. package/dist/components/LoadingSpinner.svelte +21 -21
  43. package/dist/components/LoadingSpinner.svelte.d.ts +1 -1
  44. package/dist/components/Logo.stories.svelte +13 -13
  45. package/dist/components/Logo.stories.svelte.d.ts +1 -1
  46. package/dist/components/Logo.svelte +101 -95
  47. package/dist/components/LogsSidebar.svelte +553 -546
  48. package/dist/components/LogsSidebar.svelte.d.ts +1 -1
  49. package/dist/components/MarkdownDisplay.stories.svelte +29 -23
  50. package/dist/components/MarkdownDisplay.stories.svelte.d.ts +1 -1
  51. package/dist/components/MarkdownDisplay.svelte +16 -14
  52. package/dist/components/Navbar.stories.svelte +43 -38
  53. package/dist/components/Navbar.stories.svelte.d.ts +1 -1
  54. package/dist/components/Navbar.svelte +760 -706
  55. package/dist/components/Navbar.svelte.d.ts +1 -1
  56. package/dist/components/NodeSidebar.svelte +905 -746
  57. package/dist/components/NodeSidebar.svelte.d.ts +5 -1
  58. package/dist/components/NodeStatusOverlay.stories.svelte +82 -70
  59. package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +1 -1
  60. package/dist/components/NodeStatusOverlay.svelte +295 -280
  61. package/dist/components/NodeStatusOverlay.svelte.d.ts +3 -3
  62. package/dist/components/PipelineStatus.svelte +326 -300
  63. package/dist/components/PipelineStatus.svelte.d.ts +4 -4
  64. package/dist/components/PortCoordinateTracker.svelte +49 -47
  65. package/dist/components/PortCoordinateTracker.svelte.d.ts +1 -1
  66. package/dist/components/ReadOnlyDetails.svelte +156 -156
  67. package/dist/components/SchemaForm.stories.svelte +106 -98
  68. package/dist/components/SchemaForm.stories.svelte.d.ts +1 -1
  69. package/dist/components/SchemaForm.svelte +490 -463
  70. package/dist/components/SchemaForm.svelte.d.ts +2 -2
  71. package/dist/components/SettingsModal.svelte +226 -223
  72. package/dist/components/SettingsModal.svelte.d.ts +1 -1
  73. package/dist/components/SettingsPanel.svelte +637 -601
  74. package/dist/components/SettingsPanel.svelte.d.ts +1 -1
  75. package/dist/components/StatusIcon.stories.svelte +62 -49
  76. package/dist/components/StatusIcon.stories.svelte.d.ts +1 -1
  77. package/dist/components/StatusIcon.svelte +87 -87
  78. package/dist/components/StatusIcon.svelte.d.ts +2 -2
  79. package/dist/components/StatusLabel.stories.svelte +12 -12
  80. package/dist/components/StatusLabel.stories.svelte.d.ts +1 -1
  81. package/dist/components/StatusLabel.svelte +19 -19
  82. package/dist/components/ThemeToggle.stories.svelte +16 -16
  83. package/dist/components/ThemeToggle.stories.svelte.d.ts +1 -1
  84. package/dist/components/ThemeToggle.svelte +180 -169
  85. package/dist/components/ThemeToggle.svelte.d.ts +1 -1
  86. package/dist/components/UniversalNode.svelte +150 -138
  87. package/dist/components/UniversalNode.svelte.d.ts +3 -3
  88. package/dist/components/WorkflowEditor.svelte +1069 -1014
  89. package/dist/components/WorkflowEditor.svelte.d.ts +4 -4
  90. package/dist/components/form/FormArray.svelte +1034 -973
  91. package/dist/components/form/FormArray.svelte.d.ts +1 -1
  92. package/dist/components/form/FormAutocomplete.svelte +1021 -978
  93. package/dist/components/form/FormAutocomplete.svelte.d.ts +1 -1
  94. package/dist/components/form/FormCheckboxGroup.stories.svelte +23 -20
  95. package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +1 -1
  96. package/dist/components/form/FormCheckboxGroup.svelte +136 -136
  97. package/dist/components/form/FormCodeEditor.svelte +452 -434
  98. package/dist/components/form/FormField.svelte +366 -355
  99. package/dist/components/form/FormField.svelte.d.ts +2 -2
  100. package/dist/components/form/FormFieldLight.svelte +400 -384
  101. package/dist/components/form/FormFieldLight.svelte.d.ts +1 -1
  102. package/dist/components/form/FormFieldWrapper.stories.svelte +42 -42
  103. package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +1 -1
  104. package/dist/components/form/FormFieldWrapper.svelte +100 -93
  105. package/dist/components/form/FormFieldWrapper.svelte.d.ts +1 -1
  106. package/dist/components/form/FormFieldset.svelte +108 -108
  107. package/dist/components/form/FormFieldset.svelte.d.ts +2 -2
  108. package/dist/components/form/FormMarkdownEditor.svelte +758 -725
  109. package/dist/components/form/FormNumberField.stories.svelte +25 -25
  110. package/dist/components/form/FormNumberField.stories.svelte.d.ts +1 -1
  111. package/dist/components/form/FormNumberField.svelte +88 -88
  112. package/dist/components/form/FormRangeField.stories.svelte +20 -20
  113. package/dist/components/form/FormRangeField.stories.svelte.d.ts +1 -1
  114. package/dist/components/form/FormRangeField.svelte +234 -226
  115. package/dist/components/form/FormSelect.stories.svelte +38 -38
  116. package/dist/components/form/FormSelect.stories.svelte.d.ts +1 -1
  117. package/dist/components/form/FormSelect.svelte +101 -101
  118. package/dist/components/form/FormSelect.svelte.d.ts +1 -1
  119. package/dist/components/form/FormTemplateEditor.svelte +847 -798
  120. package/dist/components/form/FormTemplateEditor.svelte.d.ts +1 -1
  121. package/dist/components/form/FormTextField.stories.svelte +29 -23
  122. package/dist/components/form/FormTextField.stories.svelte.d.ts +1 -1
  123. package/dist/components/form/FormTextField.svelte +68 -68
  124. package/dist/components/form/FormTextarea.stories.svelte +28 -25
  125. package/dist/components/form/FormTextarea.stories.svelte.d.ts +1 -1
  126. package/dist/components/form/FormTextarea.svelte +74 -74
  127. package/dist/components/form/FormToggle.stories.svelte +23 -20
  128. package/dist/components/form/FormToggle.stories.svelte.d.ts +1 -1
  129. package/dist/components/form/FormToggle.svelte +98 -98
  130. package/dist/components/form/FormUISchemaRenderer.svelte +120 -113
  131. package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +3 -3
  132. package/dist/components/form/index.d.ts +19 -19
  133. package/dist/components/form/index.js +18 -18
  134. package/dist/components/form/templateAutocomplete.d.ts +2 -2
  135. package/dist/components/form/templateAutocomplete.js +64 -55
  136. package/dist/components/form/types.d.ts +6 -6
  137. package/dist/components/form/types.js +9 -4
  138. package/dist/components/icons/AlertCircleIcon.svelte +11 -0
  139. package/dist/components/icons/AlertCircleIcon.svelte.d.ts +26 -0
  140. package/dist/components/icons/CogIcon.svelte +11 -0
  141. package/dist/components/icons/CogIcon.svelte.d.ts +26 -0
  142. package/dist/components/interrupt/ChoicePrompt.stories.svelte +54 -38
  143. package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +1 -1
  144. package/dist/components/interrupt/ChoicePrompt.svelte +407 -383
  145. package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +1 -1
  146. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +48 -48
  147. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +1 -1
  148. package/dist/components/interrupt/ConfirmationPrompt.svelte +280 -274
  149. package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +1 -1
  150. package/dist/components/interrupt/FormPrompt.svelte +223 -218
  151. package/dist/components/interrupt/FormPrompt.svelte.d.ts +1 -1
  152. package/dist/components/interrupt/InterruptBubble.svelte +617 -583
  153. package/dist/components/interrupt/InterruptBubble.svelte.d.ts +2 -2
  154. package/dist/components/interrupt/ReviewPrompt.stories.svelte +66 -56
  155. package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +1 -1
  156. package/dist/components/interrupt/ReviewPrompt.svelte +861 -841
  157. package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +1 -1
  158. package/dist/components/interrupt/TextInputPrompt.stories.svelte +38 -33
  159. package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +1 -1
  160. package/dist/components/interrupt/TextInputPrompt.svelte +333 -328
  161. package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +1 -1
  162. package/dist/components/interrupt/index.d.ts +5 -5
  163. package/dist/components/interrupt/index.js +5 -5
  164. package/dist/components/layouts/MainLayout.svelte +724 -691
  165. package/dist/components/layouts/MainLayout.svelte.d.ts +6 -6
  166. package/dist/components/nodes/GatewayNode.stories.svelte +100 -99
  167. package/dist/components/nodes/GatewayNode.svelte +605 -571
  168. package/dist/components/nodes/GatewayNode.svelte.d.ts +3 -3
  169. package/dist/components/nodes/IdeaNode.stories.svelte +44 -43
  170. package/dist/components/nodes/IdeaNode.svelte +451 -437
  171. package/dist/components/nodes/IdeaNode.svelte.d.ts +1 -1
  172. package/dist/components/nodes/NotesNode.stories.svelte +65 -64
  173. package/dist/components/nodes/NotesNode.svelte +380 -369
  174. package/dist/components/nodes/NotesNode.svelte.d.ts +1 -1
  175. package/dist/components/nodes/SimpleNode.stories.svelte +145 -144
  176. package/dist/components/nodes/SimpleNode.svelte +486 -424
  177. package/dist/components/nodes/SimpleNode.svelte.d.ts +1 -1
  178. package/dist/components/nodes/SquareNode.stories.svelte +73 -73
  179. package/dist/components/nodes/SquareNode.svelte +439 -380
  180. package/dist/components/nodes/SquareNode.svelte.d.ts +1 -1
  181. package/dist/components/nodes/TerminalNode.stories.svelte +13 -13
  182. package/dist/components/nodes/TerminalNode.svelte +709 -670
  183. package/dist/components/nodes/TerminalNode.svelte.d.ts +1 -1
  184. package/dist/components/nodes/ToolNode.stories.svelte +181 -180
  185. package/dist/components/nodes/ToolNode.svelte +505 -447
  186. package/dist/components/nodes/ToolNode.svelte.d.ts +1 -1
  187. package/dist/components/nodes/WorkflowNode.stories.svelte +70 -46
  188. package/dist/components/nodes/WorkflowNode.svelte +621 -551
  189. package/dist/components/nodes/WorkflowNode.svelte.d.ts +3 -3
  190. package/dist/components/playground/ChatPanel.svelte +945 -889
  191. package/dist/components/playground/ExecutionLogs.svelte +495 -472
  192. package/dist/components/playground/InputCollector.svelte +449 -428
  193. package/dist/components/playground/MessageBubble.stories.svelte +47 -47
  194. package/dist/components/playground/MessageBubble.stories.svelte.d.ts +1 -1
  195. package/dist/components/playground/MessageBubble.svelte +626 -610
  196. package/dist/components/playground/MessageBubble.svelte.d.ts +1 -1
  197. package/dist/components/playground/Playground.svelte +1088 -1057
  198. package/dist/components/playground/Playground.svelte.d.ts +3 -3
  199. package/dist/components/playground/PlaygroundModal.svelte +208 -204
  200. package/dist/components/playground/PlaygroundModal.svelte.d.ts +3 -3
  201. package/dist/components/playground/SessionManager.svelte +527 -521
  202. package/dist/components/playground/SessionManager.svelte.d.ts +1 -1
  203. package/dist/config/agentSpecEndpoints.d.ts +1 -1
  204. package/dist/config/agentSpecEndpoints.js +20 -20
  205. package/dist/config/constants.js +2 -2
  206. package/dist/config/defaultCategories.d.ts +1 -1
  207. package/dist/config/defaultCategories.js +86 -86
  208. package/dist/config/defaultPortConfig.d.ts +1 -1
  209. package/dist/config/defaultPortConfig.js +144 -144
  210. package/dist/config/endpoints.d.ts +4 -4
  211. package/dist/config/endpoints.js +65 -65
  212. package/dist/config/runtimeConfig.d.ts +2 -2
  213. package/dist/config/runtimeConfig.js +8 -8
  214. package/dist/core/index.d.ts +63 -59
  215. package/dist/core/index.js +35 -33
  216. package/dist/display/index.d.ts +2 -2
  217. package/dist/display/index.js +2 -2
  218. package/dist/editor/index.d.ts +62 -62
  219. package/dist/editor/index.js +53 -53
  220. package/dist/form/code.d.ts +5 -5
  221. package/dist/form/code.js +14 -14
  222. package/dist/form/fieldRegistry.d.ts +3 -3
  223. package/dist/form/fieldRegistry.js +11 -9
  224. package/dist/form/full.d.ts +8 -8
  225. package/dist/form/full.js +9 -9
  226. package/dist/form/index.d.ts +18 -18
  227. package/dist/form/index.js +16 -16
  228. package/dist/form/markdown.d.ts +4 -4
  229. package/dist/form/markdown.js +8 -8
  230. package/dist/helpers/proximityConnect.d.ts +3 -3
  231. package/dist/helpers/proximityConnect.js +34 -32
  232. package/dist/helpers/workflowEditorHelper.d.ts +5 -5
  233. package/dist/helpers/workflowEditorHelper.js +108 -96
  234. package/dist/index.d.ts +6 -6
  235. package/dist/index.js +6 -6
  236. package/dist/mocks/app-environment.js +2 -2
  237. package/dist/mocks/app-forms.js +9 -9
  238. package/dist/mocks/app-navigation.js +11 -11
  239. package/dist/mocks/app-stores.js +8 -8
  240. package/dist/playground/index.d.ts +19 -19
  241. package/dist/playground/index.js +16 -16
  242. package/dist/playground/mount.d.ts +3 -3
  243. package/dist/playground/mount.js +24 -24
  244. package/dist/registry/builtinFormats.js +13 -13
  245. package/dist/registry/builtinNodes.d.ts +2 -2
  246. package/dist/registry/builtinNodes.js +77 -77
  247. package/dist/registry/index.d.ts +4 -4
  248. package/dist/registry/index.js +4 -4
  249. package/dist/registry/nodeComponentRegistry.d.ts +8 -8
  250. package/dist/registry/nodeComponentRegistry.js +11 -9
  251. package/dist/registry/plugin.d.ts +2 -2
  252. package/dist/registry/plugin.js +11 -11
  253. package/dist/registry/workflowFormatRegistry.d.ts +3 -3
  254. package/dist/registry/workflowFormatRegistry.js +2 -2
  255. package/dist/schema/index.d.ts +1 -1
  256. package/dist/schema/index.js +2 -2
  257. package/dist/services/agentSpecExecutionService.d.ts +3 -3
  258. package/dist/services/agentSpecExecutionService.js +59 -55
  259. package/dist/services/api.d.ts +2 -2
  260. package/dist/services/api.js +37 -37
  261. package/dist/services/apiVariableService.d.ts +1 -1
  262. package/dist/services/apiVariableService.js +41 -34
  263. package/dist/services/autoSaveService.js +8 -8
  264. package/dist/services/categoriesApi.d.ts +2 -2
  265. package/dist/services/categoriesApi.js +8 -8
  266. package/dist/services/draftStorage.d.ts +1 -1
  267. package/dist/services/draftStorage.js +11 -11
  268. package/dist/services/dynamicSchemaService.d.ts +1 -1
  269. package/dist/services/dynamicSchemaService.js +41 -39
  270. package/dist/services/globalSave.d.ts +2 -2
  271. package/dist/services/globalSave.js +41 -38
  272. package/dist/services/historyService.d.ts +1 -1
  273. package/dist/services/historyService.js +8 -8
  274. package/dist/services/interruptService.d.ts +1 -1
  275. package/dist/services/interruptService.js +35 -29
  276. package/dist/services/nodeExecutionService.d.ts +1 -1
  277. package/dist/services/nodeExecutionService.js +45 -44
  278. package/dist/services/playgroundService.d.ts +1 -1
  279. package/dist/services/playgroundService.js +29 -29
  280. package/dist/services/portConfigApi.d.ts +2 -2
  281. package/dist/services/portConfigApi.js +8 -8
  282. package/dist/services/settingsService.d.ts +2 -2
  283. package/dist/services/settingsService.js +25 -19
  284. package/dist/services/toastService.d.ts +4 -4
  285. package/dist/services/toastService.js +33 -33
  286. package/dist/services/variableService.d.ts +1 -1
  287. package/dist/services/variableService.js +36 -36
  288. package/dist/services/workflowStorage.d.ts +2 -2
  289. package/dist/services/workflowStorage.js +13 -13
  290. package/dist/settings/index.d.ts +7 -7
  291. package/dist/settings/index.js +6 -6
  292. package/dist/skins/default.d.ts +2 -0
  293. package/dist/skins/default.js +1 -0
  294. package/dist/skins/index.d.ts +13 -0
  295. package/dist/skins/index.js +30 -0
  296. package/dist/skins/slate.d.ts +2 -0
  297. package/dist/skins/slate.js +78 -0
  298. package/dist/stores/categoriesStore.svelte.d.ts +1 -1
  299. package/dist/stores/categoriesStore.svelte.js +5 -5
  300. package/dist/stores/editorStateMachine.svelte.d.ts +2 -2
  301. package/dist/stores/editorStateMachine.svelte.js +65 -33
  302. package/dist/stores/historyStore.svelte.d.ts +4 -4
  303. package/dist/stores/historyStore.svelte.js +4 -4
  304. package/dist/stores/interruptStore.svelte.d.ts +3 -3
  305. package/dist/stores/interruptStore.svelte.js +21 -21
  306. package/dist/stores/playgroundStore.svelte.d.ts +2 -2
  307. package/dist/stores/playgroundStore.svelte.js +25 -18
  308. package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
  309. package/dist/stores/portCoordinateStore.svelte.js +15 -8
  310. package/dist/stores/settingsStore.svelte.d.ts +2 -2
  311. package/dist/stores/settingsStore.svelte.js +62 -57
  312. package/dist/stores/workflowStore.svelte.d.ts +3 -3
  313. package/dist/stores/workflowStore.svelte.js +50 -47
  314. package/dist/stories/CanvasDecorator.svelte +35 -32
  315. package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
  316. package/dist/stories/EdgeDecorator.svelte +102 -99
  317. package/dist/stories/EdgeDecorator.svelte.d.ts +1 -1
  318. package/dist/stories/NodeDecorator.svelte +59 -53
  319. package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
  320. package/dist/stories/utils.d.ts +2 -2
  321. package/dist/stories/utils.js +105 -67
  322. package/dist/styles/base.css +599 -595
  323. package/dist/styles/toast.css +14 -14
  324. package/dist/styles/tokens.css +409 -378
  325. package/dist/svelte-app.d.ts +12 -9
  326. package/dist/svelte-app.js +40 -39
  327. package/dist/themes/default.d.ts +2 -0
  328. package/dist/themes/default.js +9 -0
  329. package/dist/themes/index.d.ts +13 -0
  330. package/dist/themes/index.js +44 -0
  331. package/dist/themes/minimal.d.ts +2 -0
  332. package/dist/themes/minimal.js +11 -0
  333. package/dist/types/agentspec.d.ts +18 -18
  334. package/dist/types/agentspec.js +2 -2
  335. package/dist/types/auth.d.ts +1 -1
  336. package/dist/types/auth.js +6 -6
  337. package/dist/types/config.d.ts +6 -6
  338. package/dist/types/events.d.ts +2 -2
  339. package/dist/types/events.js +2 -2
  340. package/dist/types/index.d.ts +32 -32
  341. package/dist/types/index.js +6 -6
  342. package/dist/types/interrupt.d.ts +6 -6
  343. package/dist/types/interrupt.js +21 -21
  344. package/dist/types/interruptState.d.ts +12 -12
  345. package/dist/types/interruptState.js +66 -66
  346. package/dist/types/playground.d.ts +7 -7
  347. package/dist/types/playground.js +14 -14
  348. package/dist/types/settings.d.ts +5 -3
  349. package/dist/types/settings.js +25 -18
  350. package/dist/types/skin.d.ts +31 -0
  351. package/dist/types/skin.js +1 -0
  352. package/dist/types/theme.d.ts +35 -0
  353. package/dist/types/theme.js +1 -0
  354. package/dist/types/uischema.d.ts +4 -4
  355. package/dist/types/uischema.js +3 -3
  356. package/dist/utils/colors.d.ts +1 -1
  357. package/dist/utils/colors.js +97 -95
  358. package/dist/utils/config.d.ts +2 -2
  359. package/dist/utils/config.js +48 -48
  360. package/dist/utils/connections.d.ts +2 -2
  361. package/dist/utils/connections.js +15 -15
  362. package/dist/utils/errors.js +3 -3
  363. package/dist/utils/fetchWithAuth.d.ts +1 -1
  364. package/dist/utils/fetchWithAuth.js +2 -2
  365. package/dist/utils/handleIds.d.ts +2 -2
  366. package/dist/utils/handleIds.js +8 -8
  367. package/dist/utils/handlePositioning.d.ts +1 -1
  368. package/dist/utils/handlePositioning.js +2 -2
  369. package/dist/utils/icons.d.ts +1 -1
  370. package/dist/utils/icons.js +74 -74
  371. package/dist/utils/logger.d.ts +1 -1
  372. package/dist/utils/logger.js +7 -7
  373. package/dist/utils/nodeStatus.d.ts +1 -1
  374. package/dist/utils/nodeStatus.js +48 -48
  375. package/dist/utils/nodeTypes.d.ts +1 -1
  376. package/dist/utils/nodeTypes.js +21 -20
  377. package/dist/utils/nodeWrapper.d.ts +7 -7
  378. package/dist/utils/nodeWrapper.js +21 -19
  379. package/dist/utils/performanceUtils.d.ts +1 -1
  380. package/dist/utils/performanceUtils.js +2 -1
  381. package/dist/utils/sanitize.js +1 -1
  382. package/dist/utils/uischema.d.ts +2 -2
  383. package/dist/utils/uischema.js +8 -8
  384. package/dist/utils/validation.js +20 -8
  385. package/package.json +1 -1
@@ -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
  }