vzcode 2.22.0 → 2.25.0

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 (44) hide show
  1. package/dist/assets/{buildWorker-Bi6wsfQk.js → buildWorker-DylWm2VX.js} +64 -72
  2. package/dist/assets/index-CkFweu5-.js +403 -0
  3. package/dist/assets/{index-fSroLVgi.css → index-Dyt9tpmu.css} +1 -5
  4. package/dist/assets/{worker-BSzbM0Uo.js → worker-VPLhQVba.js} +230 -230
  5. package/dist/assets/worker-b9bkZkXK.js +116 -0
  6. package/dist/assets/{worker-Cm3I3tnR.js → worker-k7HZ3t-V.js} +3 -20
  7. package/dist/index.html +2 -2
  8. package/dist/llm-streaming-server/chatOperations.js +19 -0
  9. package/dist/llm-streaming-server/llmStreaming.js +18 -13
  10. package/dist/server/aiChatHandler/index.js +4 -2
  11. package/package.json +22 -21
  12. package/src/llm-streaming-server/chatOperations.ts +27 -0
  13. package/src/llm-streaming-server/llmStreaming.ts +24 -14
  14. package/src/llm-streaming-ui/components/Message.tsx +8 -7
  15. package/src/llm-streaming-ui/components/MessageList.tsx +5 -0
  16. package/src/llm-streaming-ui/components/index.tsx +2 -2
  17. package/src/llm-streaming-ui/components/styles.scss +10 -0
  18. package/src/server/aiChatHandler/index.ts +6 -0
  19. package/src/types.ts +1 -0
  20. package/dist/assets/index-CfDs-dAu.js +0 -476
  21. package/dist/assets/worker-KiuLM-X4.js +0 -136
  22. package/dist/server/aiChatHandler/aiEditing.js +0 -58
  23. package/dist/server/aiChatHandler/chatOperations.js +0 -494
  24. package/dist/server/aiChatHandler/errorHandling.js +0 -49
  25. package/dist/server/aiChatHandler/llmStreaming.js +0 -265
  26. package/dist/server/aiChatHandler/validation.js +0 -19
  27. package/src/client/VZSidebar/AIChat/ChatInput.tsx +0 -237
  28. package/src/client/VZSidebar/AIChat/DiffView.scss +0 -173
  29. package/src/client/VZSidebar/AIChat/DiffView.tsx +0 -236
  30. package/src/client/VZSidebar/AIChat/FileEditingIndicator.tsx +0 -89
  31. package/src/client/VZSidebar/AIChat/IndividualFileDiff.tsx +0 -86
  32. package/src/client/VZSidebar/AIChat/JumpToLatestButton.tsx +0 -64
  33. package/src/client/VZSidebar/AIChat/Message.tsx +0 -145
  34. package/src/client/VZSidebar/AIChat/MessageList.tsx +0 -241
  35. package/src/client/VZSidebar/AIChat/ThinkingScratchpad.tsx +0 -42
  36. package/src/client/VZSidebar/AIChat/TypingIndicator.tsx +0 -19
  37. package/src/client/VZSidebar/AIChat/index.tsx +0 -388
  38. package/src/client/VZSidebar/AIChat/styles.scss +0 -831
  39. package/src/client/VZSidebar/AIChat/useSpeechRecognition.ts +0 -116
  40. package/src/server/aiChatHandler/aiEditing.ts +0 -102
  41. package/src/server/aiChatHandler/chatOperations.ts +0 -655
  42. package/src/server/aiChatHandler/errorHandling.ts +0 -66
  43. package/src/server/aiChatHandler/llmStreaming.ts +0 -403
  44. package/src/server/aiChatHandler/validation.ts +0 -24
