@d34dman/flowdrop 0.0.43 → 0.0.45

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 +334 -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 +114 -38
  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 +175 -125
  51. package/dist/components/nodes/IdeaNode.svelte +70 -84
  52. package/dist/components/nodes/NotesNode.svelte +124 -88
  53. package/dist/components/nodes/SimpleNode.svelte +91 -69
  54. package/dist/components/nodes/SquareNode.svelte +102 -75
  55. package/dist/components/nodes/TerminalNode.svelte +127 -113
  56. package/dist/components/nodes/ToolNode.svelte +125 -76
  57. package/dist/components/nodes/WorkflowNode.svelte +164 -108
  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/nodeLayoutHelper.d.ts +14 -0
  73. package/dist/helpers/nodeLayoutHelper.js +19 -0
  74. package/dist/helpers/workflowEditorHelper.js +23 -11
  75. package/dist/index.d.ts +5 -0
  76. package/dist/index.js +13 -0
  77. package/dist/services/autoSaveService.d.ts +112 -0
  78. package/dist/services/autoSaveService.js +223 -0
  79. package/dist/services/settingsService.d.ts +92 -0
  80. package/dist/services/settingsService.js +202 -0
  81. package/dist/services/toastService.d.ts +9 -0
  82. package/dist/services/toastService.js +30 -1
  83. package/dist/stores/settingsStore.d.ts +128 -0
  84. package/dist/stores/settingsStore.js +488 -0
  85. package/dist/stores/themeStore.d.ts +68 -0
  86. package/dist/stores/themeStore.js +215 -0
  87. package/dist/styles/base.css +338 -621
  88. package/dist/styles/toast.css +33 -0
  89. package/dist/styles/tokens.css +402 -0
  90. package/dist/types/index.d.ts +78 -0
  91. package/dist/types/index.js +2 -0
  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 +2 -2
@@ -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,51 @@
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);
31
+ }
32
+
33
+ /* Flow node handles: 20px connection area, 12px visible circle (::before)
34
+ Override xyflow's default background so port color (--fd-handle-fill from inline style) shows */
35
+ :global(.svelte-flow__handle) {
36
+ --fd-handle-fill: var(--fd-muted-foreground);
37
+ --fd-handle-border-color: var(--fd-handle-border);
38
+ width: var(--fd-handle-size);
39
+ height: var(--fd-handle-size);
40
+ background: transparent !important;
41
+ background-color: transparent !important;
42
+ border: none;
43
+ border-radius: 50%;
44
+ display: flex;
45
+ align-items: center;
46
+ justify-content: center;
47
+ transition: transform var(--fd-transition-normal);
48
+ cursor: pointer;
49
+ }
50
+
51
+ :global(.svelte-flow__handle::before) {
52
+ content: "";
53
+ position: absolute;
54
+ inset: 0;
55
+ margin: auto;
56
+ width: var(--fd-handle-visual-size);
57
+ height: var(--fd-handle-visual-size);
58
+ background-color: var(--fd-handle-fill) !important;
59
+ border: 2px solid var(--fd-handle-border-color);
60
+ border-radius: 50%;
61
+ pointer-events: none;
62
+ }
63
+
64
+ :global(.svelte-flow__handle:hover::before) {
65
+ background-color: var(--fd-primary);
66
+ }
67
+
68
+ :global(.svelte-flow__handle:focus) {
69
+ outline: 2px solid var(--fd-ring);
70
+ outline-offset: 2px;
28
71
  }
29
72
 
30
73
  /* Button styles */
@@ -32,70 +75,70 @@
32
75
  display: inline-flex;
33
76
  align-items: center;
34
77
  justify-content: center;
35
- padding: 0.5rem 1rem;
78
+ padding: var(--fd-space-2) var(--fd-space-4);
36
79
  border: 1px solid transparent;
37
- border-radius: 0.375rem;
38
- font-size: 0.875rem;
80
+ border-radius: var(--fd-radius-md);
81
+ font-size: var(--fd-text-sm);
39
82
  font-weight: 500;
40
83
  text-decoration: none;
41
84
  cursor: pointer;
42
- transition: all 0.2s ease-in-out;
43
- background-color: #ffffff;
44
- color: #374151;
85
+ transition: all var(--fd-transition-normal);
86
+ background-color: var(--fd-background);
87
+ color: var(--fd-foreground);
45
88
  min-height: 2.5rem;
46
89
  }
47
90
 
48
91
  .flowdrop-btn:hover {
49
- background-color: #f9fafb;
50
- border-color: #d1d5db;
92
+ background-color: var(--fd-muted);
93
+ border-color: var(--fd-border);
51
94
  }
52
95
 
53
96
  .flowdrop-btn:focus {
54
- outline: 2px solid #3b82f6;
97
+ outline: 2px solid var(--fd-ring);
55
98
  outline-offset: 2px;
56
99
  }
57
100
 
58
101
  .flowdrop-btn--primary {
59
- background-color: #3b82f6;
60
- color: #ffffff;
61
- border-color: #3b82f6;
102
+ background-color: var(--fd-primary);
103
+ color: var(--fd-primary-foreground);
104
+ border-color: var(--fd-primary);
62
105
  }
