@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
@@ -254,8 +254,8 @@
254
254
 
255
255
  <style>
256
256
  .input-collector {
257
- border-bottom: 1px solid #e2e8f0;
258
- background-color: #ffffff;
257
+ border-bottom: 1px solid var(--fd-border);
258
+ background-color: var(--fd-background);
259
259
  }
260
260
 
261
261
  /* Header */
@@ -264,24 +264,24 @@
264
264
  align-items: center;
265
265
  justify-content: space-between;
266
266
  width: 100%;
267
- padding: 0.75rem 1rem;
267
+ padding: var(--fd-space-3) var(--fd-space-4);
268
268
  border: none;
269
269
  background: transparent;
270
270
  cursor: pointer;
271
- transition: background-color 0.2s ease-in-out;
271
+ transition: background-color var(--fd-transition-normal);
272
272
  }
273
273
 
274
274
  .input-collector__header:hover {
275
- background-color: #f8fafc;
275
+ background-color: var(--fd-muted);
276
276
  }
277
277
 
278
278
  .input-collector__title {
279
279
  display: flex;
280
280
  align-items: center;
281
- gap: 0.5rem;
282
- font-size: 0.875rem;
281
+ gap: var(--fd-space-2);
282
+ font-size: var(--fd-text-sm);
283
283
  font-weight: 500;
284
- color: #1e293b;
284
+ color: var(--fd-foreground);
285
285
  }
286
286
 
287
287
  .input-collector__count {
@@ -290,17 +290,17 @@
290
290
  justify-content: center;
291
291
  min-width: 1.25rem;
292
292
  height: 1.25rem;
293
- padding: 0 0.375rem;
294
- border-radius: 0.625rem;
295
- font-size: 0.6875rem;
293
+ padding: 0 var(--fd-space-1);
294
+ border-radius: var(--fd-radius-full);
295
+ font-size: var(--fd-text-xs);
296
296
  font-weight: 600;
297
- background-color: #dbeafe;
298
- color: #2563eb;
297
+ background-color: var(--fd-primary-muted);
298
+ color: var(--fd-primary);
299
299
  }
300
300
 
301
301
  :global(.input-collector__chevron) {
302
- transition: transform 0.2s ease-in-out;
303
- color: #94a3b8;
302
+ transition: transform var(--fd-transition-normal);
303
+ color: var(--fd-muted-foreground);
304
304
  }
305
305
 
