@d34dman/flowdrop 0.0.20 → 0.0.22

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 (37) hide show
  1. package/README.md +8 -0
  2. package/dist/components/App.svelte +172 -417
  3. package/dist/components/ConfigForm.svelte +707 -241
  4. package/dist/components/ConfigForm.svelte.d.ts +9 -2
  5. package/dist/components/ConfigPanel.svelte +160 -0
  6. package/dist/components/ConfigPanel.svelte.d.ts +32 -0
  7. package/dist/components/Navbar.svelte +2 -1
  8. package/dist/components/NodeStatusOverlay.svelte +1 -0
  9. package/dist/components/NodeStatusOverlay.svelte.d.ts +1 -0
  10. package/dist/components/ReadOnlyDetails.svelte +168 -0
  11. package/dist/components/ReadOnlyDetails.svelte.d.ts +25 -0
  12. package/dist/components/WorkflowEditor.svelte +34 -26
  13. package/dist/components/layouts/MainLayout.svelte +513 -0
  14. package/dist/components/layouts/MainLayout.svelte.d.ts +50 -0
  15. package/dist/components/{GatewayNode.svelte → nodes/GatewayNode.svelte} +3 -3
  16. package/dist/components/{GatewayNode.svelte.d.ts → nodes/GatewayNode.svelte.d.ts} +1 -1
  17. package/dist/components/nodes/NotesNode.svelte +348 -0
  18. package/dist/components/nodes/NotesNode.svelte.d.ts +24 -0
  19. package/dist/components/{SimpleNode.svelte → nodes/SimpleNode.svelte} +2 -2
  20. package/dist/components/{SimpleNode.svelte.d.ts → nodes/SimpleNode.svelte.d.ts} +1 -1
  21. package/dist/components/{SquareNode.svelte → nodes/SquareNode.svelte} +2 -2
  22. package/dist/components/{SquareNode.svelte.d.ts → nodes/SquareNode.svelte.d.ts} +1 -1
  23. package/dist/components/{TerminalNode.svelte → nodes/TerminalNode.svelte} +2 -2
  24. package/dist/components/{TerminalNode.svelte.d.ts → nodes/TerminalNode.svelte.d.ts} +1 -1
  25. package/dist/components/{ToolNode.svelte → nodes/ToolNode.svelte} +2 -2
  26. package/dist/components/{ToolNode.svelte.d.ts → nodes/ToolNode.svelte.d.ts} +1 -1
  27. package/dist/components/{WorkflowNode.svelte → nodes/WorkflowNode.svelte} +3 -3
  28. package/dist/components/{WorkflowNode.svelte.d.ts → nodes/WorkflowNode.svelte.d.ts} +1 -1
  29. package/dist/index.d.ts +8 -7
  30. package/dist/index.js +8 -7
  31. package/dist/registry/builtinNodes.js +7 -7
  32. package/dist/styles/base.css +15 -1
  33. package/package.json +1 -1
  34. package/dist/components/ConfigSidebar.svelte +0 -934
  35. package/dist/components/ConfigSidebar.svelte.d.ts +0 -51
  36. package/dist/components/NotesNode.svelte +0 -566
  37. package/dist/components/NotesNode.svelte.d.ts +0 -43
