@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
@@ -144,26 +144,26 @@
144
144
  tabindex="0"
145
145
  aria-label="Idea node: {displayTitle}"
146
146
  >
147
- <!-- Left Port (Target/Input) -->
147
+ <!-- Left Port (Target/Input): center at top 40px (multiple of 10), 20px connection area -->
148
148
  {#if enableLeftPort}
149
149
  <Handle
150
150
  type="target"
151
151
  position={Position.Left}
152
- style="background-color: {getDataTypeColor(
152
+ style="--fd-handle-fill: {getDataTypeColor(
153
153
  IDEA_DATA_TYPE
154
- )}; border-color: #ffffff; top: 50%; transform: translateY(-50%); z-index: 30;"
154
+ )}; --fd-handle-border-color: var(--fd-handle-border); top: 40px; transform: translateY(-50%); margin-left: -10px; z-index: 30;"
155
155
  id={`${props.data.nodeId}-input-left`}
156
156
  />
157
157
  {/if}
158
158
 
159
- <!-- Top Port (Target/Input) -->
159
+ <!-- Top Port (Target/Input): center at left 150px (multiple of 10), 20px connection area -->
160
160
  {#if enableTopPort}
161
161
  <Handle
162
162
  type="target"
163
163
  position={Position.Top}
164
- style="background-color: {getDataTypeColor(
164
+ style="--fd-handle-fill: {getDataTypeColor(
165
165
  IDEA_DATA_TYPE
166
- )}; border-color: #ffffff; left: 50%; transform: translateX(-50%); z-index: 30;"
166
+ )}; --fd-handle-border-color: var(--fd-handle-border); left: 150px; transform: translateX(-50%); margin-top: -10px; z-index: 30;"
167
167
  id={`${props.data.nodeId}-input-top`}
168
168
  />
169
169
  {/if}
@@ -208,26 +208,26 @@
208
208
  <Icon icon="mdi:cog" />
209
209
  </button>
210
210
 
211
- <!-- Right Port (Source/Output) -->
211
+ <!-- Right Port (Source/Output): center at top 40px (multiple of 10), 20px connection area -->
212
212
  {#if enableRightPort}
213
213
  <Handle
214
214
  type="source"
215
215
  position={Position.Right}
216
- style="background-color: {getDataTypeColor(
216
+ style="--fd-handle-fill: {getDataTypeColor(
217
217
  IDEA_DATA_TYPE
218
- )}; border-color: #ffffff; top: 50%; transform: translateY(-50%); z-index: 30;"
218
+ )}; --fd-handle-border-color: var(--fd-handle-border); top: 40px; transform: translateY(-50%); margin-right: -10px; z-index: 30;"
219
219
  id={`${props.data.nodeId}-output-right`}
220
220
  />
221
221
  {/if}
222
222
 
223
- <!-- Bottom Port (Source/Output) -->
223
+ <!-- Bottom Port (Source/Output): center at left 150px (multiple of 10), 20px connection area -->
224
224
  {#if enableBottomPort}
225
225
  <Handle
226
226
  type="source"
227
227
  position={Position.Bottom}
228
- style="background-color: {getDataTypeColor(
228
+ style="--fd-handle-fill: {getDataTypeColor(
229
229
  IDEA_DATA_TYPE
230
- )}; border-color: #ffffff; left: 50%; transform: translateX(-50%); z-index: 30;"
230
+ )}; --fd-handle-border-color: var(--fd-handle-border); left: 150px; transform: translateX(-50%); margin-bottom: -10px; z-index: 30;"
231
231
  id={`${props.data.nodeId}-output-bottom`}
232
232
  />
233
233
  {/if}
@@ -236,35 +236,33 @@
236
236
  <style>
237
237
  .flowdrop-idea-node {
238
238
  position: relative;
239
- width: 18rem;
239
+ width: var(--fd-node-default-width);
240
+ min-height: var(--fd-node-simple-height);
240
241
  cursor: pointer;
241
- transition: all 0.2s ease-in-out;
242
+ transition: all var(--fd-transition-normal);
242
243
  z-index: 10;
244
+ color: var(--fd-foreground);
243
245
  }
244
246
 
245
247
  .flowdrop-idea-node__card {
246
- background-color: #ffffff;
247
- border-radius: 0.75rem;
248
- border: 1px solid #e5e7eb;
249
- box-shadow:
250
- 0 4px 6px -1px rgba(0, 0, 0, 0.1),
251
- 0 2px 4px -1px rgba(0, 0, 0, 0.06);
248
+ background-color: var(--fd-background);
249
+ border-radius: var(--fd-radius-xl);
250
+ border: 1px solid var(--fd-border);
251
+ box-shadow: var(--fd-shadow-md);
252
252
  overflow: hidden;
253
- transition: all 0.2s ease-in-out;
253
+ transition: all var(--fd-transition-normal);
254
254
  }
255
255
 
