@d34dman/flowdrop 0.0.1 → 0.0.2

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 (119) hide show
  1. package/README.md +307 -215
  2. package/dist/adapters/WorkflowAdapter.d.ts +1 -1
  3. package/dist/adapters/WorkflowAdapter.js +30 -30
  4. package/dist/api/client.d.ts +24 -1
  5. package/dist/api/client.js +55 -38
  6. package/dist/api/enhanced-client.d.ts +46 -0
  7. package/dist/api/enhanced-client.js +211 -0
  8. package/dist/clients/ApiClient.d.ts +19 -23
  9. package/dist/clients/ApiClient.js +36 -34
  10. package/dist/components/App.svelte +1299 -230
  11. package/dist/components/App.svelte.d.ts +21 -1
  12. package/dist/components/CanvasBanner.svelte +50 -44
  13. package/dist/components/CanvasBanner.svelte.d.ts +5 -19
  14. package/dist/components/ConfigForm.svelte +555 -0
  15. package/dist/components/ConfigForm.svelte.d.ts +32 -0
  16. package/dist/components/ConfigModal.svelte +261 -0
  17. package/dist/components/ConfigModal.svelte.d.ts +31 -0
  18. package/dist/components/ConfigSidebar.svelte +934 -0
  19. package/dist/components/ConfigSidebar.svelte.d.ts +51 -0
  20. package/dist/components/ConnectionLine.svelte +32 -0
  21. package/dist/components/ConnectionLine.svelte.d.ts +3 -0
  22. package/dist/components/GatewayNode.svelte +471 -0
  23. package/dist/components/GatewayNode.svelte.d.ts +15 -0
  24. package/dist/components/LoadingSpinner.svelte +23 -23
  25. package/dist/components/LoadingSpinner.svelte.d.ts +1 -1
  26. package/dist/components/Logo.svelte +82 -0
  27. package/dist/components/Logo.svelte.d.ts +26 -0
  28. package/dist/components/LogsSidebar.svelte +565 -0
  29. package/dist/components/LogsSidebar.svelte.d.ts +34 -0
  30. package/dist/components/MarkdownDisplay.svelte +28 -0
  31. package/dist/components/MarkdownDisplay.svelte.d.ts +7 -0
  32. package/dist/components/Navbar.svelte +663 -0
  33. package/dist/components/Navbar.svelte.d.ts +21 -0
  34. package/dist/components/NodeSidebar.svelte +629 -488
  35. package/dist/components/NodeSidebar.svelte.d.ts +1 -2
  36. package/dist/components/NodeStatusOverlay.svelte +327 -0
  37. package/dist/components/NodeStatusOverlay.svelte.d.ts +11 -0
  38. package/dist/components/NotesNode.svelte +566 -0
  39. package/dist/components/NotesNode.svelte.d.ts +43 -0
  40. package/dist/components/PipelineStatus.svelte +331 -0
  41. package/dist/components/PipelineStatus.svelte.d.ts +18 -0
  42. package/dist/components/SimpleNode.svelte +447 -0
  43. package/dist/components/SimpleNode.svelte.d.ts +24 -0
  44. package/dist/components/SquareNode.svelte +346 -0
  45. package/dist/components/SquareNode.svelte.d.ts +24 -0
  46. package/dist/components/StatusIcon.svelte +112 -0
  47. package/dist/components/StatusIcon.svelte.d.ts +10 -0
  48. package/dist/components/StatusLabel.svelte +33 -0
  49. package/dist/components/StatusLabel.svelte.d.ts +7 -0
  50. package/dist/components/ToolNode.svelte +385 -0
  51. package/dist/components/ToolNode.svelte.d.ts +36 -0
  52. package/dist/components/UniversalNode.svelte +126 -0
  53. package/dist/components/UniversalNode.svelte.d.ts +15 -0
  54. package/dist/components/WorkflowEditor.svelte +871 -528
  55. package/dist/components/WorkflowEditor.svelte.d.ts +15 -5
  56. package/dist/components/WorkflowNode.svelte +428 -542
  57. package/dist/components/WorkflowNode.svelte.d.ts +7 -3
  58. package/dist/config/apiConfig.d.ts +33 -0
  59. package/dist/config/apiConfig.js +39 -0
  60. package/dist/config/defaultPortConfig.d.ts +6 -0
  61. package/dist/config/defaultPortConfig.js +192 -0
  62. package/dist/config/demo.d.ts +58 -0
  63. package/dist/config/demo.js +142 -0
  64. package/dist/config/endpoints.d.ts +106 -0
  65. package/dist/config/endpoints.js +128 -0
  66. package/dist/data/samples.d.ts +38 -4
  67. package/dist/data/samples.js +2789 -737
  68. package/dist/examples/adapter-usage.d.ts +4 -4
  69. package/dist/examples/adapter-usage.js +21 -26
  70. package/dist/examples/api-client-usage.d.ts +6 -6
  71. package/dist/examples/api-client-usage.js +55 -54
  72. package/dist/index.d.ts +23 -15
  73. package/dist/index.js +23 -15
  74. package/dist/mocks/app-environment.d.ts +8 -0
  75. package/dist/mocks/app-environment.js +16 -0
  76. package/dist/mocks/app-forms.d.ts +2 -0
  77. package/dist/mocks/app-forms.js +21 -0
  78. package/dist/mocks/app-navigation.d.ts +5 -0
  79. package/dist/mocks/app-navigation.js +34 -0
  80. package/dist/mocks/app-stores.d.ts +14 -0
  81. package/dist/mocks/app-stores.js +26 -0
  82. package/dist/services/api.d.ts +13 -3
  83. package/dist/services/api.js +91 -36
  84. package/dist/services/globalSave.d.ts +20 -0
  85. package/dist/services/globalSave.js +165 -0
  86. package/dist/services/nodeExecutionService.d.ts +63 -0
  87. package/dist/services/nodeExecutionService.js +261 -0
  88. package/dist/services/portConfigApi.d.ts +14 -0
  89. package/dist/services/portConfigApi.js +69 -0
  90. package/dist/services/toastService.d.ts +147 -0
  91. package/dist/services/toastService.js +235 -0
  92. package/dist/services/workflowStorage.d.ts +2 -2
  93. package/dist/services/workflowStorage.js +10 -10
  94. package/dist/stores/workflowStore.d.ts +53 -0
  95. package/dist/stores/workflowStore.js +264 -0
  96. package/dist/styles/base.css +896 -363
  97. package/dist/svelte-app.d.ts +52 -5
  98. package/dist/svelte-app.js +128 -6
  99. package/dist/types/config.d.ts +291 -0
  100. package/dist/types/config.js +4 -0
  101. package/dist/types/index.d.ts +231 -19
  102. package/dist/types/index.js +1 -1
  103. package/dist/utils/colors.d.ts +67 -33
  104. package/dist/utils/colors.js +183 -118
  105. package/dist/utils/config.d.ts +41 -0
  106. package/dist/utils/config.js +248 -0
  107. package/dist/utils/connections.d.ts +40 -3
  108. package/dist/utils/connections.js +115 -44
  109. package/dist/utils/icons.d.ts +1 -1
  110. package/dist/utils/icons.js +71 -70
  111. package/dist/utils/nodeStatus.d.ts +53 -0
  112. package/dist/utils/nodeStatus.js +183 -0
  113. package/dist/utils/nodeTypes.d.ts +57 -0
  114. package/dist/utils/nodeTypes.js +109 -0
  115. package/dist/utils/nodeWrapper.d.ts +39 -0
  116. package/dist/utils/nodeWrapper.js +62 -0
  117. package/package.json +129 -97
  118. package/dist/components/Node.svelte +0 -38
  119. package/dist/components/Node.svelte.d.ts +0 -4