63
106
 
64
107
  .flowdrop-btn--primary:hover {
65
- background-color: #2563eb;
66
- border-color: #2563eb;
108
+ background-color: var(--fd-primary-hover);
109
+ border-color: var(--fd-primary-hover);
67
110
  }
68
111
 
69
112
  .flowdrop-btn--secondary {
70
- background-color: #6b7280;
71
- color: #ffffff;
72
- border-color: #6b7280;
113
+ background-color: var(--fd-secondary);
114
+ color: var(--fd-secondary-foreground);
115
+ border-color: var(--fd-secondary);
73
116
  }
74
117
 
75
118
  .flowdrop-btn--secondary:hover {
76
- background-color: #4b5563;
77
- border-color: #4b5563;
119
+ background-color: var(--fd-secondary-hover);
120
+ border-color: var(--fd-secondary-hover);
78
121
  }
79
122
 
80
123
  .flowdrop-btn--outline {
81
124
  background-color: transparent;
82
- color: #374151;
83
- border-color: #d1d5db;
125
+ color: var(--fd-foreground);
126
+ border-color: var(--fd-border);
84
127
  }
85
128
 
86
129
  .flowdrop-btn--outline:hover {
87
- background-color: #f9fafb;
88
- border-color: #9ca3af;
130
+ background-color: var(--fd-muted);
131
+ border-color: var(--fd-border-strong);
89
132
  }
90
133
 
91
134
  .flowdrop-btn--ghost {
92
135
  background-color: transparent;
93
- color: #374151;
136
+ color: var(--fd-foreground);
94
137
  border-color: transparent;
95
138
  }
96
139
 
97
140
  .flowdrop-btn--ghost:hover {
98
- background-color: #f3f4f6;
141
+ background-color: var(--fd-muted);
99
142
  }
100
143
 
101
144
  .flowdrop-btn--sm {
@@ -114,21 +157,21 @@
114
157
  .flowdrop-input {
115
158
  display: block;
116
159
  width: 100%;
117
- padding: 0.5rem 0.75rem;
118
- border: 1px solid #d1d5db;
119
- border-radius: 0.375rem;
120
- font-size: 0.875rem;
160
+ padding: var(--fd-space-2) var(--fd-space-3);
161
+ border: 1px solid var(--fd-border);
162
+ border-radius: var(--fd-radius-md);
163
+ font-size: var(--fd-text-sm);
121
164
  line-height: 1.25rem;
122
- color: #111827;
123
- background-color: #ffffff;
165
+ color: var(--fd-foreground);
166
+ background-color: var(--fd-background);
124
167
  transition:
125
- border-color 0.2s ease-in-out,
126
- box-shadow 0.2s ease-in-out;
168
+ border-color var(--fd-transition-normal),
169
+ box-shadow var(--fd-transition-normal);
127
170
  }
128
171
 
129
172
  .flowdrop-input:focus {
130
173
  outline: none;
131
- border-color: #3b82f6;
174
+ border-color: var(--fd-primary);
132
175
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
133
176
  }
134
177
 
@@ -144,66 +187,66 @@
144
187
 
145
188
  /* Card styles */
146
189
  .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);
190
+ background-color: var(--fd-card);
191
+ border: 1px solid var(--fd-border);
192
+ border-radius: var(--fd-radius-lg);
193
+ box-shadow: var(--fd-shadow-sm);
151
194
  overflow: hidden;
152
195
  }
153
196
 
154
197
  .flowdrop-card--compact {
155
- padding: 0.5rem;
198
+ padding: var(--fd-space-2);
156
199
  }
157
200
 
158
201
  .flowdrop-card__body {
159
- padding: 1rem;
202
+ padding: var(--fd-space-4);
160
203
  }
161
204
 
162
205
  .flowdrop-card__header {
163
- padding: 1rem 1rem 0.5rem;
164
- border-bottom: 1px solid #f3f4f6;
206
+ padding: var(--fd-space-4) var(--fd-space-4) var(--fd-space-2);
207
+ border-bottom: 1px solid var(--fd-border-muted);
165
208
  }
166
209
 
167
210
  .flowdrop-card__footer {
168
- padding: 0.5rem 1rem 1rem;
169
- border-top: 1px solid #f3f4f6;
211
+ padding: var(--fd-space-2) var(--fd-space-4) var(--fd-space-4);
212
+ border-top: 1px solid var(--fd-border-muted);
170
213
  }
171
214
 
172
215
  /* Badge styles */
173
216
  .flowdrop-badge {
174
217
  display: inline-flex;
175
218
  align-items: center;
176
- padding: 0.25rem 0.5rem;
177
- font-size: 0.75rem;
219
+ padding: var(--fd-space-1) var(--fd-space-2);
220
+ font-size: var(--fd-text-xs);
178
221
  font-weight: 500;
179
- border-radius: 0.375rem;
180
- background-color: #f3f4f6;
181
- color: #374151;
222
+ border-radius: var(--fd-radius-md);
223
+ background-color: var(--fd-muted);
224
+ color: var(--fd-foreground);
182
225
  }
