@nocturnium/svelte-ide 1.0.3 → 1.0.5

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 (30) hide show
  1. package/dist/components/ai/AIPanel.svelte +6 -1
  2. package/dist/components/ai/AIToolCallDisplay.svelte +1 -1
  3. package/dist/components/core/Avatar.svelte +14 -14
  4. package/dist/components/core/Badge.svelte +2 -2
  5. package/dist/components/core/Button.svelte +2 -2
  6. package/dist/components/editor/AIFocusLayer.svelte +3 -3
  7. package/dist/components/editor/CognitiveLoadMeter.svelte +15 -15
  8. package/dist/components/editor/CommandPalette.svelte +17 -17
  9. package/dist/components/editor/ComplexityLayer.svelte +6 -6
  10. package/dist/components/editor/ConflictZoneLayer.svelte +8 -8
  11. package/dist/components/editor/ContextLens.svelte +16 -10
  12. package/dist/components/editor/EchoCursorLayer.svelte +43 -11
  13. package/dist/components/editor/FileIcon.svelte +2 -1
  14. package/dist/components/editor/GhostBracketLayer.svelte +38 -25
  15. package/dist/components/editor/GitBlameLayer.svelte +8 -8
  16. package/dist/components/editor/InlineDiffLayer.svelte +12 -12
  17. package/dist/components/editor/PluginPreviewSandbox.svelte +21 -21
  18. package/dist/components/editor/SnippetPalette.svelte +21 -21
  19. package/dist/components/editor/StructureMap.svelte +47 -30
  20. package/dist/components/editor/TimelineScrubber.svelte +11 -11
  21. package/dist/components/editor/core/complexity-analyzer.d.ts +4 -0
  22. package/dist/components/editor/core/complexity-analyzer.js +45 -8
  23. package/dist/components/editor/core/diagnostics.js +4 -4
  24. package/dist/components/editor/core/semantic-analyzer.js +13 -1
  25. package/dist/components/editor/core/structure-layout.d.ts +31 -0
  26. package/dist/components/editor/core/structure-layout.js +64 -0
  27. package/dist/services/mock-ai.js +1 -1
  28. package/dist/stores/ai.svelte.js +1 -1
  29. package/dist/styles/theme.css +24 -0
  30. package/package.json +1 -1
@@ -107,23 +107,23 @@
107
107
  /**
108
108
  * Get color for confidence level
109
109
  */
