@d34dman/flowdrop 0.0.1

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 (46) hide show
  1. package/README.md +293 -0
  2. package/dist/adapters/WorkflowAdapter.d.ts +166 -0
  3. package/dist/adapters/WorkflowAdapter.js +337 -0
  4. package/dist/api/client.d.ts +79 -0
  5. package/dist/api/client.js +208 -0
  6. package/dist/app.css +0 -0
  7. package/dist/clients/ApiClient.d.ts +203 -0
  8. package/dist/clients/ApiClient.js +212 -0
  9. package/dist/components/App.svelte +237 -0
  10. package/dist/components/App.svelte.d.ts +3 -0
  11. package/dist/components/CanvasBanner.svelte +51 -0
  12. package/dist/components/CanvasBanner.svelte.d.ts +22 -0
  13. package/dist/components/LoadingSpinner.svelte +36 -0
  14. package/dist/components/LoadingSpinner.svelte.d.ts +8 -0
  15. package/dist/components/Node.svelte +38 -0
  16. package/dist/components/Node.svelte.d.ts +4 -0
  17. package/dist/components/NodeSidebar.svelte +500 -0
  18. package/dist/components/NodeSidebar.svelte.d.ts +9 -0
  19. package/dist/components/WorkflowEditor.svelte +542 -0
  20. package/dist/components/WorkflowEditor.svelte.d.ts +10 -0
  21. package/dist/components/WorkflowNode.svelte +558 -0
  22. package/dist/components/WorkflowNode.svelte.d.ts +11 -0
  23. package/dist/data/samples.d.ts +17 -0
  24. package/dist/data/samples.js +1193 -0
  25. package/dist/examples/adapter-usage.d.ts +66 -0
  26. package/dist/examples/adapter-usage.js +138 -0
  27. package/dist/examples/api-client-usage.d.ts +31 -0
  28. package/dist/examples/api-client-usage.js +241 -0
  29. package/dist/index.d.ts +19 -0
  30. package/dist/index.js +27 -0
  31. package/dist/services/api.d.ts +110 -0
  32. package/dist/services/api.js +149 -0
  33. package/dist/services/workflowStorage.d.ts +37 -0
  34. package/dist/services/workflowStorage.js +116 -0
  35. package/dist/styles/base.css +858 -0
  36. package/dist/svelte-app.d.ts +17 -0
  37. package/dist/svelte-app.js +30 -0
  38. package/dist/types/index.d.ts +179 -0
  39. package/dist/types/index.js +4 -0
  40. package/dist/utils/colors.d.ts +121 -0
  41. package/dist/utils/colors.js +240 -0
  42. package/dist/utils/connections.d.ts +47 -0
  43. package/dist/utils/connections.js +240 -0
  44. package/dist/utils/icons.d.ts +102 -0
  45. package/dist/utils/icons.js +149 -0
  46. package/package.json +99 -0