183
226
 
184
227
  .flowdrop-badge--primary {
185
- background-color: #dbeafe;
186
- color: #1e40af;
228
+ background-color: var(--fd-primary-muted);
229
+ color: var(--fd-primary-hover);
187
230
  }
188
231
 
189
232
  .flowdrop-badge--secondary {
190
- background-color: #e5e7eb;
191
- color: #374151;
233
+ background-color: var(--fd-secondary);
234
+ color: var(--fd-secondary-foreground);
192
235
  }
193
236
 
194
237
  .flowdrop-badge--success {
195
- background-color: #d1fae5;
196
- color: #065f46;
238
+ background-color: var(--fd-success-muted);
239
+ color: var(--fd-success-hover);
197
240
  }
198
241
 
199
242
  .flowdrop-badge--warning {
200
- background-color: #fef3c7;
201
- color: #92400e;
243
+ background-color: var(--fd-warning-muted);
244
+ color: var(--fd-warning-hover);
202
245
  }
203
246
 
204
247
  .flowdrop-badge--error {
205
- background-color: #fee2e2;
206
- color: #991b1b;
248
+ background-color: var(--fd-error-muted);
249
+ color: var(--fd-error-hover);
207
250
  }
208
251
 
209
252
  /* Navbar styles */
@@ -211,9 +254,9 @@
211
254
  display: flex;
212
255
  align-items: center;
213
256
  justify-content: space-between;
214
- padding: 0.75rem 1rem;
215
- background-color: #ffffff;
216
- border-bottom: 1px solid #e5e7eb;
257
+ padding: var(--fd-space-3) var(--fd-space-4);
258
+ background-color: var(--fd-background);
259
+ border-bottom: 1px solid var(--fd-border);
217
260
  }
218
261
 
219
262
  .flowdrop-navbar__start {
@@ -238,13 +281,13 @@
238
281
  /* Join button group */
239
282
  .flowdrop-join {
240
283
  display: inline-flex;
241
- border-radius: 0.375rem;
284
+ border-radius: var(--fd-radius-md);
242
285
  overflow: hidden;
243
286
  }
244
287
 
245
288
  .flowdrop-join__item {
246
289
  border-radius: 0;
247
- border-right: 1px solid #d1d5db;
290
+ border-right: 1px solid var(--fd-border);
248
291
  }
249
292
 
250
293
  .flowdrop-join__item:first-child {
@@ -278,37 +321,37 @@
278
321
  }
279
322
 
280
323
  .flowdrop-hero__title {
281
- font-size: 1.125rem;
324
+ font-size: var(--fd-text-lg);
282
325
  font-weight: 700;
283
- margin-bottom: 0.5rem;
284
- color: #111827;
326
+ margin-bottom: var(--fd-space-2);
327
+ color: var(--fd-foreground);
285
328
  }
286
329
 
287
330
  .flowdrop-hero__description {
288
- font-size: 0.875rem;
289
- color: #6b7280;
290
- margin-bottom: 1rem;
331
+ font-size: var(--fd-text-sm);
332
+ color: var(--fd-muted-foreground);
333
+ margin-bottom: var(--fd-space-4);
291
334
  }
292
335
 
293
336
  /* Divider */
294
337
  .flowdrop-divider {
295
338
  display: flex;
296
339
  align-items: center;
297
- margin: 1rem 0;
340
+ margin: var(--fd-space-4) 0;
298
341
  }
299
342
 
300
343
  .flowdrop-divider::before {
301
344
  content: '';
302
345
  flex: 1;
303
346
  height: 1px;
304
- background-color: #e5e7eb;
347
+ background-color: var(--fd-border);
305
348
  }
306
349
 
307
350
  .flowdrop-divider__text {
308
- padding: 0 0.75rem;
309
- font-size: 0.75rem;
351
+ padding: 0 var(--fd-space-3);
352
+ font-size: var(--fd-text-xs);
310
353
  font-weight: 600;
311
- color: #6b7280;
354
+ color: var(--fd-muted-foreground);
312
355
  text-transform: uppercase;
313
356
  letter-spacing: 0.05em;
314
357
  }
@@ -317,35 +360,54 @@
317
360
  content: '';
318
361
  flex: 1;
319
362
  height: 1px;
320
- background-color: #e5e7eb;
363
+ background-color: var(--fd-border);
321
364
  }
322
365
 
323
- /* Details/Summary */
366
+ /* Details/Summary - Modern accordion styling */
324
367
  .flowdrop-details {
325
- background-color: #ffffff;
326
- border-radius: 0.5rem;
327
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
368
+ background-color: var(--fd-card);
369
+ border-radius: var(--fd-radius-lg);
370
+ box-shadow: var(--fd-shadow-sm);
328
371
  overflow: hidden;
372
+ border: 1px solid var(--fd-border-muted);
373
+ transition: all var(--fd-transition-fast);
374
+ }
375
+
376
+ .flowdrop-details:hover {
377
+ border-color: var(--fd-border);
378
+ }
379
+
380
+ .flowdrop-details[open] {
381
+ box-shadow: var(--fd-shadow-md);
329
382
  }