110
- function getConfidenceColor(confidence: number): string {
111
- if (confidence >= 0.85) return '#22c55e'; // green
112
- if (confidence >= 0.7) return '#eab308'; // yellow
113
- return '#f59e0b'; // amber
110
+ function getConfidenceToken(confidence: number): string {
111
+ if (confidence >= 0.85) return '--ide-status-created';
112
+ if (confidence >= 0.7) return '--ide-status-modified';
113
+ return '--ide-accent-strong';
114
114
  }
115
115
 
116
116
  /**
117
117
  * Get severity color
118
118
  */
119
- function getSeverityColor(severity: BracketMismatch['severity']): string {
119
+ function getSeverityToken(severity: BracketMismatch['severity']): string {
120
120
  switch (severity) {
121
121
  case 'error':
122
- return '#ef4444';
122
+ return '--ide-status-deleted';
123
123
  case 'warning':
124
- return '#f59e0b';
124
+ return '--ide-status-modified';
125
125
  default:
126
- return '#6b7280';
126
+ return '--ide-text-muted';
127
127
  }
128
128
  }
129
129
  </script>
@@ -132,12 +132,12 @@
132
132
  <div class="ghost-bracket-layer" aria-hidden="true">
133
133
  <!-- Ghost bracket suggestions -->
134
134
  {#each ghosts as ghost (ghost.id)}
135
- {@const color = getConfidenceColor(ghost.confidence)}
135
+ {@const color = getConfidenceToken(ghost.confidence)}
136
136
  {@const connectorStyle = getConnectorStyle(ghost)}
137
137
 
138
138
  <!-- Connector line to matching bracket -->
139
139
  {#if connectorStyle && hoveredGhost?.id === ghost.id}
140
- <div class="ghost-connector" style="{connectorStyle} --ghost-color: {color};">
140
+ <div class="ghost-connector" style="{connectorStyle} --ghost-color: var({color});">
141
141
  <div class="ghost-connector__line"></div>
142
142
  </div>
143
143
  {/if}
@@ -146,7 +146,7 @@
146
146
  <div
147
147
  class="ghost-bracket"
148
148
  role="tooltip"
149
- style="{getGhostStyle(ghost)} --ghost-color: {color};"
149
+ style="{getGhostStyle(ghost)} --ghost-color: var({color});"
150
150
  onmouseenter={() => (hoveredGhost = ghost)}
151
151
  onmouseleave={() => (hoveredGhost = null)}
152
152
  >
@@ -187,10 +187,10 @@
187
187
 
188
188
  <!-- Bracket mismatch markers -->
189
189
  {#each mismatches as mismatch (`${mismatch.position.line}:${mismatch.position.column}:${mismatch.issue}`)}
190
- {@const color = getSeverityColor(mismatch.severity)}
190
+ {@const color = getSeverityToken(mismatch.severity)}
191
191
  <div
192
192
  class="bracket-mismatch bracket-mismatch--{mismatch.issue}"
193
- style="{getMismatchStyle(mismatch)} --mismatch-color: {color};"
193
+ style="{getMismatchStyle(mismatch)} --mismatch-color: var({color});"
194
194
  title={mismatch.issue === 'unclosed'
195
195
  ? `Unclosed '${mismatch.character}'`
196
196
  : mismatch.issue === 'unexpected'
@@ -253,7 +253,7 @@
253
253
  top: -16px;
254
254
  left: 0;
255
255
  padding: 1px 4px;
256
- background: rgba(0, 0, 0, 0.7);
256
+ background: var(--ide-bg-overlay);
257
257
  color: var(--ghost-color);
258
258
  font-size: 9px;
259
259
  font-family: monospace;
@@ -272,17 +272,17 @@
272
272
  left: 0;
273
273
  margin-top: 4px;
274
274
  padding: 8px;
275
- background: var(--color-surface, #1e1e2e);
276
- border: 1px solid var(--color-border, #333);
275
+ background: var(--ide-bg-elevated);
276
+ border: 1px solid var(--ide-border);
277
277
  border-radius: 6px;
278
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
278
+ box-shadow: var(--ide-shadow-lg);
279
279
  min-width: 140px;
280
280
  z-index: 100;
281
281
  }
282
282
 
283
283
  .ghost-bracket__reason {
284
284
  font-size: 11px;
285
- color: var(--color-text-secondary, #aaa);
285
+ color: var(--ide-text-secondary);
286
286
  margin-bottom: 8px;
287
287
  line-height: 1.3;
288
288
  }
@@ -304,21 +304,21 @@
304
304
  }
305
305
 
306
306
  .ghost-bracket__btn--accept {
307
- background: rgba(34, 197, 94, 0.2);
308
- color: #22c55e;
307
+ background: color-mix(in srgb, var(--ide-status-created) 20%, transparent);
308
+ color: var(--ide-status-created);
309
309
  }
310
310
 
311
311
  .ghost-bracket__btn--accept:hover {
312
- background: rgba(34, 197, 94, 0.3);
312
+ background: color-mix(in srgb, var(--ide-status-created) 30%, transparent);
313
313
  }
314
314
 
315
315
  .ghost-bracket__btn--dismiss {
316
- background: rgba(239, 68, 68, 0.2);
317
- color: #ef4444;
316
+ background: color-mix(in srgb, var(--ide-status-deleted) 20%, transparent);
317
+ color: var(--ide-status-deleted);
318
318
  }
319
319
 
320
320
  .ghost-bracket__btn--dismiss:hover {
321
- background: rgba(239, 68, 68, 0.3);
321
+ background: color-mix(in srgb, var(--ide-status-deleted) 30%, transparent);
322
322
  }
323
323
 
324
324
  /* Connector line */
@@ -376,7 +376,7 @@
376
376
  left: 0;
377
377
  padding: 1px 3px;
378
378
  background: var(--mismatch-color);
379
- color: #fff;
379
+ color: var(--ide-text-inverse);
380
380
  font-size: 9px;
381
381
  font-family: monospace;
382
382
  border-radius: 2px;
@@ -387,4 +387,17 @@
387
387
  .bracket-mismatch:hover .bracket-mismatch__expected {
388
388
  opacity: 1;
389
389
  }
390
+
391
+ @media (prefers-reduced-motion: reduce) {
392
+ .ghost-bracket__char,
393
+ .bracket-mismatch--unclosed .bracket-mismatch__underline {
394
+ animation: none;
395
+ }
396
+
397
+ .ghost-bracket__confidence,
398
+ .ghost-bracket__btn,
399
+ .bracket-mismatch__expected {
400
+ transition: none;
401
+ }
402
+ }
390
403
  </style>
@@ -347,8 +347,8 @@
347
347
  min-width: 280px;
348
348
  max-width: 400px;
349
349
  padding: 12px;
350
- background: var(--color-surface, #1e1e2e);
351
- border: 1px solid var(--color-border, #333);
350
+ background: var(--ide-bg-secondary, #1a2744);
351
+ border: 1px solid var(--ide-border, #a8c5d9);
352
352
  border-radius: 8px;
353
353
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
354
354
  font-size: 12px;
@@ -382,12 +382,12 @@
382
382
 
383
383
  .tooltip-author {
384
384
  font-weight: 600;
385
- color: var(--color-text, #e8e8f0);
385
+ color: var(--ide-text-primary, #f4f1e0);
386
386
  }
387
387
 
388
388
  .tooltip-email {
389
389
  font-size: 11px;
390
- color: var(--color-text-muted, #888);
390
+ color: var(--ide-text-muted, #a8c5d9);
391
391
  }
392
392
 
393
393
  .tooltip-commit {
@@ -407,12 +407,12 @@
407
407
  }
408
408
 
409
409
  .tooltip-date {
410
- color: var(--color-text-muted, #888);
410
+ color: var(--ide-text-muted, #a8c5d9);
411
411
  font-size: 11px;
412
412
  }
413
413
 
414
414
  .tooltip-message {
415
- color: var(--color-text, #e8e8f0);
415
+ color: var(--ide-text-primary, #f4f1e0);
416
416
  line-height: 1.4;
417
417
  margin-bottom: 8px;
418
418
  }
@@ -429,8 +429,8 @@
429
429
 
430
430
  .tooltip-hint {
431
431
  font-size: 10px;
432
- color: var(--color-text-muted, #888);
433
- border-top: 1px solid var(--color-border, #333);
432
+ color: var(--ide-text-muted, #a8c5d9);
433
+ border-top: 1px solid var(--ide-border, #a8c5d9);
434
434
  padding-top: 8px;
435
435
  margin-top: 4px;
436
436
  }
@@ -48,13 +48,13 @@
48
48
  function getColor(type: DiffLine['type']): string {
49
49
  switch (type) {
50
50
  case 'added':
51
- return '#22c55e'; // green
51
+ return 'var(--ide-status-created)';
52
52
  case 'modified':
53
- return '#3b82f6'; // blue
53
+ return 'var(--ide-status-modified)';
54
54
  case 'removed':
55
- return '#ef4444'; // red
55
+ return 'var(--ide-status-deleted)';
56
56
  default:
57
- return '#6b7280';
57
+ return 'var(--ide-text-muted)';
58
58
  }
59
59
  }
60
60
 
@@ -283,7 +283,7 @@
283
283
  left: 0;
284
284
  width: 0;
285
285
  height: 0;
286
- border-left: 8px solid #ef4444;
286
+ border-left: 8px solid var(--ide-status-deleted, #ef4444);
287
287
  border-top: 4px solid transparent;
288
288
  border-bottom: 4px solid transparent;
289
289
  pointer-events: auto;
@@ -291,7 +291,7 @@
291
291
  }
292
292
 
293
293
  .diff-removed-marker:hover {
294
- border-left-color: #f87171;
294
+ border-left-color: var(--ide-error, #ef4444);
295
295
  }
296
296
 
297
297
  /* Tooltip */
@@ -301,8 +301,8 @@
301
301
  min-width: 200px;
302
302
  max-width: 400px;
303
303
  padding: 10px;
304
- background: var(--color-surface, #1e1e2e);
305
- border: 1px solid var(--color-border, #333);
304
+ background: var(--ide-bg-secondary, #1a2744);
305
+ border: 1px solid var(--ide-border, #a8c5d9);
306
306
  border-radius: 6px;
307
307
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
308
308
  font-size: 12px;
@@ -324,7 +324,7 @@
324
324
  .tooltip-label {
325
325
  display: block;
326
326
  font-size: 10px;
327
- color: var(--color-text-muted, #888);
327
+ color: var(--ide-text-muted, #a8c5d9);
328
328
  margin-bottom: 4px;
329
329
  }
330
330
 
@@ -332,15 +332,15 @@
332
332
  margin: 0;
333
333
  font-family: 'JetBrains Mono', monospace;
334
334
  font-size: 11px;
335
- color: var(--color-text-secondary, #aaa);
335
+ color: var(--ide-text-secondary, #a8c5d9);
336
336
  white-space: pre-wrap;
337
337
  word-break: break-all;
338
338
  }
339
339
 
340
340
  .tooltip-hint {
341
341
  font-size: 10px;
342
- color: var(--color-text-muted, #888);
343
- border-top: 1px solid var(--color-border, #333);
342
+ color: var(--ide-text-muted, #a8c5d9);
343
+ border-top: 1px solid var(--ide-border, #a8c5d9);
344
344
  padding-top: 8px;
345
345
  }
346
346
  </style>
@@ -405,8 +405,8 @@
405
405
  width: 90vw;
406
406
  max-width: 1200px;
407
407
  height: 80vh;
408
- background: var(--color-surface, #1e1e2e);
409
- border: 1px solid var(--color-border, #333);
408
+ background: var(--ide-bg-secondary, #1a2744);
409
+ border: 1px solid var(--ide-border, #a8c5d9);
410
410
  border-radius: 12px;
411
411
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
412
412
  display: flex;
@@ -419,14 +419,14 @@
419
419
  align-items: center;
420
420
  justify-content: space-between;
421
421
  padding: 12px 16px;
422
- border-bottom: 1px solid var(--color-border, #333);
422
+ border-bottom: 1px solid var(--ide-border, #a8c5d9);
423
423
  }
424
424
 
425
425
  .plugin-sandbox__title {
426
426
  margin: 0;
427
427
  font-size: 16px;
428
428
  font-weight: 600;
429
- color: var(--color-text, #e8e8f0);
429
+ color: var(--ide-text-primary, #f4f1e0);
430
430
  }
431
431
 
432
432
  .plugin-sandbox__actions {
@@ -447,14 +447,14 @@
447
447
  background: transparent;
448
448
  border: none;
449
449
  border-radius: 4px;
450
- color: var(--color-text-secondary, #aaa);
450
+ color: var(--ide-text-secondary, #a8c5d9);
451
451
  font-size: 12px;
452
452
  cursor: pointer;
453
453
  transition: all 0.15s ease;
454
454
  }
455
455
 
456
456
  .mode-btn:hover {
457
- color: var(--color-text, #e8e8f0);
457
+ color: var(--ide-text-primary, #f4f1e0);
458
458
  }
459
459
 
460
460
  .mode-btn.active {
@@ -486,7 +486,7 @@
486
486
  /* Plugin sidebar */
487
487
  .plugin-sidebar {
488
488
  width: 240px;
489
- border-right: 1px solid var(--color-border, #333);
489
+ border-right: 1px solid var(--ide-border, #a8c5d9);
490
490
  padding: 12px;
491
491
  overflow-y: auto;
492
492
  }
@@ -495,7 +495,7 @@
495
495
  margin: 0 0 12px;
496
496
  font-size: 12px;
497
497
  font-weight: 600;
498
- color: var(--color-text-secondary, #aaa);
498
+ color: var(--ide-text-secondary, #a8c5d9);
499
499
  text-transform: uppercase;
500
500
  }
501
501
 
@@ -520,7 +520,7 @@
520
520
 
521
521
  .plugin-item:hover {
522
522
  background: rgba(255, 255, 255, 0.05);
523
- border-color: var(--color-border, #333);
523
+ border-color: var(--ide-border, #a8c5d9);
524
524
  }
525
525
 
526
526
  .plugin-item--selected {
@@ -555,12 +555,12 @@
555
555
  .plugin-item__name {
556
556
  font-size: 13px;
557
557
  font-weight: 500;
558
- color: var(--color-text, #e8e8f0);
558
+ color: var(--ide-text-primary, #f4f1e0);
559
559
  }
560
560
 
561
561
  .plugin-item__desc {
562
562
  font-size: 11px;
563
- color: var(--color-text-muted, #888);
563
+ color: var(--ide-text-muted, #a8c5d9);
564
564
  }
565
565
 
566
566
  /* Preview area */
@@ -577,7 +577,7 @@
577
577
  justify-content: center;
578
578
  gap: 8px;
579
579
  height: 100%;
580
- color: var(--color-text-secondary, #aaa);
580
+ color: var(--ide-text-secondary, #a8c5d9);
581
581
  }
582
582
 
583
583
  .loading-spinner {
@@ -601,7 +601,7 @@
601
601
  gap: 12px;
602
602
  padding: 8px 12px;
603
603
  background: rgba(255, 255, 255, 0.03);
604
- border-bottom: 1px solid var(--color-border, #333);
604
+ border-bottom: 1px solid var(--ide-border, #a8c5d9);
605
605
  font-size: 12px;
606
606
  }
607
607
 
@@ -633,7 +633,7 @@
633
633
  }
634
634
 
635
635
  .transform-time {
636
- color: var(--color-text-muted, #888);
636
+ color: var(--ide-text-muted, #a8c5d9);
637
637
  }
638
638
 
639
639
  .transform-error {
@@ -663,7 +663,7 @@
663
663
  background: rgba(255, 255, 255, 0.1);
664
664
  border: none;
665
665
  border-radius: 4px;
666
- color: var(--color-text-secondary, #aaa);
666
+ color: var(--ide-text-secondary, #a8c5d9);
667
667
  font-size: 12px;
668
668
  cursor: pointer;
669
669
  transition: all 0.15s ease;
@@ -685,13 +685,13 @@
685
685
  align-items: center;
686
686
  justify-content: center;
687
687
  height: 100%;
688
- color: var(--color-text-secondary, #aaa);
688
+ color: var(--ide-text-secondary, #a8c5d9);
689
689
  text-align: center;
690
690
  }
691
691
 
692
692
  .preview-hint {
693
693
  font-size: 12px;
694
- color: var(--color-text-muted, #888);
694
+ color: var(--ide-text-muted, #a8c5d9);
695
695
  margin-top: 8px;
696
696
  }
697
697
 
@@ -703,7 +703,7 @@
703
703
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
704
704
  font-size: 13px;
705
705
  line-height: 1.5;
706
- color: var(--color-text, #e8e8f0);
706
+ color: var(--ide-text-primary, #f4f1e0);
707
707
  overflow: auto;
708
708
  white-space: pre;
709
709
  }
@@ -728,7 +728,7 @@
728
728
  border-radius: 6px 6px 0 0;
729
729
  font-size: 11px;
730
730
  font-weight: 600;
731
- color: var(--color-text-secondary, #aaa);
731
+ color: var(--ide-text-secondary, #a8c5d9);
732
732
  text-transform: uppercase;
733
733
  }
734
734
 
@@ -759,7 +759,7 @@
759
759
 
760
760
  .diff-line__num {
761
761
  width: 40px;
762
- color: var(--color-text-muted, #888);
762
+ color: var(--ide-text-muted, #a8c5d9);
763
763
  text-align: right;
764
764
  padding-right: 8px;
765
765
  user-select: none;
@@ -767,7 +767,7 @@
767
767
 
768
768
  .diff-line__sign {
769
769
  width: 16px;
770
- color: var(--color-text-muted, #888);
770
+ color: var(--ide-text-muted, #a8c5d9);
771
771
  }
772
772
 
773
773
  .diff-line--add .diff-line__sign {
@@ -283,8 +283,8 @@
283
283
  max-width: 800px;
284
284
  height: 70vh;
285
285
  max-height: 600px;
286
- background: var(--color-surface, #1e1e2e);
287
- border: 1px solid var(--color-border, #333);
286
+ background: var(--ide-bg-secondary, #1a2744);
287
+ border: 1px solid var(--ide-border, #a8c5d9);
288
288
  border-radius: 12px;
289
289
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
290
290
  display: flex;
@@ -298,16 +298,16 @@
298
298
  align-items: center;
299
299
  gap: 12px;
300
300
  padding: 12px 16px;
301
- border-bottom: 1px solid var(--color-border, #333);
301
+ border-bottom: 1px solid var(--ide-border, #a8c5d9);
302
302
  }
303
303
 
304
304
  .snippet-search {
305
305
  flex: 1;
306
306
  padding: 8px 12px;
307
307
  background: rgba(0, 0, 0, 0.2);
308
- border: 1px solid var(--color-border, #333);
308
+ border: 1px solid var(--ide-border, #a8c5d9);
309
309
  border-radius: 6px;
310
- color: var(--color-text, #e8e8f0);
310
+ color: var(--ide-text-primary, #f4f1e0);
311
311
  font-size: 14px;
312
312
  outline: none;
313
313
  }
@@ -318,7 +318,7 @@
318
318
 
319
319
  .snippet-hint {
320
320
  font-size: 11px;
321
- color: var(--color-text-muted, #888);
321
+ color: var(--ide-text-muted, #a8c5d9);
322
322
  white-space: nowrap;
323
323
  }
324
324
 
@@ -326,7 +326,7 @@
326
326
  display: flex;
327
327
  gap: 4px;
328
328
  padding: 8px 16px;
329
- border-bottom: 1px solid var(--color-border, #333);
329
+ border-bottom: 1px solid var(--ide-border, #a8c5d9);
330
330
  overflow-x: auto;
331
331
  }
332
332
 
@@ -335,7 +335,7 @@
335
335
  background: transparent;
336
336
  border: none;
337
337
  border-radius: 4px;
338
- color: var(--color-text-secondary, #aaa);
338
+ color: var(--ide-text-secondary, #a8c5d9);
339
339
  font-size: 12px;
340
340
  cursor: pointer;
341
341
  white-space: nowrap;
@@ -344,7 +344,7 @@
344
344
 
345
345
  .category-tab:hover {
346
346
  background: rgba(255, 255, 255, 0.05);
347
- color: var(--color-text, #e8e8f0);
347
+ color: var(--ide-text-primary, #f4f1e0);
348
348
  }
349
349
 
350
350
  .category-tab.active {
@@ -361,13 +361,13 @@
361
361
 
362
362
  .snippet-list {
363
363
  overflow-y: auto;
364
- border-right: 1px solid var(--color-border, #333);
364
+ border-right: 1px solid var(--ide-border, #a8c5d9);
365
365
  }
366
366
 
367
367
  .snippet-empty {
368
368
  padding: 24px;
369
369
  text-align: center;
370
- color: var(--color-text-muted, #888);
370
+ color: var(--ide-text-muted, #a8c5d9);
371
371
  font-size: 13px;
372
372
  }
373
373
 
@@ -377,7 +377,7 @@
377
377
  padding: 10px 16px;
378
378
  background: transparent;
379
379
  border: none;
380
- border-bottom: 1px solid var(--color-border, #333);
380
+ border-bottom: 1px solid var(--ide-border, #a8c5d9);
381
381
  text-align: left;
382
382
  cursor: pointer;
383
383
  transition: background 0.1s ease;
@@ -407,7 +407,7 @@
407
407
  .snippet-name {
408
408
  font-size: 13px;
409
409
  font-weight: 500;
410
- color: var(--color-text, #e8e8f0);
410
+ color: var(--ide-text-primary, #f4f1e0);
411
411
  }
412
412
 
413
413
  .snippet-badge {
@@ -421,7 +421,7 @@
421
421
 
422
422
  .snippet-item-desc {
423
423
  font-size: 11px;
424
- color: var(--color-text-muted, #888);
424
+ color: var(--ide-text-muted, #a8c5d9);
425
425
  }
426
426
 
427
427
  /* Preview pane */
@@ -442,7 +442,7 @@
442
442
  .preview-name {
443
443
  font-size: 14px;
444
444
  font-weight: 600;
445
- color: var(--color-text, #e8e8f0);
445
+ color: var(--ide-text-primary, #f4f1e0);
446
446
  }
447
447
 
448
448
  .preview-category {
@@ -450,7 +450,7 @@
450
450
  padding: 2px 8px;
451
451
  background: rgba(255, 255, 255, 0.1);
452
452
  border-radius: 4px;
453
- color: var(--color-text-secondary, #aaa);
453
+ color: var(--ide-text-secondary, #a8c5d9);
454
454
  }
455
455
 
456
456
  .preview-body {
@@ -466,7 +466,7 @@
466
466
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
467
467
  font-size: 12px;
468
468
  line-height: 1.5;
469
- color: var(--color-text, #e8e8f0);
469
+ color: var(--ide-text-primary, #f4f1e0);
470
470
  white-space: pre-wrap;
471
471
  word-break: break-all;
472
472
  }
@@ -486,7 +486,7 @@
486
486
  justify-content: space-between;
487
487
  margin-top: 12px;
488
488
  font-size: 11px;
489
- color: var(--color-text-muted, #888);
489
+ color: var(--ide-text-muted, #a8c5d9);
490
490
  }
491
491
 
492
492
  .preview-footer code {
@@ -515,7 +515,7 @@
515
515
  align-items: center;
516
516
  justify-content: center;
517
517
  height: 100%;
518
- color: var(--color-text-muted, #888);
518
+ color: var(--ide-text-muted, #a8c5d9);
519
519
  font-size: 13px;
520
520
  }
521
521
 
@@ -523,8 +523,8 @@
523
523
  display: flex;
524
524
  justify-content: space-between;
525
525
  padding: 8px 16px;
526
- border-top: 1px solid var(--color-border, #333);
526
+ border-top: 1px solid var(--ide-border, #a8c5d9);
527
527
  font-size: 11px;
528
- color: var(--color-text-muted, #888);
528
+ color: var(--ide-text-muted, #a8c5d9);
529
529
  }
530
530
  </style>