306
306
  :global(.input-collector__chevron--expanded) {
@@ -309,70 +309,70 @@
309
309
 
310
310
  /* Content */
311
311
  .input-collector__content {
312
- padding: 0 1rem 1rem;
312
+ padding: 0 var(--fd-space-4) var(--fd-space-4);
313
313
  }
314
314
 
315
315
  .input-collector__hint {
316
316
  display: flex;
317
317
  align-items: center;
318
- gap: 0.5rem;
319
- padding: 0.5rem 0.75rem;
320
- margin-bottom: 1rem;
321
- background-color: #dbeafe;
322
- border-radius: 0.5rem;
323
- font-size: 0.8125rem;
324
- color: #1d4ed8;
318
+ gap: var(--fd-space-2);
319
+ padding: var(--fd-space-2) var(--fd-space-3);
320
+ margin-bottom: var(--fd-space-4);
321
+ background-color: var(--fd-info-muted);
322
+ border-radius: var(--fd-radius-lg);
323
+ font-size: var(--fd-text-sm);
324
+ color: var(--fd-info);
325
325
  }
326
326
 
327
327
  /* Fields */
328
328
  .input-collector__fields {
329
329
  display: flex;
330
330
  flex-direction: column;
331
- gap: 1rem;
331
+ gap: var(--fd-space-4);
332
332
  }
333
333
 
334
334
  .input-collector__field {
335
335
  display: flex;
336
336
  flex-direction: column;
337
- gap: 0.375rem;
337
+ gap: var(--fd-space-1);
338
338
  }
339
339
 
340
340
  .input-collector__label {
341
- font-size: 0.8125rem;
341
+ font-size: var(--fd-text-sm);
342
342
  font-weight: 500;
343
- color: #374151;
343
+ color: var(--fd-foreground);
344
344
  }
345
345
 
346
346
  .input-collector__required {
347
- color: #dc2626;
347
+ color: var(--fd-error);
348
348
  }
349
349
 
350
350
  .input-collector__input,
351
351
  .input-collector__select,
352
352
  .input-collector__textarea {
353
- padding: 0.5rem 0.75rem;
354
- border: 1px solid #e2e8f0;
355
- border-radius: 0.5rem;
356
- font-size: 0.875rem;
353
+ padding: var(--fd-space-2) var(--fd-space-3);
354
+ border: 1px solid var(--fd-border);
355
+ border-radius: var(--fd-radius-lg);
356
+ font-size: var(--fd-text-sm);
357
357
  font-family: inherit;
358
- color: #1e293b;
359
- background-color: #ffffff;
358
+ color: var(--fd-foreground);
359
+ background-color: var(--fd-background);
360
360
  transition:
361
- border-color 0.2s ease-in-out,
362
- box-shadow 0.2s ease-in-out;
361
+ border-color var(--fd-transition-normal),
362
+ box-shadow var(--fd-transition-normal);
363
363
  }
364
364
 
365
365
  .input-collector__input:focus,
366
366
  .input-collector__select:focus,
367
367
  .input-collector__textarea:focus {
368
368
  outline: none;
369
- border-color: #3b82f6;
370
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
369
+ border-color: var(--fd-primary);
370
+ box-shadow: 0 0 0 3px var(--fd-primary-muted);
371
371
  }
372
372
 
373
373
  .input-collector__input::placeholder,
374
374
  .input-collector__textarea::placeholder {
375
- color: #94a3b8;
375
+ color: var(--fd-muted-foreground);
376
376
  }
377
377
 
378
378
  .input-collector__textarea {
@@ -387,58 +387,58 @@
387
387
  .input-collector__checkbox-wrapper {
388
388
  display: flex;
389
389
  align-items: center;
390
- gap: 0.5rem;
390
+ gap: var(--fd-space-2);
391
391
  cursor: pointer;
392
392
  }
393
393
 
394
394
  .input-collector__checkbox {
395
395
  width: 1rem;
396
396
  height: 1rem;
397
- accent-color: #3b82f6;
397
+ accent-color: var(--fd-primary);
398
398
  cursor: pointer;
399
399
  }
400
400
 
401
401
  .input-collector__checkbox-label {
402
- font-size: 0.875rem;
403
- color: #64748b;
402
+ font-size: var(--fd-text-sm);
403
+ color: var(--fd-muted-foreground);
404
404
  }
405
405
 
406
406
  .input-collector__description {
407
- font-size: 0.75rem;
408
- color: #94a3b8;
407
+ font-size: var(--fd-text-xs);
408
+ color: var(--fd-muted-foreground);
409
409
  margin: 0;
410
410
  }
411
411
 
412
412
  /* Actions */
413
413
  .input-collector__actions {
414
- margin-top: 1rem;
415
- padding-top: 1rem;
416
- border-top: 1px solid #f1f5f9;
414
+ margin-top: var(--fd-space-4);
415
+ padding-top: var(--fd-space-4);
416
+ border-top: 1px solid var(--fd-border-muted);
417
417
  }
418
418
 
419
419
  .input-collector__reset {
420
420
  display: flex;
421
421
  align-items: center;
422
- gap: 0.375rem;
423
- padding: 0.375rem 0.75rem;
424
- border: 1px solid #e2e8f0;
425
- border-radius: 0.375rem;
426
- background: #ffffff;
427
- font-size: 0.8125rem;
428
- color: #64748b;
422
+ gap: var(--fd-space-1);
423
+ padding: var(--fd-space-1) var(--fd-space-3);
424
+ border: 1px solid var(--fd-border);
425
+ border-radius: var(--fd-radius-md);
426
+ background: var(--fd-background);
427
+ font-size: var(--fd-text-sm);
428
+ color: var(--fd-muted-foreground);
429
429
  cursor: pointer;
430
- transition: all 0.2s ease-in-out;
430
+ transition: all var(--fd-transition-normal);
431
431
  }
432
432
 
433
433
  .input-collector__reset:hover {
434
- background-color: #f8fafc;
435
- color: #1e293b;
434
+ background-color: var(--fd-muted);
435
+ color: var(--fd-foreground);
436
436
  }
437
437
 
438
438
  /* Responsive */
439
439
  @media (max-width: 640px) {
440
440
  .input-collector__content {
441
- padding: 0 0.75rem 0.75rem;
441
+ padding: 0 var(--fd-space-3) var(--fd-space-3);
442
442
  }
443
443
  }
444
444
  </style>
@@ -87,10 +87,7 @@
87
87
  * @param metadata - Optional message metadata containing userName for user messages
88
88
  * @returns Display label
89
89
  */
90
- function getRoleLabel(
91
- role: PlaygroundMessageRole,
92
- metadata?: PlaygroundMessageMetadata
93
- ): string {
90
+ function getRoleLabel(role: PlaygroundMessageRole, metadata?: PlaygroundMessageMetadata): string {
94
91
  switch (role) {
95
92
  case 'user':
96
93
  return metadata?.userName ?? 'You';
@@ -181,7 +178,9 @@
181
178
  <div class="message-bubble__header">
182
179
  <span class="message-bubble__role">{getRoleLabel(message.role, message.metadata)}</span>
183
180
  {#if message.role === 'log' && message.metadata?.level}
184
- <span class="message-bubble__log-level message-bubble__log-level--{message.metadata.level}">
181
+ <span
182
+ class="message-bubble__log-level message-bubble__log-level--{message.metadata.level}"
183
+ >
185
184
  <Icon icon={getLogLevelIcon()} />
186
185
  {message.metadata.level.toUpperCase()}
187
186
  </span>
@@ -226,10 +225,10 @@
226
225
  <style>
227
226
  .message-bubble {
228
227
  display: flex;
229
- gap: 0.75rem;
230
- padding: 0.75rem 1rem;
231
- margin-bottom: 0.5rem;
232
- border-radius: 0.75rem;
228
+ gap: var(--fd-space-3);
229
+ padding: var(--fd-space-3) var(--fd-space-4);
230
+ margin-bottom: var(--fd-space-2);
231
+ border-radius: var(--fd-radius-xl);
233
232
  animation: fadeIn 0.2s ease-out;
234
233
  }
235
234
 
@@ -246,51 +245,51 @@
246
245
 
247
246
  /* Role-specific styling - Neutral theme */
248
247
  .message-bubble--user {
249
- background-color: #f1f5f9;
250
- border: 1px solid #e2e8f0;
251
- color: #1e293b;
252
- margin-left: 2rem;
248
+ background-color: var(--fd-muted);
249
+ border: 1px solid var(--fd-border);
250
+ color: var(--fd-foreground);
251
+ margin-left: var(--fd-space-8);
253
252
  flex-direction: row-reverse;
254
253
  }
255
254
 
256
255
  .message-bubble--assistant {
257
- background-color: #ffffff;
258
- border: 1px solid #e5e7eb;
259
- color: #1f2937;
260
- margin-right: 2rem;
256
+ background-color: var(--fd-card);
257
+ border: 1px solid var(--fd-border);
258
+ color: var(--fd-card-foreground);
259
+ margin-right: var(--fd-space-8);
261
260
  }
262
261
 
263
262
  .message-bubble--system {
264
- background-color: #f9fafb;
265
- border: 1px solid #e5e7eb;
266
- color: #6b7280;
267
- margin: 0 1rem;
268
- font-size: 0.875rem;
263
+ background-color: var(--fd-muted);
264
+ border: 1px solid var(--fd-border);
265
+ color: var(--fd-muted-foreground);
266
+ margin: 0 var(--fd-space-4);
267
+ font-size: var(--fd-text-sm);
269
268
  }
270
269
 
271
270
  .message-bubble--log {
272
- background-color: #f8fafc;
273
- border: 1px solid #e2e8f0;
274
- color: #475569;
275
- margin: 0 1rem;
276
- font-size: 0.8125rem;
271
+ background-color: var(--fd-muted);
272
+ border: 1px solid var(--fd-border);
273
+ color: var(--fd-muted-foreground);
274
+ margin: 0 var(--fd-space-4);
275
+ font-size: var(--fd-text-sm);
277
276
  font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
278
277
  }
279
278
 
280
279
  .message-bubble--log-error {
281
- background-color: #fef2f2;
282
- border-color: #fecaca;
283
- color: #991b1b;
280
+ background-color: var(--fd-error-muted);
281
+ border-color: var(--fd-error);
282
+ color: var(--fd-error);
284
283
  }
285
284
 
286
285
  .message-bubble--log-warning {
287
- background-color: #fffbeb;
288
- border-color: #fde68a;
289
- color: #92400e;
286
+ background-color: var(--fd-warning-muted);
287
+ border-color: var(--fd-warning);
288
+ color: var(--fd-warning);
290
289
  }
291
290
 
292
291
  .message-bubble--last {
293
- margin-bottom: 1rem;
292
+ margin-bottom: var(--fd-space-4);
294
293
  }
295
294
 
296
295
  /* Avatar */
@@ -301,31 +300,31 @@
301
300
  display: flex;
302
301
  align-items: center;
303
302
  justify-content: center;
304
- border-radius: 50%;
305
- font-size: 1.125rem;
303
+ border-radius: var(--fd-radius-full);
304
+ font-size: var(--fd-text-lg);
306
305
  }
307
306
 
308
307
  .message-bubble--user .message-bubble__avatar {
309
- background-color: #e2e8f0;
310
- color: #475569;
308
+ background-color: var(--fd-secondary);
309
+ color: var(--fd-secondary-foreground);
311
310
  }
312
311
 
313
312
  .message-bubble--assistant .message-bubble__avatar {
314
- background-color: #e5e7eb;
315
- color: #374151;
313
+ background-color: var(--fd-secondary);
314
+ color: var(--fd-secondary-foreground);
316
315
  }
317
316
 
318
317
  .message-bubble--system .message-bubble__avatar {
319
- background-color: #f3f4f6;
320
- color: #6b7280;
318
+ background-color: var(--fd-muted);
319
+ color: var(--fd-muted-foreground);
321
320
  }
322
321
 
323
322
  .message-bubble--log .message-bubble__avatar {
324
- background-color: #e2e8f0;
325
- color: #64748b;
323
+ background-color: var(--fd-secondary);
324
+ color: var(--fd-muted-foreground);
326
325
  width: 1.5rem;
327
326
  height: 1.5rem;
328
- font-size: 0.875rem;
327
+ font-size: var(--fd-text-sm);
329
328
  }
330
329
 
331
330
  /* Content */
@@ -338,8 +337,8 @@
338
337
  .message-bubble__header {
339
338
  display: flex;
340
339
  align-items: center;
341
- gap: 0.5rem;
342
- margin-bottom: 0.25rem;
340
+ gap: var(--fd-space-2);
341
+ margin-bottom: var(--fd-space-1);
343
342
  }
344
343
 
345
344
  .message-bubble--user .message-bubble__header {
@@ -348,16 +347,16 @@
348
347
 
349
348
  .message-bubble__role {
350
349
  font-weight: 600;
351
- font-size: 0.8125rem;
352
- color: #374151;
350
+ font-size: var(--fd-text-sm);
351
+ color: var(--fd-foreground);
353
352
  }
354
353
 
355
354
  .message-bubble--user .message-bubble__role {
356
- color: #475569;
355
+ color: var(--fd-foreground);
357
356
  }
358
357
 
359
358
  .message-bubble--assistant .message-bubble__role {
360
- color: #374151;
359
+ color: var(--fd-foreground);
361
360
  }
362
361
 
363
362
  .message-bubble--log .message-bubble__role {
@@ -367,43 +366,43 @@
367
366
  .message-bubble__log-level {
368
367
  display: flex;
369
368
  align-items: center;
370
- gap: 0.25rem;
371
- font-size: 0.6875rem;
369
+ gap: var(--fd-space-1);
370
+ font-size: var(--fd-text-xs);
372
371
  font-weight: 600;
373
- padding: 0.125rem 0.375rem;
374
- border-radius: 0.25rem;
372
+ padding: 0.125rem var(--fd-space-1);
373
+ border-radius: var(--fd-radius-sm);
375
374
  text-transform: uppercase;
376
375
  letter-spacing: 0.05em;
377
376
  }
378
377
 
379
378
  .message-bubble__log-level--info {
380
- background-color: #e0f2fe;
381
- color: #0369a1;
379
+ background-color: var(--fd-info-muted);
380
+ color: var(--fd-info);
382
381
  }
383
382
 
384
383
  .message-bubble__log-level--warning {
385
- background-color: #fef3c7;
386
- color: #b45309;
384
+ background-color: var(--fd-warning-muted);
385
+ color: var(--fd-warning);
387
386
  }
388
387
 
389
388
  .message-bubble__log-level--error {
390
- background-color: #fee2e2;
391
- color: #dc2626;
389
+ background-color: var(--fd-error-muted);
390
+ color: var(--fd-error);
392
391
  }
393
392
 
394
393
  .message-bubble__log-level--debug {
395
- background-color: #f3e8ff;
396
- color: #7c3aed;
394
+ background-color: var(--fd-accent-muted);
395
+ color: var(--fd-accent);
397
396
  }
398
397
 
399
398
  .message-bubble__timestamp {
400
- font-size: 0.6875rem;
401
- color: #9ca3af;
399
+ font-size: var(--fd-text-xs);
400
+ color: var(--fd-muted-foreground);
402
401
  font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
403
402
  }
404
403
 
405
404
  .message-bubble--user .message-bubble__timestamp {
406
- color: #9ca3af;
405
+ color: var(--fd-muted-foreground);
407
406
  }
408
407
 
409
408
  /* Message text */
@@ -413,14 +412,14 @@
413
412
  }
414
413
 
415
414
  .message-bubble--log .message-bubble__text {
416
- font-size: 0.8125rem;
415
+ font-size: var(--fd-text-sm);
417
416
  line-height: 1.4;
418
417
  white-space: pre-wrap;
419
418
  }
420
419
 
421
420
  /* Markdown styling for message content */
422
421
  .message-bubble__text :global(p) {
423
- margin: 0 0 0.75rem 0;
422
+ margin: 0 0 var(--fd-space-3) 0;
424
423
  }
425
424
 
426
425
  .message-bubble__text :global(p:last-child) {
@@ -433,7 +432,7 @@
433
432
  .message-bubble__text :global(h4),
434
433
  .message-bubble__text :global(h5),
435
434
  .message-bubble__text :global(h6) {
436
- margin: 1rem 0 0.5rem 0;
435
+ margin: var(--fd-space-4) 0 var(--fd-space-2) 0;
437
436
  font-weight: 600;
438
437
  line-height: 1.3;
439
438
  }
@@ -448,43 +447,43 @@
448
447
  }
449
448
 
450
449
  .message-bubble__text :global(h1) {
451
- font-size: 1.25rem;
450
+ font-size: var(--fd-text-xl);
452
451
  }
453
452
 
454
453
  .message-bubble__text :global(h2) {
455
- font-size: 1.125rem;
454
+ font-size: var(--fd-text-lg);
456
455
  }
457
456
 
458
457
  .message-bubble__text :global(h3) {
459
- font-size: 1rem;
458
+ font-size: var(--fd-text-base);
460
459
  }
461
460
 
462
461
  .message-bubble__text :global(ul),
463
462
  .message-bubble__text :global(ol) {
464
- margin: 0.5rem 0;
465
- padding-left: 1.5rem;
463
+ margin: var(--fd-space-2) 0;
464
+ padding-left: var(--fd-space-6);
466
465
  }
467
466
 
468
467
  .message-bubble__text :global(li) {
469
- margin: 0.25rem 0;
468
+ margin: var(--fd-space-1) 0;
470
469
  }
471
470
 
472
471
  .message-bubble__text :global(code) {
473
- background-color: rgba(0, 0, 0, 0.06);
474
- padding: 0.125rem 0.375rem;
475
- border-radius: 0.25rem;
472
+ background-color: var(--fd-secondary);
473
+ padding: 0.125rem var(--fd-space-1);
474
+ border-radius: var(--fd-radius-sm);
476
475
  font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
477
476
  font-size: 0.875em;
478
477
  }
479
478
 
480
479
  .message-bubble__text :global(pre) {
481
- background-color: #1e293b;
482
- color: #e2e8f0;
483
- padding: 0.75rem 1rem;
484
- border-radius: 0.5rem;
480
+ background-color: var(--fd-foreground);
481
+ color: var(--fd-background);
482
+ padding: var(--fd-space-3) var(--fd-space-4);
483
+ border-radius: var(--fd-radius-lg);
485
484
  overflow-x: auto;
486
- margin: 0.75rem 0;
487
- font-size: 0.8125rem;
485
+ margin: var(--fd-space-3) 0;
486
+ font-size: var(--fd-text-sm);
488
487
  line-height: 1.5;
489
488
  }
490
489
 
@@ -497,15 +496,15 @@
497
496
  }
498
497
 
499
498
  .message-bubble__text :global(blockquote) {
500
- border-left: 3px solid #d1d5db;
501
- padding-left: 1rem;
502
- margin: 0.75rem 0;
503
- color: #6b7280;
499
+ border-left: 3px solid var(--fd-border-strong);
500
+ padding-left: var(--fd-space-4);
501
+ margin: var(--fd-space-3) 0;
502
+ color: var(--fd-muted-foreground);
504
503
  font-style: italic;
505
504
  }
506
505
 
507
506
  .message-bubble__text :global(a) {
508
- color: #2563eb;
507
+ color: var(--fd-primary);
509
508
  text-decoration: none;
510
509
  }
511
510
 
@@ -515,26 +514,26 @@
515
514
 
516
515
  .message-bubble__text :global(hr) {
517
516
  border: none;
518
- border-top: 1px solid #e5e7eb;
519
- margin: 1rem 0;
517
+ border-top: 1px solid var(--fd-border);
518
+ margin: var(--fd-space-4) 0;
520
519
  }
521
520
 
522
521
  .message-bubble__text :global(table) {
523
522
  border-collapse: collapse;
524
523
  width: 100%;
525
- margin: 0.75rem 0;
526
- font-size: 0.875rem;
524
+ margin: var(--fd-space-3) 0;
525
+ font-size: var(--fd-text-sm);
527
526
  }
528
527
 
529
528
  .message-bubble__text :global(th),
530
529
  .message-bubble__text :global(td) {
531
- border: 1px solid #e5e7eb;
532
- padding: 0.5rem 0.75rem;
530
+ border: 1px solid var(--fd-border);
531
+ padding: var(--fd-space-2) var(--fd-space-3);
533
532
  text-align: left;
534
533
  }
535
534
 
536
535
  .message-bubble__text :global(th) {
537
- background-color: #f9fafb;
536
+ background-color: var(--fd-muted);
538
537
  font-weight: 600;
539
538
  }
540
539
 
@@ -550,10 +549,10 @@
550
549
  .message-bubble__footer {
551
550
  display: flex;
552
551
  align-items: center;
553
- gap: 0.75rem;
554
- margin-top: 0.5rem;
555
- font-size: 0.6875rem;
556
- color: #9ca3af;
552
+ gap: var(--fd-space-3);
553
+ margin-top: var(--fd-space-2);
554
+ font-size: var(--fd-text-xs);
555
+ color: var(--fd-muted-foreground);
557
556
  }
558
557
 
559
558
  .message-bubble--user .message-bubble__footer {
@@ -564,7 +563,7 @@
564
563
  .message-bubble__duration {
565
564
  display: flex;
566
565
  align-items: center;
567
- gap: 0.25rem;
566
+ gap: var(--fd-space-1);
568
567
  }
569
568
 
570
569
  /* Responsive */
@@ -578,7 +577,7 @@
578
577
  .message-bubble__avatar {
579
578
  width: 1.75rem;
580
579
  height: 1.75rem;
581
- font-size: 1rem;
580
+ font-size: var(--fd-text-base);
582
581
  }
583
582
  }
584
583
 
@@ -591,34 +590,34 @@
591
590
  display: flex;
592
591
  align-items: center;
593
592
  justify-content: center;
594
- gap: 0.375rem;
595
- padding: 0.375rem 0.75rem;
596
- margin: 0.25rem 0;
597
- font-size: 0.75rem;
598
- color: #9ca3af;
593
+ gap: var(--fd-space-1);
594
+ padding: var(--fd-space-1) var(--fd-space-3);
595
+ margin: var(--fd-space-1) 0;
596
+ font-size: var(--fd-text-xs);
597
+ color: var(--fd-muted-foreground);
599
598
  text-align: center;
600
599
  }
601
600
 
602
601
  .system-notice--last {
603
- margin-bottom: 0.75rem;
602
+ margin-bottom: var(--fd-space-3);
604
603
  }
605
604
 
606
605
  /* Icon styling - using :global for Iconify component */
607
606
  .system-notice :global(.system-notice__icon) {
608
607
  flex-shrink: 0;
609
- font-size: 0.875rem;
610
- color: #d1d5db;
608
+ font-size: var(--fd-text-sm);
609
+ color: var(--fd-border-strong);
611
610
  }
612
611
 
613
612
  .system-notice__text {
614
- color: #6b7280;
613
+ color: var(--fd-muted-foreground);
615
614
  line-height: 1.4;
616
615
  }
617
616
 
618
617
  .system-notice__timestamp {
619
618
  flex-shrink: 0;
620
619
  font-size: 0.625rem;
621
- color: #d1d5db;
620
+ color: var(--fd-border-strong);
622
621
  font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
623
622
  }
624
623