@deepcitation/deepcitation-js 1.1.22 → 1.1.23

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.
@@ -1,814 +0,0 @@
1
- /**
2
- * DeepCitation React Component Styles
3
- * CSS-only implementation for citation display and popover
4
- */
5
-
6
- /* Base citation container */
7
- .dc-citation {
8
- position: relative;
9
- display: inline-flex;
10
- align-items: baseline;
11
- cursor: pointer;
12
- padding: 0.0625rem 0.125rem;
13
- margin: -0.0625rem -0.125rem;
14
- border-radius: 0.125rem;
15
- transition: background-color 0.15s ease-out, box-shadow 0.15s ease-out;
16
- }
17
-
18
- /* After first click (pinned), show zoom-in cursor to indicate next click expands image */
19
- .dc-citation[data-tooltip-expanded="true"][data-has-image="true"] {
20
- cursor: zoom-in;
21
- }
22
-
23
- .dc-citation:hover {
24
- background-color: var(--dc-hover-bg, rgba(59, 130, 246, 0.08));
25
- }
26
-
27
- .dc-citation:active {
28
- background-color: var(--dc-active-bg, rgba(59, 130, 246, 0.12));
29
- }
30
-
31
- /* Citation bracket wrapper */
32
- .dc-citation-bracket {
33
- display: inline-flex;
34
- align-items: baseline;
35
- justify-content: center;
36
- gap: 0.125rem;
37
- white-space: nowrap;
38
- font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
39
- font-size: 0.75rem;
40
- line-height: 1.25;
41
- color: var(--dc-text-secondary, #64748b);
42
- transition: color 0.15s ease-out, transform 0.1s ease-out;
43
- }
44
-
45
- .dc-citation:hover .dc-citation-bracket {
46
- color: var(--dc-text-primary, #334155);
47
- }
48
-
49
- .dc-citation:active .dc-citation-bracket {
50
- transform: scale(0.98);
51
- }
52
-
53
- /* Citation number/text */
54
- .dc-citation-text {
55
- max-width: 20rem;
56
- overflow: hidden;
57
- text-overflow: ellipsis;
58
- }
59
-
60
- /* Text variant - plain styling that inherits from parent */
61
- .dc-citation-text--plain {
62
- max-width: none;
63
- overflow: visible;
64
- font-family: inherit;
65
- font-size: inherit;
66
- line-height: inherit;
67
- color: inherit;
68
- }
69
-
70
- /* Text variant container - inherit all styling from parent */
71
- .dc-citation--text {
72
- font-family: inherit;
73
- font-size: inherit;
74
- line-height: inherit;
75
- }
76
-
77
- .dc-citation--text .dc-citation-text--plain {
78
- color: inherit;
79
- }
80
-
81
- /* Status-specific styles */
82
- /* Only brackets variant gets verified blue text color */
83
- .dc-citation--brackets.dc-citation--verified .dc-citation-text {
84
- color: var(--dc-color-verified, #2563eb);
85
- }
86
-
87
- .dc-citation--verified:hover {
88
- background-color: var(--dc-verified-hover-bg, rgba(37, 99, 235, 0.08));
89
- }
90
-
91
- /* Only brackets variant gets verified blue text on hover */
92
- .dc-citation--brackets.dc-citation--verified:hover .dc-citation-text {
93
- text-decoration: underline;
94
- color: var(--dc-color-verified-hover, #1d4ed8);
95
- }
96
-
97
- .dc-citation--miss {
98
- opacity: 0.7;
99
- }
100
-
101
- .dc-citation--miss .dc-citation-text {
102
- text-decoration: line-through;
103
- color: var(--dc-text-tertiary, #94a3b8);
104
- }
105
-
106
- .dc-citation--miss:hover {
107
- background-color: var(--dc-miss-hover-bg, rgba(148, 163, 184, 0.1));
108
- opacity: 1;
109
- }
110
-
111
- /* NOTE: Partial matches use the same text styling as verified (blue)
112
- because they WERE found in the document - they just don't match exactly.
113
- The indicator shows the match quality (orange for partial). */
114
-
115
- .dc-citation--pending .dc-citation-text {
116
- animation: dc-pulse 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
117
- }
118
-
119
- .dc-citation--pending:hover {
120
- background-color: var(--dc-pending-hover-bg, rgba(100, 116, 139, 0.08));
121
- }
122
-
123
- @keyframes dc-pulse {
124
- 0%, 100% {
125
- opacity: 1;
126
- }
127
- 50% {
128
- opacity: 0.5;
129
- }
130
- }
131
-
132
- /* Status indicators */
133
- .dc-indicator {
134
- display: inline-flex;
135
- position: relative;
136
- margin-left: 0.125rem;
137
- }
138
-
139
- .dc-indicator--verified {
140
- color: var(--dc-color-success, #16a34a);
141
- top: 0.25rem;
142
- }
143
-
144
- .dc-indicator--partial {
145
- color: var(--dc-color-error, #dc2626);
146
- top: 0.25rem;
147
- }
148
-
149
- /* Popover container - CSS only */
150
- .dc-popover-wrapper {
151
- position: relative;
152
- display: inline-flex;
153
- }
154
-
155
- .dc-popover {
156
- position: absolute;
157
- bottom: 100%;
158
- left: 50%;
159
- transform: translateX(-50%) translateY(-0.5rem);
160
- z-index: 50;
161
-
162
- display: none;
163
- flex-direction: column;
164
- gap: 0.5rem;
165
-
166
- padding: 0.5rem;
167
-
168
- background: var(--dc-popover-bg, #ffffff);
169
- border: 1px solid var(--dc-border-color, #e2e8f0);
170
- border-radius: 0.375rem;
171
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
172
-
173
- pointer-events: none;
174
- opacity: 0;
175
- transition: opacity 0.15s ease-out;
176
- }
177
-
178
- /* Arrow for popover */
179
- .dc-popover::after {
180
- content: "";
181
- position: absolute;
182
- top: 100%;
183
- left: 50%;
184
- transform: translateX(-50%);
185
- border: 0.375rem solid transparent;
186
- border-top-color: var(--dc-popover-bg, #ffffff);
187
- }
188
-
189
- .dc-popover::before {
190
- content: "";
191
- position: absolute;
192
- top: 100%;
193
- left: 50%;
194
- transform: translateX(-50%);
195
- border: 0.4375rem solid transparent;
196
- border-top-color: var(--dc-border-color, #e2e8f0);
197
- }
198
-
199
- /* Invisible bridge to prevent tooltip from disappearing when moving mouse to it */
200
- .dc-popover-wrapper::before {
201
- content: "";
202
- position: absolute;
203
- bottom: 100%;
204
- left: -1rem;
205
- right: -1rem;
206
- height: 1.5rem; /* Bridge height to connect to popover */
207
- background: transparent;
208
- pointer-events: none;
209
- }
210
-
211
- .dc-popover-wrapper:hover::before,
212
- .dc-popover-wrapper[data-expanded="true"]::before {
213
- pointer-events: auto;
214
- }
215
-
216
- /* Show popover on hover or when expanded via click */
217
- .dc-popover-wrapper:hover .dc-popover,
218
- .dc-popover-wrapper:focus-within .dc-popover,
219
- .dc-popover-wrapper[data-expanded="true"] .dc-popover {
220
- display: flex;
221
- opacity: 1;
222
- pointer-events: auto;
223
- }
224
-
225
- /* Popover positioned below */
226
- .dc-popover--bottom {
227
- bottom: auto;
228
- top: 100%;
229
- transform: translateX(-50%) translateY(0.5rem);
230
- }
231
-
232
- .dc-popover--bottom::after {
233
- top: auto;
234
- bottom: 100%;
235
- border-top-color: transparent;
236
- border-bottom-color: var(--dc-popover-bg, #ffffff);
237
- }
238
-
239
- .dc-popover--bottom::before {
240
- top: auto;
241
- bottom: 100%;
242
- border-top-color: transparent;
243
- border-bottom-color: var(--dc-border-color, #e2e8f0);
244
- }
245
-
246
- /* Image-only popover (no padding, natural size) */
247
- .dc-popover:has(.dc-popover-image-button:only-child) {
248
- padding: 0;
249
- min-width: auto;
250
- max-width: none;
251
- }
252
-
253
- .dc-popover:has(.dc-popover-image-button:only-child) .dc-popover-image {
254
- border-radius: 0.375rem;
255
- }
256
-
257
-
258
- /* Verification image in popover - preserve aspect ratio */
259
- .dc-popover-image {
260
- display: block;
261
- width: auto;
262
- height: auto;
263
- max-width: 700px;
264
- max-height: 500px;
265
- object-fit: contain;
266
- border-radius: 0.375rem;
267
- background: var(--dc-image-bg, #f8fafc);
268
- user-select: none;
269
- -webkit-user-drag: none;
270
- cursor: zoom-in;
271
- }
272
-
273
- .dc-popover-image-button {
274
- cursor: zoom-in;
275
- }
276
-
277
-
278
- @keyframes dc-fade-in {
279
- from {
280
- opacity: 0;
281
- }
282
- to {
283
- opacity: 1;
284
- }
285
- }
286
-
287
- /* ========================================
288
- Full-size Image Overlay
289
- ======================================== */
290
-
291
- .dc-overlay {
292
- position: fixed;
293
- top: 0;
294
- left: 0;
295
- right: 0;
296
- bottom: 0;
297
- z-index: 9999;
298
- display: flex;
299
- align-items: center;
300
- justify-content: center;
301
- background: rgba(0, 0, 0, 0.8);
302
- backdrop-filter: blur(4px);
303
- animation: dc-fade-in 0.15s ease-out;
304
- }
305
-
306
- .dc-overlay-content {
307
- position: relative;
308
- max-width: 95vw;
309
- max-height: 95vh;
310
- display: flex;
311
- align-items: center;
312
- justify-content: center;
313
- cursor: zoom-out;
314
- }
315
-
316
- .dc-overlay-image {
317
- max-width: 100%;
318
- max-height: 95vh;
319
- object-fit: contain;
320
- border-radius: 0.5rem;
321
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
322
- user-select: none;
323
- -webkit-user-drag: none;
324
- }
325
-
326
- /* Status tooltip for miss/partial explanations */
327
- .dc-status-tooltip {
328
- position: absolute;
329
- bottom: 100%;
330
- left: 50%;
331
- transform: translateX(-50%) translateY(-0.5rem);
332
- z-index: 50;
333
-
334
- display: none;
335
- flex-direction: column;
336
- gap: 0.375rem;
337
-
338
- padding: 0.625rem 0.75rem;
339
- min-width: 18rem;
340
- max-width: 28rem;
341
-
342
- background: var(--dc-popover-bg, #ffffff);
343
- border: 1px solid var(--dc-border-color, #e2e8f0);
344
- border-radius: 0.375rem;
345
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
346
-
347
- pointer-events: none;
348
- opacity: 0;
349
- transition: opacity 0.15s ease-out;
350
-
351
- font-family: system-ui, -apple-system, sans-serif;
352
- font-size: 0.75rem;
353
- line-height: 1.4;
354
- text-align: left;
355
- }
356
-
357
- /* Arrow for status tooltip */
358
- .dc-status-tooltip::after {
359
- content: "";
360
- position: absolute;
361
- top: 100%;
362
- left: 50%;
363
- transform: translateX(-50%);
364
- border: 0.375rem solid transparent;
365
- border-top-color: var(--dc-popover-bg, #ffffff);
366
- }
367
-
368
- .dc-status-tooltip::before {
369
- content: "";
370
- position: absolute;
371
- top: 100%;
372
- left: 50%;
373
- transform: translateX(-50%);
374
- border: 0.4375rem solid transparent;
375
- border-top-color: var(--dc-border-color, #e2e8f0);
376
- }
377
-
378
- /* Show status tooltip on hover or when expanded via click */
379
- .dc-popover-wrapper:hover .dc-status-tooltip,
380
- .dc-popover-wrapper:focus-within .dc-status-tooltip,
381
- .dc-popover-wrapper[data-expanded="true"] .dc-status-tooltip {
382
- display: flex;
383
- opacity: 1;
384
- pointer-events: auto;
385
- }
386
-
387
- /* Status tooltip header */
388
- .dc-status-header {
389
- display: flex;
390
- align-items: center;
391
- gap: 0.375rem;
392
- font-weight: 600;
393
- color: var(--dc-text-primary, #334155);
394
- }
395
-
396
- .dc-status-header--miss {
397
- color: var(--dc-color-warning, #d97706);
398
- }
399
-
400
- .dc-status-header--partial {
401
- color: var(--dc-color-error, #dc2626);
402
- }
403
-
404
- /* Status icon */
405
- .dc-status-icon {
406
- display: inline-flex;
407
- flex-shrink: 0;
408
- width: 0.875rem;
409
- height: 0.875rem;
410
- }
411
-
412
- /* Status description */
413
- .dc-status-description {
414
- color: var(--dc-text-secondary, #64748b);
415
- font-size: 0.6875rem;
416
- }
417
-
418
- /* Expected/Searched text block */
419
- .dc-status-searched {
420
- display: flex;
421
- flex-direction: column;
422
- gap: 0.25rem;
423
- margin-top: 0.25rem;
424
- padding-top: 0.375rem;
425
- border-top: 1px solid var(--dc-border-color, #e2e8f0);
426
- }
427
-
428
- .dc-status-label {
429
- font-size: 0.625rem;
430
- font-weight: 600;
431
- text-transform: uppercase;
432
- letter-spacing: 0.025em;
433
- color: var(--dc-text-tertiary, #94a3b8);
434
- }
435
-
436
- .dc-status-text {
437
- font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
438
- font-size: 0.6875rem;
439
- padding: 0.375rem 0.5rem;
440
- background: var(--dc-code-bg, #f1f5f9);
441
- border-radius: 0.25rem;
442
- color: var(--dc-text-primary, #334155);
443
- word-break: break-word;
444
- max-height: 4rem;
445
- overflow: hidden;
446
- text-overflow: ellipsis;
447
- }
448
-
449
- .dc-status-text--miss {
450
- color: var(--dc-color-warning, #d97706);
451
- font-style: italic;
452
- }
453
-
454
- .dc-status-text--expected {
455
- color: var(--dc-color-error, #dc2626);
456
- text-decoration: line-through;
457
- opacity: 0.7;
458
- }
459
-
460
- /* Diff details container in popover */
461
- .dc-diff-details {
462
- display: flex;
463
- flex-direction: column;
464
- gap: 0.25rem;
465
- margin-top: 0.5rem;
466
- padding-top: 0.5rem;
467
- border-top: 1px solid var(--dc-border-color, #e2e8f0);
468
- font-family: system-ui, -apple-system, sans-serif;
469
- font-size: 0.75rem;
470
- }
471
-
472
- /* Dark mode support */
473
- @media (prefers-color-scheme: dark) {
474
- .dc-status-tooltip {
475
- --dc-popover-bg: #1e293b;
476
- --dc-border-color: #334155;
477
- --dc-text-primary: #e2e8f0;
478
- --dc-text-secondary: #94a3b8;
479
- --dc-text-tertiary: #64748b;
480
- --dc-code-bg: #0f172a;
481
- --dc-color-warning: #fbbf24;
482
- --dc-color-error: #f87171;
483
- }
484
- }
485
-
486
- /* ========================================
487
- Search Phrases Section (simplified)
488
- ======================================== */
489
-
490
- .dc-search-phrases {
491
- display: flex;
492
- flex-direction: column;
493
- gap: 0.375rem;
494
- margin-top: 0.375rem;
495
- }
496
-
497
- .dc-search-phrases-header {
498
- display: flex;
499
- align-items: center;
500
- gap: 0.5rem;
501
- }
502
-
503
- .dc-search-phrases-toggle {
504
- background: none;
505
- border: none;
506
- color: var(--dc-text-tertiary, #94a3b8);
507
- font-size: 0.625rem;
508
- cursor: pointer;
509
- text-decoration: underline;
510
- text-underline-offset: 2px;
511
- padding: 0;
512
- }
513
-
514
- .dc-search-phrases-toggle:hover {
515
- color: var(--dc-text-secondary, #64748b);
516
- }
517
-
518
- .dc-search-phrases-list {
519
- display: flex;
520
- flex-direction: column;
521
- gap: 0.25rem;
522
- max-height: 10rem;
523
- overflow-y: auto;
524
- }
525
-
526
- .dc-search-phrase-item {
527
- padding: 0.375rem 0.5rem;
528
- border-left: 3px solid var(--dc-color-error, #dc2626);
529
- background: var(--dc-code-bg, #f1f5f9);
530
- font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
531
- font-size: 0.6875rem;
532
- line-height: 1.4;
533
- color: var(--dc-text-primary, #334155);
534
- word-break: break-word;
535
- }
536
-
537
- .dc-search-phrase-more {
538
- font-size: 0.625rem;
539
- color: var(--dc-text-tertiary, #94a3b8);
540
- padding-left: 0.5rem;
541
- }
542
-
543
- /* Dark mode support for search phrases */
544
- @media (prefers-color-scheme: dark) {
545
- .dc-search-phrase-item {
546
- --dc-code-bg: #0f172a;
547
- --dc-text-primary: #e2e8f0;
548
- --dc-color-error: #f87171;
549
- }
550
- }
551
-
552
- /* ========================================
553
- Diff Display Styles
554
- ======================================== */
555
-
556
- .dc-diff-display {
557
- display: flex;
558
- flex-direction: column;
559
- gap: 0.5rem;
560
- }
561
-
562
- .dc-diff-label {
563
- font-size: 0.75rem;
564
- font-weight: 500;
565
- margin-bottom: 0.5rem;
566
- color: var(--dc-text-secondary, #64748b);
567
- }
568
-
569
- .dc-diff-content {
570
- font-size: 0.75rem;
571
- line-height: 1.5;
572
- }
573
-
574
- .dc-diff-blocks {
575
- display: flex;
576
- flex-direction: column;
577
- gap: 0.125rem;
578
- }
579
-
580
- .dc-diff-block {
581
- font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
582
- white-space: pre-wrap;
583
- word-break: break-word;
584
- }
585
-
586
- .dc-diff-block--added {
587
- background-color: var(--dc-diff-added-bg, rgba(16, 185, 129, 0.08));
588
- padding: 0 0.25rem;
589
- border-radius: 0.125rem;
590
- }
591
-
592
- .dc-diff-block-added {
593
- background-color: var(--dc-diff-added-bg, rgba(16, 185, 129, 0.05));
594
- padding: 0.125rem 0.25rem;
595
- border-radius: 0.125rem;
596
- }
597
-
598
- .dc-diff-part {
599
- font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
600
- }
601
-
602
- .dc-diff-part--removed {
603
- text-decoration: line-through;
604
- text-decoration-thickness: 2px;
605
- text-decoration-color: var(--dc-diff-removed-color, rgba(239, 68, 68, 0.5));
606
- opacity: 0.6;
607
- color: var(--dc-diff-removed-text, #ef4444);
608
- margin: 0 0.125rem;
609
- }
610
-
611
- .dc-diff-part--removed:hover {
612
- opacity: 1;
613
- text-decoration: none;
614
- }
615
-
616
- .dc-diff-part--added {
617
- text-decoration: underline;
618
- text-decoration-thickness: 2px;
619
- background-color: var(--dc-diff-added-highlight, rgba(16, 185, 129, 0.1));
620
- color: var(--dc-text-primary, #334155);
621
- margin: 0 0.125rem;
622
- padding: 0 0.125rem;
623
- border-radius: 0.0625rem;
624
- }
625
-
626
- .dc-diff-part--unchanged {
627
- opacity: 0.9;
628
- color: var(--dc-text-primary, #334155);
629
- }
630
-
631
- /* ========================================
632
- Verification Tabs Styles
633
- ======================================== */
634
-
635
- .dc-verification-tabs {
636
- display: flex;
637
- flex-direction: column;
638
- width: 100%;
639
- }
640
-
641
- .dc-verification-tabs--exact {
642
- display: flex;
643
- flex-direction: column;
644
- width: 100%;
645
- }
646
-
647
- .dc-verification-label {
648
- font-size: 0.75rem;
649
- font-weight: 500;
650
- margin-bottom: 0.5rem;
651
- padding: 0 1rem;
652
- color: var(--dc-text-secondary, #64748b);
653
- }
654
-
655
- .dc-tabs-container {
656
- padding: 0.5rem 1rem 0.75rem;
657
- }
658
-
659
- .dc-tabs-nav {
660
- display: flex;
661
- padding: 0.25rem;
662
- background-color: var(--dc-tabs-bg, #f1f5f9);
663
- border: 1px solid var(--dc-border-color, #e2e8f0);
664
- user-select: none;
665
- }
666
-
667
- .dc-tab-button {
668
- flex: 1;
669
- padding: 0.375rem 0.5rem;
670
- font-size: 0.625rem;
671
- font-weight: 700;
672
- text-transform: uppercase;
673
- letter-spacing: 0.05em;
674
- border-radius: 0.125rem;
675
- transition: all 0.1s ease-out;
676
- background: transparent;
677
- border: none;
678
- cursor: pointer;
679
- color: var(--dc-tab-inactive, #94a3b8);
680
- }
681
-
682
- .dc-tab-button:hover {
683
- color: var(--dc-tab-hover, #64748b);
684
- background-color: var(--dc-tab-hover-bg, rgba(148, 163, 184, 0.1));
685
- }
686
-
687
- .dc-tab-button--active {
688
- background-color: var(--dc-tab-active-bg, #ffffff);
689
- color: var(--dc-text-primary, #334155);
690
- transform: scale(1.02);
691
- }
692
-
693
- .dc-tabs-content {
694
- padding: 0 1rem 1rem;
695
- min-height: 2.5rem;
696
- font-size: 0.75rem;
697
- line-height: 1.5;
698
- font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
699
- }
700
-
701
- .dc-tab-content {
702
- animation: dc-fade-in 0.1s ease-out;
703
- }
704
-
705
- .dc-tab-content--found {
706
- /* Specific styles for found tab */
707
- }
708
-
709
- .dc-tab-content--expected {
710
- color: var(--dc-text-secondary, #64748b);
711
- }
712
-
713
- .dc-tab-content--diff {
714
- /* Specific styles for diff tab */
715
- }
716
-
717
- .dc-tab-text-wrapper {
718
- position: relative;
719
- padding: 0.5rem;
720
- }
721
-
722
- .dc-tab-text {
723
- /* Base text styling */
724
- }
725
-
726
- .dc-copy-button-wrapper {
727
- position: absolute;
728
- top: 0;
729
- right: 1rem;
730
- z-index: 10;
731
- }
732
-
733
- .dc-tab-empty {
734
- color: var(--dc-text-tertiary, #94a3b8);
735
- font-style: italic;
736
- }
737
-
738
- .dc-exact-match-badge {
739
- display: flex;
740
- align-items: center;
741
- justify-content: center;
742
- gap: 0.5rem;
743
- padding: 0.5rem 0.75rem;
744
- font-size: 0.875rem;
745
- font-weight: 600;
746
- }
747
-
748
- .dc-exact-match-content {
749
- padding: 0 1rem 1rem;
750
- min-height: 2.5rem;
751
- font-size: 0.75rem;
752
- line-height: 1.5;
753
- font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
754
- }
755
-
756
- .dc-exact-match-indicator {
757
- display: flex;
758
- align-items: center;
759
- gap: 0.5rem;
760
- padding: 0.5rem;
761
- font-weight: 600;
762
- }
763
-
764
- .dc-check-icon {
765
- display: inline-flex;
766
- flex-shrink: 0;
767
- width: 0.6rem;
768
- height: 0.6rem;
769
- }
770
-
771
- .dc-diff-result {
772
- word-break: break-word;
773
- white-space: pre-wrap;
774
- position: relative;
775
- }
776
-
777
- .dc-diff-block--added {
778
- background-color: var(--dc-diff-added-block-bg, rgba(236, 253, 245, 1));
779
- margin: 0 -0.25rem;
780
- padding: 0 0.25rem;
781
- border-radius: 0.125rem;
782
- }
783
-
784
- .dc-diff-block--removed {
785
- background-color: var(--dc-diff-removed-block-bg, rgba(254, 242, 242, 1));
786
- margin: 0 -0.25rem;
787
- padding: 0 0.25rem;
788
- border-radius: 0.125rem;
789
- opacity: 0.6;
790
- }
791
-
792
- /* Dark mode for diff and tabs */
793
- @media (prefers-color-scheme: dark) {
794
- .dc-tabs-nav {
795
- --dc-tabs-bg: #1e293b;
796
- --dc-border-color: #334155;
797
- }
798
-
799
- .dc-tab-button--active {
800
- --dc-tab-active-bg: #475569;
801
- }
802
-
803
- .dc-diff-block--added {
804
- --dc-diff-added-block-bg: rgba(16, 185, 129, 0.15);
805
- }
806
-
807
- .dc-diff-block--removed {
808
- --dc-diff-removed-block-bg: rgba(239, 68, 68, 0.1);
809
- }
810
-
811
- .dc-diff-part--added {
812
- --dc-diff-added-highlight: rgba(16, 185, 129, 0.25);
813
- }
814
- }