@@ -0,0 +1,348 @@
1
+ <script lang="ts">
2
+ import type { ConfigValues, NodeMetadata } from "../../types/index.js";
3
+ import Icon from "@iconify/svelte";
4
+ import MarkdownDisplay from "../MarkdownDisplay.svelte";
5
+
6
+ /**
7
+ * NotesNode component props
8
+ * Displays a styled note with markdown content
9
+ */
10
+ const props = $props<{
11
+ data: {
12
+ label: string;
13
+ config: ConfigValues;
14
+ metadata: NodeMetadata;
15
+ nodeId?: string;
16
+ onConfigOpen?: (node: {
17
+ id: string;
18
+ type: string;
19
+ data: { label: string; config: ConfigValues; metadata: NodeMetadata };
20
+ }) => void;
21
+ };
22
+ selected?: boolean;
23
+ isProcessing?: boolean;
24
+ isError?: boolean;
25
+ }>();
26
+
27
+ /** Note content derived from config */
28
+ const noteContent = $derived(
29
+ (props.data.config?.content as string) || "Add your notes here..."
30
+ );
31
+
32
+ /** Note type derived from config */
33
+ const noteType = $derived(
34
+ (props.data.config?.noteType as string) || "info"
35
+ );
36
+
37
+ /** Note type configuration with styling for each type */
38
+ const noteTypes = {
39
+ info: {
40
+ name: "Info",
41
+ bgColor: "bg-blue-50",
42
+ borderColor: "border-blue-200",
43
+ textColor: "text-blue-800",
44
+ iconColor: "text-blue-500",
45
+ icon: "mdi:information"
46
+ },
47
+ warning: {
48
+ name: "Warning",
49
+ bgColor: "bg-yellow-50",
50
+ borderColor: "border-yellow-200",
51
+ textColor: "text-yellow-800",
52
+ iconColor: "text-yellow-500",
53
+ icon: "mdi:alert"
54
+ },
55
+ success: {
56
+ name: "Success",
57
+ bgColor: "bg-green-50",
58
+ borderColor: "border-green-200",
59
+ textColor: "text-green-800",
60
+ iconColor: "text-green-500",
61
+ icon: "mdi:check-circle"
62
+ },
63
+ error: {
64
+ name: "Error",
65
+ bgColor: "bg-red-50",
66
+ borderColor: "border-red-200",
67
+ textColor: "text-red-800",
68
+ iconColor: "text-red-500",
69
+ icon: "mdi:close-circle"
70
+ },
71
+ note: {
72
+ name: "Note",
73
+ bgColor: "bg-gray-50",
74
+ borderColor: "border-gray-200",
75
+ textColor: "text-gray-800",
76
+ iconColor: "text-gray-500",
77
+ icon: "mdi:note-text"
78
+ }
79
+ };
80
+
81
+ /** Current note type configuration based on selected type */
82
+ const currentType = $derived(
83
+ noteTypes[noteType as keyof typeof noteTypes] || noteTypes.info
84
+ );
85
+
86
+ /**
87
+ * Opens the configuration sidebar for editing note properties
88
+ */
89
+ function openConfigSidebar(): void {
90
+ if (props.data.onConfigOpen) {
91
+ const nodeForConfig = {
92
+ id: props.data.nodeId || "unknown",
93
+ type: "note",
94
+ data: props.data
95
+ };
96
+ props.data.onConfigOpen(nodeForConfig);
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Handles double-click to open config sidebar
102
+ */
103
+ function handleDoubleClick(): void {
104
+ openConfigSidebar();
105
+ }
106
+
107
+ /**
108
+ * Handles keyboard events for accessibility
109
+ * @param event - The keyboard event
110
+ */
111
+ function handleKeydown(event: KeyboardEvent): void {
112
+ if (event.key === "Enter" || event.key === " ") {
113
+ event.preventDefault();
114
+ handleDoubleClick();
115
+ }
116
+ }
117
+ </script>
118
+
119
+ <div
120
+ class="flowdrop-notes-node {currentType.bgColor}"
121
+ class:flowdrop-notes-node--selected={props.selected}
122
+ class:flowdrop-notes-node--processing={props.isProcessing}
123
+ class:flowdrop-notes-node--error={props.isError}
124
+ ondblclick={handleDoubleClick}
125
+ onkeydown={handleKeydown}
126
+ role="button"
127
+ tabindex="0"
128
+ >
129
+ <!-- Display Mode -->
130
+ <div class="flowdrop-notes-node__content {currentType.borderColor} {currentType.textColor}">
131
+ <!-- Header with icon and type -->
132
+ <div class="flowdrop-notes-node__header">
133
+ <div class="flowdrop-notes-node__header-left">
134
+ <Icon icon={currentType.icon} class="flowdrop-notes-node__icon {currentType.iconColor}" />
135
+ <span class="flowdrop-notes-node__type">{currentType.name}</span>
136
+ </div>
137
+ </div>
138
+
139
+ <!-- Rendered markdown content -->
140
+ <div class="flowdrop-notes-node__body">
141
+ <MarkdownDisplay content={noteContent} className="flowdrop-notes-node__markdown" />
142
+ </div>
143
+
144
+ <!-- Processing indicator -->
145
+ {#if props.isProcessing}
146
+ <div class="flowdrop-notes-node__processing">
147
+ <div class="flowdrop-notes-node__spinner"></div>
148
+ <span>Processing...</span>
149
+ </div>
150
+ {/if}
151
+
152
+ <!-- Error indicator -->
153
+ {#if props.isError}
154
+ <div class="flowdrop-notes-node__error">
155
+ <Icon icon="mdi:alert-circle" class="flowdrop-notes-node__error-icon" />
156
+ <span>Error occurred</span>
157
+ </div>
158
+ {/if}
159
+ </div>
160
+
161
+ <!-- Config button -->
162
+ <button
163
+ class="flowdrop-notes-node__config-btn"
164
+ onclick={openConfigSidebar}
165
+ title="Configure note"
166
+ >
167
+ <Icon icon="mdi:cog" />
168
+ </button>
169
+ </div>
170
+
171
+ <style>
172
+ .flowdrop-notes-node {
173
+ min-width: var(--notes-node-min-width);
174
+ max-width: var(--notes-node-max-width);
175
+ width: var(--notes-node-width);
176
+ border-radius: var(--notes-node-border-radius);
177
+ border: 1px solid;
178
+ background: var(--notes-node-background);
179
+ backdrop-filter: var(--notes-node-backdrop-filter);
180
+ box-shadow: var(--notes-node-box-shadow);
181
+ transition: var(--notes-node-transition);
182
+ overflow: hidden;
183
+ z-index: 5;
184
+ }
185
+
186
+ /* Background color overrides for different note types */
187
+ .flowdrop-notes-node.bg-blue-50 {
188
+ background-color: var(--notes-node-info-bg);
189
+ border-color: var(--notes-node-info-border);
190
+ }
191
+
192
+ .flowdrop-notes-node.bg-yellow-50 {
193
+ background-color: var(--notes-node-warning-bg);
194
+ border-color: var(--notes-node-warning-border);
195
+ }
196
+
197
+ .flowdrop-notes-node.bg-green-50 {
198
+ background-color: var(--notes-node-success-bg);
199
+ border-color: var(--notes-node-success-border);
200
+ }
201
+
202
+ .flowdrop-notes-node.bg-red-50 {
203
+ background-color: var(--notes-node-error-bg);
204
+ border-color: var(--notes-node-error-border);
205
+ }
206
+
207
+ .flowdrop-notes-node.bg-gray-50 {
208
+ background-color: var(--notes-node-note-bg);
209
+ border-color: var(--notes-node-note-border);
210
+ }
211
+
212
+ .flowdrop-notes-node:hover {
213
+ box-shadow: var(--notes-node-hover-box-shadow);
214
+ transform: translateY(-1px);
215
+ }
216
+
217
+ .flowdrop-notes-node--selected {
218
+ box-shadow: var(--notes-node-selected-box-shadow);
219
+ }
220
+
221
+ .flowdrop-notes-node--processing {
222
+ opacity: 0.7;
223
+ }
224
+
225
+ .flowdrop-notes-node--error {
226
+ border-color: #ef4444 !important;
227
+ }
228
+
229
+ /* Display Mode Styles */
230
+ .flowdrop-notes-node__content {
231
+ padding: var(--notes-node-padding);
232
+ border-radius: var(--notes-node-border-radius);
233
+ border: 1px solid;
234
+ height: 100%;
235
+ display: flex;
236
+ flex-direction: column;
237
+ }
238
+
239
+ .flowdrop-notes-node__header {
240
+ display: flex;
241
+ align-items: center;
242
+ justify-content: space-between;
243
+ margin-bottom: 0.75rem;
244
+ flex-shrink: 0;
245
+ }
246
+
247
+ .flowdrop-notes-node__header-left {
248
+ display: flex;
249
+ align-items: center;
250
+ gap: 0.5rem;
251
+ }
252
+
253
+ .flowdrop-notes-node__icon {
254
+ width: 1.75rem;
255
+ height: 1.75rem;
256
+ flex-shrink: 0;
257
+ }
258
+
259
+ .flowdrop-notes-node__type {
260
+ font-size: 0.875rem;
261
+ font-weight: 600;
262
+ }
263
+
264
+ .flowdrop-notes-node__body {
265
+ margin-bottom: 0.5rem;
266
+ flex: 1;
267
+ overflow-y: auto;
268
+ }
269
+
270
+ .flowdrop-notes-node__processing {
271
+ display: flex;
272
+ align-items: center;
273
+ gap: 0.5rem;
274
+ font-size: 0.75rem;
275
+ opacity: 0.7;
276
+ }
277
+
278
+ .flowdrop-notes-node__spinner {
279
+ width: 0.75rem;
280
+ height: 0.75rem;
281
+ border: 1px solid currentColor;
282
+ border-top-color: transparent;
283
+ border-radius: 50%;
284
+ animation: spin 1s linear infinite;
285
+ }
286
+
287
+ .flowdrop-notes-node__error {
288
+ display: flex;
289
+ align-items: center;
290
+ gap: 0.5rem;
291
+ font-size: 0.75rem;
292
+ color: #ef4444;
293
+ }
294
+
295
+ .flowdrop-notes-node__error-icon {
296
+ width: 0.75rem;
297
+ height: 0.75rem;
298
+ }
299
+
300
+ @keyframes spin {
301
+ to {
302
+ transform: rotate(360deg);
303
+ }
304
+ }
305
+
306
+ .flowdrop-notes-node__config-btn {
307
+ position: absolute;
308
+ top: 0.5rem;
309
+ right: 0.5rem;
310
+ width: 1.5rem;
311
+ height: 1.5rem;
312
+ background-color: rgba(255, 255, 255, 0.9);
313
+ border: 1px solid #e5e7eb;
314
+ border-radius: 0.25rem;
315
+ color: #6b7280;
316
+ cursor: pointer;
317
+ display: flex;
318
+ align-items: center;
319
+ justify-content: center;
320
+ opacity: 0;
321
+ transition: all 0.2s ease-in-out;
322
+ backdrop-filter: blur(4px);
323
+ z-index: 15;
324
+ font-size: 0.875rem;
325
+ }
326
+
327
+ .flowdrop-notes-node:hover .flowdrop-notes-node__config-btn {
328
+ opacity: 1;
329
+ }
330
+
331
+ .flowdrop-notes-node__config-btn:hover {
332
+ background-color: #f9fafb;
333
+ border-color: #d1d5db;
334
+ color: #374151;
335
+ }
336
+
337
+ /* Responsive design */
338
+ @media (max-width: 640px) {
339
+ .flowdrop-notes-node {
340
+ min-width: 200px;
341
+ max-width: 350px;
342
+ }
343
+
344
+ .flowdrop-notes-node__content {
345
+ padding: 0.75rem;
346
+ }
347
+ }
348
+ </style>
@@ -0,0 +1,24 @@
1
+ import type { ConfigValues, NodeMetadata } from "../../types/index.js";
2
+ type $$ComponentProps = {
3
+ data: {
4
+ label: string;
5
+ config: ConfigValues;
6
+ metadata: NodeMetadata;
7
+ nodeId?: string;
8
+ onConfigOpen?: (node: {
9
+ id: string;
10
+ type: string;
11
+ data: {
12
+ label: string;
13
+ config: ConfigValues;
14
+ metadata: NodeMetadata;
15
+ };
16
+ }) => void;
17
+ };
18
+ selected?: boolean;
19
+ isProcessing?: boolean;
20
+ isError?: boolean;
21
+ };
22
+ declare const NotesNode: import("svelte").Component<$$ComponentProps, {}, "">;
23
+ type NotesNode = ReturnType<typeof NotesNode>;
24
+ export default NotesNode;
@@ -6,9 +6,9 @@
6
6
 
7
7
  <script lang="ts">
8
8
  import { Position, Handle } from '@xyflow/svelte';
9
- import type { ConfigValues, NodeMetadata } from '../types/index.js';
9
+ import type { ConfigValues, NodeMetadata } from '../../types/index.js';
10
10
  import Icon from '@iconify/svelte';
11
- import { getDataTypeColor } from '../utils/colors.js';
11
+ import { getDataTypeColor } from '../../utils/colors.js';
12
12
 
13
13
  const props = $props<{
14
14
  data: {
@@ -1,4 +1,4 @@
1
- import type { ConfigValues, NodeMetadata } from '../types/index.js';
1
+ import type { ConfigValues, NodeMetadata } from '../../types/index.js';
2
2
  type $$ComponentProps = {
3
3
  data: {
4
4
  label: string;
@@ -6,9 +6,9 @@
6
6
 
7
7
  <script lang="ts">
8
8
  import { Position, Handle } from '@xyflow/svelte';
9
- import type { ConfigValues, NodeMetadata } from '../types/index.js';
9
+ import type { ConfigValues, NodeMetadata } from '../../types/index.js';
10
10
  import Icon from '@iconify/svelte';
11
- import { getDataTypeColor } from '../utils/colors.js';
11
+ import { getDataTypeColor } from '../../utils/colors.js';
12
12
 
13
13
  const props = $props<{
14
14
  data: {
@@ -1,4 +1,4 @@
1
- import type { ConfigValues, NodeMetadata } from '../types/index.js';
1
+ import type { ConfigValues, NodeMetadata } from '../../types/index.js';
2
2
  type $$ComponentProps = {
3
3
  data: {
4
4
  label: string;
@@ -10,9 +10,9 @@
10
10
 
11
11
  <script lang="ts">
12
12
  import { Position, Handle } from '@xyflow/svelte';
13
- import type { ConfigValues, NodeMetadata } from '../types/index.js';
13
+ import type { ConfigValues, NodeMetadata } from '../../types/index.js';
14
14
  import Icon from '@iconify/svelte';
15
- import { getDataTypeColor } from '../utils/colors.js';
15
+ import { getDataTypeColor } from '../../utils/colors.js';
16
16
 
17
17
  /**
18
18
  * Terminal node variant types
@@ -1,4 +1,4 @@
1
- import type { ConfigValues, NodeMetadata } from '../types/index.js';
1
+ import type { ConfigValues, NodeMetadata } from '../../types/index.js';
2
2
  type $$ComponentProps = {
3
3
  data: {
4
4
  label: string;
@@ -7,8 +7,8 @@
7
7
  <script lang="ts">
8
8
  import { Position, Handle } from '@xyflow/svelte';
9
9
  import Icon from '@iconify/svelte';
10
- import { getDataTypeColor } from '../utils/colors';
11
- import type { NodeMetadata } from '../types/index.js';
10
+ import { getDataTypeColor } from '../../utils/colors';
11
+ import type { NodeMetadata } from '../../types/index.js';
12
12
 
13
13
  interface ToolNodeParameter {
14
14
  name: string;
@@ -1,4 +1,4 @@
1
- import type { NodeMetadata } from '../types/index.js';
1
+ import type { NodeMetadata } from '../../types/index.js';
2
2
  interface ToolNodeParameter {
3
3
  name: string;
4
4
  type?: string;
@@ -7,10 +7,10 @@
7
7
 
8
8
  <script lang="ts">
9
9
  import { Position, Handle } from '@xyflow/svelte';
10
- import type { WorkflowNode } from '../types/index.js';
10
+ import type { WorkflowNode } from '../../types/index.js';
11
11
  import Icon from '@iconify/svelte';
12
- import { getNodeIcon } from '../utils/icons.js';
13
- import { getDataTypeColorToken, getCategoryColorToken } from '../utils/colors.js';
12
+ import { getNodeIcon } from '../../utils/icons.js';
13
+ import { getDataTypeColorToken, getCategoryColorToken } from '../../utils/colors.js';
14
14
 
15
15
  interface Props {
16
16
  data: WorkflowNode['data'] & {
@@ -1,4 +1,4 @@
1
- import type { WorkflowNode } from '../types/index.js';
1
+ import type { WorkflowNode } from '../../types/index.js';
2
2
  interface Props {
3
3
  data: WorkflowNode['data'] & {
4
4
  nodeId?: string;
package/dist/index.d.ts CHANGED
@@ -14,14 +14,14 @@ export { FlowDropApiClient } from './api/client.js';
14
14
  export { EnhancedFlowDropApiClient } from './api/enhanced-client.js';
15
15
  export { default as WorkflowEditor } from './components/WorkflowEditor.svelte';
16
16
  export { default as NodeSidebar } from './components/NodeSidebar.svelte';
17
- export { default as WorkflowNodeComponent } from './components/WorkflowNode.svelte';
18
- export { default as SimpleNodeComponent } from './components/SimpleNode.svelte';
19
- export { default as ToolNodeComponent } from './components/ToolNode.svelte';
20
- export { default as NotesNodeComponent } from './components/NotesNode.svelte';
17
+ export { default as WorkflowNodeComponent } from './components/nodes/WorkflowNode.svelte';
18
+ export { default as SimpleNodeComponent } from './components/nodes/SimpleNode.svelte';
19
+ export { default as ToolNodeComponent } from './components/nodes/ToolNode.svelte';
20
+ export { default as NotesNodeComponent } from './components/nodes/NotesNode.svelte';
21
21
  export { default as CanvasBanner } from './components/CanvasBanner.svelte';
22
22
  export { default as UniversalNode } from './components/UniversalNode.svelte';
23
- export { default as GatewayNode } from './components/GatewayNode.svelte';
24
- export { default as SquareNode } from './components/SquareNode.svelte';
23
+ export { default as GatewayNode } from './components/nodes/GatewayNode.svelte';
24
+ export { default as SquareNode } from './components/nodes/SquareNode.svelte';
25
25
  export { default as LoadingSpinner } from './components/LoadingSpinner.svelte';
26
26
  export { default as StatusIcon } from './components/StatusIcon.svelte';
27
27
  export { default as StatusLabel } from './components/StatusLabel.svelte';
@@ -29,7 +29,8 @@ export { default as NodeStatusOverlay } from './components/NodeStatusOverlay.sve
29
29
  export { default as MarkdownDisplay } from './components/MarkdownDisplay.svelte';
30
30
  export { default as ConfigForm } from './components/ConfigForm.svelte';
31
31
  export { default as ConfigModal } from './components/ConfigModal.svelte';
32
- export { default as ConfigSidebar } from './components/ConfigSidebar.svelte';
32
+ export { default as ConfigPanel } from './components/ConfigPanel.svelte';
33
+ export { default as ReadOnlyDetails } from './components/ReadOnlyDetails.svelte';
33
34
  export { default as ConnectionLine } from './components/ConnectionLine.svelte';
34
35
  export { default as LogsSidebar } from './components/LogsSidebar.svelte';
35
36
  export { default as PipelineStatus } from './components/PipelineStatus.svelte';
package/dist/index.js CHANGED
@@ -15,14 +15,14 @@ export { EnhancedFlowDropApiClient } from './api/enhanced-client.js';
15
15
  // Export components
16
16
  export { default as WorkflowEditor } from './components/WorkflowEditor.svelte';
17
17
  export { default as NodeSidebar } from './components/NodeSidebar.svelte';
18
- export { default as WorkflowNodeComponent } from './components/WorkflowNode.svelte';
19
- export { default as SimpleNodeComponent } from './components/SimpleNode.svelte';
20
- export { default as ToolNodeComponent } from './components/ToolNode.svelte';
21
- export { default as NotesNodeComponent } from './components/NotesNode.svelte';
18
+ export { default as WorkflowNodeComponent } from './components/nodes/WorkflowNode.svelte';
19
+ export { default as SimpleNodeComponent } from './components/nodes/SimpleNode.svelte';
20
+ export { default as ToolNodeComponent } from './components/nodes/ToolNode.svelte';
21
+ export { default as NotesNodeComponent } from './components/nodes/NotesNode.svelte';
22
22
  export { default as CanvasBanner } from './components/CanvasBanner.svelte';
23
23
  export { default as UniversalNode } from './components/UniversalNode.svelte';
24
- export { default as GatewayNode } from './components/GatewayNode.svelte';
25
- export { default as SquareNode } from './components/SquareNode.svelte';
24
+ export { default as GatewayNode } from './components/nodes/GatewayNode.svelte';
25
+ export { default as SquareNode } from './components/nodes/SquareNode.svelte';
26
26
  export { default as LoadingSpinner } from './components/LoadingSpinner.svelte';
27
27
  export { default as StatusIcon } from './components/StatusIcon.svelte';
28
28
  export { default as StatusLabel } from './components/StatusLabel.svelte';
@@ -30,7 +30,8 @@ export { default as NodeStatusOverlay } from './components/NodeStatusOverlay.sve
30
30
  export { default as MarkdownDisplay } from './components/MarkdownDisplay.svelte';
31
31
  export { default as ConfigForm } from './components/ConfigForm.svelte';
32
32
  export { default as ConfigModal } from './components/ConfigModal.svelte';
33
- export { default as ConfigSidebar } from './components/ConfigSidebar.svelte';
33
+ export { default as ConfigPanel } from './components/ConfigPanel.svelte';
34
+ export { default as ReadOnlyDetails } from './components/ReadOnlyDetails.svelte';
34
35
  export { default as ConnectionLine } from './components/ConnectionLine.svelte';
35
36
  export { default as LogsSidebar } from './components/LogsSidebar.svelte';
36
37
  export { default as PipelineStatus } from './components/PipelineStatus.svelte';
@@ -6,13 +6,13 @@
6
6
  * ensuring all built-in node types are available without user action.
7
7
  */
8
8
  import { nodeComponentRegistry } from './nodeComponentRegistry.js';
9
- import WorkflowNode from '../components/WorkflowNode.svelte';
10
- import SimpleNode from '../components/SimpleNode.svelte';
11
- import SquareNode from '../components/SquareNode.svelte';
12
- import ToolNode from '../components/ToolNode.svelte';
13
- import GatewayNode from '../components/GatewayNode.svelte';
14
- import NotesNode from '../components/NotesNode.svelte';
15
- import TerminalNode from '../components/TerminalNode.svelte';
9
+ import WorkflowNode from '../components/nodes/WorkflowNode.svelte';
10
+ import SimpleNode from '../components/nodes/SimpleNode.svelte';
11
+ import SquareNode from '../components/nodes/SquareNode.svelte';
12
+ import ToolNode from '../components/nodes/ToolNode.svelte';
13
+ import GatewayNode from '../components/nodes/GatewayNode.svelte';
14
+ import NotesNode from '../components/nodes/NotesNode.svelte';
15
+ import TerminalNode from '../components/nodes/TerminalNode.svelte';
16
16
  /**
17
17
  * Source identifier for built-in FlowDrop components
18
18
  */
@@ -375,6 +375,7 @@
375
375
  0% {
376
376
  transform: rotate(0deg);
377
377
  }
378
+
378
379
  100% {
379
380
  transform: rotate(360deg);
380
381
  }
@@ -1156,6 +1157,15 @@
1156
1157
  --flowdrop-edge-data-color-hover: var(--color-ref-gray-500);
1157
1158
  --flowdrop-edge-data-color-selected: var(--color-ref-violet-600);
1158
1159
 
1160
+ /* Semantic text color tokens */
1161
+ --flowdrop-text-color-error: var(--color-ref-red-600);
1162
+ --flowdrop-text-color-success: var(--color-ref-green-600);
1163
+ --flowdrop-text-color-warning: var(--color-ref-amber-600);
1164
+ --flowdrop-text-color-info: var(--color-ref-blue-600);
1165
+ --flowdrop-text-color-muted: var(--color-ref-gray-500);
1166
+ --flowdrop-text-color-primary: var(--color-ref-gray-900);
1167
+ --flowdrop-text-color-secondary: var(--color-ref-gray-600);
1168
+
1159
1169
  /* NotesNode component variables */
1160
1170
  --notes-node-width: 500px;
1161
1171
  --notes-node-min-width: 250px;
@@ -1362,9 +1372,11 @@
1362
1372
  .markdown-display--compact h1 {
1363
1373
  font-size: 1.25rem;
1364
1374
  }
1375
+
1365
1376
  .markdown-display--compact h2 {
1366
1377
  font-size: 1.125rem;
1367
1378
  }
1379
+
1368
1380
  .markdown-display--compact h3 {
1369
1381
  font-size: 1rem;
1370
1382
  }
@@ -1377,9 +1389,11 @@
1377
1389
  .markdown-display--large h1 {
1378
1390
  font-size: 1.75rem;
1379
1391
  }
1392
+
1380
1393
  .markdown-display--large h2 {
1381
1394
  font-size: 1.5rem;
1382
1395
  }
1396
+
1383
1397
  .markdown-display--large h3 {
1384
1398
  font-size: 1.25rem;
1385
- }
1399
+ }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@d34dman/flowdrop",
3
3
  "license": "MIT",
4
4
  "private": false,
5
- "version": "0.0.20",
5
+ "version": "0.0.22",
6
6
  "scripts": {
7
7
  "dev": "vite dev",
8
8
  "build": "vite build && npm run prepack",