@d34dman/flowdrop 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +307 -215
  2. package/dist/adapters/WorkflowAdapter.d.ts +1 -1
  3. package/dist/adapters/WorkflowAdapter.js +30 -30
  4. package/dist/api/client.d.ts +24 -1
  5. package/dist/api/client.js +55 -38
  6. package/dist/api/enhanced-client.d.ts +46 -0
  7. package/dist/api/enhanced-client.js +211 -0
  8. package/dist/clients/ApiClient.d.ts +19 -23
  9. package/dist/clients/ApiClient.js +36 -34
  10. package/dist/components/App.svelte +1299 -230
  11. package/dist/components/App.svelte.d.ts +21 -1
  12. package/dist/components/CanvasBanner.svelte +50 -44
  13. package/dist/components/CanvasBanner.svelte.d.ts +5 -19
  14. package/dist/components/ConfigForm.svelte +555 -0
  15. package/dist/components/ConfigForm.svelte.d.ts +32 -0
  16. package/dist/components/ConfigModal.svelte +261 -0
  17. package/dist/components/ConfigModal.svelte.d.ts +31 -0
  18. package/dist/components/ConfigSidebar.svelte +934 -0
  19. package/dist/components/ConfigSidebar.svelte.d.ts +51 -0
  20. package/dist/components/ConnectionLine.svelte +32 -0
  21. package/dist/components/ConnectionLine.svelte.d.ts +3 -0
  22. package/dist/components/GatewayNode.svelte +471 -0
  23. package/dist/components/GatewayNode.svelte.d.ts +15 -0
  24. package/dist/components/LoadingSpinner.svelte +23 -23
  25. package/dist/components/LoadingSpinner.svelte.d.ts +1 -1
  26. package/dist/components/Logo.svelte +82 -0
  27. package/dist/components/Logo.svelte.d.ts +26 -0
  28. package/dist/components/LogsSidebar.svelte +565 -0
  29. package/dist/components/LogsSidebar.svelte.d.ts +34 -0
  30. package/dist/components/MarkdownDisplay.svelte +28 -0
  31. package/dist/components/MarkdownDisplay.svelte.d.ts +7 -0
  32. package/dist/components/Navbar.svelte +663 -0
  33. package/dist/components/Navbar.svelte.d.ts +21 -0
  34. package/dist/components/NodeSidebar.svelte +629 -488
  35. package/dist/components/NodeSidebar.svelte.d.ts +1 -2
  36. package/dist/components/NodeStatusOverlay.svelte +327 -0
  37. package/dist/components/NodeStatusOverlay.svelte.d.ts +11 -0
  38. package/dist/components/NotesNode.svelte +566 -0
  39. package/dist/components/NotesNode.svelte.d.ts +43 -0
  40. package/dist/components/PipelineStatus.svelte +331 -0
  41. package/dist/components/PipelineStatus.svelte.d.ts +18 -0
  42. package/dist/components/SimpleNode.svelte +447 -0
  43. package/dist/components/SimpleNode.svelte.d.ts +24 -0
  44. package/dist/components/SquareNode.svelte +346 -0
  45. package/dist/components/SquareNode.svelte.d.ts +24 -0
  46. package/dist/components/StatusIcon.svelte +112 -0
  47. package/dist/components/StatusIcon.svelte.d.ts +10 -0
  48. package/dist/components/StatusLabel.svelte +33 -0
  49. package/dist/components/StatusLabel.svelte.d.ts +7 -0
  50. package/dist/components/ToolNode.svelte +385 -0
  51. package/dist/components/ToolNode.svelte.d.ts +36 -0
  52. package/dist/components/UniversalNode.svelte +126 -0
  53. package/dist/components/UniversalNode.svelte.d.ts +15 -0
  54. package/dist/components/WorkflowEditor.svelte +871 -528
  55. package/dist/components/WorkflowEditor.svelte.d.ts +15 -5
  56. package/dist/components/WorkflowNode.svelte +428 -542
  57. package/dist/components/WorkflowNode.svelte.d.ts +7 -3
  58. package/dist/config/apiConfig.d.ts +33 -0
  59. package/dist/config/apiConfig.js +39 -0
  60. package/dist/config/defaultPortConfig.d.ts +6 -0
  61. package/dist/config/defaultPortConfig.js +192 -0
  62. package/dist/config/demo.d.ts +58 -0
  63. package/dist/config/demo.js +142 -0
  64. package/dist/config/endpoints.d.ts +106 -0
  65. package/dist/config/endpoints.js +128 -0
  66. package/dist/data/samples.d.ts +38 -4
  67. package/dist/data/samples.js +2789 -737
  68. package/dist/examples/adapter-usage.d.ts +4 -4
  69. package/dist/examples/adapter-usage.js +21 -26
  70. package/dist/examples/api-client-usage.d.ts +6 -6
  71. package/dist/examples/api-client-usage.js +55 -54
  72. package/dist/index.d.ts +23 -15
  73. package/dist/index.js +23 -15
  74. package/dist/mocks/app-environment.d.ts +8 -0
  75. package/dist/mocks/app-environment.js +16 -0
  76. package/dist/mocks/app-forms.d.ts +2 -0
  77. package/dist/mocks/app-forms.js +21 -0
  78. package/dist/mocks/app-navigation.d.ts +5 -0
  79. package/dist/mocks/app-navigation.js +34 -0
  80. package/dist/mocks/app-stores.d.ts +14 -0
  81. package/dist/mocks/app-stores.js +26 -0
  82. package/dist/services/api.d.ts +13 -3
  83. package/dist/services/api.js +91 -36
  84. package/dist/services/globalSave.d.ts +20 -0
  85. package/dist/services/globalSave.js +165 -0
  86. package/dist/services/nodeExecutionService.d.ts +63 -0
  87. package/dist/services/nodeExecutionService.js +261 -0
  88. package/dist/services/portConfigApi.d.ts +14 -0
  89. package/dist/services/portConfigApi.js +69 -0
  90. package/dist/services/toastService.d.ts +147 -0
  91. package/dist/services/toastService.js +235 -0
  92. package/dist/services/workflowStorage.d.ts +2 -2
  93. package/dist/services/workflowStorage.js +10 -10
  94. package/dist/stores/workflowStore.d.ts +53 -0
  95. package/dist/stores/workflowStore.js +264 -0
  96. package/dist/styles/base.css +896 -363
  97. package/dist/svelte-app.d.ts +52 -5
  98. package/dist/svelte-app.js +128 -6
  99. package/dist/types/config.d.ts +291 -0
  100. package/dist/types/config.js +4 -0
  101. package/dist/types/index.d.ts +231 -19
  102. package/dist/types/index.js +1 -1
  103. package/dist/utils/colors.d.ts +67 -33
  104. package/dist/utils/colors.js +183 -118
  105. package/dist/utils/config.d.ts +41 -0
  106. package/dist/utils/config.js +248 -0
  107. package/dist/utils/connections.d.ts +40 -3
  108. package/dist/utils/connections.js +115 -44
  109. package/dist/utils/icons.d.ts +1 -1
  110. package/dist/utils/icons.js +71 -70
  111. package/dist/utils/nodeStatus.d.ts +53 -0
  112. package/dist/utils/nodeStatus.js +183 -0
  113. package/dist/utils/nodeTypes.d.ts +57 -0
  114. package/dist/utils/nodeTypes.js +109 -0
  115. package/dist/utils/nodeWrapper.d.ts +39 -0
  116. package/dist/utils/nodeWrapper.js +62 -0
  117. package/package.json +129 -97
  118. package/dist/components/Node.svelte +0 -38
  119. package/dist/components/Node.svelte.d.ts +0 -4
@@ -1,858 +1,1391 @@
1
- /* Base CSS with BEM syntax to replace Tailwind and DaisyUI */
1
+ /* Base CSS with BEM syntax */
2
2
 
3
3
  /* Reset and base styles */
4
4
  * {
5
- box-sizing: border-box;
5
+ box-sizing: border-box;
6
6
  }
7
7
 
8
+ html,
8
9
  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;