330
383
 
331
384
  .flowdrop-details__summary {
332
385
  display: flex;
333
386
  align-items: center;
334
387
  justify-content: space-between;
335
- padding: 0.75rem;
336
- font-size: 0.875rem;
388
+ padding: var(--fd-space-3);
389
+ font-size: var(--fd-text-sm);
337
390
  font-weight: 500;
391
+ color: var(--fd-foreground);
338
392
  cursor: pointer;
339
- transition: background-color 0.2s ease-in-out;
393
+ transition: all var(--fd-transition-fast);
394
+ background: var(--fd-card);
395
+ border-radius: var(--fd-radius-md);
340
396
  }
341
397
 
342
398
  .flowdrop-details__summary:hover {
343
- background-color: #f9fafb;
399
+ background-color: var(--fd-muted);
400
+ }
401
+
402
+ .flowdrop-details__summary::marker,
403
+ .flowdrop-details__summary::-webkit-details-marker {
404
+ display: none;
344
405
  }
345
406
 
346
407
  .flowdrop-details__content {
347
- padding: 0.75rem;
408
+ padding: var(--fd-space-3);
348
409
  padding-top: 0;
410
+ background: var(--fd-card);
349
411
  }
350
412
 
351
413
  /* Loading spinner */
@@ -353,8 +415,8 @@
353
415
  display: inline-block;
354
416
  width: 1rem;
355
417
  height: 1rem;
356
- border: 2px solid #e5e7eb;
357
- border-top: 2px solid #3b82f6;
418
+ border: 2px solid var(--fd-border);
419
+ border-top: 2px solid var(--fd-primary);
358
420
  border-radius: 50%;
359
421
  animation: flowdrop-spin 1s linear infinite;
360
422
  }
@@ -404,35 +466,35 @@
404
466
  }
405
467
 
406
468
  .flowdrop-gap--1 {
407
- gap: 0.25rem;
469
+ gap: var(--fd-space-1);
408
470
  }
409
471
 
410
472
  .flowdrop-gap--2 {
411
- gap: 0.5rem;
473
+ gap: var(--fd-space-2);
412
474
  }
413
475
 
414
476
  .flowdrop-gap--3 {
415
- gap: 0.75rem;
477
+ gap: var(--fd-space-3);
416
478
  }
417
479
 
418
480
  .flowdrop-gap--4 {
419
- gap: 1rem;
481
+ gap: var(--fd-space-4);
420
482
  }
421
483
 
422
484
  .flowdrop-p--1 {
423
- padding: 0.25rem;
485
+ padding: var(--fd-space-1);
424
486
  }
425
487
 
426
488
  .flowdrop-p--2 {
427
- padding: 0.5rem;
489
+ padding: var(--fd-space-2);
428
490
  }
429
491
 
430
492
  .flowdrop-p--3 {
431
- padding: 0.75rem;
493
+ padding: var(--fd-space-3);
432
494
  }
433
495
 
434
496
  .flowdrop-p--4 {
435
- padding: 1rem;
497
+ padding: var(--fd-space-4);
436
498
  }
437
499
 
438
500
  .flowdrop-m--0 {
@@ -440,35 +502,35 @@
440
502
  }
441
503
 
442
504
  .flowdrop-mb--1 {
443
- margin-bottom: 0.25rem;
505
+ margin-bottom: var(--fd-space-1);
444
506
  }
445
507
 
446
508
  .flowdrop-mb--2 {
447
- margin-bottom: 0.5rem;
509
+ margin-bottom: var(--fd-space-2);
448
510
  }
449
511
 
450
512
  .flowdrop-mb--3 {
451
- margin-bottom: 0.75rem;
513
+ margin-bottom: var(--fd-space-3);
452
514
  }
453
515
 
454
516
  .flowdrop-mb--4 {
455
- margin-bottom: 1rem;
517
+ margin-bottom: var(--fd-space-4);
456
518
  }
457
519
 
458
520
  .flowdrop-text--xs {
459
- font-size: 0.75rem;
521
+ font-size: var(--fd-text-xs);
460
522
  }
461
523
 
462
524
  .flowdrop-text--sm {
463
- font-size: 0.875rem;
525
+ font-size: var(--fd-text-sm);
464
526
  }
465
527
 
466
528
  .flowdrop-text--lg {
467
- font-size: 1.125rem;
529
+ font-size: var(--fd-text-lg);
468
530
  }
469
531
 
470
532
  .flowdrop-text--xl {
471
- font-size: 1.25rem;
533
+ font-size: var(--fd-text-xl);
472
534
  }
473
535
 
474
536
  .flowdrop-font--bold {
@@ -484,55 +546,55 @@
484
546
  }
485
547
 
486
548
  .flowdrop-text--gray {
487
- color: #6b7280;
549
+ color: var(--fd-muted-foreground);
488
550
  }
489
551
 
490
552
  .flowdrop-text--gray-dark {
491
- color: #374151;
553
+ color: var(--fd-foreground);
492
554
  }
493
555
 
