@d34dman/flowdrop 0.0.42 → 0.0.44

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 (97) hide show
  1. package/README.md +8 -8
  2. package/dist/api/enhanced-client.d.ts +3 -1
  3. package/dist/api/enhanced-client.js +35 -5
  4. package/dist/components/App.svelte +68 -34
  5. package/dist/components/ConfigForm.svelte +169 -142
  6. package/dist/components/ConfigForm.svelte.d.ts +4 -2
  7. package/dist/components/ConfigPanel.svelte +42 -15
  8. package/dist/components/LogsSidebar.svelte +20 -19
  9. package/dist/components/Navbar.svelte +150 -80
  10. package/dist/components/Navbar.svelte.d.ts +8 -0
  11. package/dist/components/NodeSidebar.svelte +330 -217
  12. package/dist/components/PipelineStatus.svelte +6 -1
  13. package/dist/components/ReadOnlyDetails.svelte +14 -14
  14. package/dist/components/SchemaForm.svelte +49 -30
  15. package/dist/components/SchemaForm.svelte.d.ts +11 -1
  16. package/dist/components/SettingsModal.svelte +279 -0
  17. package/dist/components/SettingsModal.svelte.d.ts +23 -0
  18. package/dist/components/SettingsPanel.svelte +615 -0
  19. package/dist/components/SettingsPanel.svelte.d.ts +21 -0
  20. package/dist/components/ThemeToggle.svelte +186 -0
  21. package/dist/components/ThemeToggle.svelte.d.ts +14 -0
  22. package/dist/components/WorkflowEditor.svelte +110 -36
  23. package/dist/components/form/FormArray.svelte +81 -81
  24. package/dist/components/form/FormAutocomplete.svelte +1014 -0
  25. package/dist/components/form/FormAutocomplete.svelte.d.ts +25 -0
  26. package/dist/components/form/FormCheckboxGroup.svelte +16 -16
  27. package/dist/components/form/FormCodeEditor.svelte +26 -26
  28. package/dist/components/form/FormField.svelte +52 -21
  29. package/dist/components/form/FormFieldLight.svelte +19 -19
  30. package/dist/components/form/FormFieldWrapper.svelte +4 -4
  31. package/dist/components/form/FormMarkdownEditor.svelte +124 -57
  32. package/dist/components/form/FormNumberField.svelte +13 -13
  33. package/dist/components/form/FormRangeField.svelte +16 -16
  34. package/dist/components/form/FormSelect.svelte +15 -15
  35. package/dist/components/form/FormTemplateEditor.svelte +34 -34
  36. package/dist/components/form/FormTextField.svelte +13 -13
  37. package/dist/components/form/FormTextarea.svelte +13 -13
  38. package/dist/components/form/FormToggle.svelte +8 -8
  39. package/dist/components/form/index.d.ts +1 -0
  40. package/dist/components/form/index.js +1 -0
  41. package/dist/components/form/types.d.ts +133 -8
  42. package/dist/components/form/types.js +50 -1
  43. package/dist/components/interrupt/ChoicePrompt.svelte +45 -38
  44. package/dist/components/interrupt/ConfirmationPrompt.svelte +35 -35
  45. package/dist/components/interrupt/FormPrompt.svelte +27 -20
  46. package/dist/components/interrupt/InterruptBubble.svelte +50 -50
  47. package/dist/components/interrupt/TextInputPrompt.svelte +39 -32
  48. package/dist/components/layouts/MainLayout.svelte +233 -34
  49. package/dist/components/layouts/MainLayout.svelte.d.ts +12 -0
  50. package/dist/components/nodes/GatewayNode.svelte +102 -73
  51. package/dist/components/nodes/IdeaNode.svelte +53 -52
  52. package/dist/components/nodes/NotesNode.svelte +120 -88
  53. package/dist/components/nodes/SimpleNode.svelte +67 -47
  54. package/dist/components/nodes/SquareNode.svelte +86 -49
  55. package/dist/components/nodes/TerminalNode.svelte +122 -72
  56. package/dist/components/nodes/ToolNode.svelte +96 -65
  57. package/dist/components/nodes/WorkflowNode.svelte +91 -67
  58. package/dist/components/playground/ChatPanel.svelte +76 -76
  59. package/dist/components/playground/ExecutionLogs.svelte +71 -69
  60. package/dist/components/playground/InputCollector.svelte +59 -59
  61. package/dist/components/playground/MessageBubble.svelte +111 -112
  62. package/dist/components/playground/Playground.svelte +184 -138
  63. package/dist/components/playground/PlaygroundModal.svelte +18 -19
  64. package/dist/components/playground/SessionManager.svelte +68 -67
  65. package/dist/config/defaultPortConfig.js +22 -22
  66. package/dist/core/index.d.ts +2 -0
  67. package/dist/core/index.js +1 -0
  68. package/dist/form/fieldRegistry.d.ts +17 -1
  69. package/dist/form/fieldRegistry.js +18 -2
  70. package/dist/form/index.d.ts +20 -2
  71. package/dist/form/index.js +19 -1
  72. package/dist/helpers/workflowEditorHelper.js +23 -11
  73. package/dist/index.d.ts +5 -0
  74. package/dist/index.js +13 -0
  75. package/dist/services/autoSaveService.d.ts +112 -0
  76. package/dist/services/autoSaveService.js +223 -0
  77. package/dist/services/settingsService.d.ts +92 -0
  78. package/dist/services/settingsService.js +202 -0
  79. package/dist/services/toastService.d.ts +9 -0
  80. package/dist/services/toastService.js +30 -1
  81. package/dist/stores/settingsStore.d.ts +128 -0
  82. package/dist/stores/settingsStore.js +488 -0
  83. package/dist/stores/themeStore.d.ts +68 -0
  84. package/dist/stores/themeStore.js +215 -0
  85. package/dist/styles/base.css +298 -621
  86. package/dist/styles/toast.css +33 -0
  87. package/dist/styles/tokens.css +366 -0
  88. package/dist/types/index.d.ts +78 -0
  89. package/dist/types/index.js +2 -0
  90. package/dist/types/interrupt.d.ts +2 -0
  91. package/dist/types/interrupt.js +8 -2
  92. package/dist/types/playground.d.ts +12 -0
  93. package/dist/types/settings.d.ts +185 -0
  94. package/dist/types/settings.js +101 -0
  95. package/dist/utils/colors.d.ts +100 -7
  96. package/dist/utils/colors.js +228 -67
  97. package/package.json +3 -3
@@ -1,5 +1,8 @@
1
1
  /* Base CSS with BEM syntax */
2
2
 
3
+ /* Import design tokens */
4
+ @import './tokens.css';
5
+
3
6
  /* Reset and base styles */
4
7
  * {
5
8
  box-sizing: border-box;
@@ -20,11 +23,11 @@
20
23
  }
21
24
 
22
25
  .flowdrop-layout__sidebar {
23
- width: 320px;
26
+ width: var(--fd-sidebar-width);
24
27
  height: 100%;
25
28
  display: flex;
26
29
  flex-direction: column;
27
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
30
+ box-shadow: var(--fd-shadow-md);
28
31
  }
29
32
 
30
33
  /* Button styles */
@@ -32,70 +35,70 @@
32
35
  display: inline-flex;
33
36
  align-items: center;
34
37
  justify-content: center;
35
- padding: 0.5rem 1rem;
38
+ padding: var(--fd-space-2) var(--fd-space-4);
36
39
  border: 1px solid transparent;
37
- border-radius: 0.375rem;
38
- font-size: 0.875rem;
40
+ border-radius: var(--fd-radius-md);
41
+ font-size: var(--fd-text-sm);
39
42
  font-weight: 500;
40
43
  text-decoration: none;
41
44
  cursor: pointer;
42
- transition: all 0.2s ease-in-out;
43
- background-color: #ffffff;
44
- color: #374151;
45
+ transition: all var(--fd-transition-normal);
46
+ background-color: var(--fd-background);
47
+ color: var(--fd-foreground);
45
48
  min-height: 2.5rem;
46
49
  }
47
50
 
48
51
  .flowdrop-btn:hover {
49
- background-color: #f9fafb;
50
- border-color: #d1d5db;
52
+ background-color: var(--fd-muted);
53
+ border-color: var(--fd-border);
51
54
  }
52
55
 
53
56
  .flowdrop-btn:focus {
54
- outline: 2px solid #3b82f6;
57
+ outline: 2px solid var(--fd-ring);
55
58
  outline-offset: 2px;
56
59
  }
57
60
 