10
+ height: 100%;
11
+ margin: 0;
12
+ padding: 0;
13
+ font-family:
14
+ system-ui,
15
+ -apple-system,
16
+ BlinkMacSystemFont,
17
+ 'Segoe UI',
18
+ Roboto,
19
+ 'Helvetica Neue',
20
+ Arial,
21
+ sans-serif;
22
+ overflow: hidden;
23
+ }
24
+
25
+ #svelte {
26
+ height: 100%;
13
27
  }
14
28
 
15
29
  /* Layout utilities */
16
30
  .flowdrop-layout {
17
- display: flex;
18
- height: 100vh;
19
- width: 100%;
31
+ display: flex;
32
+ height: 100vh;
33
+ width: 100%;
20
34
  }
21
35
 
22
36
  .flowdrop-layout__main {
23
- flex: 1;
24
- display: flex;
25
- flex-direction: column;
26
- min-height: 0;
37
+ flex: 1;
38
+ display: flex;
39
+ flex-direction: column;
40
+ min-height: 0;
27
41
  }
28
42
 
29
43
  .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);
44
+ width: 320px;
45
+ height: 100%;
46
+ display: flex;
47
+ flex-direction: column;
48
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
35
49
  }
36
50
 
37
51
  /* Button styles */
38
52
  .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
+ display: inline-flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ padding: 0.5rem 1rem;
57
+ border: 1px solid transparent;
58
+ border-radius: 0.375rem;
59
+ font-size: 0.875rem;
60
+ font-weight: 500;
61
+ text-decoration: none;
62
+ cursor: pointer;
63
+ transition: all 0.2s ease-in-out;
64
+ background-color: #ffffff;
65
+ color: #374151;
66
+ min-height: 2.5rem;
53
67
  }
54
68
 
55
69
  .flowdrop-btn:hover {
56
- background-color: #f9fafb;
57
- border-color: #d1d5db;
70
+ background-color: #f9fafb;
71
+ border-color: #d1d5db;
58
72
  }
59
73
 
60
74
  .flowdrop-btn:focus {
61
- outline: 2px solid #3b82f6;
62
- outline-offset: 2px;
75
+ outline: 2px solid #3b82f6;
76
+ outline-offset: 2px;
63
77
  }
64
78
 
65
79
  .flowdrop-btn--primary {
66
- background-color: #3b82f6;
67
- color: #ffffff;
68
- border-color: #3b82f6;
80
+ background-color: #3b82f6;
81
+ color: #ffffff;
82
+ border-color: #3b82f6;
69
83
  }
70
84
 
71
85
  .flowdrop-btn--primary:hover {
72
- background-color: #2563eb;
73
- border-color: #2563eb;
86
+ background-color: #2563eb;
87
+ border-color: #2563eb;
74
88
  }
75
89
 
76
90
  .flowdrop-btn--secondary {
77
- background-color: #6b7280;
78
- color: #ffffff;
79
- border-color: #6b7280;
91
+ background-color: #6b7280;
92
+ color: #ffffff;
93
+ border-color: #6b7280;
80
94
  }
81
95
 
82
96
  .flowdrop-btn--secondary:hover {
83
- background-color: #4b5563;
84
- border-color: #4b5563;
97
+ background-color: #4b5563;
98
+ border-color: #4b5563;
85
99
  }
86
100
 
87
101
  .flowdrop-btn--outline {
88
- background-color: transparent;
89
- color: #374151;
90
- border-color: #d1d5db;
102
+ background-color: transparent;
103
+ color: #374151;
104
+ border-color: #d1d5db;
91
105
  }
92
106
 
93
107
  .flowdrop-btn--outline:hover {
94
- background-color: #f9fafb;
95
- border-color: #9ca3af;
108
+ background-color: #f9fafb;
109
+ border-color: #9ca3af;
96
110
  }
97
111
 
98
112
  .flowdrop-btn--ghost {
99
- background-color: transparent;
100
- color: #374151;
101
- border-color: transparent;
113
+ background-color: transparent;
114
+ color: #374151;
115
+ border-color: transparent;
102
116
  }
103
117
 
104
118
  .flowdrop-btn--ghost:hover {
105
- background-color: #f3f4f6;
119
+ background-color: #f3f4f6;
106
120
  }
107
121
 
108
122
  .flowdrop-btn--sm {
109
- padding: 0.375rem 0.75rem;
110
- font-size: 0.75rem;
111
- min-height: 2rem;
123
+ padding: 0.375rem 0.75rem;
124
+ font-size: 0.75rem;
125
+ min-height: 2rem;
112
126
  }
113
127
 
114
128
  .flowdrop-btn--lg {
115
- padding: 0.75rem 1.5rem;
116
- font-size: 1rem;
117
- min-height: 3rem;
129
+ padding: 0.75rem 1.5rem;
130
+ font-size: 1rem;
131
+ min-height: 3rem;
118
132
  }
119
133
 
120
134
  /* Input styles */
121
135
  .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;
136
+ display: block;
137
+ width: 100%;
138
+ padding: 0.5rem 0.75rem;
139
+ border: 1px solid #d1d5db;
140
+ border-radius: 0.375rem;
141
+ font-size: 0.875rem;
142
+ line-height: 1.25rem;
143
+ color: #111827;
144
+ background-color: #ffffff;
145
+ transition:
146
+ border-color 0.2s ease-in-out,
147
+ box-shadow 0.2s ease-in-out;
132
148
  }
133
149
 
134
150
  .flowdrop-input:focus {
135
- outline: none;
136
- border-color: #3b82f6;
137
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
151
+ outline: none;
152
+ border-color: #3b82f6;
153
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
138
154
  }
139
155
 
140
156
  .flowdrop-input--sm {
141
- padding: 0.375rem 0.5rem;
142
- font-size: 0.75rem;
157
+ padding: 0.375rem 0.5rem;
158
+ font-size: 0.75rem;
143
159
  }
144
160
 
145
161
  .flowdrop-input--lg {
146
- padding: 0.75rem 1rem;
147
- font-size: 1rem;
162
+ padding: 0.75rem 1rem;
163
+ font-size: 1rem;
148
164
  }
149
165
 
150
166
  /* Card styles */
151
167
  .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;
168
+ background-color: #ffffff;
169
+ border: 1px solid #e5e7eb;
170
+ border-radius: 0.5rem;
171
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
172
+ overflow: hidden;
157
173
  }
158
174
 
159
175
  .flowdrop-card--compact {
160
- padding: 0.5rem;
176
+ padding: 0.5rem;
161
177
  }
162
178
 
163
179
  .flowdrop-card__body {
164
- padding: 1rem;
180
+ padding: 1rem;
165
181
  }
166
182
 
167
183
  .flowdrop-card__header {
168
- padding: 1rem 1rem 0.5rem;
169
- border-bottom: 1px solid #f3f4f6;
184
+ padding: 1rem 1rem 0.5rem;
185
+ border-bottom: 1px solid #f3f4f6;
170
186
  }
171
187
 
172
188
  .flowdrop-card__footer {
173
- padding: 0.5rem 1rem 1rem;
174
- border-top: 1px solid #f3f4f6;
189
+ padding: 0.5rem 1rem 1rem;
190
+ border-top: 1px solid #f3f4f6;
175
191
  }
176
192
 
177
193
  /* Badge styles */
178
194
  .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;
195
+ display: inline-flex;
196
+ align-items: center;
197
+ padding: 0.25rem 0.5rem;
198
+ font-size: 0.75rem;
199
+ font-weight: 500;
200
+ border-radius: 0.375rem;
201
+ background-color: #f3f4f6;
202
+ color: #374151;
187
203
  }
188
204
 
189
205
  .flowdrop-badge--primary {
190
- background-color: #dbeafe;
191
- color: #1e40af;
206
+ background-color: #dbeafe;
207
+ color: #1e40af;
192
208
  }
193
209
 
194
210
  .flowdrop-badge--secondary {
195
- background-color: #e5e7eb;
196
- color: #374151;
211
+ background-color: #e5e7eb;
212
+ color: #374151;
197
213
  }
198
214
 
199
215
  .flowdrop-badge--success {
200
- background-color: #d1fae5;
201
- color: #065f46;
216
+ background-color: #d1fae5;
217
+ color: #065f46;
202
218
  }
203
219
 
204
220
  .flowdrop-badge--warning {
205
- background-color: #fef3c7;
206
- color: #92400e;
221
+ background-color: #fef3c7;
222
+ color: #92400e;
207
223
  }
