react-native-bundle-discovery-ui 2.7.0 → 2.9.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 (38) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +12 -227
  3. package/assets/global.css +769 -53
  4. package/dist/bin.js +61 -16
  5. package/dist/client/issues.js +5 -0
  6. package/dist/client/pages/_common.js +258 -86
  7. package/dist/client/pages/_module.js +347 -0
  8. package/dist/client/pages/default.js +145 -62
  9. package/dist/client/pages/module.js +2 -309
  10. package/dist/client/pages/moduleDiff.js +76 -0
  11. package/dist/client/pages/package.js +172 -154
  12. package/dist/client/prepare.js +15 -0
  13. package/dist/client/queryHelpers.js +445 -81
  14. package/dist/client/views/{_theme.js → _colorScheme.js} +2 -9
  15. package/dist/client/views/_html.js +52 -0
  16. package/dist/client/views/codeDiff.js +66 -0
  17. package/dist/client/views/compare.js +237 -0
  18. package/dist/client/views/importGraph.js +255 -0
  19. package/dist/client/views/insights.js +80 -0
  20. package/dist/client/views/moduleOverview.js +134 -0
  21. package/dist/client/views/packageOverview.js +114 -0
  22. package/dist/client/views/persistedFilterInput.js +27 -0
  23. package/dist/client/views/reportBar.js +89 -0
  24. package/dist/client/views/treemap.js +598 -0
  25. package/dist/discoveryrc.js +26 -7
  26. package/dist/rsdoctor.js +5 -101
  27. package/dist/src-Bp8pPQrQ.js +1545 -0
  28. package/package.json +5 -3
  29. package/assets/highcharts.css +0 -1
  30. package/dist/client/_virtual/_rolldown/runtime.js +0 -37
  31. package/dist/client/views/foamtree.js +0 -103
  32. package/dist/client/views/highcharts.js +0 -33
  33. package/dist/src-BSLX-He2.js +0 -36
  34. package/vendors/foamtree.js +0 -9008
  35. package/vendors/high-contrast-dark.js +0 -1
  36. package/vendors/highcharts-exporting.js +0 -13
  37. package/vendors/highcharts-networkgraph.js +0 -1
  38. package/vendors/highcharts.js +0 -10