256
256
  .flowdrop-idea-node:hover .flowdrop-idea-node__card {
257
- box-shadow:
258
- 0 10px 15px -3px rgba(0, 0, 0, 0.1),
259
- 0 4px 6px -2px rgba(0, 0, 0, 0.05);
257
+ box-shadow: var(--fd-shadow-lg);
260
258
  transform: translateY(-1px);
261
259
  }
262
260
 
263
261
  .flowdrop-idea-node--selected .flowdrop-idea-node__card {
264
- border-color: #3b82f6;
262
+ border-color: var(--fd-primary);
265
263
  box-shadow:
266
- 0 10px 15px -3px rgba(0, 0, 0, 0.1),
267
- 0 0 0 3px rgba(59, 130, 246, 0.3);
264
+ var(--fd-shadow-lg),
265
+ 0 0 0 3px color-mix(in srgb, var(--fd-primary) 30%, transparent);
268
266
  }
269
267
 
270
268
  .flowdrop-idea-node--processing .flowdrop-idea-node__card {
@@ -272,15 +270,15 @@
272
270
  }
273
271
 
274
272
  .flowdrop-idea-node--error .flowdrop-idea-node__card {
275
- border-color: #ef4444 !important;
276
- background-color: #fef2f2 !important;
273
+ border-color: var(--fd-error) !important;
274
+ background-color: var(--fd-error-muted) !important;
277
275
  }
278
276
 
279
277
  /* Accent bar at top of card */
280
278
  .flowdrop-idea-node__accent-bar {
281
279
  height: 4px;
282
- background-color: var(--idea-accent-color, #6366f1);
283
- transition: background-color 0.2s ease-in-out;
280
+ background-color: var(--idea-accent-color, var(--fd-accent));
281
+ transition: background-color var(--fd-transition-normal);
284
282
  }
285
283
 
286
284
  /* Header section */
@@ -288,7 +286,7 @@
288
286
  display: flex;
289
287
  align-items: center;
290
288
  gap: 0.625rem;
291
- padding: 0.75rem 1rem 0.5rem;
289
+ padding: var(--fd-space-3) var(--fd-space-4) var(--fd-space-2);
292
290
  }
293
291
 