208
224
 
209
225
  .flowdrop-badge--error {
210
- background-color: #fee2e2;
211
- color: #991b1b;
226
+ background-color: #fee2e2;
227
+ color: #991b1b;
212
228
  }
213
229
 
214
230
  /* Navbar styles */
215
231
  .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;
232
+ display: flex;
233
+ align-items: center;
234
+ justify-content: space-between;
235
+ padding: 0.75rem 1rem;
236
+ background-color: #ffffff;
237
+ border-bottom: 1px solid #e5e7eb;
222
238
  }
223
239
 
224
240
  .flowdrop-navbar__start {
225
- display: flex;
226
- align-items: center;
227
- gap: 0.75rem;
241
+ display: flex;
242
+ align-items: center;
243
+ gap: 0.75rem;
228
244
  }
229
245
 
230
246
  .flowdrop-navbar__center {
231
- display: flex;
232
- align-items: center;
233
- justify-content: center;
234
- flex: 1;
247
+ display: flex;
248
+ align-items: center;
249
+ justify-content: center;
250
+ flex: 1;
235
251
  }
236
252
 
237
253
  .flowdrop-navbar__end {
238
- display: flex;
239
- align-items: center;
240
- gap: 0.75rem;
254
+ display: flex;
255
+ align-items: center;
256
+ gap: 0.75rem;
241
257
  }
242
258
 
243
259
  /* Join button group */
244
260
  .flowdrop-join {
245
- display: inline-flex;
246
- border-radius: 0.375rem;
247
- overflow: hidden;
261
+ display: inline-flex;
262
+ border-radius: 0.375rem;
263
+ overflow: hidden;
248
264
  }
249
265
 
250
266
  .flowdrop-join__item {
251
- border-radius: 0;
252
- border-right: 1px solid #d1d5db;
267
+ border-radius: 0;
268
+ border-right: 1px solid #d1d5db;
253
269
  }
254
270
 
255
271
  .flowdrop-join__item:first-child {
256
- border-top-left-radius: 0.375rem;
257
- border-bottom-left-radius: 0.375rem;
272
+ border-top-left-radius: 0.375rem;
273
+ border-bottom-left-radius: 0.375rem;
258
274
  }
259
275
 
260
276
  .flowdrop-join__item:last-child {
261
- border-top-right-radius: 0.375rem;
262
- border-bottom-right-radius: 0.375rem;
263
- border-right: none;
277
+ border-top-right-radius: 0.375rem;
278
+ border-bottom-right-radius: 0.375rem;
279
+ border-right: none;
264
280
  }
265
281
 
266
282
  /* Hero section */
267
283
  .flowdrop-hero {
268
- display: flex;
269
- align-items: center;
270
- justify-content: center;
271
- min-height: 100%;
272
- padding: 2rem;
284
+ display: flex;
285
+ align-items: center;
286
+ justify-content: center;
287
+ min-height: 100%;
288
+ padding: 2rem;
273
289
  }
274
290
 
275
291
  .flowdrop-hero__content {
276
- text-align: center;
277
- max-width: 28rem;
292
+ text-align: center;
293
+ max-width: 28rem;
278
294
  }
279
295
 
280
296
  .flowdrop-hero__icon {
281
- font-size: 3.75rem;
282
- margin-bottom: 1rem;
297
+ font-size: 3.75rem;
298
+ margin-bottom: 1rem;
283
299
  }
284
300
 
285
301
  .flowdrop-hero__title {
286
- font-size: 1.125rem;
287
- font-weight: 700;
288
- margin-bottom: 0.5rem;
289
- color: #111827;
302
+ font-size: 1.125rem;
303
+ font-weight: 700;
304
+ margin-bottom: 0.5rem;
305
+ color: #111827;
290
306
  }
291
307
 
292
308
  .flowdrop-hero__description {
293
- font-size: 0.875rem;
294
- color: #6b7280;
295
- margin-bottom: 1rem;
309
+ font-size: 0.875rem;
310
+ color: #6b7280;
311
+ margin-bottom: 1rem;
296
312
  }
297
313
 
298
314
  /* Divider */
299
315
  .flowdrop-divider {
300
- display: flex;
301
- align-items: center;
302
- margin: 1rem 0;
316
+ display: flex;
317
+ align-items: center;
318
+ margin: 1rem 0;
303
319
  }
304
320
 
305
321
  .flowdrop-divider::before {
306
- content: "";
307
- flex: 1;
308
- height: 1px;
309
- background-color: #e5e7eb;
322
+ content: '';
323
+ flex: 1;
324
+ height: 1px;
325
+ background-color: #e5e7eb;
310
326
  }
311
327
 
312
328
  .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;
329
+ padding: 0 0.75rem;
330
+ font-size: 0.75rem;
331
+ font-weight: 600;
332
+ color: #6b7280;
333
+ text-transform: uppercase;
334
+ letter-spacing: 0.05em;
319
335
  }
320
336
 
321
337
  .flowdrop-divider::after {
322
- content: "";
323
- flex: 1;
324
- height: 1px;
325
- background-color: #e5e7eb;
338
+ content: '';
339
+ flex: 1;
340
+ height: 1px;
341
+ background-color: #e5e7eb;
326
342
  }
327
343
 
328
344
  /* Details/Summary */
329
345
  .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;
346
+ background-color: #ffffff;
347
+ border-radius: 0.5rem;
348
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
349
+ overflow: hidden;
334
350
  }
335
351
 
336
352
  .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;
353
+ display: flex;
354
+ align-items: center;
355
+ justify-content: space-between;
356
+ padding: 0.75rem;
357
+ font-size: 0.875rem;
358
+ font-weight: 500;
359
+ cursor: pointer;
360
+ transition: background-color 0.2s ease-in-out;
345
361
  }
346
362
 
347
363
  .flowdrop-details__summary:hover {
348
- background-color: #f9fafb;
364
+ background-color: #f9fafb;
349
365
  }
350
366
 
351
367
  .flowdrop-details__content {
352
- padding: 0.75rem;
353
- padding-top: 0;
368
+ padding: 0.75rem;
369
+ padding-top: 0;
354
370
  }
355
371
 
356
372
  /* Loading spinner */
357
373
  .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;
374
+ display: inline-block;
375
+ width: 1rem;
376
+ height: 1rem;
377
+ border: 2px solid #e5e7eb;
378
+ border-top: 2px solid #3b82f6;
379
+ border-radius: 50%;
380
+ animation: flowdrop-spin 1s linear infinite;
365
381
  }
366
382
 
367
383
  .flowdrop-spinner--sm {
368
- width: 0.75rem;
369
- height: 0.75rem;
370
- border-width: 1px;
384
+ width: 0.75rem;
385
+ height: 0.75rem;
386
+ border-width: 1px;
371
387
  }
372
388
 
373
389
  .flowdrop-spinner--lg {
374
- width: 1.5rem;
375
- height: 1.5rem;
376
- border-width: 3px;
390
+ width: 1.5rem;
391
+ height: 1.5rem;
392
+ border-width: 3px;
377
393
  }
378
394
 
379
395
  @keyframes flowdrop-spin {
380
- 0% { transform: rotate(0deg); }
381
- 100% { transform: rotate(360deg); }
396
+ 0% {
397
+ transform: rotate(0deg);
398
+ }
399
+ 100% {
400
+ transform: rotate(360deg);
401
+ }
382
402
  }
383
403
 
384
404
  /* Utility classes */
385
405
  .flowdrop-flex {
386
- display: flex;
406
+ display: flex;
387
407
  }
388
408
 
389
409
  .flowdrop-flex--col {
390
- flex-direction: column;
410
+ flex-direction: column;
391
411
  }
392
412
 
393
413
  .flowdrop-flex--center {
394
- align-items: center;
395
- justify-content: center;
414
+ align-items: center;
415
+ justify-content: center;
396
416
  }
397
417
 
398
418
  .flowdrop-flex--between {
399
- justify-content: space-between;
419
+ justify-content: space-between;
400
420
  }
401
421
 
402
422
  .flowdrop-flex--1 {
403
- flex: 1;
423
+ flex: 1;
404
424
  }
405
425
 