package/assets/global.css CHANGED
@@ -29,47 +29,102 @@ hr {
29
29
  .main-tabs .view-tabs-content {
30
30
  height: calc(100% - 32px);
31
31
  }
32
- .foamtree-filter,
33
- .view-foamtree {
32
+ .view-pill-badge.cmp-tab-delta-good {
33
+ color: #1a9b4b;
34
+ background: rgb(26 155 75 / 15%);
35
+ }
36
+ .view-pill-badge.cmp-tab-delta-bad {
37
+ color: #d1343e;
38
+ background: rgb(209 52 62 / 15%);
39
+ }
40
+ .view-pill-badge.cmp-tab-delta-ok {
41
+ opacity: 0.75;
42
+ }
43
+ .treemap-filter,
44
+ .view-treemap {
34
45
  width: 100%;
35
46
  height: 100%;
36
47
  }
37
- .foamtree-filter > .content {
48
+ .treemap-filter > .content {
38
49
  height: calc(100% - 60px);
39
50
  width: 100%;
40
51
  }
41
- .tooltip {
52
+ .treemap-tooltip {
42
53
  position: absolute;
43
54
  z-index: 10;
44
55
  display: none;
45
- background-color: #fff;
56
+ max-width: 480px;
57
+ pointer-events: none;
58
+ overflow-wrap: anywhere;
59
+ background-color: var(--discovery-background-color, #fff);
46
60
  border: 1px solid #ccc;
47
- padding: 5px;
61
+ padding: 5px 8px;
48
62
  border-radius: 5px;
49
- box-shadow: 0 0 5px #ccc;
63
+ box-shadow: 0 0 5px rgb(0 0 0 / 20%);
50
64
  }
51
- .tooltip-name {
52
- text-transform: capitalize;
65
+ .treemap-header {
66
+ position: absolute;
67
+ left: 0;
68
+ right: 0;
69
+ top: 0;
70
+ height: 26px;
71
+ display: flex;
72
+ align-items: center;
73
+ gap: 12px;
53
74
  }
54
- .flex-no-wrap {
55
- flex-wrap: nowrap;
75
+ .treemap-breadcrumb {
76
+ flex: 1;
77
+ min-width: 0;
78
+ display: flex;
79
+ align-items: center;
80
+ gap: 4px;
81
+ overflow: hidden;
82
+ white-space: nowrap;
56
83
  }
57
- .width-50p {
58
- width: 50%;
84
+ .treemap-controls {
85
+ flex: none;
86
+ display: flex;
87
+ align-items: center;
88
+ gap: 8px;
89
+ font-size: 12px;
90
+ white-space: nowrap;
59
91
  }
60
- .my-icon {
61
- display: block;
62
- height: 100%;
63
- width: 100%;
92
+ .treemap-legend {
93
+ display: flex;
94
+ gap: 10px;
95
+ opacity: 0.85;
64
96
  }
65
- .my-icon-inline {
97
+ .treemap-swatch {
66
98
  display: inline-block;
67
- vertical-align: middle;
68
- margin-left: 4px;
99
+ width: 10px;
100
+ height: 10px;
101
+ margin-right: 4px;
102
+ border-radius: 2px;
103
+ vertical-align: -1px;
69
104
  }
70
- .my-icon-12 {
71
- width: 12px;
72
- height: 12px;
105
+ .treemap-color-by-label {
106
+ opacity: 0.6;
107
+ }
108
+ .treemap-color-by .view-toggle {
109
+ cursor: pointer;
110
+ }
111
+ .treemap-breadcrumb-item {
112
+ cursor: pointer;
113
+ padding: 2px 8px;
114
+ border-radius: 4px;
115
+ background: rgb(128 128 128 / 15%);
116
+ }
117
+ .treemap-breadcrumb-item:hover {
118
+ background: rgb(128 128 128 / 30%);
119
+ }
120
+ .treemap-breadcrumb-item:last-child {
121
+ font-weight: bold;
122
+ }
123
+ .flex-no-wrap {
124
+ flex-wrap: nowrap;
125
+ }
126
+ .width-50p {
127
+ width: 50%;
73
128
  }
74
129
  .no-margin {
75
130
  margin: 0;
@@ -131,41 +186,702 @@ hr {
131
186
  margin-top: -26px;
132
187
  z-index: 1;
133
188
  }
134
- .ask-chatgpt {
135
- color: var(--discovery-view-button-color, #000);
136
- text-decoration: none;
137
- vertical-align: middle;
189
+ .sortable-content-filter {
190
+ display: grid;
191
+ grid-template-columns: auto 1fr;
192
+ grid-template-rows: auto auto minmax(0, 1fr);
193
+ column-gap: 1em;
194
+ align-items: center;
195
+ height: 100%;
196
+ }
197
+ .sort-toggle-group .view-toggle.checked {
198
+ cursor: pointer;
199
+ }
200
+ .sortable-content-filter > .filtered-size {
201
+ grid-row: 2;
202
+ grid-column: 1 / -1;
203
+ justify-self: start;
204
+ margin-bottom: 0.5em;
205
+ }
206
+ .sortable-content-filter > .content {
207
+ grid-row: 3;
208
+ grid-column: 1 / -1;
209
+ align-self: stretch;
210
+ }
211
+
212
+ /* Module page */
213
+ .mo-wrap {
214
+ position: relative;
215
+ margin-bottom: 20px;
216
+ }
217
+ .mo-copy {
138
218
  position: absolute;
139
- z-index: 9;
219
+ top: 16px;
220
+ right: 16px;
221
+ }
222
+ .mo-header {
223
+ display: flex;
224
+ gap: 16px;
225
+ align-items: flex-start;
226
+ padding: 18px 64px 18px 20px;
227
+ border: 1px solid rgb(128 128 128 / 22%);
228
+ border-radius: 14px;
229
+ background: linear-gradient(
230
+ 135deg,
231
+ rgb(120 90 230 / 10%),
232
+ rgb(0 170 255 / 6%) 60%,
233
+ transparent
234
+ );
235
+ }
236
+ .mo-ext {
237
+ flex: none;
238
+ min-width: 44px;
239
+ padding: 10px 8px;
240
+ border-radius: 10px;
241
+ text-align: center;
242
+ font: 600 12px / 1 var(--discovery-monospace-font-family);
243
+ text-transform: uppercase;
244
+ }
245
+ .mo-title {
246
+ min-width: 0;
247
+ }
248
+ .mo-dir {
249
+ opacity: 0.6;
250
+ font: 13px / 1.4 var(--discovery-monospace-font-family);
251
+ overflow-wrap: anywhere;
252
+ }
253
+ .mo-file {
254
+ font-size: 24px;
255
+ font-weight: 600;
256
+ line-height: 1.25;
257
+ overflow-wrap: anywhere;
258
+ }
259
+ .mo-chips {
260
+ display: flex;
261
+ flex-wrap: wrap;
262
+ gap: 6px;
263
+ margin-top: 10px;
264
+ }
265
+ .mo-chip {
266
+ display: inline-flex;
267
+ align-items: center;
268
+ gap: 4px;
269
+ padding: 3px 10px;
270
+ border-radius: 999px;
271
+ font-size: 12px;
272
+ background: rgb(128 128 128 / 15%);
273
+ color: inherit;
274
+ text-decoration: none;
275
+ }
276
+ a.mo-chip:hover {
277
+ background: rgb(128 128 128 / 28%);
278
+ }
279
+ .mo-chip-pkg {
280
+ background: rgb(0 170 255 / 18%);
281
+ }
282
+ .mo-chip-src {
283
+ background: rgb(148 111 234 / 25%);
284
+ }
285
+ .mo-chip-entry {
286
+ background: rgb(255 200 0 / 35%);
287
+ }
288
+ .mo-chip-warn {
289
+ background: rgb(255 165 0 / 28%);
290
+ }
291
+ .mo-chip-danger {
292
+ background: rgb(220 50 60 / 22%);
293
+ }
294
+ .mo-cards {
295
+ display: grid;
296
+ grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
297
+ gap: 12px;
140
298
  margin-top: 12px;
141
- /* biome-ignore lint/complexity/noImportantStyles: overrides discovery.js styles */
142
- margin-left: 105px !important;
143
- height: 35px;
144
- }
145
- .ask-chatgpt::before {
146
- content: "”";
147
- font-size: 2em;
148
- vertical-align: middle;
149
- font-family: math;
150
- margin-right: 0.2em;
151
- display: inline-block;
152
- height: 15px;
153
299
  }
154
- /* biome-ignore lint/style/noDescendingSpecificity: order is intentional, kept as is */
155
- .packages-content > .view-input {
156
- padding-left: 265px;
300
+ .mo-card {
301
+ padding: 14px 16px;
302
+ border: 1px solid rgb(128 128 128 / 22%);
303
+ border-radius: 12px;
304
+ background: var(--discovery-background-color);
157
305
  }
158
- .copy-before-ask-chatgpt {
159
- width: 95px;
160
- background-position: left center;
161
- padding-left: 25px;
162
- position: absolute;
163
- z-index: 9;
306
+ .mo-card-accent {
307
+ border-color: rgb(120 90 230 / 45%);
308
+ }
309
+ .mo-card-danger {
310
+ border-color: rgb(220 50 60 / 45%);
311
+ background: rgb(220 50 60 / 6%);
312
+ }
313
+ .mo-card-label {
314
+ font-size: 11px;
315
+ font-weight: 600;
316
+ letter-spacing: 0.06em;
317
+ text-transform: uppercase;
318
+ opacity: 0.6;
319
+ }
320
+ .mo-card-value {
321
+ margin-top: 4px;
322
+ font-size: 22px;
323
+ font-weight: 600;
324
+ font-variant-numeric: tabular-nums;
325
+ }
326
+ .mo-card-sub {
327
+ margin-top: 2px;
328
+ font-size: 12px;
329
+ opacity: 0.75;
330
+ }
331
+ .mo-good {
332
+ color: #1a9b4b;
333
+ font-weight: 600;
334
+ }
335
+ .mo-bad {
336
+ color: #d1343e;
337
+ font-weight: 600;
338
+ }
339
+ .mo-bar {
340
+ height: 4px;
341
+ margin-top: 10px;
342
+ border-radius: 2px;
343
+ background: rgb(128 128 128 / 18%);
344
+ overflow: hidden;
345
+ }
346
+ .mo-bar > div {
347
+ height: 100%;
348
+ border-radius: 2px;
349
+ background: linear-gradient(90deg, #7c5ce6, #00aaff);
350
+ }
351
+ .mo-pane-title {
352
+ opacity: 0.85;
353
+ }
354
+ .mo-import {
355
+ display: flex;
356
+ flex-wrap: wrap;
357
+ align-items: center;
358
+ gap: 6px;
359
+ padding: 6px 4px;
360
+ border-bottom: 1px solid rgb(128 128 128 / 12%);
361
+ }
362
+ .mo-import-specifier {
363
+ font-family: var(--discovery-monospace-font-family);
364
+ font-weight: 600;
365
+ }
366
+ .mo-arrow {
367
+ opacity: 0.4;
368
+ }
369
+
370
+ /* Tabs with several sections scroll as a whole */
371
+ .tab-scroll {
372
+ height: 100%;
373
+ overflow: auto;
374
+ padding-top: 12px;
375
+ box-sizing: border-box;
376
+ }
377
+ .dup-title {
378
+ margin: 16px 0 8px;
379
+ }
380
+ .dup-title:first-child {
381
+ margin-top: 0;
382
+ }
383
+ .dup-empty {
384
+ display: block;
385
+ opacity: 0.75;
386
+ }
387
+
388
+ /* Insights tab */
389
+ .insights .mo-cards {
390
+ margin-top: 0;
391
+ }
392
+ .mo-card-good {
393
+ border-color: rgb(26 155 75 / 45%);
394
+ background: rgb(26 155 75 / 6%);
395
+ }
396
+ .in-tops {
397
+ display: grid;
398
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
399
+ gap: 12px;
164
400
  margin-top: 12px;
165
- height: 35px;
166
401
  }
167
- .bundlejs-badge-img {
402
+ .in-top {
403
+ padding: 14px 16px;
404
+ border: 1px solid rgb(128 128 128 / 22%);
405
+ border-radius: 12px;
406
+ }
407
+ .in-top .mo-card-label {
408
+ margin-bottom: 6px;
409
+ }
410
+ .in-row {
411
+ display: grid;
412
+ grid-template-columns: minmax(0, 1fr) auto 4.5em;
413
+ grid-template-areas: "name size share" "bar bar bar";
414
+ column-gap: 8px;
415
+ padding: 5px 4px 6px;
416
+ border-radius: 6px;
417
+ color: inherit;
418
+ text-decoration: none;
419
+ font-size: 13px;
420
+ }
421
+ .in-row:hover {
422
+ background: rgb(128 128 128 / 10%);
423
+ }
424
+ .in-row-name {
425
+ grid-area: name;
426
+ overflow: hidden;
427
+ text-overflow: ellipsis;
428
+ white-space: nowrap;
429
+ }
430
+ .in-row-size {
431
+ grid-area: size;
432
+ font-variant-numeric: tabular-nums;
433
+ }
434
+ .in-row-share {
435
+ grid-area: share;
436
+ text-align: right;
437
+ opacity: 0.6;
438
+ font-variant-numeric: tabular-nums;
439
+ }
440
+ .in-row-bar {
441
+ grid-area: bar;
442
+ height: 3px;
443
+ margin-top: 4px;
444
+ border-radius: 2px;
445
+ background: rgb(128 128 128 / 15%);
446
+ overflow: hidden;
447
+ }
448
+ .in-row-bar > span {
449
+ display: block;
450
+ height: 100%;
451
+ background: linear-gradient(90deg, #7c5ce6, #00aaff);
452
+ }
453
+ /* Compare tab */
454
+ .compare .mo-cards {
455
+ /* All five cards in one row, stretched to the full width */
456
+ grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
457
+ margin-top: 12px;
458
+ }
459
+ .cmp-title {
460
+ display: flex;
461
+ align-items: center;
462
+ gap: 8px;
463
+ font-size: 13px;
464
+ opacity: 0.85;
465
+ }
466
+ .compare .mo-card-sub {
467
+ opacity: 1;
468
+ }
469
+ .cmp-change {
470
+ display: flex;
471
+ flex-wrap: wrap;
472
+ align-items: center;
473
+ gap: 4px 8px;
474
+ margin-top: 4px;
475
+ }
476
+ .cmp-pill {
477
+ padding: 2px 8px;
478
+ border-radius: 999px;
479
+ font-weight: 600;
480
+ font-variant-numeric: tabular-nums;
481
+ background: rgb(128 128 128 / 15%);
482
+ }
483
+ .cmp-pill-up {
484
+ color: #d1343e;
485
+ background: rgb(220 50 60 / 14%);
486
+ }
487
+ .cmp-pill-down {
488
+ color: #1a9b4b;
489
+ background: rgb(26 155 75 / 14%);
490
+ }
491
+ .cmp-from {
492
+ opacity: 0.6;
493
+ }
494
+ .cmp-warning {
495
+ margin-top: 12px;
496
+ padding: 10px 14px;
497
+ border: 1px solid rgb(255 165 0 / 45%);
498
+ border-radius: 8px;
499
+ background: rgb(255 165 0 / 10%);
500
+ font-size: 13px;
501
+ }
502
+ .cmp-empty {
503
+ margin-top: 16px;
504
+ }
505
+ /* Masonry: sections of different heights fill the columns without gaps */
506
+ .cmp-sections {
507
+ columns: 460px;
508
+ column-gap: 12px;
509
+ margin: 12px 0 16px;
510
+ }
511
+ .cmp-section {
512
+ break-inside: avoid;
513
+ margin-bottom: 12px;
514
+ }
515
+ .cmp-row {
516
+ display: grid;
517
+ grid-template-columns: minmax(0, 1fr) auto 6em;
518
+ column-gap: 12px;
519
+ align-items: baseline;
520
+ padding: 5px 4px;
521
+ border-radius: 6px;
522
+ color: inherit;
523
+ text-decoration: none;
524
+ font-size: 13px;
525
+ }
526
+ a.cmp-row:hover {
527
+ background: rgb(128 128 128 / 10%);
528
+ }
529
+ .cmp-row-name {
530
+ overflow: hidden;
531
+ text-overflow: ellipsis;
532
+ white-space: nowrap;
533
+ }
534
+ .cmp-row-detail {
535
+ max-width: 260px;
536
+ overflow: hidden;
537
+ text-overflow: ellipsis;
538
+ white-space: nowrap;
539
+ opacity: 0.6;
540
+ font-variant-numeric: tabular-nums;
541
+ }
542
+ .cmp-row-delta {
543
+ text-align: right;
544
+ font-variant-numeric: tabular-nums;
545
+ }
546
+ .cmp-more-btn {
547
+ margin-top: 6px;
548
+ padding: 4px 10px;
549
+ border: 1px solid rgb(128 128 128 / 30%);
550
+ border-radius: 999px;
551
+ background: none;
552
+ color: inherit;
553
+ font: inherit;
554
+ font-size: 12px;
555
+ cursor: pointer;
556
+ }
557
+ .cmp-more-btn:hover {
558
+ background: rgb(128 128 128 / 12%);
559
+ }
560
+ @media (max-width: 520px) {
561
+ .cmp-row-detail {
562
+ display: none;
563
+ }
564
+ }
565
+
566
+ .in-title {
567
+ margin: 20px 0 8px;
568
+ }
569
+ .in-finding {
570
+ margin-bottom: 8px;
571
+ border: 1px solid rgb(128 128 128 / 22%);
572
+ border-left-width: 4px;
573
+ border-radius: 8px;
574
+ }
575
+ .in-finding-high {
576
+ border-left-color: rgb(220 50 60 / 70%);
577
+ }
578
+ .in-finding-medium {
579
+ border-left-color: rgb(255 165 0 / 80%);
580
+ }
581
+ .in-finding-low {
582
+ border-left-color: rgb(0 170 255 / 60%);
583
+ }
584
+ .in-finding > .header .header-content {
585
+ display: flex;
586
+ flex-wrap: wrap;
587
+ align-items: center;
588
+ gap: 6px;
589
+ font-weight: 600;
590
+ }
591
+ .in-severity {
592
+ font-weight: normal;
593
+ }
594
+ .in-packages {
595
+ font-weight: normal;
596
+ }
597
+ .in-packages .mo-chip {
598
+ margin-right: 4px;
599
+ }
600
+ .in-finding-content {
601
+ padding: 0 12px 8px;
602
+ }
603
+ .in-pre {
604
+ white-space: pre-wrap;
605
+ font-family: var(--discovery-monospace-font-family);
606
+ font-size: 12px;
607
+ padding: 8px 10px;
608
+ border-radius: 6px;
609
+ background: rgb(128 128 128 / 10%);
610
+ }
611
+ .in-affected {
612
+ margin: 8px 0;
613
+ }
614
+ .in-docs {
615
+ margin-top: 8px;
616
+ }
617
+
618
+ /* Package page: "Why is this in my bundle?" */
619
+ .why {
620
+ margin-top: 16px;
621
+ }
622
+ .why-hint {
623
+ display: block;
624
+ margin-bottom: 8px;
625
+ opacity: 0.75;
626
+ }
627
+ .why-chain .why-step {
628
+ position: relative;
629
+ padding: 4px 0 4px 22px;
630
+ }
631
+ .why-chain .why-step::before {
632
+ content: "↓";
633
+ position: absolute;
634
+ left: 4px;
635
+ opacity: 0.45;
636
+ }
637
+ .why-chain .view-list-item:first-child .why-step::before {
638
+ content: "●";
639
+ font-size: 10px;
640
+ top: 7px;
641
+ }
642
+ .why-step-target {
643
+ font-weight: 600;
644
+ }
645
+
646
+ /* Module page: "Imported by" graph */
647
+ .ig {
648
+ position: relative;
649
+ min-width: 0;
650
+ }
651
+ .ig-legend {
652
+ display: flex;
653
+ flex-wrap: wrap;
654
+ gap: 4px 12px;
655
+ margin: 8px 0;
656
+ font-size: 12px;
657
+ }
658
+ .ig-dot {
659
+ display: inline-block;
660
+ width: 10px;
661
+ height: 10px;
662
+ margin-right: 4px;
663
+ border-radius: 50%;
664
+ vertical-align: -1px;
665
+ }
666
+ .ig-hint {
667
+ opacity: 0.6;
668
+ }
669
+ .ig-svg {
670
+ display: block;
671
+ width: 100%;
672
+ border: 1px solid rgb(128 128 128 / 22%);
673
+ border-radius: 12px;
674
+ cursor: grab;
675
+ touch-action: none;
676
+ user-select: none;
677
+ }
678
+ .ig-svg:active {
679
+ cursor: grabbing;
680
+ }
681
+ .ig-links path {
682
+ fill: none;
683
+ stroke: rgb(128 128 128 / 45%);
684
+ stroke-width: 1.2;
685
+ }
686
+ .ig-arrow {
687
+ fill: rgb(128 128 128 / 70%);
688
+ }
689
+ .ig-node {
690
+ cursor: pointer;
691
+ }
692
+ .ig-node text {
693
+ fill: currentColor;
694
+ font-size: 11px;
695
+ paint-order: stroke;
696
+ stroke: var(--discovery-background-color);
697
+ stroke-width: 3px;
698
+ }
699
+ .ig-has-hover .ig-node:not(.ig-active),
700
+ .ig-has-hover .ig-links path:not(.ig-active) {
701
+ opacity: 0.2;
702
+ }
703
+ .ig-links path.ig-active {
704
+ stroke: rgb(128 128 128 / 90%);
705
+ stroke-width: 2;
706
+ }
707
+
708
+ /* Package page */
709
+ .po-icon {
710
+ background: rgb(203 56 55 / 22%);
711
+ text-transform: none;
712
+ }
713
+ .po-links {
714
+ margin-top: 6px;
715
+ align-items: center;
716
+ }
717
+ .mo-chip-link {
718
+ background: transparent;
719
+ border: 1px solid rgb(128 128 128 / 30%);
720
+ }
721
+ a.mo-chip-link:hover {
722
+ background: rgb(128 128 128 / 12%);
723
+ }
724
+ .po-badge {
168
725
  line-height: 0;
169
- margin-bottom: -5px;
170
- margin-left: 10px;
726
+ }
727
+ .po-badge img {
728
+ height: 20px;
729
+ }
730
+
731
+ /* Report bar on top of the default page */
732
+ .report-bar {
733
+ display: flex;
734
+ align-items: center;
735
+ gap: 20px;
736
+ height: 24px;
737
+ /* leave room for the discovery.js nav buttons on the right */
738
+ padding-right: 170px;
739
+ font-size: 13px;
740
+ white-space: nowrap;
741
+ overflow: hidden;
742
+ }
743
+ .rb-build {
744
+ display: flex;
745
+ gap: 6px;
746
+ flex: none;
747
+ }
748
+ .rb-chip {
749
+ padding: 2px 9px;
750
+ border-radius: 999px;
751
+ font-size: 12px;
752
+ background: rgb(128 128 128 / 15%);
753
+ }
754
+ .rb-chip-platform {
755
+ font-weight: 600;
756
+ background: rgb(120 90 230 / 18%);
757
+ }
758
+ .rb-chip-ok {
759
+ color: #1a9b4b;
760
+ background: rgb(26 155 75 / 12%);
761
+ }
762
+ .rb-chip-warn {
763
+ color: #b35c00;
764
+ font-weight: 600;
765
+ background: rgb(255 165 0 / 25%);
766
+ cursor: help;
767
+ }
768
+ .rb-size {
769
+ display: flex;
770
+ flex: none;
771
+ align-items: center;
772
+ gap: 10px;
773
+ }
774
+ .rb-total {
775
+ font-size: 15px;
776
+ font-variant-numeric: tabular-nums;
777
+ }
778
+ .rb-split {
779
+ display: flex;
780
+ flex: none;
781
+ width: 100px;
782
+ height: 8px;
783
+ border-radius: 4px;
784
+ overflow: hidden;
785
+ background: rgb(128 128 128 / 15%);
786
+ }
787
+ .rb-split-own,
788
+ .rb-dot-own {
789
+ background: #8e6fe0;
790
+ }
791
+ .rb-split-nm,
792
+ .rb-dot-nm {
793
+ background: #2b9fd8;
794
+ }
795
+ .rb-legend {
796
+ display: flex;
797
+ gap: 6px;
798
+ }
799
+ .rb-chip-own {
800
+ background: rgb(142 111 224 / 16%);
801
+ }
802
+ .rb-chip-nm {
803
+ background: rgb(43 159 216 / 16%);
804
+ }
805
+ .rb-dot {
806
+ display: inline-block;
807
+ width: 8px;
808
+ height: 8px;
809
+ margin-right: 5px;
810
+ border-radius: 50%;
811
+ }
812
+ /* The least important part: shrinks first */
813
+ .rb-date {
814
+ min-width: 0;
815
+ margin-left: auto;
816
+ overflow: hidden;
817
+ text-overflow: ellipsis;
818
+ opacity: 0.6;
819
+ font-size: 12px;
820
+ }
821
+ @media (max-width: 1000px) {
822
+ .rb-date {
823
+ display: none;
824
+ }
825
+ }
826
+
827
+ /* Code diff (module-diff page) */
828
+ .cd-stats {
829
+ margin: 0 0 6px;
830
+ font-size: 12px;
831
+ opacity: 0.8;
832
+ }
833
+ .cd-stat-add {
834
+ color: #2da44e;
835
+ }
836
+ .cd-stat-del {
837
+ color: #cf222e;
838
+ }
839
+ .cd-code {
840
+ overflow: auto;
841
+ border: 1px solid rgb(128 128 128 / 20%);
842
+ border-radius: 6px;
843
+ font: 12px / 1.5 var(--discovery-monospace-font-family);
844
+ }
845
+ .cd-line {
846
+ display: grid;
847
+ grid-template-columns: 4ch 4ch 2ch 1fr;
848
+ min-width: max-content;
849
+ }
850
+ .cd-no {
851
+ padding-right: 6px;
852
+ text-align: right;
853
+ opacity: 0.4;
854
+ user-select: none;
855
+ }
856
+ .cd-sign {
857
+ text-align: center;
858
+ user-select: none;
859
+ }
860
+ .cd-text {
861
+ padding-right: 12px;
862
+ white-space: pre;
863
+ }
864
+ .cd-add {
865
+ background: rgb(46 160 67 / 15%);
866
+ }
867
+ .cd-del {
868
+ background: rgb(248 81 73 / 15%);
869
+ }
870
+ .cd-fold {
871
+ display: block;
872
+ width: 100%;
873
+ padding: 2px 8px;
874
+ border: 0;
875
+ background: rgb(128 128 128 / 10%);
876
+ color: inherit;
877
+ font: inherit;
878
+ text-align: left;
879
+ opacity: 0.7;
880
+ cursor: pointer;
881
+ }
882
+ .cd-fold:hover {
883
+ opacity: 1;
884
+ }
885
+ .cd-empty {
886
+ opacity: 0.6;
171
887
  }