494
556
  .flowdrop-bg--white {
495
- background-color: #ffffff;
557
+ background-color: var(--fd-background);
496
558
  }
497
559
 
498
560
  .flowdrop-bg--gray {
499
- background-color: #f9fafb;
561
+ background-color: var(--fd-muted);
500
562
  }
501
563
 
502
564
  .flowdrop-bg--gray-light {
503
- background-color: #f3f4f6;
565
+ background-color: var(--fd-subtle);
504
566
  }
505
567
 
506
568
  .flowdrop-border {
507
- border: 1px solid #e5e7eb;
569
+ border: 1px solid var(--fd-border);
508
570
  }
509
571
 
510
572
  .flowdrop-border--b {
511
- border-bottom: 1px solid #e5e7eb;
573
+ border-bottom: 1px solid var(--fd-border);
512
574
  }
513
575
 
514
576
  .flowdrop-border--t {
515
- border-top: 1px solid #e5e7eb;
577
+ border-top: 1px solid var(--fd-border);
516
578
  }
517
579
 
518
580
  .flowdrop-border--r {
519
- border-right: 1px solid #e5e7eb;
581
+ border-right: 1px solid var(--fd-border);
520
582
  }
521
583
 
522
584
  .flowdrop-rounded {
523
- border-radius: 0.375rem;
585
+ border-radius: var(--fd-radius-md);
524
586
  }
525
587
 
526
588
  .flowdrop-rounded--lg {
527
- border-radius: 0.5rem;
589
+ border-radius: var(--fd-radius-lg);
528
590
  }
529
591
 
530
592
  .flowdrop-shadow {
531
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
593
+ box-shadow: var(--fd-shadow-sm);
532
594
  }
533
595
 
534
596
  .flowdrop-shadow--lg {
535
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
597
+ box-shadow: var(--fd-shadow-md);
536
598
  }
537
599
 
538
600
  .flowdrop-w--full {
@@ -568,7 +630,7 @@
568
630
  }
569
631
 
570
632
  .flowdrop-transition {
571
- transition: all 0.2s ease-in-out;
633
+ transition: all var(--fd-transition-normal);
572
634
  }
573
635
 