406
426
  .flowdrop-gap--1 {
407
- gap: 0.25rem;
427
+ gap: 0.25rem;
408
428
  }
409
429
 
410
430
  .flowdrop-gap--2 {
411
- gap: 0.5rem;
431
+ gap: 0.5rem;
412
432
  }
413
433
 
414
434
  .flowdrop-gap--3 {
415
- gap: 0.75rem;
435
+ gap: 0.75rem;
416
436
  }
417
437
 
418
438
  .flowdrop-gap--4 {
419
- gap: 1rem;
439
+ gap: 1rem;
420
440
  }
421
441
 
422
442
  .flowdrop-p--1 {
423
- padding: 0.25rem;
443
+ padding: 0.25rem;
424
444
  }
425
445
 
426
446
  .flowdrop-p--2 {
427
- padding: 0.5rem;
447
+ padding: 0.5rem;
428
448
  }
429
449
 
430
450
  .flowdrop-p--3 {
431
- padding: 0.75rem;
451
+ padding: 0.75rem;
432
452
  }
433
453
 
434
454
  .flowdrop-p--4 {
435
- padding: 1rem;
455
+ padding: 1rem;
436
456
  }
437
457
 
438
458
  .flowdrop-m--0 {
439
- margin: 0;
459
+ margin: 0;
440
460
  }
441
461
 
442
462
  .flowdrop-mb--1 {
443
- margin-bottom: 0.25rem;
463
+ margin-bottom: 0.25rem;
444
464
  }
445
465
 
446
466
  .flowdrop-mb--2 {
447
- margin-bottom: 0.5rem;
467
+ margin-bottom: 0.5rem;
448
468
  }
449
469
 
450
470
  .flowdrop-mb--3 {
451
- margin-bottom: 0.75rem;
471
+ margin-bottom: 0.75rem;
452
472
  }
453
473
 
454
474
  .flowdrop-mb--4 {
455
- margin-bottom: 1rem;
475
+ margin-bottom: 1rem;
456
476
  }
457
477
 
458
478
  .flowdrop-text--xs {
459
- font-size: 0.75rem;
479
+ font-size: 0.75rem;
460
480
  }
461
481
 
462
482
  .flowdrop-text--sm {
463
- font-size: 0.875rem;
483
+ font-size: 0.875rem;
464
484
  }
465
485
 
466
486
  .flowdrop-text--lg {
467
- font-size: 1.125rem;
487
+ font-size: 1.125rem;
468
488
  }
469
489
 
470
490
  .flowdrop-text--xl {
471
- font-size: 1.25rem;
491
+ font-size: 1.25rem;
472
492
  }
473
493
 
474
494
  .flowdrop-font--bold {
475
- font-weight: 700;
495
+ font-weight: 700;
476
496
  }
477
497
 
478
498
  .flowdrop-font--medium {
479
- font-weight: 500;
499
+ font-weight: 500;
480
500
  }
481
501
 
482
502
  .flowdrop-text--center {
483
- text-align: center;
503
+ text-align: center;
484
504
  }
485
505
 
486
506
  .flowdrop-text--gray {
487
- color: #6b7280;
507
+ color: #6b7280;
488
508
  }
489
509
 
490
510
  .flowdrop-text--gray-dark {
491
- color: #374151;
511
+ color: #374151;
492
512
  }
493
513
 
494
514
  .flowdrop-bg--white {
495
- background-color: #ffffff;
515
+ background-color: #ffffff;
496
516
  }
497
517
 
498
518
  .flowdrop-bg--gray {
499
- background-color: #f9fafb;
519
+ background-color: #f9fafb;
500
520
  }
501
521
 
502
522
  .flowdrop-bg--gray-light {
503
- background-color: #f3f4f6;
523
+ background-color: #f3f4f6;
504
524
  }
505
525
 
506
526
  .flowdrop-border {
507
- border: 1px solid #e5e7eb;
527
+ border: 1px solid #e5e7eb;
508
528
  }
509
529
 
510
530
  .flowdrop-border--b {
511
- border-bottom: 1px solid #e5e7eb;
531
+ border-bottom: 1px solid #e5e7eb;
512
532
  }
513
533
 
514
534
  .flowdrop-border--t {
515
- border-top: 1px solid #e5e7eb;
535
+ border-top: 1px solid #e5e7eb;
516
536
  }
517
537
 
518
538
  .flowdrop-border--r {
519
- border-right: 1px solid #e5e7eb;
539
+ border-right: 1px solid #e5e7eb;
520
540
  }
521
541
 
522
542
  .flowdrop-rounded {
523
- border-radius: 0.375rem;
543
+ border-radius: 0.375rem;
524
544
  }
525
545
 
526
546
  .flowdrop-rounded--lg {
527
- border-radius: 0.5rem;
547
+ border-radius: 0.5rem;
528
548
  }
529
549
 
530
550
  .flowdrop-shadow {
531
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
551
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
532
552
  }
533
553
 
534
554
  .flowdrop-shadow--lg {
535
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
555
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
536
556
  }
537
557
 
538
558
  .flowdrop-w--full {
539
- width: 100%;
559
+ width: 100%;
540
560
  }
541
561
 
542
562
  .flowdrop-h--full {
543
- height: 100%;
563
+ height: 100%;
544
564
  }
545
565
 
546
566
  .flowdrop-min-h--0 {
547
- min-height: 0;
567
+ min-height: 0;
548
568
  }
549
569
 
550
570
  .flowdrop-overflow--hidden {
551
- overflow: hidden;
571
+ overflow: hidden;
552
572
  }
553
573
 
554
574
  .flowdrop-overflow--auto {
555
- overflow: auto;
575
+ overflow: auto;
556
576
  }
557
577
 
558
578
  .flowdrop-cursor--pointer {
559
- cursor: pointer;
579
+ cursor: pointer;
560
580
  }
561
581
 
562
582
  .flowdrop-cursor--grab {
563
- cursor: grab;
583
+ cursor: grab;
564
584
  }
565
585
 
566
586
  .flowdrop-cursor--grabbing {
567
- cursor: grabbing;
587
+ cursor: grabbing;
568
588
  }
569
589
 
570
590
  .flowdrop-transition {
571
- transition: all 0.2s ease-in-out;
591
+ transition: all 0.2s ease-in-out;
572
592
  }
573
593
 
574
594
  .flowdrop-truncate {
575
- overflow: hidden;
576
- text-overflow: ellipsis;
577
- white-space: nowrap;
595
+ overflow: hidden;
596
+ text-overflow: ellipsis;
597
+ white-space: nowrap;
578
598
  }
579
599
 
580
600
  .flowdrop-opacity--70 {
581
- opacity: 0.7;
601
+ opacity: 0.7;
582
602
  }
583
603
 
584
604
  .flowdrop-opacity--60 {
585
- opacity: 0.6;
605
+ opacity: 0.6;
586
606
  }
587
607
 
588
608
  /* Responsive utilities */
589
609
  @media (min-width: 640px) {
590
- .flowdrop-sm\\:flex {
591
- display: flex;
592
- }
593
-
594
- .flowdrop-sm\\:hidden {
595
- display: none;
596
- }
610
+ .flowdrop-sm\\:flex {
611
+ display: flex;
612
+ }
613
+
614
+ .flowdrop-sm\\:hidden {
615
+ display: none;
616
+ }
597
617
  }
598
618
 
599
619
  @media (min-width: 768px) {
600
- .flowdrop-md\\:flex {
601
- display: flex;
602
- }
603
-
604
- .flowdrop-md\\:hidden {
605
- display: none;
606
- }
620
+ .flowdrop-md\\:flex {
621
+ display: flex;
622
+ }
623
+
624
+ .flowdrop-md\\:hidden {
625
+ display: none;
626
+ }
607
627
  }
608
628
 
609
629
  @media (min-width: 1024px) {
610
- .flowdrop-lg\\:flex {
611
- display: flex;
612
- }
613
-
614
- .flowdrop-lg\\:hidden {
615
- display: none;
616
- }
630
+ .flowdrop-lg\\:flex {
631
+ display: flex;
632
+ }
633
+
634
+ .flowdrop-lg\\:hidden {
635
+ display: none;
636
+ }
617
637
  }
618
638
 
619
639
  /* Color system - Category colors */