@@ -1,35 +1,92 @@
1
1
  /**
2
2
  * Core types for the Workflow Library
3
3
  */
4
- import type { Node, Edge, XYPosition } from "@xyflow/svelte";
5
- import { ConnectionLineType } from "@xyflow/svelte";
4
+ import type { Node, Edge, XYPosition } from '@xyflow/svelte';
5
+ import { ConnectionLineType } from '@xyflow/svelte';
6
+ import type { EndpointConfig } from '../config/endpoints.js';
6
7
  /**
7
8
  * Node category types for organizing nodes in the sidebar
8
- * Based on Langflow's actual categories
9
+ * Based on actual API response categories
9
10
  */
10
- export type NodeCategory = "inputs" | "outputs" | "prompts" | "models" | "processing" | "logic" | "data" | "helpers" | "tools" | "vector stores" | "embeddings" | "memories" | "agents" | "bundles";
11
+ export type NodeCategory = 'inputs' | 'outputs' | 'prompts' | 'models' | 'processing' | 'logic' | 'data' | 'tools' | 'helpers' | 'vector stores' | 'embeddings' | 'memories' | 'agents' | 'ai' | 'bundles';
11
12
  /**
12
- * Node input/output types
13
+ * Port data type configuration
13
14
  */
14
- export type NodeDataType = "string" | "text" | "number" | "integer" | "float" | "boolean" | "array" | "list" | "object" | "json" | "file" | "document" | "image" | "picture" | "audio" | "sound" | "video" | "movie" | "url" | "email" | "date" | "datetime" | "time";
15
+ export interface PortDataTypeConfig {
16
+ /** Unique identifier for the data type */
17
+ id: string;
18
+ /** Display name for the data type */
19
+ name: string;
20
+ /** Description of the data type */
21
+ description?: string;
22
+ /** Color for the data type (CSS color value) */
23
+ color: string;
24
+ /** Category grouping for the data type */
25
+ category?: string;
26
+ /** Alternative names/aliases for this data type */
27
+ aliases?: string[];
28
+ /** Whether this data type is enabled */
29
+ enabled?: boolean;
30
+ }
31
+ /**
32
+ * Port compatibility rule configuration
33
+ * Simple rule: sourceType can connect TO targetType
34
+ */
35
+ export interface PortCompatibilityRule {
36
+ /** Source data type ID (what you're connecting FROM) */
37
+ from: string;
38
+ /** Target data type ID (what you're connecting TO) */
39
+ to: string;
40
+ /** Optional description of why this connection is allowed */
41
+ description?: string;
42
+ }
43
+ /**
44
+ * Complete port configuration system
45
+ */
46
+ export interface PortConfig {
47
+ /** Available data types */
48
+ dataTypes: PortDataTypeConfig[];
49
+ /** Compatibility rules between data types */
50
+ compatibilityRules: PortCompatibilityRule[];
51
+ /** Default data type to use when none specified */
52
+ defaultDataType: string;
53
+ /** Version of the port configuration */
54
+ version?: string;
55
+ }
56
+ /**
57
+ * Node data type - now dynamic based on configuration
58
+ * Will be string literals of available data type IDs
59
+ */
60
+ export type NodeDataType = string;
15
61
  /**
16
62
  * Node port configuration
17
63
  */