574
636
  .flowdrop-truncate {
@@ -618,683 +680,338 @@
618
680
 
619
681
  /* Color system - Category colors */
620
682
  .flowdrop-color--primary {
621
- background-color: #3b82f6;
622
- color: #ffffff;
683
+ background-color: var(--fd-primary);
684
+ color: var(--fd-primary-foreground);
623
685
  }
624
686
 
625
687
  .flowdrop-color--primary-light {
626
- background-color: #dbeafe;
627
- color: #1e40af;
688
+ background-color: var(--fd-primary-muted);
689
+ color: var(--fd-primary-hover);
628
690
  }
629
691
 
630
692
  .flowdrop-color--primary-text {
631
- color: #1e40af;
693
+ color: var(--fd-primary);
632
694
  }
633
695
 
634
696
  .flowdrop-color--primary-border {
635
- border-color: #93c5fd;
697
+ border-color: var(--fd-primary);
636
698
  }
637
699
 
638
700
  .flowdrop-color--secondary {
639
- background-color: #6b7280;
640
- color: #ffffff;
701
+ background-color: var(--fd-secondary);
702
+ color: var(--fd-secondary-foreground);
641
703
  }
642
704
 
643
705
  .flowdrop-color--secondary-light {
644
- background-color: #f3f4f6;
645
- color: #374151;
706
+ background-color: var(--fd-secondary);
707
+ color: var(--fd-secondary-foreground);
646
708
  }
647
709
 
648
710
  .flowdrop-color--secondary-text {
649
- color: #374151;
711
+ color: var(--fd-secondary-foreground);
650
712
  }
651
713
 
652
714
  .flowdrop-color--secondary-border {
653
- border-color: #d1d5db;
715
+ border-color: var(--fd-border);
654
716
  }
655
717
 
656
718
  .flowdrop-color--success {
657
- background-color: #10b981;
658
- color: #ffffff;
719
+ background-color: var(--fd-success);
720
+ color: var(--fd-success-foreground);
659
721
  }
660
722
 
661
723
  .flowdrop-color--success-light {
662
- background-color: #d1fae5;
663
- color: #065f46;
724
+ background-color: var(--fd-success-muted);
725
+ color: var(--fd-success-hover);
664
726
  }
665
727
 
666
728
  .flowdrop-color--success-text {
667
- color: #065f46;
729
+ color: var(--fd-success);
668
730
  }
669
731
 
670
732
  .flowdrop-color--success-border {
671
- border-color: #6ee7b7;
733
+ border-color: var(--fd-success);
672
734
  }
673
735
 
674
736
  .flowdrop-color--warning {
675
- background-color: #f59e0b;
676
- color: #ffffff;
737
+ background-color: var(--fd-warning);
738
+ color: var(--fd-warning-foreground);
677
739
  }
678
740
 
679
741
  .flowdrop-color--warning-light {
680
- background-color: #fef3c7;
681
- color: #92400e;
742
+ background-color: var(--fd-warning-muted);
743
+ color: var(--fd-warning-hover);
682
744
  }
683
745
 
684
746
  .flowdrop-color--warning-text {
685
- color: #92400e;
747
+ color: var(--fd-warning);
686
748
  }
687
749
 
688
750
  .flowdrop-color--warning-border {
689
- border-color: #fbbf24;
751
+ border-color: var(--fd-warning);
690
752
  }
691
753
 
692
754
  .flowdrop-color--error {
693
- background-color: #ef4444;
694
- color: #ffffff;
755
+ background-color: var(--fd-error);
756
+ color: var(--fd-error-foreground);
695
757
  }
696
758
 
697
759
  .flowdrop-color--error-light {
698
- background-color: #fee2e2;
699
- color: #991b1b;
760
+ background-color: var(--fd-error-muted);
761
+ color: var(--fd-error-hover);
700
762
  }
701
763
 
702
764
  .flowdrop-color--error-text {
703
- color: #991b1b;
765
+ color: var(--fd-error);
704
766
  }
705
767
 
706
768
  .flowdrop-color--error-border {
707
- border-color: #f87171;
769
+ border-color: var(--fd-error);
708
770
  }
709
771
 
710
772
  .flowdrop-color--info {
711
- background-color: #06b6d4;
712
- color: #ffffff;
773
+ background-color: var(--fd-info);
774
+ color: var(--fd-info-foreground);
713
775
  }
714
776
 
715
777
  .flowdrop-color--info-light {
716
- background-color: #cffafe;
717
- color: #0e7490;
778
+ background-color: var(--fd-info-muted);
779
+ color: var(--fd-info);
718
780
  }
719
781
 
720
782
  .flowdrop-color--info-text {
721
- color: #0e7490;
783
+ color: var(--fd-info);
722
784
  }
723
785
 
724
786
  .flowdrop-color--info-border {
725
- border-color: #67e8f9;
787
+ border-color: var(--fd-info);
726
788
  }
727
789
 
728
790
  .flowdrop-color--accent {
729
- background-color: #8b5cf6;
730
- color: #ffffff;
791
+ background-color: var(--fd-accent);
792
+ color: var(--fd-accent-foreground);
731
793
  }
732
794
 
733
795
  .flowdrop-color--accent-light {
734
- background-color: #ede9fe;
735
- color: #5b21b6;
796
+ background-color: var(--fd-accent-muted);
797
+ color: var(--fd-accent-hover);
736
798
  }
737
799
 
738
800
  .flowdrop-color--accent-text {
739
- color: #5b21b6;
801
+ color: var(--fd-accent);
740
802
  }
741
803
 
742
804
  .flowdrop-color--accent-border {
743
- border-color: #a78bfa;
805
+ border-color: var(--fd-accent);
744
806
  }
745
807
 
746
808
  .flowdrop-color--neutral {
747
- background-color: #6b7280;
748
- color: #ffffff;
809
+ background-color: var(--fd-muted-foreground);
810
+ color: var(--fd-background);
749
811
  }
750
812
 
751
813
  .flowdrop-color--neutral-light {
752
- background-color: #f9fafb;
753
- color: #374151;
814
+ background-color: var(--fd-muted);
815
+ color: var(--fd-foreground);
754
816
  }
755
817
 
756
818
  .flowdrop-color--neutral-text {
757
- color: #374151;
819
+ color: var(--fd-foreground);
758
820
  }
759
821
 
760
822
  .flowdrop-color--neutral-border {
761
- border-color: #d1d5db;
823
+ border-color: var(--fd-border);
762
824
  }
763
825
 
764
826
  .flowdrop-color--base {
765
- background-color: #ffffff;
766
- color: #111827;
827
+ background-color: var(--fd-background);
828
+ color: var(--fd-foreground);
767
829
  }
768
830
 
769
831
  .flowdrop-color--base-light {
770
- background-color: #f9fafb;
771
- color: #374151;
832
+ background-color: var(--fd-muted);
833
+ color: var(--fd-foreground);
772
834
  }
773
835
 
774
836
  .flowdrop-color--base-text {
775
- color: #111827;
837
+ color: var(--fd-foreground);
776
838
  }
777
839
 
778
840
  .flowdrop-color--base-border {
779
- border-color: #e5e7eb;
841
+ border-color: var(--fd-border);
780
842
  }
781
843
 
782
844
  /* Data type colors for ports */
783
845
  .flowdrop-color--emerald {
784
- background-color: var(--cmp-node-color-emerald);
846
+ background-color: var(--fd-node-emerald);
785
847
  color: #ffffff;
786
848
  }
787
849
 
788
850
  .flowdrop-color--blue {
789
- background-color: var(--cmp-node-color-blue);
851
+ background-color: var(--fd-node-blue);
790
852
  color: #ffffff;
791
853
  }
792
854
 
793
855
  .flowdrop-color--purple {
794
- background-color: var(--cmp-node-color-purple);
856
+ background-color: var(--fd-node-purple);
795
857
  color: #ffffff;
796
858
  }
797
859
 
798
860
  .flowdrop-color--amber {
799
- background-color: var(--cmp-node-color-amber);
861
+ background-color: var(--fd-node-amber);
800
862
  color: #ffffff;
801
863
  }
802
864
 
803
865
  .flowdrop-color--orange {
804
- background-color: var(--cmp-node-color-orange);
866
+ background-color: var(--fd-node-orange);
805
867
  color: #ffffff;
806
868
  }
807
869
 
808
870
  .flowdrop-color--red {
809
- background-color: var(--cmp-node-color-red);
871
+ background-color: var(--fd-node-red);
810
872
  color: #ffffff;
811
873
  }
812
874
 
813
875
  .flowdrop-color--pink {
814
- background-color: var(--cmp-node-color-pink);
876
+ background-color: var(--fd-node-pink);
815
877
  color: #ffffff;
816
878
  }
817
879
 
818
880
  .flowdrop-color--indigo {
819
- background-color: var(--cmp-node-color-indigo);
881
+ background-color: var(--fd-node-indigo);
820
882
  color: #ffffff;
821
883
  }
822
884
 
823
885
  .flowdrop-color--teal {
824
- background-color: var(--cmp-node-color-teal);
886
+ background-color: var(--fd-node-teal);
825
887
  color: #ffffff;
826
888
  }
827
889
 
828
890
  .flowdrop-color--cyan {
829
- background-color: var(--cmp-node-color-cyan);
891
+ background-color: var(--fd-node-cyan);
830
892
  color: #ffffff;
831
893
  }
832
894
 
833
895
  .flowdrop-color--lime {
834
- background-color: var(--cmp-node-color-lime);
896
+ background-color: var(--fd-node-lime);
835
897
  color: #ffffff;
836
898
  }
837
899
 
838
900
  .flowdrop-color--slate {
839
- background-color: var(--cmp-node-color-slate);
901
+ background-color: var(--fd-node-slate);
840
902
  color: #ffffff;
841
903
  }
842
904
 
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);
905
+ /* =========================================================================
906
+ COMPONENT-SPECIFIC TOKENS
907
+ These extend the semantic tokens for specific component needs.
908
+ All use the --fd-* semantic tokens as their foundation.
909
+ ========================================================================= */
1182
910
 