620
640
  .flowdrop-color--primary {
621
- background-color: #3b82f6;
622
- color: #ffffff;
641
+ background-color: #3b82f6;
642
+ color: #ffffff;
623
643
  }
624
644
 
625
645
  .flowdrop-color--primary-light {
626
- background-color: #dbeafe;
627
- color: #1e40af;
646
+ background-color: #dbeafe;
647
+ color: #1e40af;
628
648
  }
629
649
 
630
650
  .flowdrop-color--primary-text {
631
- color: #1e40af;
651
+ color: #1e40af;
632
652
  }
633
653
 
634
654
  .flowdrop-color--primary-border {
635
- border-color: #93c5fd;
655
+ border-color: #93c5fd;
636
656
  }
637
657
 
638
658
  .flowdrop-color--secondary {
639
- background-color: #6b7280;
640
- color: #ffffff;
659
+ background-color: #6b7280;
660
+ color: #ffffff;
641
661
  }
642
662
 
643
663
  .flowdrop-color--secondary-light {
644
- background-color: #f3f4f6;
645
- color: #374151;
664
+ background-color: #f3f4f6;
665
+ color: #374151;
646
666
  }
647
667
 
648
668
  .flowdrop-color--secondary-text {
649
- color: #374151;
669
+ color: #374151;
650
670
  }
651
671
 
652
672
  .flowdrop-color--secondary-border {
653
- border-color: #d1d5db;
673
+ border-color: #d1d5db;
654
674
  }
655
675
 
656
676
  .flowdrop-color--success {
657
- background-color: #10b981;
658
- color: #ffffff;
677
+ background-color: #10b981;
678
+ color: #ffffff;
659
679
  }
660
680
 
661
681
  .flowdrop-color--success-light {
662
- background-color: #d1fae5;
663
- color: #065f46;
682
+ background-color: #d1fae5;
683
+ color: #065f46;
664
684
  }
665
685
 
666
686
  .flowdrop-color--success-text {
667
- color: #065f46;
687
+ color: #065f46;
668
688
  }
669
689
 
670
690
  .flowdrop-color--success-border {
671
- border-color: #6ee7b7;
691
+ border-color: #6ee7b7;
672
692
  }
673
693
 
674
694
  .flowdrop-color--warning {
675
- background-color: #f59e0b;
676
- color: #ffffff;
695
+ background-color: #f59e0b;
696
+ color: #ffffff;
677
697
  }
678
698
 
679
699
  .flowdrop-color--warning-light {
680
- background-color: #fef3c7;
681
- color: #92400e;
700
+ background-color: #fef3c7;
701
+ color: #92400e;
682
702
  }
683
703
 
684
704
  .flowdrop-color--warning-text {
685
- color: #92400e;
705
+ color: #92400e;
686
706
  }
687
707
 
688
708
  .flowdrop-color--warning-border {
689
- border-color: #fbbf24;
709
+ border-color: #fbbf24;
690
710
  }
691
711
 
692
712
  .flowdrop-color--error {
693
- background-color: #ef4444;
694
- color: #ffffff;
713
+ background-color: #ef4444;
714
+ color: #ffffff;
695
715
  }
696
716
 
697
717
  .flowdrop-color--error-light {
698
- background-color: #fee2e2;
699
- color: #991b1b;
718
+ background-color: #fee2e2;
719
+ color: #991b1b;
700
720
  }
701
721
 
702
722
  .flowdrop-color--error-text {
703
- color: #991b1b;
723
+ color: #991b1b;
704
724
  }
705
725
 
706
726
  .flowdrop-color--error-border {
707
- border-color: #f87171;
727
+ border-color: #f87171;
708
728
  }
709
729
 
710
730
  .flowdrop-color--info {
711
- background-color: #06b6d4;
712
- color: #ffffff;
731
+ background-color: #06b6d4;
732
+ color: #ffffff;
713
733
  }
714
734
 
715
735
  .flowdrop-color--info-light {
716
- background-color: #cffafe;
717
- color: #0e7490;
736
+ background-color: #cffafe;
737
+ color: #0e7490;
718
738
  }
719
739
 
720
740
  .flowdrop-color--info-text {
721
- color: #0e7490;
741
+ color: #0e7490;
722
742
  }
723
743
 
724
744
  .flowdrop-color--info-border {
725
- border-color: #67e8f9;
745
+ border-color: #67e8f9;
726
746
  }
727
747
 
728
748
  .flowdrop-color--accent {
729
- background-color: #8b5cf6;
730
- color: #ffffff;
749
+ background-color: #8b5cf6;
750
+ color: #ffffff;
731
751
  }
732
752
 
733
753
  .flowdrop-color--accent-light {
734
- background-color: #ede9fe;
735
- color: #5b21b6;
754
+ background-color: #ede9fe;
755
+ color: #5b21b6;
736
756
  }
737
757
 
738
758
  .flowdrop-color--accent-text {
739
- color: #5b21b6;
759
+ color: #5b21b6;
740
760
  }
741
761
 
742
762
  .flowdrop-color--accent-border {
743
- border-color: #a78bfa;
763
+ border-color: #a78bfa;
744
764
  }
745
765
 
746
766
  .flowdrop-color--neutral {
747
- background-color: #6b7280;
748
- color: #ffffff;
767
+ background-color: #6b7280;
768
+ color: #ffffff;
749
769
  }
750
770
 
751
771
  .flowdrop-color--neutral-light {
752
- background-color: #f9fafb;
753
- color: #374151;
772
+ background-color: #f9fafb;
773
+ color: #374151;
754
774
  }
755
775
 
756
776
  .flowdrop-color--neutral-text {
757
- color: #374151;
777
+ color: #374151;
758
778
  }
759
779
 
760
780
  .flowdrop-color--neutral-border {
761
- border-color: #d1d5db;
781
+ border-color: #d1d5db;
762
782
  }
763
783
 
764
784
  .flowdrop-color--base {
765
- background-color: #ffffff;
766
- color: #111827;
785
+ background-color: #ffffff;
786
+ color: #111827;
767
787
  }
768
788
 
769
789
  .flowdrop-color--base-light {
770
- background-color: #f9fafb;
771
- color: #374151;
790
+ background-color: #f9fafb;
791
+ color: #374151;
772
792
  }
773
793
 
774
794
  .flowdrop-color--base-text {
775
- color: #111827;
795
+ color: #111827;
776
796
  }
777
797
 
778
798
  .flowdrop-color--base-border {
779
- border-color: #e5e7eb;
799
+ border-color: #e5e7eb;
780
800
  }
781
801
 
782
802
  /* Data type colors for ports */
783
803
  .flowdrop-color--emerald {
784
- background-color: #10b981;
785
- color: #ffffff;
804
+ background-color: var(--cmp-node-color-emerald);
805
+ color: #ffffff;
786
806
  }
787
807
 
788
808
  .flowdrop-color--blue {
789
- background-color: #3b82f6;
790
- color: #ffffff;
809
+ background-color: var(--cmp-node-color-blue);
810
+ color: #ffffff;
791
811
  }
792
812
 
793
813
  .flowdrop-color--purple {
794
- background-color: #8b5cf6;
795
- color: #ffffff;
814
+ background-color: var(--cmp-node-color-purple);
815
+ color: #ffffff;
796
816
  }
797
817
 
798
818
  .flowdrop-color--amber {
799
- background-color: #f59e0b;
800
- color: #ffffff;
819
+ background-color: var(--cmp-node-color-amber);
820
+ color: #ffffff;
801
821
  }
802
822
 
803
823
  .flowdrop-color--orange {
804
- background-color: #f97316;
805
- color: #ffffff;
824
+ background-color: var(--cmp-node-color-orange);
825
+ color: #ffffff;
806
826
  }
807
827
 
808
828
  .flowdrop-color--red {
809
- background-color: #ef4444;
810
- color: #ffffff;
829
+ background-color: var(--cmp-node-color-red);
830
+ color: #ffffff;
811
831
  }
812
832
 
813
833
  .flowdrop-color--pink {
814
- background-color: #ec4899;
815
- color: #ffffff;
834
+ background-color: var(--cmp-node-color-pink);
835
+ color: #ffffff;
816
836
  }
817
837
 