58
61
  .flowdrop-btn--primary {
59
- background-color: #3b82f6;
60
- color: #ffffff;
61
- border-color: #3b82f6;
62
+ background-color: var(--fd-primary);
63
+ color: var(--fd-primary-foreground);
64
+ border-color: var(--fd-primary);
62
65
  }
63
66
 
64
67
  .flowdrop-btn--primary:hover {
65
- background-color: #2563eb;
66
- border-color: #2563eb;
68
+ background-color: var(--fd-primary-hover);
69
+ border-color: var(--fd-primary-hover);
67
70
  }
68
71
 
69
72
  .flowdrop-btn--secondary {
70
- background-color: #6b7280;
71
- color: #ffffff;
72
- border-color: #6b7280;
73
+ background-color: var(--fd-secondary);
74
+ color: var(--fd-secondary-foreground);
75
+ border-color: var(--fd-secondary);
73
76
  }
74
77
 
75
78
  .flowdrop-btn--secondary:hover {
76
- background-color: #4b5563;
77
- border-color: #4b5563;
79
+ background-color: var(--fd-secondary-hover);
80
+ border-color: var(--fd-secondary-hover);
78
81
  }
79
82
 
80
83
  .flowdrop-btn--outline {
81
84
  background-color: transparent;
82
- color: #374151;
83
- border-color: #d1d5db;
85
+ color: var(--fd-foreground);
86
+ border-color: var(--fd-border);
84
87
  }
85
88
 
86
89
  .flowdrop-btn--outline:hover {
87
- background-color: #f9fafb;
88
- border-color: #9ca3af;
90
+ background-color: var(--fd-muted);
91
+ border-color: var(--fd-border-strong);
89
92
  }
90
93
 
91
94
  .flowdrop-btn--ghost {
92
95
  background-color: transparent;
93
- color: #374151;
96
+ color: var(--fd-foreground);
94
97
  border-color: transparent;
95
98
  }
96
99
 
97
100
  .flowdrop-btn--ghost:hover {
98
- background-color: #f3f4f6;
101
+ background-color: var(--fd-muted);
99
102
  }
100
103
 
101
104
  .flowdrop-btn--sm {
@@ -114,21 +117,21 @@
114
117
  .flowdrop-input {
115
118
  display: block;
116
119
  width: 100%;
117
- padding: 0.5rem 0.75rem;
118
- border: 1px solid #d1d5db;
119
- border-radius: 0.375rem;
120
- font-size: 0.875rem;
120
+ padding: var(--fd-space-2) var(--fd-space-3);
121
+ border: 1px solid var(--fd-border);
122
+ border-radius: var(--fd-radius-md);
123
+ font-size: var(--fd-text-sm);
121
124
  line-height: 1.25rem;
122
- color: #111827;
123
- background-color: #ffffff;
125
+ color: var(--fd-foreground);
126
+ background-color: var(--fd-background);
124
127
  transition:
125
- border-color 0.2s ease-in-out,
126
- box-shadow 0.2s ease-in-out;
128
+ border-color var(--fd-transition-normal),
129
+ box-shadow var(--fd-transition-normal);
127
130
  }
128
131
 
129
132
  .flowdrop-input:focus {
130
133
  outline: none;
131
- border-color: #3b82f6;
134
+ border-color: var(--fd-primary);
132
135
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
133
136
  }
134
137
 
@@ -144,66 +147,66 @@
144
147
 
145
148
  /* Card styles */
146
149
  .flowdrop-card {
147
- background-color: #ffffff;
148
- border: 1px solid #e5e7eb;
149
- border-radius: 0.5rem;
150
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
150
+ background-color: var(--fd-card);
151
+ border: 1px solid var(--fd-border);
152
+ border-radius: var(--fd-radius-lg);
153
+ box-shadow: var(--fd-shadow-sm);
151
154
  overflow: hidden;
152
155
  }
153
156
 
154
157
  .flowdrop-card--compact {
155
- padding: 0.5rem;
158
+ padding: var(--fd-space-2);
156
159
  }
157
160
 
158
161
  .flowdrop-card__body {
159
- padding: 1rem;
162
+ padding: var(--fd-space-4);
160
163
  }
161
164
 
162
165
  .flowdrop-card__header {
163
- padding: 1rem 1rem 0.5rem;
164
- border-bottom: 1px solid #f3f4f6;
166
+ padding: var(--fd-space-4) var(--fd-space-4) var(--fd-space-2);
167
+ border-bottom: 1px solid var(--fd-border-muted);
165
168
  }
166
169
 
167
170
  .flowdrop-card__footer {
168
- padding: 0.5rem 1rem 1rem;
169
- border-top: 1px solid #f3f4f6;
171
+ padding: var(--fd-space-2) var(--fd-space-4) var(--fd-space-4);
172
+ border-top: 1px solid var(--fd-border-muted);
170
173
  }
171
174
 
172
175
  /* Badge styles */
173
176
  .flowdrop-badge {
174
177
  display: inline-flex;
175
178
  align-items: center;
176
- padding: 0.25rem 0.5rem;
177
- font-size: 0.75rem;
179
+ padding: var(--fd-space-1) var(--fd-space-2);
180
+ font-size: var(--fd-text-xs);
178
181
  font-weight: 500;
179
- border-radius: 0.375rem;
180
- background-color: #f3f4f6;
181
- color: #374151;
182
+ border-radius: var(--fd-radius-md);
183
+ background-color: var(--fd-muted);
184
+ color: var(--fd-foreground);
182
185
  }
183
186
 
184
187
  .flowdrop-badge--primary {
185
- background-color: #dbeafe;
186
- color: #1e40af;
188
+ background-color: var(--fd-primary-muted);
189
+ color: var(--fd-primary-hover);
187
190
  }
188
191
 
189
192
  .flowdrop-badge--secondary {
190
- background-color: #e5e7eb;
191
- color: #374151;
193
+ background-color: var(--fd-secondary);
194
+ color: var(--fd-secondary-foreground);
192
195
  }
193
196
 
194
197
  .flowdrop-badge--success {
195
- background-color: #d1fae5;
196
- color: #065f46;
198
+ background-color: var(--fd-success-muted);
199
+ color: var(--fd-success-hover);
197
200
  }
198
201
 
199
202
  .flowdrop-badge--warning {
200
- background-color: #fef3c7;
201
- color: #92400e;
203
+ background-color: var(--fd-warning-muted);
204
+ color: var(--fd-warning-hover);
202
205
  }
203
206
 
204
207
  .flowdrop-badge--error {
205
- background-color: #fee2e2;
206
- color: #991b1b;
208
+ background-color: var(--fd-error-muted);
209
+ color: var(--fd-error-hover);
207
210
  }
208
211
 
209
212
  /* Navbar styles */
@@ -211,9 +214,9 @@
211
214
  display: flex;
212
215
  align-items: center;
213
216
  justify-content: space-between;
214
- padding: 0.75rem 1rem;
215
- background-color: #ffffff;
216
- border-bottom: 1px solid #e5e7eb;
217
+ padding: var(--fd-space-3) var(--fd-space-4);
218
+ background-color: var(--fd-background);
219
+ border-bottom: 1px solid var(--fd-border);
217
220
  }
218
221
 
219
222
  .flowdrop-navbar__start {
@@ -238,13 +241,13 @@
238
241
  /* Join button group */
239
242
  .flowdrop-join {
240
243
  display: inline-flex;
241
- border-radius: 0.375rem;
244
+ border-radius: var(--fd-radius-md);
242
245
  overflow: hidden;
243
246
  }
244
247
 
245
248
  .flowdrop-join__item {
246
249
  border-radius: 0;
247
- border-right: 1px solid #d1d5db;
250
+ border-right: 1px solid var(--fd-border);
248
251
  }
249
252
 
250
253
  .flowdrop-join__item:first-child {
@@ -278,37 +281,37 @@
278
281
  }
279
282
 
280
283
  .flowdrop-hero__title {
281
- font-size: 1.125rem;
284
+ font-size: var(--fd-text-lg);
282
285
  font-weight: 700;
283
- margin-bottom: 0.5rem;
284
- color: #111827;
286
+ margin-bottom: var(--fd-space-2);
287
+ color: var(--fd-foreground);
285
288
  }
286
289
 
287
290
  .flowdrop-hero__description {
288
- font-size: 0.875rem;
289
- color: #6b7280;
290
- margin-bottom: 1rem;
291
+ font-size: var(--fd-text-sm);
292
+ color: var(--fd-muted-foreground);
293
+ margin-bottom: var(--fd-space-4);
291
294
  }
292
295
 
293
296
  /* Divider */
294
297
  .flowdrop-divider {
295
298
  display: flex;
296
299
  align-items: center;
297
- margin: 1rem 0;
300
+ margin: var(--fd-space-4) 0;
298
301
  }
299
302
 
300
303
  .flowdrop-divider::before {
301
304
  content: '';
302
305
  flex: 1;
303
306
  height: 1px;
304
- background-color: #e5e7eb;
307
+ background-color: var(--fd-border);
305
308
  }
306
309
 
307
310
  .flowdrop-divider__text {
308
- padding: 0 0.75rem;
309
- font-size: 0.75rem;
311
+ padding: 0 var(--fd-space-3);
312
+ font-size: var(--fd-text-xs);
310
313
  font-weight: 600;
311
- color: #6b7280;
314
+ color: var(--fd-muted-foreground);
312
315
  text-transform: uppercase;
313
316
  letter-spacing: 0.05em;
314
317
  }
@@ -317,35 +320,54 @@
317
320
  content: '';
318
321
  flex: 1;
319
322
  height: 1px;
320
- background-color: #e5e7eb;
323
+ background-color: var(--fd-border);
321
324
  }