@@ -1,831 +0,0 @@
1
- .ai-chat-container {
2
- height: 100%;
3
- display: flex;
4
- flex-direction: column;
5
- padding: 0;
6
- }
7
-
8
- .ai-chat-content {
9
- flex: 1;
10
- overflow: hidden;
11
- display: flex;
12
- flex-direction: column;
13
- position: relative;
14
- }
15
-
16
- .ai-chat-messages-container {
17
- flex: 1;
18
- overflow-y: auto;
19
- padding: 10px;
20
- padding-bottom: 0;
21
- display: flex;
22
- flex-direction: column;
23
- scroll-behavior: smooth;
24
-
25
- &::-webkit-scrollbar {
26
- width: 6px;
27
- }
28
-
29
- &::-webkit-scrollbar-track {
30
- background: var(--vh-color-neutral-02);
31
- border-radius: 3px;
32
- }
33
-
34
- &::-webkit-scrollbar-thumb {
35
- background: var(--vh-color-neutral-04);
36
- border-radius: 3px;
37
- }
38
- }
39
-
40
- .ai-chat-input-fixed {
41
- flex-shrink: 0;
42
- padding: 10px;
43
- padding-top: 0;
44
- }
45
-
46
- .ai-chat-empty {
47
- flex: 1;
48
- display: flex;
49
- flex-direction: column;
50
- align-items: center;
51
- justify-content: center;
52
- text-align: center;
53
- padding: 20px;
54
- overflow-y: auto;
55
-
56
- .ai-chat-empty-icon {
57
- font-size: 42px;
58
- margin-bottom: 15px;
59
- }
60
-
61
- .ai-chat-empty-title {
62
- font-size: 18px;
63
- font-weight: 600;
64
- color: var(--vh-color-neutral-04);
65
- margin-bottom: 15px;
66
- }
67
-
68
- .ai-chat-empty-text {
69
- font-size: 14px;
70
- color: var(--vh-color-neutral-04);
71
- margin-bottom: 20px;
72
- line-height: 1.5;
73
- }
74
-
75
- .ai-chat-empty-examples {
76
- background: var(--vh-color-neutral-02);
77
- border-radius: 8px;
78
- padding: 15px;
79
- margin-bottom: 20px;
80
- text-align: left;
81
- width: 100%;
82
-
83
- h4 {
84
- font-size: 15px;
85
- font-weight: 600;
86
- color: var(--vh-color-neutral-04);
87
- margin-bottom: 10px;
88
- }
89
-
90
- .ai-chat-suggested-prompts {
91
- display: flex;
92
- flex-direction: column;
93
- gap: 8px;
94
- margin: 0;
95
-
96
- .ai-chat-suggested-prompt {
97
- background: var(--vh-color-neutral-03);
98
- border: 1px solid var(--vh-color-neutral-04);
99
- border-radius: 6px;
100
- padding: 8px 12px;
101
- font-size: 13px;
102
- color: var(--vh-color-neutral-04);
103
- text-align: left;
104
- cursor: pointer;
105
- transition: all 0.2s ease;
106
- line-height: 1.4;
107
-
108
- &:hover {
109
- background: var(--vh-color-neutral-04);
110
- color: var(--vh-color-neutral-01);
111
- border-color: var(--vh-color-primary-01);
112
- }
113
-
114
- &:active {
115
- background: var(--vh-color-primary-01);
116
- color: white;
117
- border-color: var(--vh-color-primary-01);
118
- }
119
-
120
- &.selected {
121
- background: var(--vh-color-primary-01);
122
- color: white;
123
- border-color: var(--vh-color-primary-01);
124
- }
125
- }
126
- }
127
- }
128
- }
129
-
130
- // ============================================================================
131
- // Streaming Message Components
132
- // ============================================================================
133
-
134
- .streaming-message {
135
- .text-chunk {
136
- margin-bottom: 1rem;
137
- }
138
- }
139
-
140
- .file-editing-indicator {
141
- display: flex;
142
- align-items: center;
143
- margin: 0.25rem 0;
144
- background-color: var(--vscode-editor-background);
145
- border: 1px solid var(--vscode-panel-border);
146
- border-radius: 4px;
147
-
148
- .file-editing-header {
149
- display: flex;
150
- align-items: center;
151
- gap: 0.5rem;
152
- width: 100%;
153
- }
154
-
155
- .file-editing-icon {
156
- display: flex;
157
- align-items: center;
158
- justify-content: center;
159
- }
160
-
161
- .file-editing-text {
162
- color: var(--vscode-foreground);
163
- font-size: 0.9rem;
164
- flex: 1;
165
-
166
- code {
167
- background-color: var(
168
- --vscode-textCodeBlock-background
169
- );
170
- padding: 0.2rem 0.4rem;
171
- border-radius: 3px;
172
- font-family: var(--vscode-editor-font-family);
173
- }
174
-
175
- .file-editing-done-container {
176
- display: flex;
177
- align-items: center;
178
- justify-content: space-between;
179
- width: 100%;
180
- gap: 0.5rem;
181
- }
182
-
183
- .file-editing-done-status {
184
- display: flex;
185
- align-items: center;
186
- gap: 8px;
187
- font-size: 16px;
188
- font-weight: 500;
189
- margin-left: 4px;
190
- }
191
-
192
- .file-editing-done-widgets {
193
- display: flex;
194
- align-items: center;
195
- gap: 0.5rem;
196
- flex-shrink: 0;
197
-
198
- // // Override the margin-top for undo-button-container when inside file editing indicator
199
- // .undo-button-container {
200
- // margin-top: 0;
201
- // margin-bottom: 0;
202
- // }
203
- }
204
- }
205
- }
206
-
207
- .status-indicator {
208
- display: flex;
209
- align-items: center;
210
- padding: 0.5rem;
211
- margin: 0.5rem 0;
212
- background-color: var(--vscode-notifications-background);
213
- border-left: 3px solid
214
- var(--vscode-progressBar-foreground);
215
- border-radius: 0 4px 4px 0;
216
-
217
- .status-content {
218
- display: flex;
219
- align-items: center;
220
- gap: 0.5rem;
221
- }
222
-
223
- .status-icon {
224
- display: flex;
225
- align-items: center;
226
- justify-content: center;
227
-
228
- .done-icon {
229
- font-size: 1rem;
230
- }
231
- }
232
-
233
- .status-text {
234
- color: var(--vscode-foreground);
235
- font-size: 0.9rem;
236
- font-weight: 500;
237
- }
238
- }
239
-
240
- @keyframes spin {
241
- 0% {
242
- transform: rotate(0deg);
243
- }
244
- 100% {
245
- transform: rotate(360deg);
246
- }
247
- }
248
-
249
- .ai-chat-list {
250
- margin-top: 20px;
251
-
252
- .ai-chat-list-header {
253
- h4 {
254
- font-size: 14px;
255
- font-weight: 600;
256
- color: var(--vh-color-neutral-04);
257
- margin-bottom: 10px;
258
- }
259
- }
260
- }
261
-
262
- .ai-chat-messages {
263
- flex: 1;
264
- margin-bottom: 10px;
265
- padding-right: 5px;
266
- }
267
-
268
- .ai-chat-message {
269
- margin-bottom: 15px;
270
-
271
- &.user {
272
- .ai-chat-message-content {
273
- background: var(--vh-color-primary-01);
274
- color: white;
275
- margin-left: 20px;
276
- border-radius: 12px 12px 4px 12px;
277
- }
278
-
279
- .ai-chat-message-time {
280
- text-align: right;
281
- margin-right: 5px;
282
- }
283
- }
284
-
285
- &.assistant {
286
- .ai-chat-message-content {
287
- background: var(--vh-color-neutral-02);
288
- color: white;
289
- margin-right: 20px;
290
- border-radius: 12px 12px 12px 4px;
291
- }
292
-
293
- .ai-chat-message-time {
294
- text-align: left;
295
- margin-left: 5px;
296
- }
297
-
298
- &.streaming {
299
- .ai-chat-message-content {
300
- background: var(--vh-color-neutral-02);
301
- color: white;
302
- border-radius: 12px 12px 12px 4px;
303
- }
304
- }
305
- }
306
- }
307
-
308
- .ai-chat-message-content {
309
- .diff-view .diff-files .d2h-code-linenumber {
310
- display: none !important;
311
- }
312
-
313
- .d2h-code-line {
314
- padding: 0 1em;
315
- }
316
-
317
- padding: 10px 12px;
318
- font-size: 14px;
319
- line-height: 1.4;
320
- word-wrap: break-word;
321
-
322
- // Markdown styling for dark backgrounds
323
- pre {
324
- background-color: rgba(0, 0, 0, 0.3);
325
- color: #e6e6e6;
326
- padding: 0.5rem;
327
- border-radius: 0.25rem;
328
- overflow-x: auto;
329
- font-size: 0.875rem;
330
- border: 1px solid rgba(255, 255, 255, 0.1);
331
- }
332
-
333
- code {
334
- background-color: rgba(0, 0, 0, 0.3);
335
- color: #e6e6e6;
336
- padding: 0.125rem 0.25rem;
337
- border-radius: 0.25rem;
338
- font-size: 0.875rem;
339
- border: 1px solid rgba(255, 255, 255, 0.1);
340
- }
341
-
342
- pre code {
343
- background-color: transparent;
344
- padding: 0;
345
- border: none;
346
- }
347
-
348
- blockquote {
349
- border-left: 3px solid var(--vh-color-neutral-03);
350
- padding-left: 1rem;
351
- margin: 0.5rem 0;
352
- color: var(--vh-color-neutral-03);
353
- font-style: italic;
354
- }
355
-
356
- h1,
357
- h2,
358
- h3,
359
- h4,
360
- h5,
361
- h6 {
362
- margin-top: 1rem;
363
- margin-bottom: 0.5rem;
364
- color: inherit;
365
- font-weight: 600;
366
- }
367
-
368
- h1 {
369
- font-size: 1.25rem; // 20px at 16px base
370
- }
371
-
372
- h2 {
373
- font-size: 1.125rem; // 18px at 16px base
374
- }
375
-
376
- h3 {
377
- font-size: 1rem; // 16px at 16px base
378
- }
379
-
380
- h4,
381
- h5,
382
- h6 {
383
- font-size: 0.875rem; // 14px at 16px base
384
- }
385
-
386
- ul,
387
- ol {
388
- padding-left: 1.5rem;
389
- }
390
-
391
- p {
392
- margin-bottom: 0.5rem;
393
- }
394
-
395
- // Ensure good contrast for assistant messages
396
- .ai-chat-message.assistant & {
397
- color: white;
398
- }
399
-
400
- // Ensure user message text stays white
401
- .ai-chat-message.user & {
402
- color: white;
403
- }
404
- }
405
-
406
- .ai-chat-message-time {
407
- font-size: 11px;
408
- color: var(--vh-color-neutral-03);
409
- margin-top: 4px;
410
- }
411
-
412
- .ai-chat-status {
413
- font-size: 0.75rem;
414
- font-style: italic;
415
- color: var(--vh-color-neutral-03);
416
- margin-bottom: 0.5rem;
417
- margin-left: 20px;
418
- margin-right: 20px;
419
- padding: 0.25rem 0.5rem;
420
- background-color: var(--vh-color-neutral-02);
421
- border-radius: 0.25rem;
422
- border: 1px solid var(--vh-color-neutral-03);
423
- text-align: left;
424
- }
425
-
426
- .ai-chat-typing {
427
- display: flex;
428
- gap: 4px;
429
- align-items: center;
430
-
431
- span {
432
- width: 6px;
433
- height: 6px;
434
- background: var(--vh-color-neutral-03);
435
- border-radius: 50%;
436
- animation: typing 1.4s infinite ease-in-out;
437
-
438
- &:nth-child(1) {
439
- animation-delay: -0.32s;
440
- }
441
- &:nth-child(2) {
442
- animation-delay: -0.16s;
443
- }
444
- &:nth-child(3) {
445
- animation-delay: 0s;
446
- }
447
- }
448
- }
449
-
450
- @keyframes typing {
451
- 0%,
452
- 80%,
453
- 100% {
454
- transform: scale(0.8);
455
- opacity: 0.5;
456
- }
457
- 40% {
458
- transform: scale(1);
459
- opacity: 1;
460
- }
461
- }
462
-
463
- .ai-chat-error {
464
- margin: 10px 0;
465
- padding: 0;
466
- border-radius: 8px;
467
- background: rgba(220, 53, 69, 0.1);
468
- border: 1px solid rgba(220, 53, 69, 0.3);
469
-
470
- .ai-chat-error-content {
471
- display: flex;
472
- align-items: center;
473
- padding: 12px;
474
- gap: 10px;
475
-
476
- .ai-chat-error-icon {
477
- font-size: 16px;
478
- flex-shrink: 0;
479
- }
480
-
481
- .ai-chat-error-message {
482
- flex: 1;
483
- font-size: 14px;
484
- color: #dc3545;
485
- line-height: 1.4;
486
- font-weight: 500;
487
- }
488
-
489
- .ai-chat-error-dismiss {
490
- background: none;
491
- border: none;
492
- color: #dc3545;
493
- font-size: 18px;
494
- font-weight: bold;
495
- cursor: pointer;
496
- padding: 0;
497
- width: 20px;
498
- height: 20px;
499
- display: flex;
500
- align-items: center;
501
- justify-content: center;
502
- border-radius: 50%;
503
- transition: background-color 0.2s ease;
504
- flex-shrink: 0;
505
-
506
- &:hover {
507
- background: rgba(220, 53, 69, 0.1);
508
- }
509
-
510
- &:focus {
511
- outline: 2px solid rgba(220, 53, 69, 0.3);
512
- outline-offset: 1px;
513
- }
514
- }
515
- }
516
- }
517
-
518
- .ai-chat-input-container {
519
- border-top: 1px solid var(--vh-color-neutral-02);
520
- padding-top: 10px;
521
- background: var(--vh-color-neutral-01);
522
- }
523
-
524
- .ai-chat-mode-toggle {
525
- display: flex;
526
- flex-direction: column;
527
- gap: 4px;
528
-
529
- .btn-group {
530
- justify-content: center;
531
- }
532
-
533
- .btn-group .btn {
534
- font-size: 12px;
535
- font-weight: 500;
536
- padding: 4px 12px;
537
- border: 1px solid var(--vh-color-neutral-03);
538
- background: var(--vh-color-neutral-02);
539
- color: var(--vh-color-neutral-04);
540
- transition: all 0.2s ease;
541
-
542
- &:hover {
543
- background: var(--vh-color-neutral-03);
544
- border-color: var(--vh-color-neutral-04);
545
- }
546
-
547
- &.btn-primary {
548
- background: var(--vh-color-primary-01);
549
- border-color: var(--vh-color-primary-01);
550
- color: white;
551
-
552
- &:hover {
553
- background: var(--vh-color-primary-02);
554
- border-color: var(--vh-color-primary-02);
555
- }
556
- }
557
-
558
- &:disabled {
559
- opacity: 0.6;
560
- cursor: not-allowed;
561
- }
562
- }
563
-
564
- .ai-chat-mode-description {
565
- font-size: 11px;
566
- color: var(--vh-color-neutral-03);
567
- text-align: center;
568
- font-style: italic;
569
- }
570
- }
571
-
572
- .ai-chat-input-group {
573
- display: flex;
574
- flex-direction: column;
575
- gap: 8px;
576
- margin-bottom: 0;
577
-
578
- textarea {
579
- flex: 1;
580
- background: var(--vh-color-neutral-02) !important;
581
- border: 1px solid var(--vh-color-neutral-03) !important;
582
- color: var(--vh-color-neutral-04) !important;
583
- border-radius: 8px;
584
- padding: 10px 12px;
585
- font-size: 14px;
586
- font-family: var(--vzcode-font-family);
587
- resize: none;
588
- min-height: 48px;
589
- line-height: 1.4;
590
-
591
- &:focus {
592
- outline: none !important;
593
- border-color: var(--vh-color-primary-01) !important;
594
- box-shadow: 0 0 0 2px rgba(38, 67, 153, 0.2) !important;
595
- color: var(--vh-color-neutral-04) !important;
596
- }
597
-
598
- &::placeholder {
599
- color: var(--vh-color-neutral-03) !important;
600
- }
601
-
602
- &:disabled {
603
- opacity: 0.6;
604
- cursor: not-allowed;
605
- }
606
- }
607
-
608
- .ai-chat-input-footer {
609
- display: flex;
610
- justify-content: space-between;
611
- align-items: center;
612
- font-size: 12px;
613
- color: var(--vh-color-neutral-03);
614
- min-height: 40px; // Prevent layout jumping
615
-
616
- .ai-chat-hint {
617
- font-style: italic;
618
- flex: 1;
619
- }
620
- }
621
-
622
- .ai-chat-send-button {
623
- border-radius: 8px;
624
- padding: 8px 16px;
625
- font-size: 14px;
626
- font-weight: 500;
627
- cursor: pointer;
628
- transition: all 0.2s ease;
629
- min-width: 80px;
630
- flex-shrink: 0;
631
-
632
- &.btn-primary {
633
- background: var(--vh-color-primary-01);
634
- border-color: var(--vh-color-primary-01);
635
- color: white;
636
-
637
- &:hover:not(:disabled) {
638
- background: var(--vh-color-primary-02);
639
- border-color: var(--vh-color-primary-02);
640
- }
641
- }
642
-
643
- &.btn-outline-secondary {
644
- background: transparent;
645
- border-color: var(--vh-color-neutral-03);
646
- color: var(--vh-color-neutral-03);
647
-
648
- &:hover:not(:disabled) {
649
- background: var(--vh-color-neutral-03);
650
- color: var(--vh-color-neutral-01);
651
- }
652
- }
653
-
654
- &:disabled {
655
- background: var(--vh-color-neutral-03);
656
- border-color: var(--vh-color-neutral-03);
657
- color: var(--vh-color-neutral-02);
658
- cursor: not-allowed;
659
- }
660
- }
661
- }
662
-
663
- // Jump to latest button styles
664
- .jump-to-latest-button {
665
- position: absolute;
666
- left: 50%;
667
- transform: translateX(-50%);
668
- bottom: 20px; // Position above the input area
669
- width: 44px;
670
- height: 44px;
671
- border-radius: 50%;
672
- background: var(--vh-color-primary-01);
673
- border: none;
674
- color: white;
675
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
676
- cursor: pointer;
677
- display: flex;
678
- align-items: center;
679
- justify-content: center;
680
- z-index: 10;
681
- transition: all 0.2s ease;
682
-
683
- &:hover {
684
- background: var(--vh-color-primary-02);
685
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
686
- transform: translateX(-50%) scale(1.05);
687
- }
688
-
689
- &:focus {
690
- outline: 2px solid var(--vh-color-primary-01);
691
- outline-offset: 2px;
692
- }
693
-
694
- &:active {
695
- transform: translateX(-50%) scale(0.95);
696
- }
697
-
698
- .jump-to-latest-icon {
699
- font-size: 16px;
700
- font-weight: bold;
701
- line-height: 1;
702
- }
703
-
704
- // Respect prefers-reduced-motion
705
- @media (prefers-reduced-motion: reduce) {
706
- transition: none;
707
-
708
- &:hover {
709
- transform: translateX(-50%);
710
- }
711
-
712
- &:active {
713
- transform: translateX(-50%);
714
- }
715
- }
716
- }
717
-
718
- // Thinking scratchpad styles
719
- .thinking-scratchpad {
720
- background: var(--vh-color-neutral-02);
721
- border: 1px solid var(--vh-color-neutral-03);
722
- border-radius: 8px;
723
- margin: 10px 0;
724
- padding: 0;
725
- overflow: hidden;
726
- font-size: 13px;
727
-
728
- .thinking-scratchpad-header {
729
- background: var(--vh-color-neutral-03);
730
- color: var(--vh-color-neutral-04);
731
- padding: 8px 12px;
732
- font-weight: 600;
733
- display: flex;
734
- align-items: center;
735
- gap: 8px;
736
-
737
- .thinking-scratchpad-icon {
738
- font-size: 16px;
739
- }
740
-
741
- .thinking-scratchpad-title {
742
- font-size: 13px;
743
- }
744
- }
745
-
746
- .thinking-scratchpad-content {
747
- padding: 12px;
748
- max-height: 200px;
749
- overflow-y: auto;
750
- background: var(--vh-color-neutral-02);
751
- scroll-behavior: smooth;
752
-
753
- &::-webkit-scrollbar {
754
- width: 6px;
755
- }
756
-
757
- &::-webkit-scrollbar-track {
758
- background: var(--vh-color-neutral-02);
759
- border-radius: 3px;
760
- }
761
-
762
- &::-webkit-scrollbar-thumb {
763
- background: var(--vh-color-neutral-04);
764
- border-radius: 3px;
765
- }
766
-
767
- // Style markdown content in thinking scratchpad
768
- p {
769
- margin: 0 0 8px 0;
770
- line-height: 1.4;
771
- color: var(--vh-color-neutral-04);
772
-
773
- &:last-child {
774
- margin-bottom: 0;
775
- }
776
- }
777
-
778
- code {
779
- background: rgba(0, 0, 0, 0.3);
780
- color: #e6e6e6;
781
- padding: 1px 4px;
782
- border-radius: 3px;
783
- font-size: 12px;
784
- border: 1px solid rgba(255, 255, 255, 0.1);
785
- }
786
-
787
- ul,
788
- ol {
789
- margin: 0 0 8px 0;
790
- padding-left: 20px;
791
-
792
- li {
793
- margin-bottom: 4px;
794
- color: var(--vh-color-neutral-04);
795
- }
796
- }
797
-
798
- h1,
799
- h2,
800
- h3,
801
- h4,
802
- h5,
803
- h6 {
804
- margin: 8px 0 6px 0;
805
- color: var(--vh-color-neutral-04);
806
- font-weight: 600;
807
-
808
- &:first-child {
809
- margin-top: 0;
810
- }
811
- }
812
-
813
- h1 {
814
- font-size: 1.125rem; // 18px at 16px base
815
- }
816
-
817
- h2 {
818
- font-size: 1rem; // 16px at 16px base
819
- }
820
-
821
- h3 {
822
- font-size: 0.9375rem; // 15px at 16px base
823
- }
824
-
825
- h4,
826
- h5,
827
- h6 {
828
- font-size: 0.8125rem; // 13px at 16px base
829
- }
830
- }
831
- }