818
838
  .flowdrop-color--indigo {
819
- background-color: #6366f1;
820
- color: #ffffff;
839
+ background-color: var(--cmp-node-color-indigo);
840
+ color: #ffffff;
821
841
  }
822
842
 
823
843
  .flowdrop-color--teal {
824
- background-color: #14b8a6;
825
- color: #ffffff;
844
+ background-color: var(--cmp-node-color-teal);
845
+ color: #ffffff;
826
846
  }
827
847
 
828
848
  .flowdrop-color--cyan {
829
- background-color: #06b6d4;
830
- color: #ffffff;
849
+ background-color: var(--cmp-node-color-cyan);
850
+ color: #ffffff;
831
851
  }
832
852
 
833
853
  .flowdrop-color--lime {
834
- background-color: #84cc16;
835
- color: #ffffff;
854
+ background-color: var(--cmp-node-color-lime);
855
+ color: #ffffff;
836
856
  }
837
857
 
838
858
  .flowdrop-color--slate {
839
- background-color: #64748b;
840
- color: #ffffff;
859
+ background-color: var(--cmp-node-color-slate);
860
+ color: #ffffff;
841
861
  }
842
862
 
843
863
  :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
- }
864
+ /* Reference tokens (Tailwind palette) */
865
+ /* Slate */
866
+ --color-ref-slate-50: #f8fafc;
867
+ --color-ref-slate-100: #f1f5f9;
868
+ --color-ref-slate-200: #e2e8f0;
869
+ --color-ref-slate-300: #cbd5e1;
870
+ --color-ref-slate-400: #94a3b8;
871
+ --color-ref-slate-500: #64748b;
872
+ --color-ref-slate-600: #475569;
873
+ --color-ref-slate-700: #334155;
874
+ --color-ref-slate-800: #1e293b;
875
+ --color-ref-slate-900: #0f172a;
876
+ --color-ref-slate-950: #020617;
877
+
878
+ /* Gray */
879
+ --color-ref-gray-50: #f9fafb;
880
+ --color-ref-gray-100: #f3f4f6;
881
+ --color-ref-gray-200: #e5e7eb;
882
+ --color-ref-gray-300: #d1d5db;
883
+ --color-ref-gray-400: #9ca3af;
884
+ --color-ref-gray-500: #6b7280;
885
+ --color-ref-gray-600: #4b5563;
886
+ --color-ref-gray-700: #374151;
887
+ --color-ref-gray-800: #1f2937;
888
+ --color-ref-gray-900: #111827;
889
+ --color-ref-gray-950: #030712;
890
+
891
+ /* Zinc */
892
+ --color-ref-zinc-50: #fafafa;
893
+ --color-ref-zinc-100: #f4f4f5;
894
+ --color-ref-zinc-200: #e4e4e7;
895
+ --color-ref-zinc-300: #d4d4d8;
896
+ --color-ref-zinc-400: #a1a1aa;
897
+ --color-ref-zinc-500: #71717a;
898
+ --color-ref-zinc-600: #52525b;
899
+ --color-ref-zinc-700: #3f3f46;
900
+ --color-ref-zinc-800: #27272a;
901
+ --color-ref-zinc-900: #18181b;
902
+ --color-ref-zinc-950: #09090b;
903
+
904
+ /* Neutral */
905
+ --color-ref-neutral-50: #fafafa;
906
+ --color-ref-neutral-100: #f5f5f5;
907
+ --color-ref-neutral-200: #e5e5e5;
908
+ --color-ref-neutral-300: #d4d4d4;
909
+ --color-ref-neutral-400: #a3a3a3;
910
+ --color-ref-neutral-500: #737373;
911
+ --color-ref-neutral-600: #525252;
912
+ --color-ref-neutral-700: #404040;
913
+ --color-ref-neutral-800: #262626;
914
+ --color-ref-neutral-900: #171717;
915
+ --color-ref-neutral-950: #0a0a0a;
916
+
917
+ /* Stone */
918
+ --color-ref-stone-50: #fafaf9;
919
+ --color-ref-stone-100: #f5f5f4;
920
+ --color-ref-stone-200: #e7e5e4;
921
+ --color-ref-stone-300: #d6d3d1;
922
+ --color-ref-stone-400: #a8a29e;
923
+ --color-ref-stone-500: #78716c;
924
+ --color-ref-stone-600: #57534e;
925
+ --color-ref-stone-700: #44403c;
926
+ --color-ref-stone-800: #292524;
927
+ --color-ref-stone-900: #1c1917;
928
+ --color-ref-stone-950: #0c0a09;
929
+
930
+ /* Red */
931
+ --color-ref-red-50: #fef2f2;
932
+ --color-ref-red-100: #fee2e2;
933
+ --color-ref-red-200: #fecaca;
934
+ --color-ref-red-300: #fca5a5;
935
+ --color-ref-red-400: #f87171;
936
+ --color-ref-red-500: #ef4444;
937
+ --color-ref-red-600: #dc2626;
938
+ --color-ref-red-700: #b91c1c;
939
+ --color-ref-red-800: #991b1b;
940
+ --color-ref-red-900: #7f1d1d;
941
+ --color-ref-red-950: #450a0a;
942
+
943
+ /* Orange */
944
+ --color-ref-orange-50: #fff7ed;
945
+ --color-ref-orange-100: #ffedd5;
946
+ --color-ref-orange-200: #fed7aa;
947
+ --color-ref-orange-300: #fdba74;
948
+ --color-ref-orange-400: #fb923c;
949
+ --color-ref-orange-500: #f97316;
950
+ --color-ref-orange-600: #ea580c;
951
+ --color-ref-orange-700: #c2410c;
952
+ --color-ref-orange-800: #9a3412;
953
+ --color-ref-orange-900: #7c2d12;
954
+ --color-ref-orange-950: #431407;
955
+
956
+ /* Amber */
957
+ --color-ref-amber-50: #fffbeb;
958
+ --color-ref-amber-100: #fef3c7;
959
+ --color-ref-amber-200: #fde68a;
960
+ --color-ref-amber-300: #fcd34d;
961
+ --color-ref-amber-400: #fbbf24;
962
+ --color-ref-amber-500: #f59e0b;
963
+ --color-ref-amber-600: #d97706;
964
+ --color-ref-amber-700: #b45309;
965
+ --color-ref-amber-800: #92400e;
966
+ --color-ref-amber-900: #78350f;
967
+ --color-ref-amber-950: #451a03;
968
+
969
+ /* Yellow */
970
+ --color-ref-yellow-50: #fefce8;
971
+ --color-ref-yellow-100: #fef9c3;
972
+ --color-ref-yellow-200: #fef08a;
973
+ --color-ref-yellow-300: #fde047;
974
+ --color-ref-yellow-400: #facc15;
975
+ --color-ref-yellow-500: #eab308;
976
+ --color-ref-yellow-600: #ca8a04;
977
+ --color-ref-yellow-700: #a16207;
978
+ --color-ref-yellow-800: #854d0e;
979
+ --color-ref-yellow-900: #713f12;
980
+ --color-ref-yellow-950: #422006;
981
+
982
+ /* Lime */
983
+ --color-ref-lime-50: #f7fee7;
984
+ --color-ref-lime-100: #ecfccb;
985
+ --color-ref-lime-200: #d9f99d;
986
+ --color-ref-lime-300: #bef264;
987
+ --color-ref-lime-400: #a3e635;
988
+ --color-ref-lime-500: #84cc16;
989
+ --color-ref-lime-600: #65a30d;
990
+ --color-ref-lime-700: #4d7c0f;
991
+ --color-ref-lime-800: #3f6212;
992
+ --color-ref-lime-900: #365314;
993
+ --color-ref-lime-950: #1a2e05;
994
+
995
+ /* Green */
996
+ --color-ref-green-50: #f0fdf4;
997
+ --color-ref-green-100: #dcfce7;
998
+ --color-ref-green-200: #bbf7d0;
999
+ --color-ref-green-300: #86efac;
1000
+ --color-ref-green-400: #4ade80;
1001
+ --color-ref-green-500: #22c55e;
1002
+ --color-ref-green-600: #16a34a;
1003
+ --color-ref-green-700: #15803d;
1004
+ --color-ref-green-800: #166534;
1005
+ --color-ref-green-900: #14532d;
1006
+ --color-ref-green-950: #052e16;
1007
+
1008
+ /* Emerald */
1009
+ --color-ref-emerald-50: #ecfdf5;
1010
+ --color-ref-emerald-100: #d1fae5;
1011
+ --color-ref-emerald-200: #a7f3d0;
1012
+ --color-ref-emerald-300: #6ee7b7;
1013
+ --color-ref-emerald-400: #34d399;
1014
+ --color-ref-emerald-500: #10b981;
1015
+ --color-ref-emerald-600: #059669;
1016
+ --color-ref-emerald-700: #047857;
1017
+ --color-ref-emerald-800: #065f46;
1018
+ --color-ref-emerald-900: #064e3b;
1019
+ --color-ref-emerald-950: #022c22;
1020
+
1021
+ /* Teal */
1022
+ --color-ref-teal-50: #f0fdfa;
1023
+ --color-ref-teal-100: #ccfbf1;
1024
+ --color-ref-teal-200: #99f6e4;
1025
+ --color-ref-teal-300: #5eead4;
1026
+ --color-ref-teal-400: #2dd4bf;
1027
+ --color-ref-teal-500: #14b8a6;
1028
+ --color-ref-teal-600: #0d9488;
1029
+ --color-ref-teal-700: #0f766e;
1030
+ --color-ref-teal-800: #115e59;
1031
+ --color-ref-teal-900: #134e4a;
1032
+ --color-ref-teal-950: #042f2e;
1033
+
1034
+ /* Cyan */
1035
+ --color-ref-cyan-50: #ecfeff;
1036
+ --color-ref-cyan-100: #cffafe;
1037
+ --color-ref-cyan-200: #a5f3fc;
1038
+ --color-ref-cyan-300: #67e8f9;
1039
+ --color-ref-cyan-400: #22d3ee;
1040
+ --color-ref-cyan-500: #06b6d4;
1041
+ --color-ref-cyan-600: #0891b2;
1042
+ --color-ref-cyan-700: #0e7490;
1043
+ --color-ref-cyan-800: #155e75;
1044
+ --color-ref-cyan-900: #164e63;
1045
+ --color-ref-cyan-950: #083344;
1046
+
1047
+ /* Sky */
1048
+ --color-ref-sky-50: #f0f9ff;
1049
+ --color-ref-sky-100: #e0f2fe;
1050
+ --color-ref-sky-200: #bae6fd;
1051
+ --color-ref-sky-300: #7dd3fc;
1052
+ --color-ref-sky-400: #38bdf8;
1053
+ --color-ref-sky-500: #0ea5e9;
1054
+ --color-ref-sky-600: #0284c7;
1055
+ --color-ref-sky-700: #0369a1;
1056
+ --color-ref-sky-800: #075985;
1057
+ --color-ref-sky-900: #0c4a6e;
1058
+ --color-ref-sky-950: #082f49;
1059
+
1060
+ /* Blue */
1061
+ --color-ref-blue-50: #eff6ff;
1062
+ --color-ref-blue-100: #dbeafe;
1063
+ --color-ref-blue-200: #bfdbfe;
1064
+ --color-ref-blue-300: #93c5fd;
1065
+ --color-ref-blue-400: #60a5fa;
1066
+ --color-ref-blue-500: #3b82f6;
1067
+ --color-ref-blue-600: #2563eb;
1068
+ --color-ref-blue-700: #1d4ed8;
1069
+ --color-ref-blue-800: #1e40af;
1070
+ --color-ref-blue-900: #1e3a8a;
1071
+ --color-ref-blue-950: #172554;
1072
+
1073
+ /* Indigo */
1074
+ --color-ref-indigo-50: #eef2ff;
1075
+ --color-ref-indigo-100: #e0e7ff;
1076
+ --color-ref-indigo-200: #c7d2fe;
1077
+ --color-ref-indigo-300: #a5b4fc;
1078
+ --color-ref-indigo-400: #818cf8;
1079
+ --color-ref-indigo-500: #6366f1;
1080
+ --color-ref-indigo-600: #4f46e5;
1081
+ --color-ref-indigo-700: #4338ca;
1082
+ --color-ref-indigo-800: #3730a3;
1083
+ --color-ref-indigo-900: #312e81;
1084
+ --color-ref-indigo-950: #1e1b4b;
1085
+
1086
+ /* Violet */
1087
+ --color-ref-violet-50: #f5f3ff;
1088
+ --color-ref-violet-100: #ede9fe;
1089
+ --color-ref-violet-200: #ddd6fe;
1090
+ --color-ref-violet-300: #c4b5fd;
1091
+ --color-ref-violet-400: #a78bfa;
1092
+ --color-ref-violet-500: #8b5cf6;
1093
+ --color-ref-violet-600: #7c3aed;
1094
+ --color-ref-violet-700: #6d28d9;
1095
+ --color-ref-violet-800: #5b21b6;
1096
+ --color-ref-violet-900: #4c1d95;
1097
+ --color-ref-violet-950: #2e1065;
1098
+
1099
+ /* Purple */
1100
+ --color-ref-purple-50: #faf5ff;
1101
+ --color-ref-purple-100: #f3e8ff;
1102
+ --color-ref-purple-200: #e9d5ff;
1103
+ --color-ref-purple-300: #d8b4fe;
1104
+ --color-ref-purple-400: #c084fc;
1105
+ --color-ref-purple-500: #a855f7;
1106
+ --color-ref-purple-600: #9333ea;
1107
+ --color-ref-purple-700: #7c3aed;
1108
+ --color-ref-purple-800: #6b21a8;
1109
+ --color-ref-purple-900: #581c87;
1110
+ --color-ref-purple-950: #3b0764;
1111
+
1112
+ /* Fuchsia */
1113
+ --color-ref-fuchsia-50: #fdf4ff;
1114
+ --color-ref-fuchsia-100: #fae8ff;
1115
+ --color-ref-fuchsia-200: #f5d0fe;
1116
+ --color-ref-fuchsia-300: #f0abfc;
1117
+ --color-ref-fuchsia-400: #e879f9;
1118
+ --color-ref-fuchsia-500: #d946ef;
1119
+ --color-ref-fuchsia-600: #c026d3;
1120
+ --color-ref-fuchsia-700: #a21caf;
1121
+ --color-ref-fuchsia-800: #86198f;
1122
+ --color-ref-fuchsia-900: #701a75;
1123
+ --color-ref-fuchsia-950: #4a044e;
1124
+
1125
+ /* Pink */
1126
+ --color-ref-pink-50: #fdf2f8;
1127
+ --color-ref-pink-100: #fce7f3;
1128
+ --color-ref-pink-200: #fbcfe8;
1129
+ --color-ref-pink-300: #f9a8d4;
1130
+ --color-ref-pink-400: #f472b6;
1131
+ --color-ref-pink-500: #ec4899;
1132
+ --color-ref-pink-600: #db2777;
1133
+ --color-ref-pink-700: #be185d;
1134
+ --color-ref-pink-800: #9d174d;
1135
+ --color-ref-pink-900: #831843;
1136
+ --color-ref-pink-950: #500724;
1137
+
1138
+ /* Rose */
1139
+ --color-ref-rose-50: #fff1f2;
1140
+ --color-ref-rose-100: #ffe4e6;
1141
+ --color-ref-rose-200: #fecdd3;
1142
+ --color-ref-rose-300: #fda4af;
1143
+ --color-ref-rose-400: #fb7185;
1144
+ --color-ref-rose-500: #f43f5e;
1145
+ --color-ref-rose-600: #e11d48;
1146
+ --color-ref-rose-700: #be123c;
1147
+ --color-ref-rose-800: #9f1239;
1148
+ --color-ref-rose-900: #881337;
1149
+ --color-ref-rose-950: #4c0519;
1150
+
1151
+ /* Component color variables */
1152
+ --cmp-node-color-emerald: var(--color-ref-emerald-500);
1153
+ --cmp-node-color-blue: var(--color-ref-blue-600);
1154
+ --cmp-node-color-amber: var(--color-ref-amber-500);
1155
+ --cmp-node-color-orange: var(--color-ref-orange-500);
1156
+ --cmp-node-color-red: var(--color-ref-red-500);
1157
+ --cmp-node-color-pink: var(--color-ref-pink-500);
1158
+ --cmp-node-color-indigo: var(--color-ref-indigo-500);
1159
+ --cmp-node-color-teal: var(--color-ref-teal-500);
1160
+ --cmp-node-color-cyan: var(--color-ref-cyan-500);
1161
+ --cmp-node-color-lime: var(--color-ref-lime-500);
1162
+ --cmp-node-color-slate: var(--color-ref-slate-500);
1163
+ --cmp-node-color-purple: var(--color-ref-purple-600);
1164
+
1165
+ /* NotesNode component variables */
1166
+ --notes-node-width: 500px;
1167
+ --notes-node-min-width: 250px;
1168
+ --notes-node-max-width: 500px;
1169
+ --notes-node-border-radius: 0.5rem;
1170
+ --notes-node-padding: 1rem;
1171
+ --notes-node-background: rgba(255, 255, 255, 0.9);
1172
+ --notes-node-backdrop-filter: blur(8px);
1173
+ --notes-node-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
1174
+ --notes-node-hover-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1175
+ --notes-node-selected-box-shadow: 0 0 0 2px #3b82f6;
1176
+ --notes-node-transition: all 0.2s ease-in-out;
1177
+
1178
+ /* Note type specific colors */
1179
+ --notes-node-info-bg: var(--color-ref-blue-50);
1180
+ --notes-node-info-border: var(--color-ref-blue-200);
1181
+ --notes-node-warning-bg: var(--color-ref-yellow-50);
1182
+ --notes-node-warning-border: var(--color-ref-yellow-200);
1183
+ --notes-node-success-bg: var(--color-ref-green-50);
1184
+ --notes-node-success-border: var(--color-ref-green-200);
1185
+ --notes-node-error-bg: var(--color-ref-red-50);
1186
+ --notes-node-error-border: var(--color-ref-red-200);
1187
+ --notes-node-note-bg: var(--color-ref-gray-50);
1188
+ --notes-node-note-border: var(--color-ref-gray-200);
1189
+ }
1190
+
1191
+ /* Markdown Display Component Styles */
1192
+ /* These styles are used for dynamically rendered markdown content */
1193
+
1194
+ /* Base markdown styling */
1195
+ .markdown-display {
1196
+ line-height: 1.6;
1197
+ color: inherit;
1198
+ }
1199
+
1200
+ /* Headings */
1201
+ .markdown-display h1,
1202
+ .markdown-display h2,
1203
+ .markdown-display h3,
1204
+ .markdown-display h4,
1205
+ .markdown-display h5,
1206
+ .markdown-display h6 {
1207
+ margin: 0.75rem 0 0.5rem 0;
1208
+ font-weight: 600;
1209
+ line-height: 1.25;
1210
+ }
1211
+
1212
+ .markdown-display h1 {
1213
+ font-size: 1.5rem;
1214
+ margin-top: 0;
1215
+ }
1216
+
1217
+ .markdown-display h2 {
1218
+ font-size: 1.25rem;
1219
+ }
1220
+
1221
+ .markdown-display h3 {
1222
+ font-size: 1.125rem;
1223
+ }
1224
+
1225
+ .markdown-display h4 {
1226
+ font-size: 1rem;
1227
+ }
1228
+
1229
+ .markdown-display h5 {
1230
+ font-size: 0.875rem;
1231
+ }
1232
+
1233
+ .markdown-display h6 {
1234
+ font-size: 0.75rem;
1235
+ }
1236
+
1237
+ /* Paragraphs and text */
1238
+ .markdown-display p {
1239
+ margin: 0.5rem 0;
1240
+ line-height: 1.6;
1241
+ }
1242
+
1243
+ .markdown-display p:first-child {
1244
+ margin-top: 0;
1245
+ }
1246
+
1247
+ .markdown-display p:last-child {
1248
+ margin-bottom: 0;
1249
+ }
1250
+
1251
+ /* Lists */
1252
+ .markdown-display ul,
1253
+ .markdown-display ol {
1254
+ margin: 0.5rem 0;
1255
+ padding-left: 1.5rem;
1256
+ }
1257
+
1258
+ .markdown-display li {
1259
+ margin: 0.25rem 0;
1260
+ line-height: 1.5;
1261
+ }
1262
+
1263
+ .markdown-display ul li {
1264
+ list-style-type: disc;
1265
+ }
1266
+
1267
+ .markdown-display ol li {
1268
+ list-style-type: decimal;
1269
+ }
1270
+
1271
+ /* Code blocks and inline code */
1272
+ .markdown-display code {
1273
+ background-color: rgba(0, 0, 0, 0.1);
1274
+ padding: 0.125rem 0.25rem;
1275
+ border-radius: 0.25rem;
1276
+ font-size: 0.875em;
1277
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
1278
+ }
1279
+
1280
+ .markdown-display pre {
1281
+ background-color: rgba(0, 0, 0, 0.1);
1282
+ padding: 0.75rem;
1283
+ border-radius: 0.375rem;
1284
+ overflow-x: auto;
1285
+ margin: 0.5rem 0;
1286
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
1287
+ font-size: 0.875em;
1288
+ line-height: 1.4;
1289
+ }
1290
+
1291
+ .markdown-display pre code {
1292
+ background-color: transparent;
1293
+ padding: 0;
1294
+ border-radius: 0;
1295
+ font-size: inherit;
1296
+ }
1297
+
1298
+ /* Blockquotes */
1299
+ .markdown-display blockquote {
1300
+ border-left: 3px solid currentColor;
1301
+ padding-left: 1rem;
1302
+ margin: 0.5rem 0;
1303
+ opacity: 0.8;
1304
+ font-style: italic;
1305
+ }
1306
+
1307
+ /* Links */
1308
+ .markdown-display a {
1309
+ color: #3b82f6;
1310
+ text-decoration: underline;
1311
+ text-decoration-thickness: 1px;
1312
+ text-underline-offset: 2px;
1313
+ }
1314
+
1315
+ .markdown-display a:hover {
1316
+ color: #2563eb;
1317
+ text-decoration-thickness: 2px;
1318
+ }
1319
+
1320
+ /* Emphasis */
1321
+ .markdown-display strong {
1322
+ font-weight: 600;
1323
+ }
1324
+
1325
+ .markdown-display em {
1326
+ font-style: italic;
1327
+ }
1328
+
1329
+ /* Horizontal rules */
1330
+ .markdown-display hr {
1331
+ border: none;
1332
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
1333
+ margin: 1rem 0;
1334
+ }
1335
+
1336
+ /* Tables */
1337
+ .markdown-display table {
1338
+ border-collapse: collapse;
1339
+ width: 100%;
1340
+ margin: 0.5rem 0;
1341
+ }
1342
+
1343
+ .markdown-display th,
1344
+ .markdown-display td {
1345
+ border: 1px solid rgba(0, 0, 0, 0.1);
1346
+ padding: 0.5rem;
1347
+ text-align: left;
1348
+ }
1349
+
1350
+ .markdown-display th {
1351
+ background-color: rgba(0, 0, 0, 0.05);
1352
+ font-weight: 600;
1353
+ }
1354
+
1355
+ /* Images */
1356
+ .markdown-display img {
1357
+ max-width: 100%;
1358
+ height: auto;
1359
+ border-radius: 0.25rem;
1360
+ margin: 0.5rem 0;
1361
+ }
1362
+
1363
+ /* Compact variant for smaller spaces */
1364
+ .markdown-display--compact {
1365
+ font-size: 0.875em;
1366
+ }
1367
+
1368
+ .markdown-display--compact h1 {
1369
+ font-size: 1.25rem;
1370
+ }
1371
+ .markdown-display--compact h2 {
1372
+ font-size: 1.125rem;
1373
+ }
1374
+ .markdown-display--compact h3 {
1375
+ font-size: 1rem;
1376
+ }
1377
+
1378
+ /* Large variant for emphasis */
1379
+ .markdown-display--large {
1380
+ font-size: 1.125em;
1381
+ }
1382
+
1383
+ .markdown-display--large h1 {
1384
+ font-size: 1.75rem;
1385
+ }
1386
+ .markdown-display--large h2 {
1387
+ font-size: 1.5rem;
1388
+ }
1389
+ .markdown-display--large h3 {
1390
+ font-size: 1.25rem;
1391
+ }