privateboard 0.1.13 → 0.1.16

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.
@@ -69,7 +69,7 @@
69
69
  background: var(--panel-2, #1A1A18);
70
70
  border-bottom: 0.5px solid var(--line-bright, #2A2A26);
71
71
  padding: 5px 14px;
72
- font-size: 8.5px;
72
+ font-size: 8px;
73
73
  letter-spacing: 0.22em;
74
74
  text-transform: uppercase;
75
75
  color: var(--lime, #6FB572);
@@ -143,7 +143,7 @@
143
143
  background: transparent;
144
144
  border: none;
145
145
  font-family: var(--mono);
146
- font-size: 9.5px;
146
+ font-size: 10px;
147
147
  letter-spacing: 0.14em;
148
148
  text-transform: uppercase;
149
149
  color: var(--text-soft, #8E8B83);
@@ -306,7 +306,7 @@
306
306
  border: 0.5px solid var(--line-strong, #3A3A35);
307
307
  padding: 10px 12px;
308
308
  font-family: var(--font-human);
309
- font-size: 11.5px;
309
+ font-size: 12px;
310
310
  line-height: 1.55;
311
311
  color: var(--text-soft, #8E8B83);
312
312
  letter-spacing: -0.005em;
@@ -371,7 +371,7 @@
371
371
  align-items: center;
372
372
  justify-content: center;
373
373
  font-family: var(--mono);
374
- font-size: 8.5px;
374
+ font-size: 8px;
375
375
  font-weight: 700;
376
376
  letter-spacing: 0;
377
377
  background: var(--panel-2, #1A1A18);
@@ -414,7 +414,7 @@
414
414
  }
415
415
  .rs-cast-title {
416
416
  font-family: var(--mono);
417
- font-size: 9.5px;
417
+ font-size: 10px;
418
418
  font-weight: 700;
419
419
  letter-spacing: 0.16em;
420
420
  text-transform: uppercase;
@@ -422,7 +422,7 @@
422
422
  }
423
423
  .rs-cast-hint {
424
424
  font-family: var(--mono);
425
- font-size: 8.5px;
425
+ font-size: 8px;
426
426
  letter-spacing: 0.06em;
427
427
  text-transform: uppercase;
428
428
  color: var(--text-faint);
@@ -451,10 +451,13 @@
451
451
  transition: border-color 0.12s, background 0.12s;
452
452
  }
453
453
  .rs-toggle-row:hover { border-color: var(--text-faint, #3A382F); }
454
+ /* `.rs-toggle-row .rs-incognito-check` only needs spacing here;
455
+ the global `input[type="checkbox"]` rule in index.html now
456
+ owns appearance / border / fill / hover / focus / disabled
457
+ for every checkbox in the app. Size matches the row's 13 px
458
+ metric (the global default is 14 px, slightly cramped here). */
454
459
  .rs-toggle-row .rs-incognito-check {
455
460
  margin: 0;
456
- accent-color: var(--lime, #6FB572);
457
- cursor: pointer;
458
461
  width: 13px;
459
462
  height: 13px;
460
463
  }
@@ -556,7 +559,7 @@
556
559
  }
557
560
  .rs-label .count {
558
561
  margin-left: auto;
559
- font-size: 8.5px;
562
+ font-size: 8px;
560
563
  color: var(--text-faint, #3A382F);
561
564
  letter-spacing: 0.1em;
562
565
  font-weight: 600;
@@ -603,7 +606,7 @@
603
606
  .rs-members::-webkit-scrollbar-thumb { background: var(--line-strong); }
604
607
 
605
608
  .rs-member-section-label {
606
- font-size: 8.5px;
609
+ font-size: 8px;
607
610
  letter-spacing: 0.18em;
608
611
  text-transform: uppercase;
609
612
  color: var(--text-faint, #3A382F);
@@ -630,11 +633,12 @@
630
633
  .rs-member.on { background: var(--panel-3, #21211E); }
631
634
  .rs-member.on .rs-member-name { color: var(--lime, #6FB572); }
632
635
 
636
+ /* Director picker checkbox · 12 × 12 to fit the dense member-row
637
+ grid. Visual treatment comes from the global checkbox rule
638
+ in index.html; only the size override lives here. */
633
639
  .rs-member-check {
634
640
  margin: 0;
635
641
  width: 12px; height: 12px;
636
- accent-color: var(--lime, #6FB572);
637
- cursor: pointer;
638
642
  }
639
643
 
640
644
  .rs-member-img {
@@ -663,7 +667,7 @@
663
667
  }
664
668
  .rs-member-name {
665
669
  font-family: var(--font-human);
666
- font-size: 12.5px;
670
+ font-size: 12px;
667
671
  color: var(--text, #C8C5BE);
668
672
  letter-spacing: -0.005em;
669
673
  white-space: nowrap;
@@ -672,7 +676,7 @@
672
676
  }
673
677
  .rs-member-tag {
674
678
  font-family: var(--mono);
675
- font-size: 8.5px;
679
+ font-size: 8px;
676
680
  letter-spacing: 0.08em;
677
681
  text-transform: uppercase;
678
682
  /* Was text-faint · same readability problem as
@@ -686,7 +690,7 @@
686
690
 
687
691
  .rs-member-model {
688
692
  font-family: var(--mono);
689
- font-size: 8.5px;
693
+ font-size: 8px;
690
694
  letter-spacing: 0.04em;
691
695
  color: var(--text-soft, #8E8B83);
692
696
  padding: 1px 5px;
@@ -761,15 +765,15 @@
761
765
  .rs-history-row .h-icon {
762
766
  font-weight: 700;
763
767
  text-align: center;
764
- font-size: 10.5px;
768
+ font-size: 10px;
765
769
  }
766
770
  .rs-history-row .h-label {
767
771
  color: var(--text, #C8C5BE);
768
772
  font-family: var(--sans);
769
- font-size: 11.5px;
773
+ font-size: 12px;
770
774
  }
771
775
  .rs-history-row .h-who {
772
- font-size: 8.5px;
776
+ font-size: 8px;
773
777
  color: var(--text-faint, #3A382F);
774
778
  text-transform: uppercase;
775
779
  letter-spacing: 0.12em;
@@ -811,10 +815,11 @@
811
815
  transition: border-color 0.12s, background 0.12s;
812
816
  }
813
817
  .rs-incognito-row:hover { border-color: var(--text-faint); }
818
+ /* Standalone incognito row · 2 px top margin to optically align
819
+ the checkbox with the title text's first line. Visual treatment
820
+ handled by the global checkbox rule. */
814
821
  .rs-incognito-check {
815
822
  margin: 2px 0 0;
816
- accent-color: var(--lime);
817
- cursor: pointer;
818
823
  }
819
824
  .rs-incognito-text {
820
825
  display: flex;
@@ -829,7 +834,7 @@
829
834
  letter-spacing: -0.005em;
830
835
  }
831
836
  .rs-incognito-desc {
832
- font-size: 10.5px;
837
+ font-size: 10px;
833
838
  color: var(--text-faint);
834
839
  line-height: 1.4;
835
840
  }
@@ -842,7 +847,7 @@
842
847
  color: var(--lime);
843
848
  }
844
849
  .rs-config-item-label {
845
- font-size: 8.5px;
850
+ font-size: 8px;
846
851
  font-weight: 700;
847
852
  letter-spacing: 0.18em;
848
853
  text-transform: uppercase;
@@ -884,7 +889,7 @@
884
889
  }
885
890
  .rs-stat .v {
886
891
  font-family: var(--mono);
887
- font-size: 14.5px;
892
+ font-size: 14px;
888
893
  color: var(--lime, #6FB572);
889
894
  font-weight: 700;
890
895
  letter-spacing: -0.01em;
@@ -936,7 +941,7 @@
936
941
  .rs-action {
937
942
  text-decoration: none;
938
943
  font-family: var(--mono);
939
- font-size: 9.5px;
944
+ font-size: 10px;
940
945
  font-weight: 700;
941
946
  text-transform: uppercase;
942
947
  letter-spacing: 0.14em;
@@ -998,3 +1003,166 @@
998
1003
  .rs-foot { padding: 10px 14px; flex-direction: column-reverse; align-items: stretch; }
999
1004
  .rs-foot > * { text-align: center; }
1000
1005
  }
1006
+
1007
+ /* ─── Divergence report panel (Layer 3.1 + Layer 4) ──────────────
1008
+ Read-only block · topic branches above, behavioural-cell coverage
1009
+ below. Sits at the bottom of the config column so it doesn't push
1010
+ the editable controls below the fold. Spans both grid columns so
1011
+ the topic-map list + histograms get full width to breathe. */
1012
+ .rs-diversity-row {
1013
+ grid-template-columns: 1fr;
1014
+ align-items: stretch;
1015
+ padding-top: 14px;
1016
+ }
1017
+ .rs-diversity-row .rs-config-row-label {
1018
+ flex-direction: row;
1019
+ align-items: baseline;
1020
+ gap: 10px;
1021
+ margin-bottom: 8px;
1022
+ }
1023
+ .rs-diversity-body { width: 100%; }
1024
+ .rs-diversity-loading {
1025
+ font-family: var(--mono);
1026
+ font-size: 10px;
1027
+ letter-spacing: 0.06em;
1028
+ color: var(--text-dim);
1029
+ padding: 6px 0;
1030
+ }
1031
+ .rs-diversity-panel {
1032
+ display: flex;
1033
+ flex-direction: column;
1034
+ gap: 10px;
1035
+ }
1036
+ .rs-diversity-kicker {
1037
+ font-family: var(--mono);
1038
+ font-size: 9.5px;
1039
+ letter-spacing: 0.16em;
1040
+ text-transform: uppercase;
1041
+ color: var(--text-dim);
1042
+ }
1043
+
1044
+ /* Topic map · branch list */
1045
+ .rs-branch-list {
1046
+ list-style: none;
1047
+ margin: 0;
1048
+ padding: 0;
1049
+ display: flex;
1050
+ flex-direction: column;
1051
+ gap: 4px;
1052
+ }
1053
+ .rs-branch-row {
1054
+ position: relative;
1055
+ display: grid;
1056
+ grid-template-columns: 1fr max-content;
1057
+ gap: 10px;
1058
+ align-items: baseline;
1059
+ padding: 5px 8px;
1060
+ background: var(--panel-2);
1061
+ border: 0.5px solid var(--line);
1062
+ font-family: var(--mono);
1063
+ font-size: 11px;
1064
+ letter-spacing: 0.02em;
1065
+ overflow: hidden;
1066
+ }
1067
+ .rs-branch-bar {
1068
+ position: absolute;
1069
+ top: 0; left: 0; bottom: 0;
1070
+ background: color-mix(in srgb, var(--lime) 12%, transparent);
1071
+ pointer-events: none;
1072
+ }
1073
+ .rs-branch-label {
1074
+ position: relative;
1075
+ z-index: 1;
1076
+ color: var(--text);
1077
+ overflow: hidden;
1078
+ text-overflow: ellipsis;
1079
+ white-space: nowrap;
1080
+ }
1081
+ .rs-branch-count {
1082
+ position: relative;
1083
+ z-index: 1;
1084
+ color: var(--text-dim);
1085
+ font-size: 10px;
1086
+ letter-spacing: 0.04em;
1087
+ white-space: nowrap;
1088
+ }
1089
+ .rs-branch-hot .rs-branch-bar { background: color-mix(in srgb, var(--lime) 22%, transparent); }
1090
+ .rs-branch-warm .rs-branch-bar { background: color-mix(in srgb, var(--lime) 14%, transparent); }
1091
+ .rs-branch-cool .rs-branch-bar { background: color-mix(in srgb, var(--lime) 6%, transparent); }
1092
+ .rs-branch-empty {
1093
+ list-style: none;
1094
+ font-family: var(--mono);
1095
+ font-size: 10px;
1096
+ letter-spacing: 0.04em;
1097
+ color: var(--text-faint);
1098
+ padding: 6px 0;
1099
+ }
1100
+
1101
+ /* Coverage KPI */
1102
+ .rs-coverage-kpi {
1103
+ display: flex;
1104
+ flex-wrap: wrap;
1105
+ align-items: baseline;
1106
+ gap: 4px 10px;
1107
+ padding: 4px 0 6px;
1108
+ font-family: var(--mono);
1109
+ }
1110
+ .rs-coverage-num {
1111
+ font-size: 22px;
1112
+ font-weight: 700;
1113
+ color: var(--lime);
1114
+ letter-spacing: -0.02em;
1115
+ }
1116
+ .rs-coverage-sep { font-size: 16px; color: var(--text-dim); }
1117
+ .rs-coverage-total {
1118
+ font-size: 14px;
1119
+ color: var(--text-soft);
1120
+ letter-spacing: -0.01em;
1121
+ }
1122
+ .rs-coverage-pct {
1123
+ font-size: 10.5px;
1124
+ letter-spacing: 0.04em;
1125
+ color: var(--text-dim);
1126
+ }
1127
+ .rs-coverage-scored {
1128
+ margin-left: auto;
1129
+ font-size: 9.5px;
1130
+ letter-spacing: 0.06em;
1131
+ color: var(--text-faint);
1132
+ text-transform: uppercase;
1133
+ }
1134
+
1135
+ /* Per-axis bucket histograms */
1136
+ .rs-hist-row {
1137
+ display: grid;
1138
+ grid-template-columns: 78px max-content 1fr max-content;
1139
+ align-items: end;
1140
+ gap: 8px;
1141
+ padding: 2px 0;
1142
+ font-family: var(--mono);
1143
+ font-size: 9.5px;
1144
+ letter-spacing: 0.04em;
1145
+ color: var(--text-dim);
1146
+ }
1147
+ .rs-hist-label {
1148
+ color: var(--text-soft);
1149
+ text-transform: uppercase;
1150
+ }
1151
+ .rs-hist-axis { white-space: nowrap; }
1152
+ .rs-hist-axis-right { text-align: right; }
1153
+ .rs-hist-cells {
1154
+ display: flex;
1155
+ align-items: flex-end;
1156
+ gap: 3px;
1157
+ height: 30px;
1158
+ padding: 0 6px;
1159
+ }
1160
+ .rs-hist-cell {
1161
+ flex: 1 1 0;
1162
+ min-width: 6px;
1163
+ background: var(--line);
1164
+ display: block;
1165
+ }
1166
+ .rs-hist-cell-filled { background: var(--lime); }
1167
+ .rs-hist-cell-empty { background: color-mix(in srgb, var(--text-faint) 35%, transparent); }
1168
+
@@ -387,6 +387,11 @@
387
387
  </div>
388
388
  </div>
389
389
 
390
+ <!-- Divergence report moved out of room settings · it
391
+ now lives in its own overlay opened by the
392
+ [data-divergence-open] button on the input bar.
393
+ See app.js openDivergenceOverlay. -->
394
+
390
395
  </div>
391
396
  </div>
392
397