911
+ :root {
1183
912
  /* =========================================================================
1184
913
  Interrupt Component Tokens
1185
914
  ========================================================================= */
1186
915
 
1187
916
  /* 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);
917
+ --fd-interrupt-pending-bg: linear-gradient(135deg, var(--fd-warning-muted) 0%, var(--fd-warning-muted) 100%);
918
+ --fd-interrupt-pending-border: var(--fd-warning);
919
+ --fd-interrupt-pending-shadow: rgba(245, 158, 11, 0.15);
920
+ --fd-interrupt-pending-avatar: var(--fd-warning);
921
+ --fd-interrupt-pending-text: var(--fd-warning-hover);
922
+ --fd-interrupt-pending-text-light: var(--fd-warning-hover);
1198
923
 
1199
924
  /* 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);
925
+ --fd-interrupt-completed-bg: linear-gradient(135deg, var(--fd-info-muted) 0%, var(--fd-primary-muted) 100%);
926
+ --fd-interrupt-completed-border: var(--fd-primary);
927
+ --fd-interrupt-completed-shadow: rgba(59, 130, 246, 0.15);
928
+ --fd-interrupt-completed-avatar: var(--fd-primary);
929
+ --fd-interrupt-completed-text: var(--fd-primary-hover);
930
+ --fd-interrupt-completed-text-light: var(--fd-primary);
1210
931
 
1211
932
  /* 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);
933
+ --fd-interrupt-cancelled-bg: linear-gradient(135deg, var(--fd-muted) 0%, var(--fd-subtle) 100%);
934
+ --fd-interrupt-cancelled-border: var(--fd-muted-foreground);
935
+ --fd-interrupt-cancelled-shadow: rgba(107, 114, 128, 0.15);
936
+ --fd-interrupt-cancelled-avatar: var(--fd-muted-foreground);
937
+ --fd-interrupt-cancelled-text: var(--fd-muted-foreground);
938
+ --fd-interrupt-cancelled-text-light: var(--fd-muted-foreground);
1222
939
 
1223
940
  /* 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);
941
+ --fd-interrupt-error-bg: linear-gradient(135deg, var(--fd-error-muted) 0%, var(--fd-error-muted) 100%);
942
+ --fd-interrupt-error-border: var(--fd-error);
943
+ --fd-interrupt-error-shadow: rgba(239, 68, 68, 0.15);
944
+ --fd-interrupt-error-avatar: var(--fd-error);
945
+ --fd-interrupt-error-text: var(--fd-error-hover);
946
+ --fd-interrupt-error-text-light: var(--fd-error);
1234
947
 
1235
948
  /* 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);
949
+ --fd-interrupt-prompt-bg: rgba(255, 255, 255, 0.85);
950
+ --fd-interrupt-prompt-border-pending: rgba(245, 158, 11, 0.2);
951
+ --fd-interrupt-prompt-border-completed: rgba(59, 130, 246, 0.2);
952
+ --fd-interrupt-prompt-border-cancelled: rgba(107, 114, 128, 0.2);
953
+ --fd-interrupt-prompt-border-error: rgba(239, 68, 68, 0.2);
1241
954
 
1242
955
  /* 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);
956
+ --fd-interrupt-btn-primary-bg: linear-gradient(135deg, var(--fd-primary) 0%, var(--fd-primary-hover) 100%);
957
+ --fd-interrupt-btn-primary-bg-hover: linear-gradient(135deg, var(--fd-primary-hover) 0%, var(--fd-primary-hover) 100%);
958
+ --fd-interrupt-btn-primary-shadow: rgba(59, 130, 246, 0.3);
959
+ --fd-interrupt-btn-secondary-bg: var(--fd-muted);
960
+ --fd-interrupt-btn-secondary-border: var(--fd-border);
961
+ --fd-interrupt-btn-secondary-text: var(--fd-foreground);
1257
962
 
1258
963
  /* 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;
964
+ --fd-interrupt-selected-confirm-bg: var(--fd-interrupt-btn-primary-bg);
965
+ --fd-interrupt-selected-confirm-border: var(--fd-primary-hover);
966
+ --fd-interrupt-selected-confirm-glow: rgba(59, 130, 246, 0.3);
967
+ --fd-interrupt-selected-decline-bg: var(--fd-error-muted);
968
+ --fd-interrupt-selected-decline-border: var(--fd-error);
969
+ --fd-interrupt-selected-decline-text: var(--fd-error);
970
+ --fd-interrupt-selected-decline-glow: rgba(248, 113, 113, 0.2);
971
+ --fd-interrupt-not-selected-opacity: 0.4;
1267
972
 
1268
973
  /* 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);
974
+ --fd-interrupt-badge-completed-bg: var(--fd-primary-muted);
975
+ --fd-interrupt-badge-completed-text: var(--fd-primary);
976
+
977
+ /* =========================================================================
978
+ Notes Node Component Tokens
979
+ Notes node now uses standard node styling (--fd-card, --fd-node-border)
980
+ for a consistent look and to avoid confusion with selected state.
981
+ ========================================================================= */
982
+
983
+ --fd-notes-node-width: 500px;
984
+ --fd-notes-node-min-width: 250px;
985
+ --fd-notes-node-max-width: 500px;
986
+ --fd-notes-node-backdrop-filter: blur(8px);
987
+ }
988
+
989
+ /* Dark mode overrides for interrupt component tokens */
990
+ [data-theme="dark"] {
991
+ /* Interrupt prompt inner styling - dark background for dark mode */
992
+ --fd-interrupt-prompt-bg: rgba(30, 30, 35, 0.95);
993
+ --fd-interrupt-prompt-border-pending: rgba(251, 191, 36, 0.25);
994
+ --fd-interrupt-prompt-border-completed: rgba(96, 165, 250, 0.25);
995
+ --fd-interrupt-prompt-border-cancelled: rgba(156, 163, 175, 0.25);
996
+ --fd-interrupt-prompt-border-error: rgba(248, 113, 113, 0.25);
997
+
998
+ /* Interrupt button tokens - adjusted for dark mode */
999
+ --fd-interrupt-btn-secondary-bg: var(--fd-secondary);
1000
+ --fd-interrupt-btn-secondary-border: var(--fd-border);
1001
+ --fd-interrupt-btn-secondary-text: var(--fd-foreground);
1002
+
1003
+ /* Selection tokens - adjusted colors for dark mode visibility */
1004
+ --fd-interrupt-selected-decline-bg: rgba(248, 113, 113, 0.15);
1005
+ --fd-interrupt-selected-decline-glow: rgba(248, 113, 113, 0.25);
1006
+
1007
+ /* Badge tokens - adjusted for dark mode */
1008
+ --fd-interrupt-badge-completed-bg: var(--fd-primary-muted);
1009
+ --fd-interrupt-badge-completed-text: var(--fd-primary);
1296
1010
  }
1297
1011
 
1012
+ /* Dark mode overrides for notes node tokens */
1013
+ /* Notes node now uses standard --fd-card background which is already theme-aware */
1014
+
1298
1015
  /* Markdown Display Component Styles */
1299
1016
  /* These styles are used for dynamically rendered markdown content */
1300
1017
 
@@ -1413,14 +1130,14 @@
1413
1130
 
1414
1131
  /* Links */
1415
1132
  .markdown-display a {
1416
- color: #3b82f6;
1133
+ color: var(--fd-primary);
1417
1134
  text-decoration: underline;
1418
1135
  text-decoration-thickness: 1px;
1419
1136
  text-underline-offset: 2px;
1420
1137
  }
1421
1138
 
1422
1139
  .markdown-display a:hover {
1423
- color: #2563eb;
1140
+ color: var(--fd-primary-hover);
1424
1141
  text-decoration-thickness: 2px;
1425
1142
  }
1426
1143
 
@@ -1499,4 +1216,4 @@
1499
1216
 
1500
1217
  .markdown-display--large h3 {
1501
1218
  font-size: 1.25rem;
1502
- }
1219
+ }