@cfbender/cesium 0.6.2 → 0.7.1
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.
- package/CHANGELOG.md +82 -1
- package/README.md +1 -1
- package/package.json +1 -1
- package/src/index.ts +2 -0
- package/src/prompt/system-fragment.md +68 -8
- package/src/render/annotate-frozen.ts +90 -0
- package/src/render/blocks/render.ts +20 -0
- package/src/render/blocks/renderers/callout.ts +3 -2
- package/src/render/blocks/renderers/code.ts +17 -2
- package/src/render/blocks/renderers/compare-table.ts +3 -2
- package/src/render/blocks/renderers/diagram.ts +3 -2
- package/src/render/blocks/renderers/diff.ts +23 -9
- package/src/render/blocks/renderers/hero.ts +3 -2
- package/src/render/blocks/renderers/kv.ts +3 -2
- package/src/render/blocks/renderers/list.ts +5 -4
- package/src/render/blocks/renderers/pill-row.ts +3 -2
- package/src/render/blocks/renderers/prose.ts +8 -2
- package/src/render/blocks/renderers/raw-html.ts +8 -2
- package/src/render/blocks/renderers/risk-table.ts +3 -2
- package/src/render/blocks/renderers/section.ts +4 -2
- package/src/render/blocks/renderers/timeline.ts +3 -2
- package/src/render/blocks/renderers/tldr.ts +3 -2
- package/src/render/client-js.ts +803 -6
- package/src/render/critique.ts +5 -335
- package/src/render/theme.ts +455 -6
- package/src/render/validate.ts +353 -97
- package/src/render/wrap.ts +67 -9
- package/src/server/api.ts +162 -3
- package/src/storage/index-gen.ts +4 -2
- package/src/storage/mutate.ts +433 -27
- package/src/tools/annotate.ts +336 -0
- package/src/tools/ask.ts +2 -6
- package/src/tools/critique.ts +15 -45
- package/src/tools/publish.ts +16 -56
- package/src/tools/styleguide.ts +7 -1
- package/src/tools/wait.ts +77 -24
package/src/render/theme.ts
CHANGED
|
@@ -972,14 +972,463 @@ textarea.cs-text { font-family: var(--mono); }
|
|
|
972
972
|
|
|
973
973
|
/* session-ended banner */
|
|
974
974
|
.cs-banner-ended {
|
|
975
|
-
|
|
975
|
+
max-width: var(--content-width, 70ch);
|
|
976
|
+
margin: 16px auto 24px;
|
|
977
|
+
padding: 0.5rem 0.875rem;
|
|
978
|
+
background: color-mix(in srgb, var(--accent) 10%, var(--bg));
|
|
979
|
+
border-radius: 8px;
|
|
980
|
+
text-align: left;
|
|
981
|
+
font-weight: 600;
|
|
982
|
+
font-size: 0.9rem;
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
/* ─── annotate affordances (.cs-anchor-*) ─────────────────────────────────── */
|
|
986
|
+
|
|
987
|
+
/* annotatable blocks establish a positioning context for the absolute buttons */
|
|
988
|
+
[data-cesium-anchor] { position: relative; }
|
|
989
|
+
|
|
990
|
+
/* affordance base — shared styles for both block and line buttons */
|
|
991
|
+
.cs-anchor-affordance {
|
|
992
|
+
cursor: pointer;
|
|
993
|
+
border: 1px solid var(--rule);
|
|
994
|
+
background: var(--surface);
|
|
995
|
+
padding: 4px 8px;
|
|
996
|
+
line-height: 1;
|
|
997
|
+
color: var(--muted);
|
|
998
|
+
transition: color 120ms, background 120ms, opacity 120ms, border-color 120ms;
|
|
999
|
+
align-items: center;
|
|
1000
|
+
justify-content: center;
|
|
1001
|
+
border-radius: 4px;
|
|
1002
|
+
font-size: 0.75rem;
|
|
1003
|
+
font-family: inherit;
|
|
1004
|
+
font-weight: 500;
|
|
1005
|
+
gap: 4px;
|
|
1006
|
+
}
|
|
1007
|
+
.cs-anchor-affordance:hover {
|
|
1008
|
+
color: var(--accent);
|
|
1009
|
+
border-color: var(--accent);
|
|
1010
|
+
background: color-mix(in srgb, var(--accent) 10%, var(--surface));
|
|
1011
|
+
}
|
|
1012
|
+
/* show hover rule still needed for line affordances */
|
|
1013
|
+
[data-cesium-anchor]:hover > .cs-anchor-affordance-line,
|
|
1014
|
+
[data-cesium-anchor]:focus-within > .cs-anchor-affordance-line {
|
|
1015
|
+
visibility: visible;
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
/* line affordance — gutter icon, hidden until line hover */
|
|
1019
|
+
.cs-anchor-affordance-line {
|
|
1020
|
+
display: inline-flex;
|
|
1021
|
+
position: absolute;
|
|
1022
|
+
left: -28px;
|
|
976
1023
|
top: 0;
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
1024
|
+
visibility: hidden;
|
|
1025
|
+
padding: 2px 4px;
|
|
1026
|
+
min-width: 20px;
|
|
1027
|
+
min-height: 20px;
|
|
1028
|
+
border-radius: 4px;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
/* block affordance — always-visible "Comment" button, top-right corner */
|
|
1032
|
+
.cs-anchor-affordance-block {
|
|
1033
|
+
display: inline-flex;
|
|
1034
|
+
position: absolute;
|
|
1035
|
+
top: 8px;
|
|
1036
|
+
right: 8px;
|
|
1037
|
+
min-width: 36px;
|
|
1038
|
+
min-height: 28px;
|
|
1039
|
+
z-index: 1;
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
/* ─── annotate comment popup (.cs-comment-popup) ───────────────────────────── */
|
|
1043
|
+
|
|
1044
|
+
.cs-comment-popup {
|
|
1045
|
+
position: absolute;
|
|
1046
|
+
z-index: 100;
|
|
1047
|
+
width: 360px;
|
|
1048
|
+
max-width: calc(100vw - 32px);
|
|
1049
|
+
background: var(--surface);
|
|
1050
|
+
border: 1.5px solid var(--rule);
|
|
1051
|
+
border-radius: 12px;
|
|
1052
|
+
padding: 16px;
|
|
1053
|
+
box-shadow: 0 8px 32px color-mix(in srgb, var(--ink) 18%, transparent);
|
|
1054
|
+
display: flex;
|
|
1055
|
+
flex-direction: column;
|
|
1056
|
+
gap: 10px;
|
|
1057
|
+
}
|
|
1058
|
+
.cs-comment-popup-quote {
|
|
1059
|
+
font-size: 0.85rem;
|
|
1060
|
+
color: var(--muted);
|
|
1061
|
+
font-style: italic;
|
|
1062
|
+
border-left: 3px solid var(--rule);
|
|
1063
|
+
padding: 4px 10px;
|
|
1064
|
+
margin: 0;
|
|
1065
|
+
white-space: pre-wrap;
|
|
1066
|
+
overflow: hidden;
|
|
1067
|
+
display: -webkit-box;
|
|
1068
|
+
-webkit-box-orient: vertical;
|
|
1069
|
+
-webkit-line-clamp: 3;
|
|
1070
|
+
line-clamp: 3;
|
|
1071
|
+
}
|
|
1072
|
+
.cs-comment-input {
|
|
1073
|
+
display: block;
|
|
1074
|
+
width: 100%;
|
|
1075
|
+
min-height: 80px;
|
|
1076
|
+
padding: 0.625rem 0.875rem;
|
|
1077
|
+
background: var(--surface-2);
|
|
1078
|
+
border: 1.5px solid var(--rule);
|
|
1079
|
+
border-radius: 8px;
|
|
1080
|
+
color: var(--ink);
|
|
1081
|
+
font-family: var(--sans);
|
|
1082
|
+
font-size: 0.9rem;
|
|
1083
|
+
line-height: 1.5;
|
|
1084
|
+
resize: vertical;
|
|
1085
|
+
transition: border-color 120ms;
|
|
1086
|
+
}
|
|
1087
|
+
.cs-comment-input:focus { border-color: var(--accent); outline: none; }
|
|
1088
|
+
.cs-comment-actions {
|
|
1089
|
+
display: flex;
|
|
1090
|
+
gap: 0.5rem;
|
|
1091
|
+
align-items: center;
|
|
1092
|
+
}
|
|
1093
|
+
.cs-comment-save {
|
|
1094
|
+
padding: 0.45rem 1.1rem;
|
|
1095
|
+
background: var(--accent);
|
|
1096
|
+
color: var(--bg);
|
|
1097
|
+
border: 1.5px solid var(--accent);
|
|
1098
|
+
border-radius: 8px;
|
|
1099
|
+
font-family: inherit;
|
|
1100
|
+
font-size: 0.9rem;
|
|
1101
|
+
font-weight: 600;
|
|
1102
|
+
cursor: pointer;
|
|
1103
|
+
transition: opacity 120ms;
|
|
1104
|
+
}
|
|
1105
|
+
.cs-comment-save:hover:not(:disabled) { opacity: 0.85; }
|
|
1106
|
+
.cs-comment-save:disabled { opacity: 0.4; cursor: not-allowed; }
|
|
1107
|
+
.cs-comment-cancel {
|
|
1108
|
+
padding: 0.45rem 1rem;
|
|
1109
|
+
background: var(--surface-2);
|
|
1110
|
+
color: var(--muted);
|
|
1111
|
+
border: 1.5px solid var(--rule);
|
|
1112
|
+
border-radius: 8px;
|
|
1113
|
+
font-family: inherit;
|
|
1114
|
+
font-size: 0.9rem;
|
|
1115
|
+
font-weight: 500;
|
|
1116
|
+
cursor: pointer;
|
|
1117
|
+
transition: opacity 120ms, border-color 120ms;
|
|
1118
|
+
}
|
|
1119
|
+
.cs-comment-cancel:hover:not(:disabled) { opacity: 0.85; border-color: var(--muted); }
|
|
1120
|
+
.cs-comment-cancel:disabled { opacity: 0.4; cursor: not-allowed; }
|
|
1121
|
+
|
|
1122
|
+
/* ─── comment rail (.cs-comment-rail) ─────────────────────────────────────── */
|
|
1123
|
+
|
|
1124
|
+
/* Body is the absolute-positioning context for the rail */
|
|
1125
|
+
body { position: relative; }
|
|
1126
|
+
|
|
1127
|
+
.cs-comment-rail {
|
|
1128
|
+
position: absolute;
|
|
1129
|
+
right: 24px;
|
|
1130
|
+
top: 0;
|
|
1131
|
+
width: 280px;
|
|
1132
|
+
display: flex;
|
|
1133
|
+
flex-direction: column;
|
|
1134
|
+
z-index: 50;
|
|
1135
|
+
}
|
|
1136
|
+
/* When annotate is active and viewport has room for page + rail side-by-side,
|
|
1137
|
+
shift .page leftward so its right edge (and the .cs-anchor-affordance-block
|
|
1138
|
+
button parked at right: 8px of each annotatable block) does not slide under
|
|
1139
|
+
the rail. Required viewport width: 1120 (page) + 24 (gap) + 280 (rail) +
|
|
1140
|
+
24 (right gutter) = 1448px. */
|
|
1141
|
+
@media (min-width: 1448px) {
|
|
1142
|
+
body.cs-annotate-active .page,
|
|
1143
|
+
body:has(.cs-annotate-scaffold) .page {
|
|
1144
|
+
margin-right: 328px; /* rail width (280) + outer gutter (24) + inner gap (24) */
|
|
1145
|
+
margin-left: auto;
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
/* Below 1448px, fall back to a static rail below content. The previous
|
|
1149
|
+
breakpoint at 900px left a wide intermediate zone where the absolute rail
|
|
1150
|
+
overlapped the right edge of .page and covered the per-block Comment button. */
|
|
1151
|
+
@media (max-width: 1447px) {
|
|
1152
|
+
.cs-comment-rail {
|
|
1153
|
+
position: static;
|
|
1154
|
+
width: 100%;
|
|
1155
|
+
max-height: none;
|
|
1156
|
+
margin-top: 24px;
|
|
1157
|
+
}
|
|
1158
|
+
/* In static-rail mode, bubbles flow naturally; positionBubbles() sets
|
|
1159
|
+
top: <px> which we override since bubbles should stack normally. */
|
|
1160
|
+
.cs-comment-rail .cs-comment-bubble {
|
|
1161
|
+
position: static;
|
|
1162
|
+
margin-bottom: 12px;
|
|
1163
|
+
}
|
|
1164
|
+
.cs-comment-rail .cs-comment-bubble::before {
|
|
1165
|
+
display: none;
|
|
1166
|
+
}
|
|
1167
|
+
}
|
|
1168
|
+
.cs-comment-bubble {
|
|
1169
|
+
position: absolute;
|
|
1170
|
+
left: 0;
|
|
1171
|
+
right: 0;
|
|
1172
|
+
background: var(--surface);
|
|
1173
|
+
border: 1.5px solid var(--rule);
|
|
1174
|
+
border-radius: 10px;
|
|
1175
|
+
padding: 12px 14px;
|
|
1176
|
+
display: flex;
|
|
1177
|
+
flex-direction: column;
|
|
1178
|
+
gap: 6px;
|
|
1179
|
+
transition: border-color 120ms;
|
|
1180
|
+
}
|
|
1181
|
+
/* connector pseudo-element: dotted line from bubble leading edge leftward */
|
|
1182
|
+
.cs-comment-bubble::before {
|
|
1183
|
+
content: "";
|
|
1184
|
+
position: absolute;
|
|
1185
|
+
top: 14px;
|
|
1186
|
+
left: -24px;
|
|
1187
|
+
width: 24px;
|
|
1188
|
+
border-top: 1px dotted var(--rule);
|
|
1189
|
+
opacity: 0;
|
|
1190
|
+
transition: opacity 120ms;
|
|
1191
|
+
}
|
|
1192
|
+
.cs-comment-bubble:hover::before,
|
|
1193
|
+
.cs-comment-bubble-active::before {
|
|
1194
|
+
opacity: 1;
|
|
1195
|
+
}
|
|
1196
|
+
.cs-comment-bubble:hover { border-color: color-mix(in srgb, var(--accent) 40%, var(--rule)); }
|
|
1197
|
+
.cs-comment-bubble-active {
|
|
1198
|
+
border-color: color-mix(in srgb, var(--accent) 40%, var(--rule));
|
|
1199
|
+
}
|
|
1200
|
+
/* anchor highlight when its bubble is active */
|
|
1201
|
+
.cs-anchor-active {
|
|
1202
|
+
background-color: color-mix(in srgb, var(--accent) 8%, transparent) !important;
|
|
1203
|
+
transition: background-color 120ms;
|
|
1204
|
+
}
|
|
1205
|
+
.cs-comment-bubble-head {
|
|
1206
|
+
display: flex;
|
|
1207
|
+
align-items: center;
|
|
1208
|
+
justify-content: space-between;
|
|
1209
|
+
gap: 6px;
|
|
1210
|
+
}
|
|
1211
|
+
.cs-comment-anchor-label {
|
|
1212
|
+
font-family: var(--mono);
|
|
1213
|
+
font-size: 0.7rem;
|
|
1214
|
+
font-weight: 600;
|
|
1215
|
+
letter-spacing: 0.08em;
|
|
1216
|
+
text-transform: uppercase;
|
|
1217
|
+
color: var(--accent);
|
|
1218
|
+
flex: 1;
|
|
1219
|
+
min-width: 0;
|
|
1220
|
+
overflow: hidden;
|
|
1221
|
+
text-overflow: ellipsis;
|
|
1222
|
+
white-space: nowrap;
|
|
1223
|
+
}
|
|
1224
|
+
.cs-comment-delete {
|
|
1225
|
+
flex-shrink: 0;
|
|
1226
|
+
width: 28px;
|
|
1227
|
+
height: 28px;
|
|
1228
|
+
border-radius: 6px;
|
|
1229
|
+
border: 1.5px solid transparent;
|
|
1230
|
+
background: none;
|
|
1231
|
+
color: var(--muted);
|
|
1232
|
+
cursor: pointer;
|
|
1233
|
+
font-size: 16px;
|
|
1234
|
+
display: flex;
|
|
1235
|
+
align-items: center;
|
|
1236
|
+
justify-content: center;
|
|
1237
|
+
transition: color 120ms, background 120ms, border-color 120ms;
|
|
1238
|
+
padding: 0;
|
|
1239
|
+
line-height: 1;
|
|
1240
|
+
}
|
|
1241
|
+
.cs-comment-delete:hover {
|
|
1242
|
+
color: #c93b3b;
|
|
1243
|
+
background: color-mix(in srgb, #c93b3b 10%, transparent);
|
|
1244
|
+
border-color: #c93b3b;
|
|
1245
|
+
}
|
|
1246
|
+
.cs-comment-text {
|
|
1247
|
+
font-size: 0.9rem;
|
|
1248
|
+
color: var(--ink);
|
|
1249
|
+
line-height: 1.5;
|
|
1250
|
+
white-space: pre-wrap;
|
|
1251
|
+
word-break: break-word;
|
|
1252
|
+
}
|
|
1253
|
+
.cs-comment-bubble-quote {
|
|
1254
|
+
font-size: 0.8rem;
|
|
1255
|
+
color: var(--muted);
|
|
1256
|
+
font-style: italic;
|
|
1257
|
+
border-left: 2px solid var(--rule);
|
|
1258
|
+
padding: 2px 8px;
|
|
1259
|
+
margin: 0;
|
|
1260
|
+
overflow: hidden;
|
|
1261
|
+
display: -webkit-box;
|
|
1262
|
+
-webkit-box-orient: vertical;
|
|
1263
|
+
-webkit-line-clamp: 2;
|
|
1264
|
+
line-clamp: 2;
|
|
1265
|
+
}
|
|
1266
|
+
|
|
1267
|
+
/* ─── floating selection menu (.cs-selection-menu) ───────────────────────── */
|
|
1268
|
+
|
|
1269
|
+
.cs-selection-menu {
|
|
1270
|
+
position: fixed;
|
|
1271
|
+
z-index: 100;
|
|
1272
|
+
background: var(--surface);
|
|
1273
|
+
border: 1.5px solid var(--rule);
|
|
1274
|
+
border-radius: 8px;
|
|
1275
|
+
padding: 4px;
|
|
1276
|
+
box-shadow: 0 4px 16px color-mix(in srgb, var(--ink) 18%, transparent);
|
|
1277
|
+
pointer-events: none;
|
|
1278
|
+
}
|
|
1279
|
+
.cs-selection-comment-btn {
|
|
1280
|
+
display: inline-flex;
|
|
1281
|
+
align-items: center;
|
|
1282
|
+
gap: 5px;
|
|
1283
|
+
padding: 5px 10px;
|
|
1284
|
+
background: var(--surface);
|
|
1285
|
+
border: 1px solid var(--rule);
|
|
1286
|
+
border-radius: 6px;
|
|
1287
|
+
color: var(--ink-soft);
|
|
1288
|
+
font-family: inherit;
|
|
1289
|
+
font-size: 0.8rem;
|
|
1290
|
+
font-weight: 500;
|
|
1291
|
+
cursor: pointer;
|
|
1292
|
+
pointer-events: auto;
|
|
1293
|
+
transition: background 120ms, border-color 120ms, color 120ms;
|
|
1294
|
+
min-width: 36px;
|
|
1295
|
+
min-height: 32px;
|
|
1296
|
+
white-space: nowrap;
|
|
1297
|
+
}
|
|
1298
|
+
.cs-selection-comment-btn:hover {
|
|
1299
|
+
background: color-mix(in srgb, var(--accent) 10%, var(--surface));
|
|
1300
|
+
border-color: var(--accent);
|
|
1301
|
+
color: var(--accent);
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1304
|
+
/* ─── verdict footer (.cs-verdict-footer) ─────────────────────────────────── */
|
|
1305
|
+
|
|
1306
|
+
/* extra body padding when annotate scaffold is present, so footer doesn't
|
|
1307
|
+
cover content. Fallback class .cs-annotate-active added by client JS. */
|
|
1308
|
+
body:has(.cs-annotate-scaffold),
|
|
1309
|
+
body.cs-annotate-active {
|
|
1310
|
+
padding-bottom: 80px;
|
|
1311
|
+
}
|
|
1312
|
+
.cs-verdict-footer {
|
|
1313
|
+
position: fixed;
|
|
1314
|
+
bottom: 0;
|
|
1315
|
+
left: 0;
|
|
1316
|
+
right: 0;
|
|
1317
|
+
height: 64px;
|
|
1318
|
+
background: var(--bg);
|
|
1319
|
+
border-top: 1.5px solid var(--rule);
|
|
1320
|
+
display: flex;
|
|
1321
|
+
align-items: center;
|
|
1322
|
+
justify-content: space-between;
|
|
1323
|
+
padding: 0 clamp(16px, 4vw, 48px);
|
|
1324
|
+
z-index: 60;
|
|
1325
|
+
gap: 12px;
|
|
1326
|
+
}
|
|
1327
|
+
.cs-comment-count {
|
|
1328
|
+
font-family: var(--mono);
|
|
1329
|
+
font-size: 0.8rem;
|
|
1330
|
+
color: var(--muted);
|
|
1331
|
+
white-space: nowrap;
|
|
1332
|
+
}
|
|
1333
|
+
.cs-verdict-btn {
|
|
1334
|
+
padding: 0.5rem 1.2rem;
|
|
1335
|
+
border-radius: 8px;
|
|
1336
|
+
border: 1.5px solid var(--rule);
|
|
1337
|
+
background: var(--surface);
|
|
1338
|
+
color: var(--ink);
|
|
1339
|
+
font-family: inherit;
|
|
1340
|
+
font-size: 0.9rem;
|
|
981
1341
|
font-weight: 600;
|
|
982
|
-
|
|
1342
|
+
cursor: pointer;
|
|
1343
|
+
transition: opacity 120ms, border-color 120ms, background 120ms, color 120ms;
|
|
1344
|
+
min-width: 36px;
|
|
1345
|
+
min-height: 36px;
|
|
1346
|
+
}
|
|
1347
|
+
.cs-verdict-btn:hover:not(:disabled) { opacity: 0.85; }
|
|
1348
|
+
.cs-verdict-btn:disabled { opacity: 0.4; cursor: not-allowed; pointer-events: none; }
|
|
1349
|
+
.cs-verdict-approve {
|
|
1350
|
+
background: color-mix(in srgb, var(--olive) 16%, var(--surface));
|
|
1351
|
+
border-color: var(--olive);
|
|
1352
|
+
color: var(--olive);
|
|
1353
|
+
}
|
|
1354
|
+
.cs-verdict-approve:hover:not(:disabled) {
|
|
1355
|
+
background: color-mix(in srgb, var(--olive) 28%, var(--surface));
|
|
1356
|
+
}
|
|
1357
|
+
.cs-verdict-request_changes {
|
|
1358
|
+
background: color-mix(in srgb, #c93b3b 10%, var(--surface));
|
|
1359
|
+
border-color: #c93b3b;
|
|
1360
|
+
color: #c93b3b;
|
|
1361
|
+
}
|
|
1362
|
+
.cs-verdict-request_changes:hover:not(:disabled) {
|
|
1363
|
+
background: color-mix(in srgb, #c93b3b 20%, var(--surface));
|
|
1364
|
+
}
|
|
1365
|
+
.cs-verdict-comment {
|
|
1366
|
+
background: var(--surface-2);
|
|
1367
|
+
border-color: var(--rule);
|
|
1368
|
+
color: var(--ink-soft);
|
|
1369
|
+
}
|
|
1370
|
+
.cs-verdict-comment:hover:not(:disabled) {
|
|
1371
|
+
border-color: var(--muted);
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1374
|
+
/* ─── frozen verdict pill ──────────────────────────────────────────────────── */
|
|
1375
|
+
.cs-verdict-pill {
|
|
1376
|
+
display: inline-flex;
|
|
1377
|
+
align-items: baseline;
|
|
1378
|
+
gap: 0.6rem;
|
|
1379
|
+
padding: 0.55rem 0.9rem;
|
|
1380
|
+
margin: 16px 0 24px;
|
|
1381
|
+
border: 1.5px solid var(--rule);
|
|
1382
|
+
border-radius: 999px;
|
|
1383
|
+
font-size: 0.9rem;
|
|
1384
|
+
background: var(--surface);
|
|
1385
|
+
}
|
|
1386
|
+
.cs-verdict-pill .eyebrow {
|
|
1387
|
+
/* matches existing .eyebrow tokens */
|
|
1388
|
+
}
|
|
1389
|
+
.cs-verdict-pill time {
|
|
1390
|
+
color: var(--muted);
|
|
1391
|
+
font-size: 0.85em;
|
|
1392
|
+
font-family: var(--mono);
|
|
1393
|
+
}
|
|
1394
|
+
|
|
1395
|
+
/* per-verdict variant colors — borrow from existing .cs-verdict-approve etc. */
|
|
1396
|
+
.cs-verdict-pill-approve {
|
|
1397
|
+
border-color: color-mix(in srgb, var(--accent) 60%, var(--rule));
|
|
1398
|
+
background: color-mix(in srgb, var(--accent) 8%, var(--surface));
|
|
1399
|
+
}
|
|
1400
|
+
.cs-verdict-pill-request_changes {
|
|
1401
|
+
border-color: color-mix(in srgb, #c93b3b 60%, var(--rule));
|
|
1402
|
+
background: color-mix(in srgb, #c93b3b 8%, var(--surface));
|
|
1403
|
+
}
|
|
1404
|
+
.cs-verdict-pill-comment {
|
|
1405
|
+
border-color: var(--rule);
|
|
1406
|
+
background: var(--surface);
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1409
|
+
/* ─── frozen-state suppression ─────────────────────────────────────────────── */
|
|
1410
|
+
/* hide all interactive affordances once the scaffold is closed */
|
|
1411
|
+
[data-cesium-status="complete"] .cs-anchor-affordance,
|
|
1412
|
+
[data-cesium-status="complete"] .cs-verdict-footer,
|
|
1413
|
+
[data-cesium-status="complete"] .cs-comment-delete {
|
|
1414
|
+
display: none !important;
|
|
1415
|
+
}
|
|
1416
|
+
|
|
1417
|
+
/* remove the bottom padding reserved for the verdict footer once it's hidden */
|
|
1418
|
+
body:has([data-cesium-annotate-scaffold][data-cesium-status="complete"]) {
|
|
1419
|
+
padding-bottom: 0;
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1422
|
+
/* ─── banner for annotate offline mode ────────────────────────────────────── */
|
|
1423
|
+
.cs-banner-offline {
|
|
1424
|
+
max-width: var(--content-width, 70ch);
|
|
1425
|
+
margin: 16px auto 24px;
|
|
1426
|
+
padding: 0.5rem 0.875rem;
|
|
1427
|
+
background: color-mix(in srgb, var(--muted) 8%, var(--bg));
|
|
1428
|
+
border-radius: 8px;
|
|
1429
|
+
text-align: left;
|
|
1430
|
+
font-size: 0.9rem;
|
|
1431
|
+
color: var(--ink-soft);
|
|
983
1432
|
}
|
|
984
1433
|
|
|
985
1434
|
/* diff block */
|