294
292
  .flowdrop-idea-node__icon-wrapper {
@@ -297,21 +295,25 @@
297
295
  justify-content: center;
298
296
  width: 2rem;
299
297
  height: 2rem;
300
- background-color: color-mix(in srgb, var(--idea-accent-color, #6366f1) 15%, transparent);
301
- border-radius: 0.5rem;
298
+ background-color: color-mix(
299
+ in srgb,
300
+ var(--idea-accent-color, var(--fd-accent)) var(--fd-node-icon-bg-opacity),
301
+ transparent
302
+ );
303
+ border-radius: var(--fd-radius-lg);
302
304
  flex-shrink: 0;
303
305
  }
304
306
 
305
307
  :global(.flowdrop-idea-node__icon) {
306
308
  width: 1.25rem;
307
309
  height: 1.25rem;
308
- color: var(--idea-accent-color, #6366f1);
310
+ color: var(--fd-node-icon);
309
311
  }
310
312
 
311
313
  .flowdrop-idea-node__title {
312
314
  font-size: 0.9375rem;
313
315
  font-weight: 600;
314
- color: #1f2937;
316
+ color: var(--fd-foreground);
315
317
  margin: 0;
316
318
  line-height: 1.3;
317
319
  overflow: hidden;
@@ -321,12 +323,12 @@
321
323
 
322
324
  /* Body section */
323
325
  .flowdrop-idea-node__body {
324
- padding: 0 1rem 0.875rem;
326
+ padding: 0 var(--fd-space-4) var(--fd-space-3);
325
327
  }
326
328
 
327
329
  .flowdrop-idea-node__description {
328
330
  font-size: 0.8125rem;
329
- color: #6b7280;
331
+ color: var(--fd-muted-foreground);
330
332
  margin: 0;
331
333
  line-height: 1.5;
332
334
  display: -webkit-box;
@@ -340,18 +342,18 @@
340
342
  .flowdrop-idea-node__processing {
341
343
  display: flex;
342
344
  align-items: center;
343
- gap: 0.5rem;
344
- padding: 0.5rem 1rem;
345
- font-size: 0.75rem;
346
- color: #6b7280;
347
- border-top: 1px solid #f3f4f6;
345
+ gap: var(--fd-space-2);
346
+ padding: var(--fd-space-2) var(--fd-space-4);
347
+ font-size: var(--fd-text-xs);
348
+ color: var(--fd-muted-foreground);
349
+ border-top: 1px solid var(--fd-border-muted);
348
350
  }
349
351
 
350
352
  .flowdrop-idea-node__spinner {
351
353
  width: 0.875rem;
352
354
  height: 0.875rem;
353
- border: 2px solid #e5e7eb;
354
- border-top-color: var(--idea-accent-color, #6366f1);
355
+ border: 2px solid var(--fd-border);
356
+ border-top-color: var(--idea-accent-color, var(--fd-accent));
355
357
  border-radius: 50%;
356
358
  animation: idea-spin 1s linear infinite;
357
359
  }
@@ -360,12 +362,12 @@
360
362
  .flowdrop-idea-node__error {
361
363
  display: flex;
362
364
  align-items: center;
363
- gap: 0.5rem;
364
- padding: 0.5rem 1rem;
365
- font-size: 0.75rem;
366
- color: #ef4444;
367
- border-top: 1px solid #fecaca;
368
- background-color: #fef2f2;
365
+ gap: var(--fd-space-2);
366
+ padding: var(--fd-space-2) var(--fd-space-4);
367
+ font-size: var(--fd-text-xs);
368
+ color: var(--fd-error);
369
+ border-top: 1px solid color-mix(in srgb, var(--fd-error) 30%, transparent);
370
+ background-color: var(--fd-error-muted);
369
371
  }
370
372
 
371
373
  :global(.flowdrop-idea-node__error-icon) {
@@ -386,19 +388,19 @@
386
388
  right: 0.625rem;
387
389
  width: 1.5rem;
388
390
  height: 1.5rem;
389
- background-color: rgba(255, 255, 255, 0.95);
390
- border: 1px solid #e5e7eb;
391
- border-radius: 0.375rem;
392
- color: #6b7280;
391
+ background-color: var(--fd-backdrop);
392
+ border: 1px solid var(--fd-border);
393
+ border-radius: var(--fd-radius-md);
394
+ color: var(--fd-muted-foreground);
393
395
  cursor: pointer;
394
396
  display: flex;
395
397
  align-items: center;
396
398
  justify-content: center;
397
399
  opacity: 0;
398
- transition: all 0.2s ease-in-out;
399
- backdrop-filter: blur(4px);
400
+ transition: all var(--fd-transition-normal);
401
+ backdrop-filter: var(--fd-backdrop-blur);
400
402
  z-index: 15;
401
- font-size: 0.875rem;
403
+ font-size: var(--fd-text-sm);
402
404
  }
403
405
 
404
406
  .flowdrop-idea-node:hover .flowdrop-idea-node__config-btn {
@@ -406,45 +408,34 @@
406
408
  }
407
409
 
408
410
  .flowdrop-idea-node__config-btn:hover {
409
- background-color: #f9fafb;
410
- border-color: #d1d5db;
411
- color: #374151;
411
+ background-color: var(--fd-muted);
412
+ border-color: var(--fd-border-strong);
413
+ color: var(--fd-foreground);
412
414
  transform: scale(1.05);
413
415
  }
414
416
 
415
- /* Handle styles */
417
+ /* Handle: 20px/12px from base.css; position offsets for 20px handle */
416
418
  :global(.flowdrop-idea-node .svelte-flow__handle) {
417
- width: 16px !important;
418
- height: 16px !important;
419
- border-radius: 50% !important;
420
- border: 2px solid #ffffff !important;
421
- transition: all 0.2s ease-in-out !important;
422
- cursor: pointer !important;
423
419
  z-index: 20 !important;
424
420
  pointer-events: auto !important;
425
421
  }
426
422
 
427
- /* Left handle positioning */
428
423
  :global(.flowdrop-idea-node .svelte-flow__handle-left) {
429
- left: -8px !important;
424
+ left: -10px !important;
430
425
  }
431
426
 
432
- /* Right handle positioning */
433
427
  :global(.flowdrop-idea-node .svelte-flow__handle-right) {
434
- right: -8px !important;
428
+ right: -10px !important;
435
429
  }
436
430
 
437
- /* Top handle positioning */
438
431
  :global(.flowdrop-idea-node .svelte-flow__handle-top) {
439
- top: -8px !important;
432
+ top: -10px !important;
440
433
  }
441
434
 
442
- /* Bottom handle positioning */
443
435
  :global(.flowdrop-idea-node .svelte-flow__handle-bottom) {
444
- bottom: -8px !important;
436
+ bottom: -10px !important;
445
437
  }
446
438
 
447
- /* Handle hover effects */
448
439
  :global(.flowdrop-idea-node .svelte-flow__handle-left:hover),
449
440
  :global(.flowdrop-idea-node .svelte-flow__handle-right:hover) {
450
441
  transform: translateY(-50%) scale(1.2) !important;
@@ -455,11 +446,6 @@
455
446
  transform: translateX(-50%) scale(1.2) !important;
456
447
  }
457
448
 
458
- :global(.flowdrop-idea-node .svelte-flow__handle:focus) {
459
- outline: 2px solid #3b82f6 !important;
460
- outline-offset: 2px !important;
461
- }
462
-
463
449
  /* Responsive design */
464
450
  @media (max-width: 640px) {
465
451
  .flowdrop-idea-node {
@@ -475,11 +461,11 @@
475
461
  }
476
462
 
477
463
  .flowdrop-idea-node__title {
478
- font-size: 0.875rem;
464
+ font-size: var(--fd-text-sm);
479
465
  }
480
466
 
481
467
  .flowdrop-idea-node__description {
482
- font-size: 0.75rem;
468
+ font-size: var(--fd-text-xs);
483
469
  }
484
470
  }
485
471
  </style>