@@ -0,0 +1,858 @@
1
+ /* Base CSS with BEM syntax to replace Tailwind and DaisyUI */
2
+
3
+ /* Reset and base styles */
4
+ * {
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ body {
9
+ margin: 0;
10
+ padding: 0;
11
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
12
+ overflow: hidden;
13
+ }
14
+
15
+ /* Layout utilities */
16
+ .flowdrop-layout {
17
+ display: flex;
18
+ height: 100vh;
19
+ width: 100%;
20
+ }
21
+
22
+ .flowdrop-layout__main {
23
+ flex: 1;
24
+ display: flex;
25
+ flex-direction: column;
26
+ min-height: 0;
27
+ }
28
+
29
+ .flowdrop-layout__sidebar {
30
+ width: 320px;
31
+ height: 100%;
32
+ display: flex;
33
+ flex-direction: column;
34
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
35
+ }
36
+
37
+ /* Button styles */
38
+ .flowdrop-btn {
39
+ display: inline-flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ padding: 0.5rem 1rem;
43
+ border: 1px solid transparent;
44
+ border-radius: 0.375rem;
45
+ font-size: 0.875rem;
46
+ font-weight: 500;
47
+ text-decoration: none;
48
+ cursor: pointer;
49
+ transition: all 0.2s ease-in-out;
50
+ background-color: #ffffff;
51
+ color: #374151;
52
+ min-height: 2.5rem;
53
+ }
54
+
55
+ .flowdrop-btn:hover {
56
+ background-color: #f9fafb;
57
+ border-color: #d1d5db;
58
+ }
59
+
60
+ .flowdrop-btn:focus {
61
+ outline: 2px solid #3b82f6;
62
+ outline-offset: 2px;
63
+ }
64
+
65
+ .flowdrop-btn--primary {
66
+ background-color: #3b82f6;
67
+ color: #ffffff;
68
+ border-color: #3b82f6;
69
+ }
70
+
71
+ .flowdrop-btn--primary:hover {
72
+ background-color: #2563eb;
73
+ border-color: #2563eb;
74
+ }
75
+
76
+ .flowdrop-btn--secondary {
77
+ background-color: #6b7280;
78
+ color: #ffffff;
79
+ border-color: #6b7280;
80
+ }
81
+
82
+ .flowdrop-btn--secondary:hover {
83
+ background-color: #4b5563;
84
+ border-color: #4b5563;
85
+ }
86
+
87
+ .flowdrop-btn--outline {
88
+ background-color: transparent;
89
+ color: #374151;
90
+ border-color: #d1d5db;
91
+ }
92
+
93
+ .flowdrop-btn--outline:hover {
94
+ background-color: #f9fafb;
95
+ border-color: #9ca3af;
96
+ }
97
+
98
+ .flowdrop-btn--ghost {
99
+ background-color: transparent;
100
+ color: #374151;
101
+ border-color: transparent;
102
+ }
103
+
104
+ .flowdrop-btn--ghost:hover {
105
+ background-color: #f3f4f6;
106
+ }
107
+
108
+ .flowdrop-btn--sm {
109
+ padding: 0.375rem 0.75rem;
110
+ font-size: 0.75rem;
111
+ min-height: 2rem;
112
+ }
113
+
114
+ .flowdrop-btn--lg {
115
+ padding: 0.75rem 1.5rem;
116
+ font-size: 1rem;
117
+ min-height: 3rem;
118
+ }
119
+
120
+ /* Input styles */
121
+ .flowdrop-input {
122
+ display: block;
123
+ width: 100%;
124
+ padding: 0.5rem 0.75rem;
125
+ border: 1px solid #d1d5db;
126
+ border-radius: 0.375rem;
127
+ font-size: 0.875rem;
128
+ line-height: 1.25rem;
129
+ color: #111827;
130
+ background-color: #ffffff;
131
+ transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
132
+ }
133
+
134
+ .flowdrop-input:focus {
135
+ outline: none;
136
+ border-color: #3b82f6;
137
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
138
+ }
139
+
140
+ .flowdrop-input--sm {
141
+ padding: 0.375rem 0.5rem;
142
+ font-size: 0.75rem;
143
+ }
144
+
145
+ .flowdrop-input--lg {
146
+ padding: 0.75rem 1rem;
147
+ font-size: 1rem;
148
+ }
149
+
150
+ /* Card styles */
151
+ .flowdrop-card {
152
+ background-color: #ffffff;
153
+ border: 1px solid #e5e7eb;
154
+ border-radius: 0.5rem;
155
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
156
+ overflow: hidden;
157
+ }
158
+
159
+ .flowdrop-card--compact {
160
+ padding: 0.5rem;
161
+ }
162
+
163
+ .flowdrop-card__body {
164
+ padding: 1rem;
165
+ }
166
+
167
+ .flowdrop-card__header {
168
+ padding: 1rem 1rem 0.5rem;
169
+ border-bottom: 1px solid #f3f4f6;
170
+ }
171
+
172
+ .flowdrop-card__footer {
173
+ padding: 0.5rem 1rem 1rem;
174
+ border-top: 1px solid #f3f4f6;
175
+ }
176
+
177
+ /* Badge styles */
178
+ .flowdrop-badge {
179
+ display: inline-flex;
180
+ align-items: center;
181
+ padding: 0.25rem 0.5rem;
182
+ font-size: 0.75rem;
183
+ font-weight: 500;
184
+ border-radius: 0.375rem;
185
+ background-color: #f3f4f6;
186
+ color: #374151;
187
+ }
188
+
189
+ .flowdrop-badge--primary {
190
+ background-color: #dbeafe;
191
+ color: #1e40af;
192
+ }
193
+
194
+ .flowdrop-badge--secondary {
195
+ background-color: #e5e7eb;
196
+ color: #374151;
197
+ }
198
+
199
+ .flowdrop-badge--success {
200
+ background-color: #d1fae5;
201
+ color: #065f46;
202
+ }
203
+
204
+ .flowdrop-badge--warning {
205
+ background-color: #fef3c7;
206
+ color: #92400e;
207
+ }
208
+
209
+ .flowdrop-badge--error {
210
+ background-color: #fee2e2;
211
+ color: #991b1b;
212
+ }
213
+
214
+ /* Navbar styles */
215
+ .flowdrop-navbar {
216
+ display: flex;
217
+ align-items: center;
218
+ justify-content: space-between;
219
+ padding: 0.75rem 1rem;
220
+ background-color: #ffffff;
221
+ border-bottom: 1px solid #e5e7eb;
222
+ }
223
+
224
+ .flowdrop-navbar__start {
225
+ display: flex;
226
+ align-items: center;
227
+ gap: 0.75rem;
228
+ }
229
+
230
+ .flowdrop-navbar__center {
231
+ display: flex;
232
+ align-items: center;
233
+ justify-content: center;
234
+ flex: 1;
235
+ }
236
+
237
+ .flowdrop-navbar__end {
238
+ display: flex;
239
+ align-items: center;
240
+ gap: 0.75rem;
241
+ }
242
+
243
+ /* Join button group */
244
+ .flowdrop-join {
245
+ display: inline-flex;
246
+ border-radius: 0.375rem;
247
+ overflow: hidden;
248
+ }
249
+
250
+ .flowdrop-join__item {
251
+ border-radius: 0;
252
+ border-right: 1px solid #d1d5db;
253
+ }
254
+
255
+ .flowdrop-join__item:first-child {
256
+ border-top-left-radius: 0.375rem;
257
+ border-bottom-left-radius: 0.375rem;
258
+ }
259
+
260
+ .flowdrop-join__item:last-child {
261
+ border-top-right-radius: 0.375rem;
262
+ border-bottom-right-radius: 0.375rem;
263
+ border-right: none;
264
+ }
265
+
266
+ /* Hero section */
267
+ .flowdrop-hero {
268
+ display: flex;
269
+ align-items: center;
270
+ justify-content: center;
271
+ min-height: 100%;
272
+ padding: 2rem;
273
+ }
274
+
275
+ .flowdrop-hero__content {
276
+ text-align: center;
277
+ max-width: 28rem;
278
+ }
279
+
280
+ .flowdrop-hero__icon {
281
+ font-size: 3.75rem;
282
+ margin-bottom: 1rem;
283
+ }
284
+
285
+ .flowdrop-hero__title {
286
+ font-size: 1.125rem;
287
+ font-weight: 700;
288
+ margin-bottom: 0.5rem;
289
+ color: #111827;
290
+ }
291
+
292
+ .flowdrop-hero__description {
293
+ font-size: 0.875rem;
294
+ color: #6b7280;
295
+ margin-bottom: 1rem;
296
+ }
297
+
298
+ /* Divider */
299
+ .flowdrop-divider {
300
+ display: flex;
301
+ align-items: center;
302
+ margin: 1rem 0;
303
+ }
304
+
305
+ .flowdrop-divider::before {
306
+ content: "";
307
+ flex: 1;
308
+ height: 1px;
309
+ background-color: #e5e7eb;
310
+ }
311
+
312
+ .flowdrop-divider__text {
313
+ padding: 0 0.75rem;
314
+ font-size: 0.75rem;
315
+ font-weight: 600;
316
+ color: #6b7280;
317
+ text-transform: uppercase;
318
+ letter-spacing: 0.05em;
319
+ }
320
+
321
+ .flowdrop-divider::after {
322
+ content: "";
323
+ flex: 1;
324
+ height: 1px;
325
+ background-color: #e5e7eb;
326
+ }
327
+
328
+ /* Details/Summary */
329
+ .flowdrop-details {
330
+ background-color: #ffffff;
331
+ border-radius: 0.5rem;
332
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
333
+ overflow: hidden;
334
+ }
335
+
336
+ .flowdrop-details__summary {
337
+ display: flex;
338
+ align-items: center;
339
+ justify-content: space-between;
340
+ padding: 0.75rem;
341
+ font-size: 0.875rem;
342
+ font-weight: 500;
343
+ cursor: pointer;
344
+ transition: background-color 0.2s ease-in-out;
345
+ }
346
+
347
+ .flowdrop-details__summary:hover {
348
+ background-color: #f9fafb;
349
+ }
350
+
351
+ .flowdrop-details__content {
352
+ padding: 0.75rem;
353
+ padding-top: 0;
354
+ }
355
+
356
+ /* Loading spinner */
357
+ .flowdrop-spinner {
358
+ display: inline-block;
359
+ width: 1rem;
360
+ height: 1rem;
361
+ border: 2px solid #e5e7eb;
362
+ border-top: 2px solid #3b82f6;
363
+ border-radius: 50%;
364
+ animation: flowdrop-spin 1s linear infinite;
365
+ }
366
+
367
+ .flowdrop-spinner--sm {
368
+ width: 0.75rem;
369
+ height: 0.75rem;
370
+ border-width: 1px;
371
+ }
372
+
373
+ .flowdrop-spinner--lg {
374
+ width: 1.5rem;
375
+ height: 1.5rem;
376
+ border-width: 3px;
377
+ }
378
+
379
+ @keyframes flowdrop-spin {
380
+ 0% { transform: rotate(0deg); }
381
+ 100% { transform: rotate(360deg); }
382
+ }
383
+
384
+ /* Utility classes */
385
+ .flowdrop-flex {
386
+ display: flex;
387
+ }
388
+
389
+ .flowdrop-flex--col {
390
+ flex-direction: column;
391
+ }
392
+
393
+ .flowdrop-flex--center {
394
+ align-items: center;
395
+ justify-content: center;
396
+ }
397
+
398
+ .flowdrop-flex--between {
399
+ justify-content: space-between;
400
+ }
401
+
402
+ .flowdrop-flex--1 {
403
+ flex: 1;
404
+ }
405
+
406
+ .flowdrop-gap--1 {
407
+ gap: 0.25rem;
408
+ }
409
+
410
+ .flowdrop-gap--2 {
411
+ gap: 0.5rem;
412
+ }
413
+
414
+ .flowdrop-gap--3 {
415
+ gap: 0.75rem;
416
+ }
417
+
418
+ .flowdrop-gap--4 {
419
+ gap: 1rem;
420
+ }
421
+
422
+ .flowdrop-p--1 {
423
+ padding: 0.25rem;
424
+ }
425
+
426
+ .flowdrop-p--2 {
427
+ padding: 0.5rem;
428
+ }
429
+
430
+ .flowdrop-p--3 {
431
+ padding: 0.75rem;
432
+ }
433
+
434
+ .flowdrop-p--4 {
435
+ padding: 1rem;
436
+ }
437
+
438
+ .flowdrop-m--0 {
439
+ margin: 0;
440
+ }
441
+
442
+ .flowdrop-mb--1 {
443
+ margin-bottom: 0.25rem;
444
+ }
445
+
446
+ .flowdrop-mb--2 {
447
+ margin-bottom: 0.5rem;
448
+ }
449
+
450
+ .flowdrop-mb--3 {
451
+ margin-bottom: 0.75rem;
452
+ }
453
+
454
+ .flowdrop-mb--4 {
455
+ margin-bottom: 1rem;
456
+ }
457
+
458
+ .flowdrop-text--xs {
459
+ font-size: 0.75rem;
460
+ }
461
+
462
+ .flowdrop-text--sm {
463
+ font-size: 0.875rem;
464
+ }
465
+
466
+ .flowdrop-text--lg {
467
+ font-size: 1.125rem;
468
+ }
469
+
470
+ .flowdrop-text--xl {
471
+ font-size: 1.25rem;
472
+ }
473
+
474
+ .flowdrop-font--bold {
475
+ font-weight: 700;
476
+ }
477
+
478
+ .flowdrop-font--medium {
479
+ font-weight: 500;
480
+ }
481
+
482
+ .flowdrop-text--center {
483
+ text-align: center;
484
+ }
485
+
486
+ .flowdrop-text--gray {
487
+ color: #6b7280;
488
+ }
489
+
490
+ .flowdrop-text--gray-dark {
491
+ color: #374151;
492
+ }
493
+
494
+ .flowdrop-bg--white {
495
+ background-color: #ffffff;
496
+ }
497
+
498
+ .flowdrop-bg--gray {
499
+ background-color: #f9fafb;
500
+ }
501
+
502
+ .flowdrop-bg--gray-light {
503
+ background-color: #f3f4f6;
504
+ }
505
+
506
+ .flowdrop-border {
507
+ border: 1px solid #e5e7eb;
508
+ }
509
+
510
+ .flowdrop-border--b {
511
+ border-bottom: 1px solid #e5e7eb;
512
+ }
513
+
514
+ .flowdrop-border--t {
515
+ border-top: 1px solid #e5e7eb;
516
+ }
517
+
518
+ .flowdrop-border--r {
519
+ border-right: 1px solid #e5e7eb;
520
+ }
521
+
522
+ .flowdrop-rounded {
523
+ border-radius: 0.375rem;
524
+ }
525
+
526
+ .flowdrop-rounded--lg {
527
+ border-radius: 0.5rem;
528
+ }
529
+
530
+ .flowdrop-shadow {
531
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
532
+ }
533
+
534
+ .flowdrop-shadow--lg {
535
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
536
+ }
537
+
538
+ .flowdrop-w--full {
539
+ width: 100%;
540
+ }
541
+
542
+ .flowdrop-h--full {
543
+ height: 100%;
544
+ }
545
+
546
+ .flowdrop-min-h--0 {
547
+ min-height: 0;
548
+ }
549
+
550
+ .flowdrop-overflow--hidden {
551
+ overflow: hidden;
552
+ }
553
+
554
+ .flowdrop-overflow--auto {
555
+ overflow: auto;
556
+ }
557
+
558
+ .flowdrop-cursor--pointer {
559
+ cursor: pointer;
560
+ }
561
+
562
+ .flowdrop-cursor--grab {
563
+ cursor: grab;
564
+ }
565
+
566
+ .flowdrop-cursor--grabbing {
567
+ cursor: grabbing;
568
+ }
569
+
570
+ .flowdrop-transition {
571
+ transition: all 0.2s ease-in-out;
572
+ }
573
+
574
+ .flowdrop-truncate {
575
+ overflow: hidden;
576
+ text-overflow: ellipsis;
577
+ white-space: nowrap;
578
+ }
579
+
580
+ .flowdrop-opacity--70 {
581
+ opacity: 0.7;
582
+ }
583
+
584
+ .flowdrop-opacity--60 {
585
+ opacity: 0.6;
586
+ }
587
+
588
+ /* Responsive utilities */
589
+ @media (min-width: 640px) {
590
+ .flowdrop-sm\\:flex {
591
+ display: flex;
592
+ }
593
+
594
+ .flowdrop-sm\\:hidden {
595
+ display: none;
596
+ }
597
+ }
598
+
599
+ @media (min-width: 768px) {
600
+ .flowdrop-md\\:flex {
601
+ display: flex;
602
+ }
603
+
604
+ .flowdrop-md\\:hidden {
605
+ display: none;
606
+ }
607
+ }
608
+
609
+ @media (min-width: 1024px) {
610
+ .flowdrop-lg\\:flex {
611
+ display: flex;
612
+ }
613
+
614
+ .flowdrop-lg\\:hidden {
615
+ display: none;
616
+ }
617
+ }
618
+
619
+ /* Color system - Category colors */
620
+ .flowdrop-color--primary {
621
+ background-color: #3b82f6;
622
+ color: #ffffff;
623
+ }
624
+
625
+ .flowdrop-color--primary-light {
626
+ background-color: #dbeafe;
627
+ color: #1e40af;
628
+ }
629
+
630
+ .flowdrop-color--primary-text {
631
+ color: #1e40af;
632
+ }
633
+
634
+ .flowdrop-color--primary-border {
635
+ border-color: #93c5fd;
636
+ }
637
+
638
+ .flowdrop-color--secondary {
639
+ background-color: #6b7280;
640
+ color: #ffffff;
641
+ }
642
+
643
+ .flowdrop-color--secondary-light {
644
+ background-color: #f3f4f6;
645
+ color: #374151;
646
+ }
647
+
648
+ .flowdrop-color--secondary-text {
649
+ color: #374151;
650
+ }
651
+
652
+ .flowdrop-color--secondary-border {
653
+ border-color: #d1d5db;
654
+ }
655
+
656
+ .flowdrop-color--success {
657
+ background-color: #10b981;
658
+ color: #ffffff;
659
+ }
660
+
661
+ .flowdrop-color--success-light {
662
+ background-color: #d1fae5;
663
+ color: #065f46;
664
+ }
665
+
666
+ .flowdrop-color--success-text {
667
+ color: #065f46;
668
+ }
669
+
670
+ .flowdrop-color--success-border {
671
+ border-color: #6ee7b7;
672
+ }
673
+
674
+ .flowdrop-color--warning {
675
+ background-color: #f59e0b;
676
+ color: #ffffff;
677
+ }
678
+
679
+ .flowdrop-color--warning-light {
680
+ background-color: #fef3c7;
681
+ color: #92400e;
682
+ }
683
+
684
+ .flowdrop-color--warning-text {
685
+ color: #92400e;
686
+ }
687
+
688
+ .flowdrop-color--warning-border {
689
+ border-color: #fbbf24;
690
+ }
691
+
692
+ .flowdrop-color--error {
693
+ background-color: #ef4444;
694
+ color: #ffffff;
695
+ }
696
+
697
+ .flowdrop-color--error-light {
698
+ background-color: #fee2e2;
699
+ color: #991b1b;
700
+ }
701
+
702
+ .flowdrop-color--error-text {
703
+ color: #991b1b;
704
+ }
705
+
706
+ .flowdrop-color--error-border {
707
+ border-color: #f87171;
708
+ }
709
+
710
+ .flowdrop-color--info {
711
+ background-color: #06b6d4;
712
+ color: #ffffff;
713
+ }
714
+
715
+ .flowdrop-color--info-light {
716
+ background-color: #cffafe;
717
+ color: #0e7490;
718
+ }
719
+
720
+ .flowdrop-color--info-text {
721
+ color: #0e7490;
722
+ }
723
+
724
+ .flowdrop-color--info-border {
725
+ border-color: #67e8f9;
726
+ }
727
+
728
+ .flowdrop-color--accent {
729
+ background-color: #8b5cf6;
730
+ color: #ffffff;
731
+ }
732
+
733
+ .flowdrop-color--accent-light {
734
+ background-color: #ede9fe;
735
+ color: #5b21b6;
736
+ }
737
+
738
+ .flowdrop-color--accent-text {
739
+ color: #5b21b6;
740
+ }
741
+
742
+ .flowdrop-color--accent-border {
743
+ border-color: #a78bfa;
744
+ }
745
+
746
+ .flowdrop-color--neutral {
747
+ background-color: #6b7280;
748
+ color: #ffffff;
749
+ }
750
+
751
+ .flowdrop-color--neutral-light {
752
+ background-color: #f9fafb;
753
+ color: #374151;
754
+ }
755
+
756
+ .flowdrop-color--neutral-text {
757
+ color: #374151;
758
+ }
759
+
760
+ .flowdrop-color--neutral-border {
761
+ border-color: #d1d5db;
762
+ }
763
+
764
+ .flowdrop-color--base {
765
+ background-color: #ffffff;
766
+ color: #111827;
767
+ }
768
+
769
+ .flowdrop-color--base-light {
770
+ background-color: #f9fafb;
771
+ color: #374151;
772
+ }
773
+
774
+ .flowdrop-color--base-text {
775
+ color: #111827;
776
+ }
777
+
778
+ .flowdrop-color--base-border {
779
+ border-color: #e5e7eb;
780
+ }
781
+
782
+ /* Data type colors for ports */
783
+ .flowdrop-color--emerald {
784
+ background-color: #10b981;
785
+ color: #ffffff;
786
+ }
787
+
788
+ .flowdrop-color--blue {
789
+ background-color: #3b82f6;
790
+ color: #ffffff;
791
+ }
792
+
793
+ .flowdrop-color--purple {
794
+ background-color: #8b5cf6;
795
+ color: #ffffff;
796
+ }
797
+
798
+ .flowdrop-color--amber {
799
+ background-color: #f59e0b;
800
+ color: #ffffff;
801
+ }
802
+
803
+ .flowdrop-color--orange {
804
+ background-color: #f97316;
805
+ color: #ffffff;
806
+ }
807
+
808
+ .flowdrop-color--red {
809
+ background-color: #ef4444;
810
+ color: #ffffff;
811
+ }
812
+
813
+ .flowdrop-color--pink {
814
+ background-color: #ec4899;
815
+ color: #ffffff;
816
+ }
817
+
818
+ .flowdrop-color--indigo {
819
+ background-color: #6366f1;
820
+ color: #ffffff;
821
+ }
822
+
823
+ .flowdrop-color--teal {
824
+ background-color: #14b8a6;
825
+ color: #ffffff;
826
+ }
827
+
828
+ .flowdrop-color--cyan {
829
+ background-color: #06b6d4;
830
+ color: #ffffff;
831
+ }
832
+
833
+ .flowdrop-color--lime {
834
+ background-color: #84cc16;
835
+ color: #ffffff;
836
+ }
837
+
838
+ .flowdrop-color--slate {
839
+ background-color: #64748b;
840
+ color: #ffffff;
841
+ }
842
+
843
+ :root {
844
+ /* Reference tokens (Tailwind palette) */
845
+ --color-ref-emerald-500: #10b981;
846
+ --color-ref-blue-600: #2563eb;
847
+ --color-ref-amber-500: #f59e0b;
848
+ --color-ref-orange-500: #f97316;
849
+ --color-ref-red-500: #ef4444;
850
+ --color-ref-pink-500: #ec4899;
851
+ --color-ref-indigo-500: #6366f1;
852
+ --color-ref-teal-500: #14b8a6;
853
+ --color-ref-cyan-500: #06b6d4;
854
+ --color-ref-lime-500: #84cc16;
855
+ --color-ref-slate-500: #64748b;
856
+ --color-ref-purple-600: #8b5cf6;
857
+ /* Add more as needed */
858
+ }