18
64
  export interface NodePort {
19
65
  id: string;
20
66
  name: string;
21
- type: "input" | "output";
67
+ type: 'input' | 'output' | 'metadata';
22
68
  dataType: NodeDataType;
23
69
  required?: boolean;
24
70
  description?: string;
25
71
  defaultValue?: unknown;
26
72
  }
73
+ /**
74
+ * Node types for explicit component rendering
75
+ */
76
+ export type NodeType = 'note' | 'simple' | 'square' | 'tool' | 'gateway' | 'default';
27
77
  /**
28
78
  * Node configuration metadata
29
79
  */
30
80
  export interface NodeMetadata {
31
81
  id: string;
32
82
  name: string;
83
+ type?: NodeType;
84
+ /**
85
+ * Array of supported node types that this node can be rendered as.
86
+ * If not specified, defaults to the single 'type' field or 'default'.
87
+ * This allows nodes to support multiple rendering modes (e.g., both 'simple' and 'default').
88
+ */
89
+ supportedTypes?: NodeType[];
33
90
  description: string;
34
91
  category: NodeCategory;
35
92
  version: string;
@@ -37,15 +94,145 @@ export interface NodeMetadata {
37
94
  color?: string;
38
95
  inputs: NodePort[];
39
96
  outputs: NodePort[];
40
- configSchema?: Record<string, unknown>;
97
+ configSchema?: ConfigSchema;
41
98
  tags?: string[];
42
99
  }
43
100
  /**
44
- * Node configuration data
101
+ * Common base interface for all schema properties
102
+ */
103
+ export interface BaseProperty {
104
+ type: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'integer' | 'mixed' | 'float';
105
+ description?: string;
106
+ title?: string;
107
+ default?: unknown;
108
+ enum?: unknown[];
109
+ minimum?: number;
110
+ maximum?: number;
111
+ minLength?: number;
112
+ maxLength?: number;
113
+ pattern?: string;
114
+ format?: string;
115
+ items?: BaseProperty;
116
+ properties?: Record<string, BaseProperty>;
117
+ [key: string]: unknown;
118
+ }
119
+ /**
120
+ * Common base interface for all schemas
121
+ */
122
+ export interface BaseSchema {
123
+ type: 'object';
124
+ properties: Record<string, BaseProperty>;
125
+ required?: string[];
126
+ additionalProperties?: boolean;
127
+ }
128
+ /**
129
+ * Configuration schema property with specific attributes
130
+ */
131
+ export interface ConfigProperty extends BaseProperty {
132
+ type: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'integer';
133
+ title?: string;
134
+ description?: string;
135
+ default?: unknown;
136
+ enum?: unknown[];
137
+ multiple?: boolean;
138
+ minimum?: number;
139
+ maximum?: number;
140
+ minLength?: number;
141
+ maxLength?: number;
142
+ pattern?: string;
143
+ format?: 'multiline' | 'hidden' | string;
144
+ items?: ConfigProperty;
145
+ properties?: Record<string, ConfigProperty>;
146
+ [key: string]: unknown;
147
+ }
148
+ /**
149
+ * Configuration schema interface
150
+ */
151
+ export interface ConfigSchema extends BaseSchema {
152
+ properties: Record<string, ConfigProperty>;
153
+ }
154
+ /**
155
+ * Input schema property with specific attributes
156
+ */
157
+ export interface InputProperty extends BaseProperty {
158
+ type: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'integer' | 'mixed';
159
+ title?: string;
160
+ description?: string;
161
+ required?: boolean;
162
+ default?: unknown;
163
+ enum?: unknown[];
164
+ minimum?: number;
165
+ maximum?: number;
166
+ minLength?: number;
167
+ maxLength?: number;
168
+ pattern?: string;
169
+ format?: 'multiline' | string;
170
+ items?: InputProperty;
171
+ properties?: Record<string, InputProperty>;
172
+ [key: string]: unknown;
173
+ }
174
+ /**
175
+ * Input schema interface
45
176
  */
46
- export interface NodeConfig {
177
+ export interface InputSchema extends BaseSchema {
178
+ properties: Record<string, InputProperty>;
179
+ }
180
+ /**
181
+ * Output schema property with specific attributes
182
+ */
183
+ export interface OutputProperty extends BaseProperty {
184
+ type: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'integer' | 'mixed' | 'float';
185
+ description: string;
186
+ title?: string;
187
+ default?: unknown;
188
+ enum?: unknown[];
189
+ minimum?: number;
190
+ maximum?: number;
191
+ minLength?: number;
192
+ maxLength?: number;
193
+ pattern?: string;
194
+ format?: string;
195
+ items?: OutputProperty;
196
+ properties?: Record<string, OutputProperty>;
47
197
  [key: string]: unknown;
48
198
  }
199
+ /**
200
+ * Output schema interface
201
+ */
202
+ export interface OutputSchema extends BaseSchema {
203
+ properties: Record<string, OutputProperty>;
204
+ }
205
+ /**
206
+ * Union type for all schema types
207
+ */
208
+ export type Schema = ConfigSchema | InputSchema | OutputSchema;
209
+ /**
210
+ * Union type for all property types
211
+ */
212
+ export type Property = ConfigProperty | InputProperty | OutputProperty;
213
+ /**
214
+ * Schema type discriminator
215
+ */
216
+ export type SchemaType = 'config' | 'input' | 'output';
217
+ /**
218
+ * Utility type to get the appropriate property type based on schema type
219
+ */
220
+ export type SchemaProperty<T extends SchemaType> = T extends 'config' ? ConfigProperty : T extends 'input' ? InputProperty : T extends 'output' ? OutputProperty : never;
221
+ /**
222
+ * Utility type to get the appropriate schema type based on schema type
223
+ */
224
+ export type SchemaTypeMap<T extends SchemaType> = T extends 'config' ? ConfigSchema : T extends 'input' ? InputSchema : T extends 'output' ? OutputSchema : never;
225
+ /**
226
+ * Node configuration values
227
+ * Key-value pairs of user-entered configuration values
228
+ */
229
+ export interface ConfigValues {
230
+ [key: string]: unknown;
231
+ }
232
+ /**
233
+ * Node configuration type (alias for backward compatibility)
234
+ */
235
+ export type NodeConfig = ConfigValues;
49
236
  /**
50
237
  * Extended node type for workflows
51
238
  */
@@ -56,11 +243,13 @@ export interface WorkflowNode extends Node {
56
243
  deletable?: boolean;
57
244
  data: {
58
245
  label: string;
59
- config: NodeConfig;
246
+ config: ConfigValues;
60
247
  metadata: NodeMetadata;
61
248
  isProcessing?: boolean;
62
249
  error?: string;
63
250
  nodeId?: string;
251
+ /** Node execution tracking information */
252
+ executionInfo?: NodeExecutionInfo;
64
253
  };
65
254
  }
66
255
  /**
@@ -78,6 +267,9 @@ export interface WorkflowEdge extends Edge {
78
267
  data?: {
79
268
  label?: string;
80
269
  condition?: string;
270
+ isToolConnection?: boolean;
271
+ targetNodeType?: string;
272
+ targetCategory?: string;
81
273
  };
82
274
  }
83
275
  /**
@@ -95,6 +287,8 @@ export interface Workflow {
95
287
  updatedAt: string;
96
288
  author?: string;
97
289
  tags?: string[];
290
+ versionId?: string;
291
+ updateNumber?: number;
98
292
  };
99
293
  }
100
294
  /**
@@ -106,16 +300,34 @@ export interface ApiResponse<T> {
106
300
  error?: string;
107
301
  message?: string;
108
302
  }
109
- export interface NodesResponse extends ApiResponse<NodeMetadata[]> {
110
- }
111
- export interface WorkflowResponse extends ApiResponse<Workflow> {
112
- }
113
- export interface WorkflowsResponse extends ApiResponse<Workflow[]> {
303
+ export type NodesResponse = ApiResponse<NodeMetadata[]>;
304
+ export type WorkflowResponse = ApiResponse<Workflow>;
305
+ export type WorkflowsResponse = ApiResponse<Workflow[]>;
306
+ /**
307
+ * Node execution status enum
308
+ */
309
+ export type NodeExecutionStatus = 'idle' | 'pending' | 'running' | 'completed' | 'failed' | 'cancelled' | 'skipped';
310
+ /**
311
+ * Node execution tracking information
312
+ */
313
+ export interface NodeExecutionInfo {
314
+ /** Current execution status */
315
+ status: NodeExecutionStatus;
316
+ /** Total number of times this node has been executed */
317
+ executionCount: number;
318
+ /** Last execution timestamp */
319
+ lastExecuted?: string;
320
+ /** Last execution duration in milliseconds */
321
+ lastExecutionDuration?: number;
322
+ /** Last error message if execution failed */
323
+ lastError?: string;
324
+ /** Whether the node is currently being executed */
325
+ isExecuting: boolean;
114
326
  }
115
327
  /**
116
328
  * Workflow execution status
117
329
  */
118
- export type ExecutionStatus = "idle" | "running" | "completed" | "failed" | "cancelled";
330
+ export type ExecutionStatus = 'idle' | 'running' | 'completed' | 'failed' | 'cancelled';
119
331
  /**
120
332
  * Workflow execution result
121
333
  */
@@ -133,8 +345,8 @@ export interface ExecutionResult {
133
345
  * Library configuration
134
346
  */
135
347
  export interface FlowDropConfig {
136
- apiBaseUrl: string;
137
- theme?: "light" | "dark" | "auto";
348
+ endpointConfig?: EndpointConfig;
349
+ theme?: 'light' | 'dark' | 'auto';
138
350
  enableDebug?: boolean;
139
351
  autoSave?: boolean;
140
352
  autoSaveInterval?: number;
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Core types for the Workflow Library
3
3
  */
4
- import { ConnectionLineType } from "@xyflow/svelte";
4
+ import { ConnectionLineType } from '@xyflow/svelte';
@@ -3,22 +3,14 @@
3
3
  * Ensures consistent category colors across sidebar and canvas
4
4
  * Uses BEM syntax for CSS classes
5
5
  */
6
- import type { NodeCategory } from "../types/index.js";
7
- /**
8
- * Color configuration type for consistent color objects
9
- */
10
- export interface ColorConfig {
11
- background: string;
12
- accent: string;
13
- text: string;
14
- border: string;
15
- }
6
+ import type { NodeCategory, PortDataTypeConfig } from '../types/index.js';
16
7
  /**
17
8
  * Category color mapping to reference tokens (CSS variables)
18
9
  */
19
10
  export declare const CATEGORY_COLOR_TOKENS: Record<NodeCategory, string>;
20
11
  /**
21
12
  * Data type color mapping to reference tokens (CSS variables)
13
+ * @deprecated Use getDataTypeColorToken() with port configuration instead
22
14
  */
23
15
  export declare const DATA_TYPE_COLOR_TOKENS: Record<string, string>;
24
16
  /**
@@ -26,19 +18,32 @@ export declare const DATA_TYPE_COLOR_TOKENS: Record<string, string>;
26
18
  */
27
19
  export declare function getCategoryColorToken(category: NodeCategory): string;
28
20
  /**
29
- * Get the reference color token for a data type
21
+ * Get the reference color token for a data type (configurable version)
30
22
  */
31
23
  export declare function getDataTypeColorToken(dataType: string): string;
24
+ /**
25
+ * Get data type configuration from port config
26
+ */
27
+ export declare function getDataTypeConfig(dataType: string): PortDataTypeConfig | undefined;
28
+ /**
29
+ * Get all available data types from port configuration
30
+ */
31
+ export declare function getAvailableDataTypes(): PortDataTypeConfig[];
32
32
  /**
33
33
  * Default colors for fallback cases
34
34
  */
35
- export declare const DEFAULT_COLORS: ColorConfig;
35
+ export declare const DEFAULT_COLORS: {
36
+ background: string;
37
+ accent: string;
38
+ text: string;
39
+ border: string;
40
+ };
36
41
  /**
37
42
  * Get category colors
38
43
  * @param category - The node category
39
44
  * @returns The color configuration for the category
40
45
  */
41
- export declare function getCategoryColors(category: NodeCategory): ColorConfig;
46
+ export declare function getCategoryColors(category: NodeCategory): string;
42
47
  /**
43
48
  * Get category background color
44
49
  * @param category - The node category
@@ -46,7 +51,7 @@ export declare function getCategoryColors(category: NodeCategory): ColorConfig;
46
51
  */
47
52
  export declare function getCategoryBackground(category: NodeCategory): string;
48
53
  /**
49
- * Get category accent color (for icons, highlights)
54
+ * Get category accent color
50
55
  * @param category - The node category
51
56
  * @returns The accent color class
52
57
  */
@@ -64,58 +69,87 @@ export declare function getCategoryText(category: NodeCategory): string;
64
69
  */
65
70
  export declare function getCategoryBorder(category: NodeCategory): string;
66
71
  /**
67
- * Get node colors based on category and status
72
+ * Get node colors based on category and state
68
73
  * @param category - The node category
69
- * @param isError - Whether the node has an error
74
+ * @param isError - Whether the node is in error state
70
75
  * @param isProcessing - Whether the node is processing
71
76
  * @param isSelected - Whether the node is selected
72
- * @returns The color configuration for the node
77
+ * @returns The color configuration object
73
78
  */
74
- export declare function getNodeColors(category: NodeCategory, isError?: boolean, isProcessing?: boolean, isSelected?: boolean): ColorConfig;
79
+ export declare function getNodeColors(category: NodeCategory, isError?: boolean, isProcessing?: boolean, isSelected?: boolean): {
80
+ background: string;
81
+ accent: string;
82
+ text: string;
83
+ border: string;
84
+ };
75
85
  /**
76
86
  * Get node background color
77
87
  * @param category - The node category
78
- * @param isError - Whether the node has an error
88
+ * @param isError - Whether the node is in error state
79
89
  * @param isProcessing - Whether the node is processing
80
90
  * @param isSelected - Whether the node is selected
81
- * @returns The background color class
91
+ * @returns The background color
82
92
  */
83
93
  export declare function getNodeBackground(category: NodeCategory, isError?: boolean, isProcessing?: boolean, isSelected?: boolean): string;
84
94
  /**
85
95
  * Get node accent color
86
96
  * @param category - The node category
87
- * @param isError - Whether the node has an error
97
+ * @param isError - Whether the node is in error state
88
98
  * @param isProcessing - Whether the node is processing
89
99
  * @param isSelected - Whether the node is selected
90
- * @returns The accent color class
100
+ * @returns The accent color
91
101
  */
92
102
  export declare function getNodeAccent(category: NodeCategory, isError?: boolean, isProcessing?: boolean, isSelected?: boolean): string;
93
103
  /**
94
104
  * Get node text color
95
105
  * @param category - The node category
96
- * @param isError - Whether the node has an error
106
+ * @param isError - Whether the node is in error state
97
107
  * @param isProcessing - Whether the node is processing
98
108
  * @param isSelected - Whether the node is selected
99
- * @returns The text color class
109
+ * @returns The text color
100
110
  */
101
111
  export declare function getNodeText(category: NodeCategory, isError?: boolean, isProcessing?: boolean, isSelected?: boolean): string;
102
112
  /**
103
113
  * Get node border color
104
114
  * @param category - The node category
105
- * @param isError - Whether the node has an error
115
+ * @param isError - Whether the node is in error state
106
116
  * @param isProcessing - Whether the node is processing
107
117
  * @param isSelected - Whether the node is selected
108
- * @returns The border color class
118
+ * @returns The border color
109
119
  */
110
120
  export declare function getNodeBorder(category: NodeCategory, isError?: boolean, isProcessing?: boolean, isSelected?: boolean): string;
111
121
  /**
112
- * Data type color mapping for ports (used in WorkflowNode, etc.)
113
- * These use BEM color classes for consistency
122
+ * Get data type color
123
+ * @param dataType - The data type
124
+ * @returns The color for the data type
114
125
  */
115
- export declare const dataTypeColors: Record<string, string>;
126
+ export declare function getDataTypeColor(dataType: string): string;
116
127
  /**
117
- * Get data type color class
118
- * @param dataType - The data type string
119
- * @returns The color class for the data type
128
+ * Parse typed array notation and get display information
129
+ * @param dataType - The data type (e.g., "string[]", "number", "object[]")
130
+ * @returns Object with display information
120
131
  */
121
- export declare function getDataTypeColor(dataType: string): string;
132
+ export declare function parseDataTypeDisplay(dataType: string): {
133
+ baseType: string;
134
+ isArray: boolean;
135
+ displayName: string;
136
+ elementType?: string;
137
+ };
138
+ /**
139
+ * Get formatted display text for a data type
140
+ * @param dataType - The data type
141
+ * @returns Formatted display text
142
+ */
143
+ export declare function getDataTypeDisplayText(dataType: string): string;
144
+ /**
145
+ * Check if a data type represents an array
146
+ * @param dataType - The data type
147
+ * @returns True if it's an array type
148
+ */
149
+ export declare function isArrayDataType(dataType: string): boolean;
150
+ /**
151
+ * Get the element type from an array data type
152
+ * @param arrayDataType - The array data type (e.g., "string[]")
153
+ * @returns The element type (e.g., "string") or null if not an array
154
+ */
155
+ export declare function getArrayElementType(arrayDataType: string): string | null;