322
325
 
323
- /* Details/Summary */
326
+ /* Details/Summary - Modern accordion styling */
324
327
  .flowdrop-details {
325
- background-color: #ffffff;
326
- border-radius: 0.5rem;
327
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
328
+ background-color: var(--fd-card);
329
+ border-radius: var(--fd-radius-lg);
330
+ box-shadow: var(--fd-shadow-sm);
328
331
  overflow: hidden;
332
+ border: 1px solid var(--fd-border-muted);
333
+ transition: all var(--fd-transition-fast);
334
+ }
335
+
336
+ .flowdrop-details:hover {
337
+ border-color: var(--fd-border);
338
+ }
339
+
340
+ .flowdrop-details[open] {
341
+ box-shadow: var(--fd-shadow-md);
329
342
  }
330
343
 
331
344
  .flowdrop-details__summary {
332
345
  display: flex;
333
346
  align-items: center;
334
347
  justify-content: space-between;
335
- padding: 0.75rem;
336
- font-size: 0.875rem;
348
+ padding: var(--fd-space-3);
349
+ font-size: var(--fd-text-sm);
337
350
  font-weight: 500;
351
+ color: var(--fd-foreground);
338
352
  cursor: pointer;
339
- transition: background-color 0.2s ease-in-out;
353
+ transition: all var(--fd-transition-fast);
354
+ background: var(--fd-card);
355
+ border-radius: var(--fd-radius-md);
340
356
  }
341
357
 
342
358
  .flowdrop-details__summary:hover {
343
- background-color: #f9fafb;
359
+ background-color: var(--fd-muted);
360
+ }
361
+
362
+ .flowdrop-details__summary::marker,
363
+ .flowdrop-details__summary::-webkit-details-marker {
364
+ display: none;
344
365
  }
345
366
 
346
367
  .flowdrop-details__content {
347
- padding: 0.75rem;
368
+ padding: var(--fd-space-3);
348
369
  padding-top: 0;
370
+ background: var(--fd-card);
349
371
  }
350
372
 
351
373
  /* Loading spinner */
@@ -353,8 +375,8 @@
353
375
  display: inline-block;
354
376
  width: 1rem;
355
377
  height: 1rem;
356
- border: 2px solid #e5e7eb;
357
- border-top: 2px solid #3b82f6;
378
+ border: 2px solid var(--fd-border);
379
+ border-top: 2px solid var(--fd-primary);
358
380
  border-radius: 50%;
359
381
  animation: flowdrop-spin 1s linear infinite;
360
382
  }
@@ -404,35 +426,35 @@
404
426
  }
405
427
 
406
428
  .flowdrop-gap--1 {
407
- gap: 0.25rem;
429
+ gap: var(--fd-space-1);
408
430
  }
409
431
 
410
432
  .flowdrop-gap--2 {
411
- gap: 0.5rem;
433
+ gap: var(--fd-space-2);
412
434
  }
413
435
 
414
436
  .flowdrop-gap--3 {
415
- gap: 0.75rem;
437
+ gap: var(--fd-space-3);
416
438
  }
417
439
 
418
440
  .flowdrop-gap--4 {
419
- gap: 1rem;
441
+ gap: var(--fd-space-4);
420
442
  }
421
443
 
422
444
  .flowdrop-p--1 {
423
- padding: 0.25rem;
445
+ padding: var(--fd-space-1);
424
446
  }
425
447
 
426
448
  .flowdrop-p--2 {
427
- padding: 0.5rem;
449
+ padding: var(--fd-space-2);
428
450
  }
429
451
 
430
452
  .flowdrop-p--3 {
431
- padding: 0.75rem;
453
+ padding: var(--fd-space-3);
432
454
  }
433
455
 
434
456
  .flowdrop-p--4 {
435
- padding: 1rem;
457
+ padding: var(--fd-space-4);
436
458
  }
437
459
 
438
460
  .flowdrop-m--0 {
@@ -440,35 +462,35 @@
440
462
  }
441
463
 
442
464
  .flowdrop-mb--1 {
443
- margin-bottom: 0.25rem;
465
+ margin-bottom: var(--fd-space-1);
444
466
  }
445
467
 
446
468
  .flowdrop-mb--2 {
447
- margin-bottom: 0.5rem;
469
+ margin-bottom: var(--fd-space-2);
448
470
  }
449
471
 
450
472
  .flowdrop-mb--3 {
451
- margin-bottom: 0.75rem;
473
+ margin-bottom: var(--fd-space-3);
452
474
  }
453
475
 
454
476
  .flowdrop-mb--4 {
455
- margin-bottom: 1rem;
477
+ margin-bottom: var(--fd-space-4);
456
478
  }
457
479
 
458
480
  .flowdrop-text--xs {
459
- font-size: 0.75rem;
481
+ font-size: var(--fd-text-xs);
460
482
  }
461
483
 
462
484
  .flowdrop-text--sm {
463
- font-size: 0.875rem;
485
+ font-size: var(--fd-text-sm);
464
486
  }
465
487
 
466
488
  .flowdrop-text--lg {
467
- font-size: 1.125rem;
489
+ font-size: var(--fd-text-lg);
468
490
  }
469
491
 
470
492
  .flowdrop-text--xl {
471
- font-size: 1.25rem;
493
+ font-size: var(--fd-text-xl);
472
494
  }
473
495
 
474
496
  .flowdrop-font--bold {
@@ -484,55 +506,55 @@
484
506
  }
485
507
 
486
508
  .flowdrop-text--gray {
487
- color: #6b7280;
509
+ color: var(--fd-muted-foreground);
488
510
  }
489
511
 
490
512
  .flowdrop-text--gray-dark {
491
- color: #374151;
513
+ color: var(--fd-foreground);
492
514
  }
493
515
 
494
516
  .flowdrop-bg--white {
495
- background-color: #ffffff;
517
+ background-color: var(--fd-background);
496
518
  }
497
519
 
498
520
  .flowdrop-bg--gray {
499
- background-color: #f9fafb;
521
+ background-color: var(--fd-muted);
500
522
  }
501
523
 
502
524
  .flowdrop-bg--gray-light {
503
- background-color: #f3f4f6;
525
+ background-color: var(--fd-subtle);
504
526
  }
505
527
 
506
528
  .flowdrop-border {
507
- border: 1px solid #e5e7eb;
529
+ border: 1px solid var(--fd-border);
508
530
  }
509
531
 
510
532
  .flowdrop-border--b {
511
- border-bottom: 1px solid #e5e7eb;
533
+ border-bottom: 1px solid var(--fd-border);
512
534
  }
513
535
 
514
536
  .flowdrop-border--t {
515
- border-top: 1px solid #e5e7eb;
537
+ border-top: 1px solid var(--fd-border);
516
538
  }
517
539
 
518
540
  .flowdrop-border--r {
519
- border-right: 1px solid #e5e7eb;
541
+ border-right: 1px solid var(--fd-border);
520
542
  }
521
543
 
522
544
  .flowdrop-rounded {
523
- border-radius: 0.375rem;
545
+ border-radius: var(--fd-radius-md);
524
546
  }
525
547
 
526
548
  .flowdrop-rounded--lg {
527
- border-radius: 0.5rem;
549
+ border-radius: var(--fd-radius-lg);
528
550
  }
529
551
 
530
552
  .flowdrop-shadow {
531
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
553
+ box-shadow: var(--fd-shadow-sm);
532
554
  }
533
555
 
534
556
  .flowdrop-shadow--lg {
535
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
557
+ box-shadow: var(--fd-shadow-md);
536
558
  }
537
559
 
538
560
  .flowdrop-w--full {
@@ -568,7 +590,7 @@
568
590
  }
569
591
 
570
592
  .flowdrop-transition {
571
- transition: all 0.2s ease-in-out;
593
+ transition: all var(--fd-transition-normal);
572
594
  }
573
595
 
574
596
  .flowdrop-truncate {
@@ -618,683 +640,338 @@
618
640
 
619
641
  /* Color system - Category colors */
620
642
  .flowdrop-color--primary {
621
- background-color: #3b82f6;
622
- color: #ffffff;
643
+ background-color: var(--fd-primary);
644
+ color: var(--fd-primary-foreground);
623
645
  }
624
646
 
625
647
  .flowdrop-color--primary-light {
626
- background-color: #dbeafe;
627
- color: #1e40af;
648
+ background-color: var(--fd-primary-muted);
649
+ color: var(--fd-primary-hover);
628
650
  }
629
651
 
630
652
  .flowdrop-color--primary-text {
631
- color: #1e40af;
653
+ color: var(--fd-primary);
632
654
  }
633
655
 
634
656
  .flowdrop-color--primary-border {
635
- border-color: #93c5fd;
657
+ border-color: var(--fd-primary);
636
658
  }
637
659
 
638
660
  .flowdrop-color--secondary {
639
- background-color: #6b7280;
640
- color: #ffffff;
661
+ background-color: var(--fd-secondary);
662
+ color: var(--fd-secondary-foreground);
641
663
  }
642
664
 
643
665
  .flowdrop-color--secondary-light {
644
- background-color: #f3f4f6;
645
- color: #374151;
666
+ background-color: var(--fd-secondary);
667
+ color: var(--fd-secondary-foreground);
646
668
  }
647
669
 
648
670
  .flowdrop-color--secondary-text {
649
- color: #374151;
671
+ color: var(--fd-secondary-foreground);
650
672
  }
651
673
 
652
674
  .flowdrop-color--secondary-border {
653
- border-color: #d1d5db;
675
+ border-color: var(--fd-border);
654
676
  }
655
677
 
656
678
  .flowdrop-color--success {
657
- background-color: #10b981;
658
- color: #ffffff;
679
+ background-color: var(--fd-success);
680
+ color: var(--fd-success-foreground);
659
681
  }
660
682
 
661
683
  .flowdrop-color--success-light {
662
- background-color: #d1fae5;
663
- color: #065f46;
684
+ background-color: var(--fd-success-muted);
685
+ color: var(--fd-success-hover);
664
686
  }
665
687
 
666
688
  .flowdrop-color--success-text {
667
- color: #065f46;
689
+ color: var(--fd-success);
668
690
  }
669
691
 
670
692
  .flowdrop-color--success-border {
671
- border-color: #6ee7b7;
693
+ border-color: var(--fd-success);
672
694
  }
673
695
 
674
696
  .flowdrop-color--warning {
675
- background-color: #f59e0b;
676
- color: #ffffff;
697
+ background-color: var(--fd-warning);
698
+ color: var(--fd-warning-foreground);
677
699
  }
678
700
 
679
701
  .flowdrop-color--warning-light {
680
- background-color: #fef3c7;
681
- color: #92400e;
702
+ background-color: var(--fd-warning-muted);
703
+ color: var(--fd-warning-hover);
682
704
  }
683
705
 
684
706
  .flowdrop-color--warning-text {
685
- color: #92400e;
707
+ color: var(--fd-warning);
686
708
  }
687
709
 
688
710
  .flowdrop-color--warning-border {
689
- border-color: #fbbf24;
711
+ border-color: var(--fd-warning);
690
712
  }
691
713
 
692
714
  .flowdrop-color--error {
693
- background-color: #ef4444;
694
- color: #ffffff;
715
+ background-color: var(--fd-error);
716
+ color: var(--fd-error-foreground);
695
717
  }
696
718
 
697
719
  .flowdrop-color--error-light {
698
- background-color: #fee2e2;
699
- color: #991b1b;
720
+ background-color: var(--fd-error-muted);
721
+ color: var(--fd-error-hover);
700
722
  }
701
723
 
702
724
  .flowdrop-color--error-text {
703
- color: #991b1b;
725
+ color: var(--fd-error);
704
726
  }
705
727
 
706
728
  .flowdrop-color--error-border {
707
- border-color: #f87171;
729
+ border-color: var(--fd-error);
708
730
  }
709
731
 
710
732
  .flowdrop-color--info {
711
- background-color: #06b6d4;
712
- color: #ffffff;
733
+ background-color: var(--fd-info);
734
+ color: var(--fd-info-foreground);
713
735
  }
714
736
 
715
737
  .flowdrop-color--info-light {
716
- background-color: #cffafe;
717
- color: #0e7490;
738
+ background-color: var(--fd-info-muted);
739
+ color: var(--fd-info);
718
740
  }
719
741
 
720
742
  .flowdrop-color--info-text {
721
- color: #0e7490;
743
+ color: var(--fd-info);
722
744
  }
723
745
 
724
746
  .flowdrop-color--info-border {
725
- border-color: #67e8f9;
747
+ border-color: var(--fd-info);
726
748
  }
727
749
 
728
750
  .flowdrop-color--accent {
729
- background-color: #8b5cf6;
730
- color: #ffffff;
751
+ background-color: var(--fd-accent);
752
+ color: var(--fd-accent-foreground);
731
753
  }
732
754
 
733
755
  .flowdrop-color--accent-light {
734
- background-color: #ede9fe;
735
- color: #5b21b6;
756
+ background-color: var(--fd-accent-muted);
757
+ color: var(--fd-accent-hover);
736
758
  }
737
759
 
738
760
  .flowdrop-color--accent-text {
739
- color: #5b21b6;
761
+ color: var(--fd-accent);
740
762
  }
741
763
 
742
764
  .flowdrop-color--accent-border {
743
- border-color: #a78bfa;
765
+ border-color: var(--fd-accent);
744
766
  }
745
767
 
746
768
  .flowdrop-color--neutral {
747
- background-color: #6b7280;
748
- color: #ffffff;
769
+ background-color: var(--fd-muted-foreground);
770
+ color: var(--fd-background);
749
771
  }
750
772
 
751
773
  .flowdrop-color--neutral-light {
752
- background-color: #f9fafb;
753
- color: #374151;
774
+ background-color: var(--fd-muted);
775
+ color: var(--fd-foreground);
754
776
  }
755
777
 
756
778
  .flowdrop-color--neutral-text {
757
- color: #374151;
779
+ color: var(--fd-foreground);
758
780
  }
759
781
 
760
782
  .flowdrop-color--neutral-border {
761
- border-color: #d1d5db;
783
+ border-color: var(--fd-border);
762
784
  }
763
785
 
764
786
  .flowdrop-color--base {
765
- background-color: #ffffff;
766
- color: #111827;
787
+ background-color: var(--fd-background);
788
+ color: var(--fd-foreground);
767
789
  }
768
790
 
769
791
  .flowdrop-color--base-light {
770
- background-color: #f9fafb;
771
- color: #374151;
792
+ background-color: var(--fd-muted);
793
+ color: var(--fd-foreground);
772
794
  }
773
795
 
774
796
  .flowdrop-color--base-text {
775
- color: #111827;
797
+ color: var(--fd-foreground);
776
798
  }
777
799
 
778
800
  .flowdrop-color--base-border {
779
- border-color: #e5e7eb;
801
+ border-color: var(--fd-border);
780
802
  }
781
803
 
782
804
  /* Data type colors for ports */
783
805
  .flowdrop-color--emerald {
784
- background-color: var(--cmp-node-color-emerald);
806
+ background-color: var(--fd-node-emerald);
785
807
  color: #ffffff;
786
808
  }
787
809
 
788
810
  .flowdrop-color--blue {
789
- background-color: var(--cmp-node-color-blue);
811
+ background-color: var(--fd-node-blue);
790
812
  color: #ffffff;
791
813
  }
792
814
 
793
815
  .flowdrop-color--purple {
794
- background-color: var(--cmp-node-color-purple);
816
+ background-color: var(--fd-node-purple);
795
817
  color: #ffffff;
796
818
  }
797
819
 
798
820
  .flowdrop-color--amber {
799
- background-color: var(--cmp-node-color-amber);
821
+ background-color: var(--fd-node-amber);
800
822
  color: #ffffff;
801
823
  }
802
824
 
803
825
  .flowdrop-color--orange {
804
- background-color: var(--cmp-node-color-orange);
826
+ background-color: var(--fd-node-orange);
805
827
  color: #ffffff;
806
828
  }
807
829
 
808
830
  .flowdrop-color--red {
809
- background-color: var(--cmp-node-color-red);
831
+ background-color: var(--fd-node-red);
810
832
  color: #ffffff;
811
833
  }
812
834
 
813
835
  .flowdrop-color--pink {
814
- background-color: var(--cmp-node-color-pink);
836
+ background-color: var(--fd-node-pink);
815
837
  color: #ffffff;
816
838
  }
817
839
 
818
840
  .flowdrop-color--indigo {
819
- background-color: var(--cmp-node-color-indigo);
841
+ background-color: var(--fd-node-indigo);
820
842
  color: #ffffff;
821
843
  }
822
844
 
823
845
  .flowdrop-color--teal {
824
- background-color: var(--cmp-node-color-teal);
846
+ background-color: var(--fd-node-teal);
825
847
  color: #ffffff;
826
848
  }
827
849
 
828
850
  .flowdrop-color--cyan {
829
- background-color: var(--cmp-node-color-cyan);
851
+ background-color: var(--fd-node-cyan);
830
852
  color: #ffffff;
831
853
  }
832
854
 
833
855
  .flowdrop-color--lime {
834
- background-color: var(--cmp-node-color-lime);
856
+ background-color: var(--fd-node-lime);
835
857
  color: #ffffff;
836
858
  }
837
859
 
838
860
  .flowdrop-color--slate {
839
- background-color: var(--cmp-node-color-slate);
861
+ background-color: var(--fd-node-slate);
840
862
  color: #ffffff;
841
863
  }
842
864
 
843
- :root {
844
- /* Reference tokens (Tailwind palette) */
845
- /* Slate */
846
- --color-ref-slate-50: #f8fafc;
847
- --color-ref-slate-100: #f1f5f9;
848
- --color-ref-slate-200: #e2e8f0;
849
- --color-ref-slate-300: #cbd5e1;
850
- --color-ref-slate-400: #94a3b8;
851
- --color-ref-slate-500: #64748b;
852
- --color-ref-slate-600: #475569;
853
- --color-ref-slate-700: #334155;
854
- --color-ref-slate-800: #1e293b;
855
- --color-ref-slate-900: #0f172a;
856
- --color-ref-slate-950: #020617;
857
-
858
- /* Gray */
859
- --color-ref-gray-50: #f9fafb;
860
- --color-ref-gray-100: #f3f4f6;
861
- --color-ref-gray-200: #e5e7eb;
862
- --color-ref-gray-300: #d1d5db;
863
- --color-ref-gray-400: #9ca3af;
864
- --color-ref-gray-500: #6b7280;
865
- --color-ref-gray-600: #4b5563;
866
- --color-ref-gray-700: #374151;
867
- --color-ref-gray-800: #1f2937;
868
- --color-ref-gray-900: #111827;
869
- --color-ref-gray-950: #030712;
870
-
871
- /* Zinc */
872
- --color-ref-zinc-50: #fafafa;
873
- --color-ref-zinc-100: #f4f4f5;
874
- --color-ref-zinc-200: #e4e4e7;
875
- --color-ref-zinc-300: #d4d4d8;
876
- --color-ref-zinc-400: #a1a1aa;
877
- --color-ref-zinc-500: #71717a;
878
- --color-ref-zinc-600: #52525b;
879
- --color-ref-zinc-700: #3f3f46;
880
- --color-ref-zinc-800: #27272a;
881
- --color-ref-zinc-900: #18181b;
882
- --color-ref-zinc-950: #09090b;
883
-
884
- /* Neutral */
885
- --color-ref-neutral-50: #fafafa;
886
- --color-ref-neutral-100: #f5f5f5;
887
- --color-ref-neutral-200: #e5e5e5;
888
- --color-ref-neutral-300: #d4d4d4;
889
- --color-ref-neutral-400: #a3a3a3;
890
- --color-ref-neutral-500: #737373;
891
- --color-ref-neutral-600: #525252;
892
- --color-ref-neutral-700: #404040;
893
- --color-ref-neutral-800: #262626;
894
- --color-ref-neutral-900: #171717;
895
- --color-ref-neutral-950: #0a0a0a;
896
-
897
- /* Stone */
898
- --color-ref-stone-50: #fafaf9;
899
- --color-ref-stone-100: #f5f5f4;
900
- --color-ref-stone-200: #e7e5e4;
901
- --color-ref-stone-300: #d6d3d1;
902
- --color-ref-stone-400: #a8a29e;
903
- --color-ref-stone-500: #78716c;
904
- --color-ref-stone-600: #57534e;
905
- --color-ref-stone-700: #44403c;
906
- --color-ref-stone-800: #292524;
907
- --color-ref-stone-900: #1c1917;
908
- --color-ref-stone-950: #0c0a09;
909
-
910
- /* Red */
911
- --color-ref-red-50: #fef2f2;
912
- --color-ref-red-100: #fee2e2;
913
- --color-ref-red-200: #fecaca;
914
- --color-ref-red-300: #fca5a5;
915
- --color-ref-red-400: #f87171;
916
- --color-ref-red-500: #ef4444;
917
- --color-ref-red-600: #dc2626;
918
- --color-ref-red-700: #b91c1c;
919
- --color-ref-red-800: #991b1b;
920
- --color-ref-red-900: #7f1d1d;
921
- --color-ref-red-950: #450a0a;
922
-
923
- /* Orange */
924
- --color-ref-orange-50: #fff7ed;
925
- --color-ref-orange-100: #ffedd5;
926
- --color-ref-orange-200: #fed7aa;
927
- --color-ref-orange-300: #fdba74;
928
- --color-ref-orange-400: #fb923c;
929
- --color-ref-orange-500: #f97316;
930
- --color-ref-orange-600: #ea580c;
931
- --color-ref-orange-700: #c2410c;
932
- --color-ref-orange-800: #9a3412;
933
- --color-ref-orange-900: #7c2d12;
934
- --color-ref-orange-950: #431407;
935
-
936
- /* Amber */
937
- --color-ref-amber-50: #fffbeb;
938
- --color-ref-amber-100: #fef3c7;
939
- --color-ref-amber-200: #fde68a;
940
- --color-ref-amber-300: #fcd34d;
941
- --color-ref-amber-400: #fbbf24;
942
- --color-ref-amber-500: #f59e0b;
943
- --color-ref-amber-600: #d97706;
944
- --color-ref-amber-700: #b45309;
945
- --color-ref-amber-800: #92400e;
946
- --color-ref-amber-900: #78350f;
947
- --color-ref-amber-950: #451a03;
948
-
949
- /* Yellow */
950
- --color-ref-yellow-50: #fefce8;
951
- --color-ref-yellow-100: #fef9c3;
952
- --color-ref-yellow-200: #fef08a;
953
- --color-ref-yellow-300: #fde047;
954
- --color-ref-yellow-400: #facc15;
955
- --color-ref-yellow-500: #eab308;
956
- --color-ref-yellow-600: #ca8a04;
957
- --color-ref-yellow-700: #a16207;
958
- --color-ref-yellow-800: #854d0e;
959
- --color-ref-yellow-900: #713f12;
960
- --color-ref-yellow-950: #422006;
961
-
962
- /* Lime */
963
- --color-ref-lime-50: #f7fee7;
964
- --color-ref-lime-100: #ecfccb;
965
- --color-ref-lime-200: #d9f99d;
966
- --color-ref-lime-300: #bef264;
967
- --color-ref-lime-400: #a3e635;
968
- --color-ref-lime-500: #84cc16;
969
- --color-ref-lime-600: #65a30d;
970
- --color-ref-lime-700: #4d7c0f;
971
- --color-ref-lime-800: #3f6212;
972
- --color-ref-lime-900: #365314;
973
- --color-ref-lime-950: #1a2e05;
974
-
975
- /* Green */
976
- --color-ref-green-50: #f0fdf4;
977
- --color-ref-green-100: #dcfce7;
978
- --color-ref-green-200: #bbf7d0;
979
- --color-ref-green-300: #86efac;
980
- --color-ref-green-400: #4ade80;
981
- --color-ref-green-500: #22c55e;
982
- --color-ref-green-600: #16a34a;
983
- --color-ref-green-700: #15803d;
984
- --color-ref-green-800: #166534;
985
- --color-ref-green-900: #14532d;
986
- --color-ref-green-950: #052e16;
987
-
988
- /* Emerald */
989
- --color-ref-emerald-50: #ecfdf5;
990
- --color-ref-emerald-100: #d1fae5;
991
- --color-ref-emerald-200: #a7f3d0;
992
- --color-ref-emerald-300: #6ee7b7;
993
- --color-ref-emerald-400: #34d399;
994
- --color-ref-emerald-500: #10b981;
995
- --color-ref-emerald-600: #059669;
996
- --color-ref-emerald-700: #047857;
997
- --color-ref-emerald-800: #065f46;
998
- --color-ref-emerald-900: #064e3b;
999
- --color-ref-emerald-950: #022c22;
1000
-
1001
- /* Teal */
1002
- --color-ref-teal-50: #f0fdfa;
1003
- --color-ref-teal-100: #ccfbf1;
1004
- --color-ref-teal-200: #99f6e4;
1005
- --color-ref-teal-300: #5eead4;
1006
- --color-ref-teal-400: #2dd4bf;
1007
- --color-ref-teal-500: #14b8a6;
1008
- --color-ref-teal-600: #0d9488;
1009
- --color-ref-teal-700: #0f766e;
1010
- --color-ref-teal-800: #115e59;
1011
- --color-ref-teal-900: #134e4a;
1012
- --color-ref-teal-950: #042f2e;
1013
-
1014
- /* Cyan */
1015
- --color-ref-cyan-50: #ecfeff;
1016
- --color-ref-cyan-100: #cffafe;
1017
- --color-ref-cyan-200: #a5f3fc;
1018
- --color-ref-cyan-300: #67e8f9;
1019
- --color-ref-cyan-400: #22d3ee;
1020
- --color-ref-cyan-500: #06b6d4;
1021
- --color-ref-cyan-600: #0891b2;
1022
- --color-ref-cyan-700: #0e7490;
1023
- --color-ref-cyan-800: #155e75;
1024
- --color-ref-cyan-900: #164e63;
1025
- --color-ref-cyan-950: #083344;
1026
-
1027
- /* Sky */
1028
- --color-ref-sky-50: #f0f9ff;
1029
- --color-ref-sky-100: #e0f2fe;
1030
- --color-ref-sky-200: #bae6fd;
1031
- --color-ref-sky-300: #7dd3fc;
1032
- --color-ref-sky-400: #38bdf8;
1033
- --color-ref-sky-500: #0ea5e9;
1034
- --color-ref-sky-600: #0284c7;
1035
- --color-ref-sky-700: #0369a1;
1036
- --color-ref-sky-800: #075985;
1037
- --color-ref-sky-900: #0c4a6e;
1038
- --color-ref-sky-950: #082f49;
1039
-
1040
- /* Blue */
1041
- --color-ref-blue-50: #eff6ff;
1042
- --color-ref-blue-100: #dbeafe;
1043
- --color-ref-blue-200: #bfdbfe;
1044
- --color-ref-blue-300: #93c5fd;
1045
- --color-ref-blue-400: #60a5fa;
1046
- --color-ref-blue-500: #3b82f6;
1047
- --color-ref-blue-600: #2563eb;
1048
- --color-ref-blue-700: #1d4ed8;
1049
- --color-ref-blue-800: #1e40af;
1050
- --color-ref-blue-900: #1e3a8a;
1051
- --color-ref-blue-950: #172554;
1052
-
1053
- /* Indigo */
1054
- --color-ref-indigo-50: #eef2ff;
1055
- --color-ref-indigo-100: #e0e7ff;
1056
- --color-ref-indigo-200: #c7d2fe;
1057
- --color-ref-indigo-300: #a5b4fc;
1058
- --color-ref-indigo-400: #818cf8;
1059
- --color-ref-indigo-500: #6366f1;
1060
- --color-ref-indigo-600: #4f46e5;
1061
- --color-ref-indigo-700: #4338ca;
1062
- --color-ref-indigo-800: #3730a3;
1063
- --color-ref-indigo-900: #312e81;
1064
- --color-ref-indigo-950: #1e1b4b;
1065
-
1066
- /* Violet */
1067
- --color-ref-violet-50: #f5f3ff;
1068
- --color-ref-violet-100: #ede9fe;
1069
- --color-ref-violet-200: #ddd6fe;
1070
- --color-ref-violet-300: #c4b5fd;
1071
- --color-ref-violet-400: #a78bfa;
1072
- --color-ref-violet-500: #8b5cf6;
1073
- --color-ref-violet-600: #7c3aed;
1074
- --color-ref-violet-700: #6d28d9;
1075
- --color-ref-violet-800: #5b21b6;
1076
- --color-ref-violet-900: #4c1d95;
1077
- --color-ref-violet-950: #2e1065;
1078
-
1079
- /* Purple */
1080
- --color-ref-purple-50: #faf5ff;
1081
- --color-ref-purple-100: #f3e8ff;
1082
- --color-ref-purple-200: #e9d5ff;
1083
- --color-ref-purple-300: #d8b4fe;
1084
- --color-ref-purple-400: #c084fc;
1085
- --color-ref-purple-500: #a855f7;
1086
- --color-ref-purple-600: #9333ea;
1087
- --color-ref-purple-700: #7c3aed;
1088
- --color-ref-purple-800: #6b21a8;
1089
- --color-ref-purple-900: #581c87;
1090
- --color-ref-purple-950: #3b0764;
1091
-
1092
- /* Fuchsia */
1093
- --color-ref-fuchsia-50: #fdf4ff;
1094
- --color-ref-fuchsia-100: #fae8ff;
1095
- --color-ref-fuchsia-200: #f5d0fe;
1096
- --color-ref-fuchsia-300: #f0abfc;
1097
- --color-ref-fuchsia-400: #e879f9;
1098
- --color-ref-fuchsia-500: #d946ef;
1099
- --color-ref-fuchsia-600: #c026d3;
1100
- --color-ref-fuchsia-700: #a21caf;
1101
- --color-ref-fuchsia-800: #86198f;
1102
- --color-ref-fuchsia-900: #701a75;
1103
- --color-ref-fuchsia-950: #4a044e;
1104
-
1105
- /* Pink */
1106
- --color-ref-pink-50: #fdf2f8;
1107
- --color-ref-pink-100: #fce7f3;
1108
- --color-ref-pink-200: #fbcfe8;
1109
- --color-ref-pink-300: #f9a8d4;
1110
- --color-ref-pink-400: #f472b6;
1111
- --color-ref-pink-500: #ec4899;
1112
- --color-ref-pink-600: #db2777;
1113
- --color-ref-pink-700: #be185d;
1114
- --color-ref-pink-800: #9d174d;
1115
- --color-ref-pink-900: #831843;
1116
- --color-ref-pink-950: #500724;
1117
-
1118
- /* Rose */
1119
- --color-ref-rose-50: #fff1f2;
1120
- --color-ref-rose-100: #ffe4e6;
1121
- --color-ref-rose-200: #fecdd3;
1122
- --color-ref-rose-300: #fda4af;
1123
- --color-ref-rose-400: #fb7185;
1124
- --color-ref-rose-500: #f43f5e;
1125
- --color-ref-rose-600: #e11d48;
1126
- --color-ref-rose-700: #be123c;
1127
- --color-ref-rose-800: #9f1239;
1128
- --color-ref-rose-900: #881337;
1129
- --color-ref-rose-950: #4c0519;
1130
-
1131
- /* Component color variables */
1132
- --cmp-node-color-emerald: var(--color-ref-emerald-500);
1133
- --cmp-node-color-blue: var(--color-ref-blue-600);
1134
- --cmp-node-color-amber: var(--color-ref-amber-500);
1135
- --cmp-node-color-orange: var(--color-ref-orange-500);
1136
- --cmp-node-color-red: var(--color-ref-red-500);
1137
- --cmp-node-color-pink: var(--color-ref-pink-500);
1138
- --cmp-node-color-indigo: var(--color-ref-indigo-500);
1139
- --cmp-node-color-teal: var(--color-ref-teal-500);
1140
- --cmp-node-color-cyan: var(--color-ref-cyan-500);
1141
- --cmp-node-color-lime: var(--color-ref-lime-500);
1142
- --cmp-node-color-slate: var(--color-ref-slate-500);
1143
- --cmp-node-color-purple: var(--color-ref-purple-600);
1144
-
1145
- /* Edge styling tokens */
1146
- --flowdrop-edge-trigger-color: var(--color-ref-gray-900);
1147
- --flowdrop-edge-trigger-color-hover: var(--color-ref-gray-900);
1148
- --flowdrop-edge-trigger-color-selected: var(--color-ref-violet-600);
1149
- --flowdrop-edge-trigger-width: 2px;
1150
- --flowdrop-edge-trigger-width-hover: 3px;
1151
-
1152
- --flowdrop-edge-tool-color: var(--color-ref-amber-500);
1153
- --flowdrop-edge-tool-color-hover: var(--color-ref-amber-600);
1154
- --flowdrop-edge-tool-color-selected: var(--color-ref-violet-600);
1155
-
1156
- --flowdrop-edge-data-color: var(--color-ref-gray-400);
1157
- --flowdrop-edge-data-color-hover: var(--color-ref-gray-500);
1158
- --flowdrop-edge-data-color-selected: var(--color-ref-violet-600);
1159
-
1160
- /* Loopback edge styling tokens */
1161
- --flowdrop-edge-loopback-color: var(--color-ref-gray-500);
1162
- --flowdrop-edge-loopback-color-hover: var(--color-ref-gray-600);
1163
- --flowdrop-edge-loopback-color-selected: var(--color-ref-violet-600);
1164
- --flowdrop-edge-loopback-width: 1.5px;
1165
- --flowdrop-edge-loopback-width-hover: 2.5px;
1166
- --flowdrop-edge-loopback-dasharray: 5 5;
1167
- --flowdrop-edge-loopback-opacity: 0.85;
1168
-
1169
- /* Tool node theming tokens */
1170
- --flowdrop-tool-node-color: var(--color-ref-amber-500);
1171
- --flowdrop-tool-node-color-light: var(--color-ref-amber-50);
1172
- --flowdrop-tool-node-color-border: var(--color-ref-amber-300);
1173
-
1174
- /* Semantic text color tokens */
1175
- --flowdrop-text-color-error: var(--color-ref-red-600);
1176
- --flowdrop-text-color-success: var(--color-ref-green-600);
1177
- --flowdrop-text-color-warning: var(--color-ref-amber-600);
1178
- --flowdrop-text-color-info: var(--color-ref-blue-600);
1179
- --flowdrop-text-color-muted: var(--color-ref-gray-500);
1180
- --flowdrop-text-color-primary: var(--color-ref-gray-900);
1181
- --flowdrop-text-color-secondary: var(--color-ref-gray-600);
865
+ /* =========================================================================
866
+ COMPONENT-SPECIFIC TOKENS
867
+ These extend the semantic tokens for specific component needs.
868
+ All use the --fd-* semantic tokens as their foundation.
869
+ ========================================================================= */
1182
870
 
871
+ :root {
1183
872
  /* =========================================================================
1184
873
  Interrupt Component Tokens
1185
874
  ========================================================================= */
1186
875
 
1187
876
  /* Interrupt state: Pending (awaiting user response) */
1188
- --flowdrop-interrupt-pending-bg: linear-gradient(
1189
- 135deg,
1190
- var(--color-ref-amber-100) 0%,
1191
- var(--color-ref-amber-200) 100%
1192
- );
1193
- --flowdrop-interrupt-pending-border: var(--color-ref-amber-500);
1194
- --flowdrop-interrupt-pending-shadow: rgba(245, 158, 11, 0.15);
1195
- --flowdrop-interrupt-pending-avatar: var(--color-ref-amber-500);
1196
- --flowdrop-interrupt-pending-text: var(--color-ref-amber-800);
1197
- --flowdrop-interrupt-pending-text-light: var(--color-ref-amber-700);
877
+ --fd-interrupt-pending-bg: linear-gradient(135deg, var(--fd-warning-muted) 0%, var(--fd-warning-muted) 100%);
878
+ --fd-interrupt-pending-border: var(--fd-warning);
879
+ --fd-interrupt-pending-shadow: rgba(245, 158, 11, 0.15);
880
+ --fd-interrupt-pending-avatar: var(--fd-warning);
881
+ --fd-interrupt-pending-text: var(--fd-warning-hover);
882
+ --fd-interrupt-pending-text-light: var(--fd-warning-hover);
1198
883
 
1199
884
  /* Interrupt state: Completed (response received - neutral) */
1200
- --flowdrop-interrupt-completed-bg: linear-gradient(
1201
- 135deg,
1202
- var(--color-ref-blue-50) 0%,
1203
- var(--color-ref-blue-100) 100%
1204
- );
1205
- --flowdrop-interrupt-completed-border: var(--color-ref-blue-500);
1206
- --flowdrop-interrupt-completed-shadow: rgba(59, 130, 246, 0.15);
1207
- --flowdrop-interrupt-completed-avatar: var(--color-ref-blue-500);
1208
- --flowdrop-interrupt-completed-text: var(--color-ref-blue-800);
1209
- --flowdrop-interrupt-completed-text-light: var(--color-ref-blue-600);
885
+ --fd-interrupt-completed-bg: linear-gradient(135deg, var(--fd-info-muted) 0%, var(--fd-primary-muted) 100%);
886
+ --fd-interrupt-completed-border: var(--fd-primary);
887
+ --fd-interrupt-completed-shadow: rgba(59, 130, 246, 0.15);
888
+ --fd-interrupt-completed-avatar: var(--fd-primary);
889
+ --fd-interrupt-completed-text: var(--fd-primary-hover);
890
+ --fd-interrupt-completed-text-light: var(--fd-primary);
1210
891
 
1211
892
  /* Interrupt state: Cancelled (dismissed without responding) */
1212
- --flowdrop-interrupt-cancelled-bg: linear-gradient(
1213
- 135deg,
1214
- var(--color-ref-gray-100) 0%,
1215
- var(--color-ref-gray-200) 100%
1216
- );
1217
- --flowdrop-interrupt-cancelled-border: var(--color-ref-gray-400);
1218
- --flowdrop-interrupt-cancelled-shadow: rgba(107, 114, 128, 0.15);
1219
- --flowdrop-interrupt-cancelled-avatar: var(--color-ref-gray-500);
1220
- --flowdrop-interrupt-cancelled-text: var(--color-ref-gray-600);
1221
- --flowdrop-interrupt-cancelled-text-light: var(--color-ref-gray-500);
893
+ --fd-interrupt-cancelled-bg: linear-gradient(135deg, var(--fd-muted) 0%, var(--fd-subtle) 100%);
894
+ --fd-interrupt-cancelled-border: var(--fd-muted-foreground);
895
+ --fd-interrupt-cancelled-shadow: rgba(107, 114, 128, 0.15);
896
+ --fd-interrupt-cancelled-avatar: var(--fd-muted-foreground);
897
+ --fd-interrupt-cancelled-text: var(--fd-muted-foreground);
898
+ --fd-interrupt-cancelled-text-light: var(--fd-muted-foreground);
1222
899
 
1223
900
  /* Interrupt state: Error */
1224
- --flowdrop-interrupt-error-bg: linear-gradient(
1225
- 135deg,
1226
- var(--color-ref-red-50) 0%,
1227
- var(--color-ref-red-100) 100%
1228
- );
1229
- --flowdrop-interrupt-error-border: var(--color-ref-red-500);
1230
- --flowdrop-interrupt-error-shadow: rgba(239, 68, 68, 0.15);
1231
- --flowdrop-interrupt-error-avatar: var(--color-ref-red-500);
1232
- --flowdrop-interrupt-error-text: var(--color-ref-red-700);
1233
- --flowdrop-interrupt-error-text-light: var(--color-ref-red-600);
901
+ --fd-interrupt-error-bg: linear-gradient(135deg, var(--fd-error-muted) 0%, var(--fd-error-muted) 100%);
902
+ --fd-interrupt-error-border: var(--fd-error);
903
+ --fd-interrupt-error-shadow: rgba(239, 68, 68, 0.15);
904
+ --fd-interrupt-error-avatar: var(--fd-error);
905
+ --fd-interrupt-error-text: var(--fd-error-hover);
906
+ --fd-interrupt-error-text-light: var(--fd-error);
1234
907
 
1235
908
  /* Interrupt prompt inner styling */
1236
- --flowdrop-interrupt-prompt-bg: rgba(255, 255, 255, 0.85);
1237
- --flowdrop-interrupt-prompt-border-pending: rgba(245, 158, 11, 0.2);
1238
- --flowdrop-interrupt-prompt-border-completed: rgba(59, 130, 246, 0.2);
1239
- --flowdrop-interrupt-prompt-border-cancelled: rgba(107, 114, 128, 0.2);
1240
- --flowdrop-interrupt-prompt-border-error: rgba(239, 68, 68, 0.2);
909
+ --fd-interrupt-prompt-bg: rgba(255, 255, 255, 0.85);
910
+ --fd-interrupt-prompt-border-pending: rgba(245, 158, 11, 0.2);
911
+ --fd-interrupt-prompt-border-completed: rgba(59, 130, 246, 0.2);
912
+ --fd-interrupt-prompt-border-cancelled: rgba(107, 114, 128, 0.2);
913
+ --fd-interrupt-prompt-border-error: rgba(239, 68, 68, 0.2);
1241
914
 
1242
915
  /* Interrupt button tokens */
1243
- --flowdrop-interrupt-btn-primary-bg: linear-gradient(
1244
- 135deg,
1245
- var(--color-ref-blue-500) 0%,
1246
- var(--color-ref-blue-600) 100%
1247
- );
1248
- --flowdrop-interrupt-btn-primary-bg-hover: linear-gradient(
1249
- 135deg,
1250
- var(--color-ref-blue-600) 0%,
1251
- var(--color-ref-blue-700) 100%
1252
- );
1253
- --flowdrop-interrupt-btn-primary-shadow: rgba(59, 130, 246, 0.3);
1254
- --flowdrop-interrupt-btn-secondary-bg: var(--color-ref-gray-100);
1255
- --flowdrop-interrupt-btn-secondary-border: var(--color-ref-gray-300);
1256
- --flowdrop-interrupt-btn-secondary-text: var(--color-ref-gray-700);
916
+ --fd-interrupt-btn-primary-bg: linear-gradient(135deg, var(--fd-primary) 0%, var(--fd-primary-hover) 100%);
917
+ --fd-interrupt-btn-primary-bg-hover: linear-gradient(135deg, var(--fd-primary-hover) 0%, var(--fd-primary-hover) 100%);
918
+ --fd-interrupt-btn-primary-shadow: rgba(59, 130, 246, 0.3);
919
+ --fd-interrupt-btn-secondary-bg: var(--fd-muted);
920
+ --fd-interrupt-btn-secondary-border: var(--fd-border);
921
+ --fd-interrupt-btn-secondary-text: var(--fd-foreground);
1257
922
 
1258
923
  /* Interrupt selection tokens (for confirmation/choice) */
1259
- --flowdrop-interrupt-selected-confirm-bg: var(--flowdrop-interrupt-btn-primary-bg);
1260
- --flowdrop-interrupt-selected-confirm-border: var(--color-ref-blue-700);
1261
- --flowdrop-interrupt-selected-confirm-glow: rgba(59, 130, 246, 0.3);
1262
- --flowdrop-interrupt-selected-decline-bg: var(--color-ref-red-50);
1263
- --flowdrop-interrupt-selected-decline-border: var(--color-ref-red-400);
1264
- --flowdrop-interrupt-selected-decline-text: var(--color-ref-red-600);
1265
- --flowdrop-interrupt-selected-decline-glow: rgba(248, 113, 113, 0.2);
1266
- --flowdrop-interrupt-not-selected-opacity: 0.4;
924
+ --fd-interrupt-selected-confirm-bg: var(--fd-interrupt-btn-primary-bg);
925
+ --fd-interrupt-selected-confirm-border: var(--fd-primary-hover);
926
+ --fd-interrupt-selected-confirm-glow: rgba(59, 130, 246, 0.3);
927
+ --fd-interrupt-selected-decline-bg: var(--fd-error-muted);
928
+ --fd-interrupt-selected-decline-border: var(--fd-error);
929
+ --fd-interrupt-selected-decline-text: var(--fd-error);
930
+ --fd-interrupt-selected-decline-glow: rgba(248, 113, 113, 0.2);
931
+ --fd-interrupt-not-selected-opacity: 0.4;
1267
932
 
1268
933
  /* Interrupt badge tokens */
1269
- --flowdrop-interrupt-badge-completed-bg: var(--color-ref-blue-50);
1270
- --flowdrop-interrupt-badge-completed-text: var(--color-ref-blue-600);
1271
-
1272
- /* NotesNode component variables */
1273
- --notes-node-width: 500px;
1274
- --notes-node-min-width: 250px;
1275
- --notes-node-max-width: 500px;
1276
- --notes-node-border-radius: 0.5rem;
1277
- --notes-node-padding: 1rem;
1278
- --notes-node-background: rgba(255, 255, 255, 0.9);
1279
- --notes-node-backdrop-filter: blur(8px);
1280
- --notes-node-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
1281
- --notes-node-hover-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1282
- --notes-node-selected-box-shadow: 0 0 0 2px #3b82f6;
1283
- --notes-node-transition: all 0.2s ease-in-out;
1284
-
1285
- /* Note type specific colors */
1286
- --notes-node-info-bg: var(--color-ref-blue-50);
1287
- --notes-node-info-border: var(--color-ref-blue-200);
1288
- --notes-node-warning-bg: var(--color-ref-yellow-50);
1289
- --notes-node-warning-border: var(--color-ref-yellow-200);
1290
- --notes-node-success-bg: var(--color-ref-green-50);
1291
- --notes-node-success-border: var(--color-ref-green-200);
1292
- --notes-node-error-bg: var(--color-ref-red-50);
1293
- --notes-node-error-border: var(--color-ref-red-200);
1294
- --notes-node-note-bg: var(--color-ref-gray-50);
1295
- --notes-node-note-border: var(--color-ref-gray-200);
934
+ --fd-interrupt-badge-completed-bg: var(--fd-primary-muted);
935
+ --fd-interrupt-badge-completed-text: var(--fd-primary);
936
+
937
+ /* =========================================================================
938
+ Notes Node Component Tokens
939
+ Notes node now uses standard node styling (--fd-card, --fd-node-border)
940
+ for a consistent look and to avoid confusion with selected state.
941
+ ========================================================================= */
942
+
943
+ --fd-notes-node-width: 500px;
944
+ --fd-notes-node-min-width: 250px;
945
+ --fd-notes-node-max-width: 500px;
946
+ --fd-notes-node-backdrop-filter: blur(8px);
1296
947
  }
1297
948
 
949
+ /* Dark mode overrides for interrupt component tokens */
950
+ [data-theme="dark"] {
951
+ /* Interrupt prompt inner styling - dark background for dark mode */
952
+ --fd-interrupt-prompt-bg: rgba(30, 30, 35, 0.95);
953
+ --fd-interrupt-prompt-border-pending: rgba(251, 191, 36, 0.25);
954
+ --fd-interrupt-prompt-border-completed: rgba(96, 165, 250, 0.25);
955
+ --fd-interrupt-prompt-border-cancelled: rgba(156, 163, 175, 0.25);
956
+ --fd-interrupt-prompt-border-error: rgba(248, 113, 113, 0.25);
957
+
958
+ /* Interrupt button tokens - adjusted for dark mode */
959
+ --fd-interrupt-btn-secondary-bg: var(--fd-secondary);
960
+ --fd-interrupt-btn-secondary-border: var(--fd-border);
961
+ --fd-interrupt-btn-secondary-text: var(--fd-foreground);
962
+
963
+ /* Selection tokens - adjusted colors for dark mode visibility */
964
+ --fd-interrupt-selected-decline-bg: rgba(248, 113, 113, 0.15);
965
+ --fd-interrupt-selected-decline-glow: rgba(248, 113, 113, 0.25);
966
+
967
+ /* Badge tokens - adjusted for dark mode */
968
+ --fd-interrupt-badge-completed-bg: var(--fd-primary-muted);
969
+ --fd-interrupt-badge-completed-text: var(--fd-primary);
970
+ }
971
+
972
+ /* Dark mode overrides for notes node tokens */
973
+ /* Notes node now uses standard --fd-card background which is already theme-aware */
974
+
1298
975
  /* Markdown Display Component Styles */
1299
976
  /* These styles are used for dynamically rendered markdown content */
1300
977
 
@@ -1413,14 +1090,14 @@
1413
1090
 
1414
1091
  /* Links */
1415
1092
  .markdown-display a {
1416
- color: #3b82f6;
1093
+ color: var(--fd-primary);
1417
1094
  text-decoration: underline;
1418
1095
  text-decoration-thickness: 1px;
1419
1096
  text-underline-offset: 2px;
1420
1097
  }
1421
1098
 
1422
1099
  .markdown-display a:hover {
1423
- color: #2563eb;
1100
+ color: var(--fd-primary-hover);
1424
1101
  text-decoration-thickness: 2px;
1425
1102
  }
1426
1103
 
@@ -1499,4 +1176,4 @@
1499
1176
 
1500
1177
  .markdown-display--large h3 {
1501
1178
  font-size: 1.25rem;
1502
- }
1179
+ }