@codemem/server 0.46.0-alpha.1 → 0.46.0-beta.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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +404 -160
- package/dist/index.js.map +1 -1
- package/dist/raw-event-inbox.d.ts +8 -0
- package/dist/raw-event-inbox.d.ts.map +1 -1
- package/dist/routes/config.d.ts.map +1 -1
- package/dist/routes/memory-ownership.d.ts +5 -0
- package/dist/routes/memory-ownership.d.ts.map +1 -0
- package/dist/routes/observer-status.d.ts.map +1 -1
- package/dist/routes/raw-events.d.ts.map +1 -1
- package/dist/routes/sync.d.ts +22 -8
- package/dist/routes/sync.d.ts.map +1 -1
- package/dist/routes/target-validation.d.ts +13 -0
- package/dist/routes/target-validation.d.ts.map +1 -1
- package/dist/snapshot-source.d.ts +12 -0
- package/dist/snapshot-source.d.ts.map +1 -0
- package/package.json +2 -2
- package/static/app.js +76 -57
- package/static/app.js.br +0 -0
- package/static/app.js.gz +0 -0
- package/static/index.html +838 -280
package/static/index.html
CHANGED
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
align-items: center;
|
|
111
111
|
gap: var(--sp-3);
|
|
112
112
|
min-width: 0;
|
|
113
|
-
overflow:
|
|
113
|
+
overflow: visible;
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
.logo {
|
|
@@ -774,6 +774,10 @@
|
|
|
774
774
|
— quieter than any real button nearby, since it's navigation,
|
|
775
775
|
not action. */
|
|
776
776
|
.sync-subview-link {
|
|
777
|
+
background: none;
|
|
778
|
+
border: 0;
|
|
779
|
+
cursor: pointer;
|
|
780
|
+
font-family: inherit;
|
|
777
781
|
display: inline-flex;
|
|
778
782
|
align-items: center;
|
|
779
783
|
gap: 4px;
|
|
@@ -832,6 +836,10 @@
|
|
|
832
836
|
stroke: var(--accent);
|
|
833
837
|
opacity: 0.6;
|
|
834
838
|
}
|
|
839
|
+
.health-icon-slot {
|
|
840
|
+
display: flex;
|
|
841
|
+
flex-shrink: 0;
|
|
842
|
+
}
|
|
835
843
|
|
|
836
844
|
.stat-content {
|
|
837
845
|
display: flex;
|
|
@@ -883,13 +891,80 @@
|
|
|
883
891
|
line-height: 1.5;
|
|
884
892
|
}
|
|
885
893
|
|
|
886
|
-
.
|
|
887
|
-
|
|
894
|
+
.has-tooltip { cursor: help; }
|
|
895
|
+
.health-loading-icon {
|
|
896
|
+
animation: viewerLoadingSpin var(--duration-attention) linear infinite;
|
|
888
897
|
}
|
|
889
|
-
|
|
890
|
-
.health-
|
|
891
|
-
|
|
892
|
-
|
|
898
|
+
|
|
899
|
+
.health-system-card {
|
|
900
|
+
display: flex;
|
|
901
|
+
flex-direction: column;
|
|
902
|
+
gap: var(--sp-4);
|
|
903
|
+
}
|
|
904
|
+
.health-system-header {
|
|
905
|
+
display: flex;
|
|
906
|
+
flex-wrap: wrap;
|
|
907
|
+
align-items: center;
|
|
908
|
+
justify-content: space-between;
|
|
909
|
+
gap: var(--sp-4);
|
|
910
|
+
}
|
|
911
|
+
.health-status-summary {
|
|
912
|
+
display: flex;
|
|
913
|
+
align-items: center;
|
|
914
|
+
gap: var(--sp-3);
|
|
915
|
+
min-width: 0;
|
|
916
|
+
}
|
|
917
|
+
.health-status-copy {
|
|
918
|
+
display: flex;
|
|
919
|
+
flex-direction: column;
|
|
920
|
+
gap: 2px;
|
|
921
|
+
min-width: 0;
|
|
922
|
+
}
|
|
923
|
+
.health-status-word {
|
|
924
|
+
font-size: var(--font-size-3xl);
|
|
925
|
+
font-weight: var(--font-weight-semibold);
|
|
926
|
+
line-height: 1.15;
|
|
927
|
+
}
|
|
928
|
+
.health-status-word.status-healthy { color: var(--status-healthy); }
|
|
929
|
+
.health-status-word.status-degraded { color: var(--status-degraded); }
|
|
930
|
+
.health-status-word.status-attention { color: var(--status-attention); }
|
|
931
|
+
.health-status-word.status-unknown { color: var(--text-tertiary); }
|
|
932
|
+
.health-status-copy .section-meta { margin: 0; }
|
|
933
|
+
.health-status-meta {
|
|
934
|
+
display: flex;
|
|
935
|
+
align-items: center;
|
|
936
|
+
flex-wrap: wrap;
|
|
937
|
+
gap: var(--sp-2);
|
|
938
|
+
}
|
|
939
|
+
.health-tile-grid {
|
|
940
|
+
display: grid;
|
|
941
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
942
|
+
gap: var(--sp-3);
|
|
943
|
+
}
|
|
944
|
+
.health-tile {
|
|
945
|
+
display: flex;
|
|
946
|
+
flex-direction: column;
|
|
947
|
+
gap: var(--sp-1);
|
|
948
|
+
min-width: 0;
|
|
949
|
+
padding: var(--sp-3) var(--sp-4);
|
|
950
|
+
border-radius: var(--radius-sm);
|
|
951
|
+
background: var(--surface-2);
|
|
952
|
+
}
|
|
953
|
+
.health-tile-label {
|
|
954
|
+
color: var(--text-tertiary);
|
|
955
|
+
font-size: var(--font-size-2xs);
|
|
956
|
+
letter-spacing: 0.06em;
|
|
957
|
+
text-transform: uppercase;
|
|
958
|
+
}
|
|
959
|
+
.health-tile-value {
|
|
960
|
+
display: inline-flex;
|
|
961
|
+
align-items: center;
|
|
962
|
+
gap: 6px;
|
|
963
|
+
min-width: 0;
|
|
964
|
+
color: var(--text-secondary);
|
|
965
|
+
font-size: var(--font-size-md);
|
|
966
|
+
}
|
|
967
|
+
.health-maintenance-grid { margin-top: var(--sp-3); }
|
|
893
968
|
|
|
894
969
|
/* ── Buttons ───────────────────────────────────────────── */
|
|
895
970
|
|
|
@@ -1159,16 +1234,10 @@
|
|
|
1159
1234
|
font-family: var(--font-sans);
|
|
1160
1235
|
font-size: var(--font-size-md);
|
|
1161
1236
|
}
|
|
1162
|
-
.
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
}
|
|
1167
|
-
.project-inventory-skeleton {
|
|
1168
|
-
display: grid;
|
|
1169
|
-
gap: var(--sp-3);
|
|
1170
|
-
margin-top: var(--sp-4);
|
|
1171
|
-
}
|
|
1237
|
+
.projects-toolbar #projectsStatusFilter { flex: 0 1 220px; min-width: 0; }
|
|
1238
|
+
#projectsInventoryMeta { color: var(--text-tertiary); white-space: nowrap; }
|
|
1239
|
+
.project-inventory-list { margin-top: var(--sp-3); min-width: 0; }
|
|
1240
|
+
.project-inventory-skeleton { display: grid; gap: var(--sp-3); margin-top: var(--sp-4); }
|
|
1172
1241
|
.project-inventory-skeleton-row {
|
|
1173
1242
|
padding: var(--sp-4);
|
|
1174
1243
|
border: 1px solid var(--border);
|
|
@@ -1186,93 +1255,169 @@
|
|
|
1186
1255
|
.project-inventory-skeleton-line.title { width: 42%; height: 16px; }
|
|
1187
1256
|
.project-inventory-skeleton-line.meta { width: 68%; }
|
|
1188
1257
|
.project-inventory-skeleton-line.signal { width: 86%; }
|
|
1189
|
-
.project-inventory-
|
|
1190
|
-
|
|
1258
|
+
.project-inventory-table {
|
|
1259
|
+
display: block;
|
|
1260
|
+
width: 100%;
|
|
1261
|
+
min-width: 0;
|
|
1262
|
+
overflow: visible;
|
|
1263
|
+
border-spacing: 0;
|
|
1191
1264
|
border: 1px solid var(--border);
|
|
1192
1265
|
border-radius: var(--radius-md);
|
|
1193
|
-
background: var(--surface-1);
|
|
1194
1266
|
}
|
|
1195
|
-
.project-inventory-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1267
|
+
.project-inventory-table > thead,
|
|
1268
|
+
.project-inventory-table > tbody { display: block; width: 100%; }
|
|
1269
|
+
.project-inventory-table th,
|
|
1270
|
+
.project-inventory-table td { padding: 0; text-align: left; font-weight: inherit; }
|
|
1271
|
+
.project-inventory-table-row {
|
|
1272
|
+
display: grid;
|
|
1273
|
+
grid-template-columns: 28px minmax(0, 1fr) 72px 72px 120px minmax(0, 130px) 180px;
|
|
1274
|
+
align-items: center;
|
|
1275
|
+
column-gap: var(--sp-3);
|
|
1276
|
+
min-width: 0;
|
|
1200
1277
|
}
|
|
1201
|
-
.project-inventory-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
font-
|
|
1278
|
+
.project-inventory-table-header {
|
|
1279
|
+
padding: var(--sp-2) var(--sp-4);
|
|
1280
|
+
background: var(--surface-2);
|
|
1281
|
+
color: var(--text-tertiary);
|
|
1282
|
+
font-size: var(--font-size-2xs);
|
|
1283
|
+
font-weight: var(--font-weight-medium);
|
|
1284
|
+
letter-spacing: 0.06em;
|
|
1285
|
+
text-transform: uppercase;
|
|
1207
1286
|
}
|
|
1208
|
-
.project-inventory-
|
|
1209
|
-
|
|
1287
|
+
.project-inventory-row-header {
|
|
1288
|
+
min-width: 0;
|
|
1289
|
+
border-top: 1px solid var(--border);
|
|
1290
|
+
background: var(--surface-1);
|
|
1291
|
+
}
|
|
1292
|
+
.project-inventory-row-header { padding: var(--sp-3) var(--sp-4); }
|
|
1293
|
+
.project-inventory-row-stats { display: contents; }
|
|
1294
|
+
.project-inventory-cell { min-width: 0; }
|
|
1295
|
+
.project-inventory-project-cell { display: flex; flex-direction: column; gap: var(--sp-1); }
|
|
1296
|
+
.project-inventory-title { overflow-wrap: anywhere; color: var(--text-primary); font-size: var(--font-size-md); font-weight: var(--font-weight-semibold); }
|
|
1297
|
+
.project-inventory-signal { overflow: hidden; color: var(--text-tertiary); font-size: var(--font-size-xs); text-overflow: ellipsis; white-space: nowrap; }
|
|
1298
|
+
.project-inventory-number { font-variant-numeric: tabular-nums; }
|
|
1299
|
+
.project-inventory-latest { color: var(--text-secondary); }
|
|
1300
|
+
.project-inventory-badges { display: flex; flex-wrap: wrap; gap: var(--sp-1); }
|
|
1301
|
+
.project-inventory-badges:empty { display: none; }
|
|
1302
|
+
.project-inventory-row-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--sp-2); }
|
|
1303
|
+
.project-inventory-row-actions .settings-button { min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
|
|
1304
|
+
.project-row-menu { position: relative; flex: 0 0 auto; }
|
|
1305
|
+
.project-row-menu-panel { position: absolute; top: calc(100% + var(--sp-1)); right: 0; }
|
|
1306
|
+
button.feed-menu-item { border: 0; background: transparent; font-family: inherit; text-align: left; }
|
|
1307
|
+
button.feed-menu-item:hover,
|
|
1308
|
+
button.feed-menu-item:focus-visible { background: var(--surface-2); }
|
|
1309
|
+
button.feed-menu-item:disabled { color: var(--text-tertiary); cursor: default; }
|
|
1310
|
+
.project-inventory-details { background: var(--surface-2); }
|
|
1311
|
+
.project-inventory-details-row,
|
|
1312
|
+
.project-inventory-details-cell { display: block; min-width: 0; }
|
|
1313
|
+
.project-inventory-details > summary {
|
|
1210
1314
|
display: flex;
|
|
1211
|
-
|
|
1315
|
+
align-items: center;
|
|
1212
1316
|
gap: var(--sp-2);
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
.project-status-badge {
|
|
1216
|
-
padding: 2px 8px;
|
|
1217
|
-
border-radius: var(--radius-pill);
|
|
1218
|
-
background: var(--surface-2);
|
|
1317
|
+
padding: var(--sp-3) var(--sp-4) var(--sp-3) 44px;
|
|
1318
|
+
cursor: pointer;
|
|
1219
1319
|
color: var(--text-secondary);
|
|
1220
|
-
font-size: var(--font-size-
|
|
1221
|
-
border: 1px solid var(--border);
|
|
1320
|
+
font-size: var(--font-size-sm);
|
|
1222
1321
|
}
|
|
1223
|
-
.project-
|
|
1224
|
-
.project-
|
|
1225
|
-
.project-
|
|
1226
|
-
.project-inventory-details { margin-top: var(--sp-3); }
|
|
1227
|
-
.project-inventory-details summary { cursor: pointer; color: var(--text-secondary); font-size: var(--font-size-sm); }
|
|
1322
|
+
.project-inventory-details-body { padding: 0 var(--sp-4) var(--sp-4) 44px; }
|
|
1323
|
+
.project-inventory-domain { color: var(--accent); font-family: var(--font-mono); font-size: var(--font-size-sm); }
|
|
1324
|
+
.project-inventory-meta { margin-top: var(--sp-2); color: var(--text-secondary); font-size: var(--font-size-sm); }
|
|
1228
1325
|
.project-detail-grid {
|
|
1229
1326
|
display: grid;
|
|
1230
|
-
grid-template-columns: minmax(
|
|
1231
|
-
gap: var(--sp-2) var(--sp-
|
|
1327
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
1328
|
+
gap: var(--sp-2) var(--sp-4);
|
|
1232
1329
|
margin-top: var(--sp-3);
|
|
1233
1330
|
font-size: var(--font-size-sm);
|
|
1234
1331
|
}
|
|
1332
|
+
.project-detail-pair { display: grid; grid-template-columns: minmax(130px, max-content) minmax(0, 1fr); gap: var(--sp-3); }
|
|
1235
1333
|
.project-detail-grid dt { color: var(--text-tertiary); }
|
|
1236
1334
|
.project-detail-grid dd { margin: 0; overflow-wrap: anywhere; color: var(--text-primary); }
|
|
1237
|
-
.project-inventory-actions {
|
|
1238
|
-
display: flex;
|
|
1239
|
-
align-items: center;
|
|
1240
|
-
flex-wrap: wrap;
|
|
1241
|
-
gap: var(--sp-2);
|
|
1242
|
-
margin-top: var(--sp-4);
|
|
1243
|
-
}
|
|
1335
|
+
.project-inventory-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-4); }
|
|
1244
1336
|
.project-domain-select {
|
|
1245
1337
|
min-width: min(100%, 260px);
|
|
1246
1338
|
padding: var(--sp-2) var(--sp-3);
|
|
1247
|
-
border-radius: var(--radius-sm);
|
|
1248
1339
|
border: 1px solid var(--border);
|
|
1340
|
+
border-radius: var(--radius-sm);
|
|
1249
1341
|
background: var(--input-bg);
|
|
1250
1342
|
color: var(--text-primary);
|
|
1251
1343
|
font-family: var(--font-sans);
|
|
1252
1344
|
font-size: var(--font-size-md);
|
|
1253
1345
|
}
|
|
1254
|
-
.project-guardrail-confirmation {
|
|
1255
|
-
flex-basis: 100%;
|
|
1256
|
-
margin-top: var(--sp-2);
|
|
1257
|
-
}
|
|
1346
|
+
.project-guardrail-confirmation { flex-basis: 100%; margin-top: var(--sp-2); }
|
|
1258
1347
|
.projects-pagination { margin-top: var(--sp-4); }
|
|
1348
|
+
.project-selection-control { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; min-height: 24px; cursor: pointer; }
|
|
1349
|
+
.project-selection-checkbox { width: 18px; height: 18px; }
|
|
1350
|
+
.project-recipient-summary { min-width: 0; }
|
|
1351
|
+
.project-recipient-status { color: var(--text-secondary); font-size: var(--font-size-sm); }
|
|
1352
|
+
.project-recipient-chips { display: flex; flex-wrap: wrap; gap: var(--sp-1); padding: 0; margin: 0; list-style: none; }
|
|
1353
|
+
.project-recipient-chip { overflow: hidden; padding: 2px var(--sp-2); border: 1px solid var(--border); border-radius: var(--radius-pill); background: var(--surface-2); color: var(--text-primary); font-size: var(--font-size-2xs); text-overflow: ellipsis; white-space: nowrap; }
|
|
1354
|
+
.project-inventory-child-row { padding-left: var(--sp-5); }
|
|
1355
|
+
.project-inventory-cluster + .project-inventory-child .project-inventory-child-row { border-top: 1px solid var(--border); }
|
|
1259
1356
|
.recipient-policy-review-section + .recipient-policy-review-section { margin-top: var(--sp-5); }
|
|
1260
1357
|
.recipient-policy-review-heading { margin-bottom: var(--sp-2); }
|
|
1261
|
-
.recipient-policy-review-status:empty { display: none; }
|
|
1262
|
-
.recipient-policy-review-list { margin-top: var(--sp-3); }
|
|
1263
1358
|
.recipient-policy-review-item .project-inventory-actions label {
|
|
1264
1359
|
color: var(--text-secondary);
|
|
1265
1360
|
font-size: var(--font-size-sm);
|
|
1266
1361
|
font-weight: var(--font-weight-semibold);
|
|
1267
1362
|
}
|
|
1268
|
-
.recipient-policy-review-
|
|
1269
|
-
|
|
1270
|
-
|
|
1363
|
+
.recipient-policy-review-header {
|
|
1364
|
+
display: flex;
|
|
1365
|
+
align-items: baseline;
|
|
1366
|
+
justify-content: space-between;
|
|
1367
|
+
gap: var(--sp-4);
|
|
1368
|
+
}
|
|
1369
|
+
}
|
|
1370
|
+
.recipient-policy-review-count {
|
|
1371
|
+
color: var(--text-tertiary);
|
|
1372
|
+
font-weight: var(--font-weight-regular);
|
|
1373
|
+
}
|
|
1374
|
+
.recipient-policy-review-status:empty { display: none; }
|
|
1375
|
+
.recipient-policy-review-list {
|
|
1376
|
+
margin-top: var(--sp-3);
|
|
1377
|
+
overflow: hidden;
|
|
1378
|
+
border: 1px solid var(--border);
|
|
1379
|
+
border-radius: var(--radius-md);
|
|
1380
|
+
}
|
|
1381
|
+
.recipient-policy-review-item {
|
|
1382
|
+
display: grid;
|
|
1383
|
+
grid-template-columns: minmax(0, 1fr) 260px auto;
|
|
1384
|
+
align-items: center;
|
|
1385
|
+
column-gap: var(--sp-4);
|
|
1386
|
+
padding: var(--sp-3) var(--sp-4);
|
|
1387
|
+
background: var(--surface-1);
|
|
1388
|
+
}
|
|
1389
|
+
.recipient-policy-review-item + .recipient-policy-review-item { border-top: 1px solid var(--border); }
|
|
1390
|
+
.recipient-policy-review-name,
|
|
1391
|
+
.recipient-policy-review-actions {
|
|
1392
|
+
display: flex;
|
|
1393
|
+
align-items: center;
|
|
1394
|
+
flex-wrap: wrap;
|
|
1395
|
+
gap: var(--sp-2);
|
|
1396
|
+
}
|
|
1397
|
+
.recipient-policy-review-name > strong { font-size: var(--font-size-lg); }
|
|
1398
|
+
.recipient-policy-review-identity { color: var(--text-tertiary); overflow-wrap: anywhere; }
|
|
1399
|
+
.recipient-policy-review-meta {
|
|
1400
|
+
color: var(--text-secondary);
|
|
1401
|
+
margin-top: var(--sp-1);
|
|
1402
|
+
}
|
|
1403
|
+
.recipient-policy-review-meta .badge { margin-left: var(--sp-2); }
|
|
1404
|
+
.recipient-policy-review-select { min-width: 0; width: 100%; }
|
|
1405
|
+
.recipient-policy-review-details {
|
|
1406
|
+
grid-column: 1 / -1;
|
|
1407
|
+
padding: var(--sp-3) 0 var(--sp-1);
|
|
1408
|
+
}
|
|
1409
|
+
.recipient-policy-deferred,
|
|
1410
|
+
.recipient-policy-preview { margin-top: var(--sp-2); }
|
|
1271
1411
|
.recipient-policy-preview-list { margin-top: var(--sp-2); }
|
|
1272
1412
|
.recipient-policy-preview-list ul {
|
|
1273
1413
|
margin-top: var(--sp-1);
|
|
1274
1414
|
padding-left: var(--sp-5);
|
|
1275
1415
|
}
|
|
1416
|
+
.recipient-policy-review-section { margin-top: var(--sp-5); }
|
|
1417
|
+
@media (max-width: 900px) {
|
|
1418
|
+
.recipient-policy-review-item { grid-template-columns: minmax(0, 1fr); row-gap: var(--sp-3); }
|
|
1419
|
+
.recipient-policy-review-details { grid-column: 1; }
|
|
1420
|
+
}
|
|
1276
1421
|
.project-selection-actions,
|
|
1277
1422
|
.recipient-policy-management-actions,
|
|
1278
1423
|
.recipient-policy-sharing-actions {
|
|
@@ -1540,6 +1685,16 @@
|
|
|
1540
1685
|
.recipient-policy-management-details li { overflow-wrap: anywhere; }
|
|
1541
1686
|
.recipient-policy-management-status:empty { display: none; }
|
|
1542
1687
|
.recipient-policy-sharing-header { margin-bottom: var(--sp-4); }
|
|
1688
|
+
.sharing-member-preview {
|
|
1689
|
+
overflow-wrap: anywhere;
|
|
1690
|
+
}
|
|
1691
|
+
.sharing-member-names .sharing-member-preview {
|
|
1692
|
+
display: -webkit-box;
|
|
1693
|
+
-webkit-box-orient: vertical;
|
|
1694
|
+
-webkit-line-clamp: 2;
|
|
1695
|
+
overflow: hidden;
|
|
1696
|
+
}
|
|
1697
|
+
.sharing-member-names p { overflow-wrap: anywhere; }
|
|
1543
1698
|
.recipient-policy-sharing-tabs {
|
|
1544
1699
|
position: static;
|
|
1545
1700
|
display: flex;
|
|
@@ -1567,6 +1722,89 @@
|
|
|
1567
1722
|
gap: var(--sp-3);
|
|
1568
1723
|
}
|
|
1569
1724
|
.recipient-policy-sharing-card-title h3 { margin: 0; }
|
|
1725
|
+
.recipient-policy-sharing-card-header {
|
|
1726
|
+
display: flex;
|
|
1727
|
+
align-items: flex-start;
|
|
1728
|
+
justify-content: space-between;
|
|
1729
|
+
gap: var(--sp-4);
|
|
1730
|
+
}
|
|
1731
|
+
.recipient-policy-sharing-card-title { justify-content: flex-start; flex-wrap: wrap; }
|
|
1732
|
+
.recipient-policy-sharing-card-actions,
|
|
1733
|
+
.recipient-policy-sharing-card-actions .recipient-policy-sharing-actions {
|
|
1734
|
+
display: flex;
|
|
1735
|
+
align-items: center;
|
|
1736
|
+
justify-content: flex-end;
|
|
1737
|
+
gap: var(--sp-2);
|
|
1738
|
+
flex-wrap: wrap;
|
|
1739
|
+
}
|
|
1740
|
+
.recipient-policy-sharing-card-actions .settings-button { margin-top: 0; }
|
|
1741
|
+
.recipient-policy-sharing-stats {
|
|
1742
|
+
display: grid;
|
|
1743
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
1744
|
+
gap: var(--sp-2);
|
|
1745
|
+
margin-top: var(--sp-4);
|
|
1746
|
+
}
|
|
1747
|
+
.recipient-policy-sharing-stats > div {
|
|
1748
|
+
display: grid;
|
|
1749
|
+
gap: var(--sp-1);
|
|
1750
|
+
min-width: 0;
|
|
1751
|
+
padding: var(--sp-3);
|
|
1752
|
+
border-radius: var(--radius-sm);
|
|
1753
|
+
background: var(--surface-2);
|
|
1754
|
+
}
|
|
1755
|
+
.recipient-policy-sharing-stats strong { font-size: var(--font-size-lg); }
|
|
1756
|
+
.recipient-policy-sharing-stats span { color: var(--text-secondary); overflow-wrap: anywhere; }
|
|
1757
|
+
.recipient-policy-sharing-projects,
|
|
1758
|
+
.recipient-policy-sharing-identity-rows,
|
|
1759
|
+
.recipient-policy-sharing-identity-rows > div { display: grid; gap: var(--sp-2); }
|
|
1760
|
+
.recipient-policy-sharing-projects,
|
|
1761
|
+
.recipient-policy-sharing-identity-rows { margin-top: var(--sp-4); }
|
|
1762
|
+
.recipient-policy-sharing-identity-rows > div + div { padding-top: var(--sp-3); border-top: 1px solid var(--border); }
|
|
1763
|
+
.recipient-policy-sharing-chips { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }
|
|
1764
|
+
.recipient-policy-sharing-more {
|
|
1765
|
+
padding: 0;
|
|
1766
|
+
border: 0;
|
|
1767
|
+
background: transparent;
|
|
1768
|
+
color: var(--accent);
|
|
1769
|
+
font: inherit;
|
|
1770
|
+
cursor: pointer;
|
|
1771
|
+
}
|
|
1772
|
+
.recipient-policy-sharing-toolbar {
|
|
1773
|
+
display: flex;
|
|
1774
|
+
align-items: center;
|
|
1775
|
+
justify-content: space-between;
|
|
1776
|
+
gap: var(--sp-3);
|
|
1777
|
+
margin-bottom: var(--sp-3);
|
|
1778
|
+
}
|
|
1779
|
+
.recipient-policy-sharing-toolbar label { flex: 1; }
|
|
1780
|
+
.recipient-policy-sharing-toolbar input { width: 100%; }
|
|
1781
|
+
.recipient-policy-sharing-received-table { display: block; width: 100%; overflow: hidden; border: 1px solid var(--border); border-spacing: 0; border-radius: var(--radius-md); }
|
|
1782
|
+
.recipient-policy-sharing-received-table thead,
|
|
1783
|
+
.recipient-policy-sharing-received-table tbody { display: block; }
|
|
1784
|
+
.recipient-policy-sharing-received-head,
|
|
1785
|
+
.recipient-policy-sharing-received-row {
|
|
1786
|
+
display: grid;
|
|
1787
|
+
grid-template-columns: minmax(0, 1fr) 180px 190px 170px;
|
|
1788
|
+
gap: var(--sp-4);
|
|
1789
|
+
align-items: center;
|
|
1790
|
+
padding: var(--sp-3) var(--sp-4);
|
|
1791
|
+
}
|
|
1792
|
+
.recipient-policy-sharing-received-head {
|
|
1793
|
+
background: var(--surface-2);
|
|
1794
|
+
color: var(--text-tertiary);
|
|
1795
|
+
font-size: var(--font-size-2xs);
|
|
1796
|
+
font-weight: var(--font-weight-semibold);
|
|
1797
|
+
letter-spacing: var(--letter-spacing-wide);
|
|
1798
|
+
text-transform: uppercase;
|
|
1799
|
+
}
|
|
1800
|
+
.recipient-policy-sharing-received-row { border-top: 1px solid var(--border); background: var(--surface-1); }
|
|
1801
|
+
.recipient-policy-sharing-received-row > * { min-width: 0; overflow-wrap: anywhere; }
|
|
1802
|
+
.recipient-policy-sharing-received-row td { min-width: 0; padding: 0; color: var(--text-secondary); text-align: left; }
|
|
1803
|
+
.recipient-policy-sharing-received-row td:first-child { color: var(--text-primary); }
|
|
1804
|
+
.recipient-policy-sharing-received-head th { min-width: 0; padding: 0; text-align: left; }
|
|
1805
|
+
.recipient-policy-sharing-received-head th:nth-child(n + 3),
|
|
1806
|
+
.recipient-policy-sharing-received-row td:nth-child(n + 3) { text-align: right; }
|
|
1807
|
+
.recipient-policy-sharing-pointer { display: inline-block; margin-top: var(--sp-3); }
|
|
1570
1808
|
.recipient-policy-sharing-card,
|
|
1571
1809
|
.recipient-policy-sharing-card-title,
|
|
1572
1810
|
.recipient-policy-sharing-details dd { min-width: 0; overflow-wrap: anywhere; }
|
|
@@ -1600,10 +1838,6 @@
|
|
|
1600
1838
|
}
|
|
1601
1839
|
.recipient-policy-sharing-details dt { color: var(--text-secondary); }
|
|
1602
1840
|
.recipient-policy-sharing-details dd { margin: 0; color: var(--text-primary); }
|
|
1603
|
-
.recipient-policy-sharing-team-card > .recipient-policy-sharing-actions + .recipient-policy-sharing-actions {
|
|
1604
|
-
margin-top: var(--sp-2);
|
|
1605
|
-
}
|
|
1606
|
-
|
|
1607
1841
|
.loading-card-list { display: grid; gap: var(--sp-3); }
|
|
1608
1842
|
.loading-card {
|
|
1609
1843
|
padding: var(--sp-4);
|
|
@@ -1753,10 +1987,177 @@
|
|
|
1753
1987
|
.device-identity-review-panel ul { margin: var(--sp-3) 0; padding-left: var(--sp-5); }
|
|
1754
1988
|
.device-identity-review-panel .peer-actions { margin-top: var(--sp-4); }
|
|
1755
1989
|
|
|
1990
|
+
#devicesMount .recipient-policy-sharing-header {
|
|
1991
|
+
display: flex;
|
|
1992
|
+
align-items: flex-start;
|
|
1993
|
+
justify-content: space-between;
|
|
1994
|
+
gap: var(--sp-4);
|
|
1995
|
+
}
|
|
1996
|
+
.devices-summary-bar,
|
|
1997
|
+
.devices-summary-counts,
|
|
1998
|
+
.devices-summary-counts > span,
|
|
1999
|
+
.devices-identity-header,
|
|
2000
|
+
.devices-table-device {
|
|
2001
|
+
display: flex;
|
|
2002
|
+
align-items: center;
|
|
2003
|
+
}
|
|
2004
|
+
.devices-summary-bar {
|
|
2005
|
+
justify-content: space-between;
|
|
2006
|
+
gap: var(--sp-4);
|
|
2007
|
+
padding: 10px 14px;
|
|
2008
|
+
border-radius: var(--radius-sm);
|
|
2009
|
+
background: var(--surface-2);
|
|
2010
|
+
color: var(--text-secondary);
|
|
2011
|
+
font-size: var(--font-size-sm);
|
|
2012
|
+
}
|
|
2013
|
+
.devices-summary-counts { gap: var(--sp-4); flex-wrap: wrap; }
|
|
2014
|
+
.devices-summary-counts > span { gap: 6px; }
|
|
2015
|
+
.devices-coordinator-status {
|
|
2016
|
+
display: flex;
|
|
2017
|
+
align-items: center;
|
|
2018
|
+
gap: var(--sp-2);
|
|
2019
|
+
padding: var(--sp-2) var(--sp-3);
|
|
2020
|
+
border-radius: var(--radius-sm);
|
|
2021
|
+
background: var(--surface-2);
|
|
2022
|
+
}
|
|
2023
|
+
.devices-coordinator-status-spacer { flex: 1; }
|
|
2024
|
+
.devices-local-row {
|
|
2025
|
+
display: grid;
|
|
2026
|
+
grid-template-columns: 16px minmax(0, 1fr) auto;
|
|
2027
|
+
align-items: center;
|
|
2028
|
+
gap: var(--sp-3);
|
|
2029
|
+
padding: 14px var(--sp-4);
|
|
2030
|
+
border: 1px solid var(--border);
|
|
2031
|
+
border-radius: var(--radius-md);
|
|
2032
|
+
background: var(--surface-1);
|
|
2033
|
+
}
|
|
2034
|
+
.devices-local-copy { display: grid; gap: 2px; }
|
|
2035
|
+
.devices-local-copy .small { color: var(--text-tertiary); }
|
|
2036
|
+
.devices-empty-state {
|
|
2037
|
+
display: flex;
|
|
2038
|
+
flex-direction: column;
|
|
2039
|
+
align-items: center;
|
|
2040
|
+
gap: var(--sp-2);
|
|
2041
|
+
padding: 40px var(--sp-6);
|
|
2042
|
+
border: 1px dashed var(--border-strong);
|
|
2043
|
+
border-radius: var(--radius-md);
|
|
2044
|
+
text-align: center;
|
|
2045
|
+
}
|
|
2046
|
+
.devices-empty-state > strong { font-size: var(--font-size-lg); }
|
|
2047
|
+
.devices-empty-actions { display: flex; gap: var(--sp-2); margin-top: var(--sp-2); }
|
|
2048
|
+
.devices-pairing-panel {
|
|
2049
|
+
display: grid;
|
|
2050
|
+
gap: var(--sp-3);
|
|
2051
|
+
padding: var(--sp-4);
|
|
2052
|
+
border: 1px solid var(--border);
|
|
2053
|
+
border-radius: var(--radius-md);
|
|
2054
|
+
background: var(--surface-2);
|
|
2055
|
+
}
|
|
2056
|
+
.devices-pairing-panel p { margin: 0; color: var(--text-secondary); }
|
|
2057
|
+
.devices-pairing-header,
|
|
2058
|
+
.devices-pairing-command { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); }
|
|
2059
|
+
.devices-pairing-header h3 { margin: 0; }
|
|
2060
|
+
.devices-pairing-command code { min-width: 0; overflow-wrap: anywhere; }
|
|
2061
|
+
.devices-identity-group { display: grid; gap: var(--sp-2); margin-top: var(--sp-4); }
|
|
2062
|
+
.devices-identity-header { align-items: baseline; justify-content: space-between; gap: var(--sp-3); }
|
|
2063
|
+
.devices-identity-header strong > span { color: var(--text-tertiary); font-weight: var(--font-weight-regular); }
|
|
2064
|
+
.devices-identity-header > .small { color: var(--text-tertiary); }
|
|
2065
|
+
.devices-table { width: 100%; overflow: visible; border: 1px solid var(--border); border-spacing: 0; border-radius: var(--radius-md); }
|
|
2066
|
+
.devices-table-head,
|
|
2067
|
+
.devices-table-row {
|
|
2068
|
+
display: grid;
|
|
2069
|
+
grid-template-columns: 16px minmax(0, 1fr) 160px 140px 48px;
|
|
2070
|
+
align-items: center;
|
|
2071
|
+
column-gap: var(--sp-4);
|
|
2072
|
+
}
|
|
2073
|
+
.devices-table-head {
|
|
2074
|
+
padding: var(--sp-2) var(--sp-4);
|
|
2075
|
+
background: var(--surface-2);
|
|
2076
|
+
color: var(--text-tertiary);
|
|
2077
|
+
font-size: var(--font-size-2xs);
|
|
2078
|
+
font-weight: var(--font-weight-medium);
|
|
2079
|
+
letter-spacing: 0.06em;
|
|
2080
|
+
text-transform: uppercase;
|
|
2081
|
+
}
|
|
2082
|
+
.devices-table th,
|
|
2083
|
+
.devices-table td { min-width: 0; padding: 0; text-align: left; }
|
|
2084
|
+
.devices-table-head { border-radius: var(--radius-md) var(--radius-md) 0 0; }
|
|
2085
|
+
.devices-table-row { min-width: 0; padding: var(--sp-3) var(--sp-4); border-top: 1px solid var(--border); }
|
|
2086
|
+
.devices-table-device { min-width: 0; gap: var(--sp-2); flex-wrap: wrap; }
|
|
2087
|
+
.devices-table-device strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
2088
|
+
.devices-table-availability { color: var(--text-secondary); }
|
|
2089
|
+
.devices-table-version { color: var(--text-tertiary); font-family: var(--font-mono); font-size: var(--font-size-xs); }
|
|
2090
|
+
.devices-row-menu { position: relative; }
|
|
2091
|
+
.devices-row-menu > summary { list-style: none; }
|
|
2092
|
+
.devices-row-menu > summary::-webkit-details-marker { display: none; }
|
|
2093
|
+
.devices-row-menu[open] > .feed-menu-trigger { background: var(--surface-2); color: var(--text-primary); border-color: var(--border-hover); }
|
|
2094
|
+
.devices-row-menu > .feed-menu-panel { position: absolute; top: calc(100% + 4px); right: 0; }
|
|
2095
|
+
.devices-table-details { border-top: 1px solid var(--border); background: var(--surface-2); }
|
|
2096
|
+
.devices-table-details > td { display: grid; gap: var(--sp-3); padding: var(--sp-4) var(--sp-6); }
|
|
2097
|
+
.devices-table-details p { margin: 0; }
|
|
2098
|
+
.devices-table-details ul { margin: 0; padding-left: var(--sp-5); }
|
|
2099
|
+
.devices-table-details .device-identity-rebind { margin-top: 0; }
|
|
2100
|
+
.devices-delivered-copy-warning { margin-top: var(--sp-3); color: var(--text-secondary); }
|
|
2101
|
+
|
|
2102
|
+
@media (max-width: 900px) {
|
|
2103
|
+
.recipient-policy-sharing-card-header { align-items: stretch; flex-direction: column; }
|
|
2104
|
+
.recipient-policy-sharing-card-actions { justify-content: flex-start; }
|
|
2105
|
+
.recipient-policy-sharing-stats { grid-template-columns: 1fr; }
|
|
2106
|
+
.recipient-policy-sharing-received-head {
|
|
2107
|
+
position: absolute;
|
|
2108
|
+
width: 1px;
|
|
2109
|
+
height: 1px;
|
|
2110
|
+
padding: 0;
|
|
2111
|
+
margin: -1px;
|
|
2112
|
+
overflow: hidden;
|
|
2113
|
+
clip: rect(0, 0, 0, 0);
|
|
2114
|
+
clip-path: inset(50%);
|
|
2115
|
+
white-space: nowrap;
|
|
2116
|
+
border: 0;
|
|
2117
|
+
}
|
|
2118
|
+
.recipient-policy-sharing-received-row { grid-template-columns: 1fr 1fr; }
|
|
2119
|
+
.recipient-policy-sharing-received-row > td:not(:first-child)::before {
|
|
2120
|
+
content: attr(data-label) " ";
|
|
2121
|
+
display: block;
|
|
2122
|
+
color: var(--text-tertiary);
|
|
2123
|
+
font-size: var(--font-size-2xs);
|
|
2124
|
+
text-transform: uppercase;
|
|
2125
|
+
}
|
|
2126
|
+
.recipient-policy-sharing-received-row td:nth-child(n + 3) { text-align: left; }
|
|
2127
|
+
.project-inventory-table-header { display: none; }
|
|
2128
|
+
.project-inventory-table-row { grid-template-columns: 28px minmax(0, 1fr) auto; row-gap: var(--sp-3); }
|
|
2129
|
+
.project-inventory-select-cell { grid-column: 1; grid-row: 1; }
|
|
2130
|
+
.project-inventory-project-cell { grid-column: 2; grid-row: 1; }
|
|
2131
|
+
.project-inventory-row-actions { grid-column: 3; grid-row: 1; flex-wrap: wrap; }
|
|
2132
|
+
.project-inventory-number::before,
|
|
2133
|
+
.project-inventory-latest::before,
|
|
2134
|
+
.project-inventory-shared::before { content: attr(data-label) " "; color: var(--text-tertiary); font-size: var(--font-size-2xs); text-transform: uppercase; }
|
|
2135
|
+
.project-inventory-table-row > :nth-child(3) { grid-column: 2; grid-row: 2; }
|
|
2136
|
+
.project-inventory-table-row > :nth-child(4) { grid-column: 3; grid-row: 2; }
|
|
2137
|
+
.project-inventory-table-row > :nth-child(5) { grid-column: 2; grid-row: 3; }
|
|
2138
|
+
.project-inventory-table-row > :nth-child(6) { grid-column: 3; grid-row: 3; }
|
|
2139
|
+
.project-detail-grid { grid-template-columns: 1fr; }
|
|
2140
|
+
.devices-table-head { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
|
|
2141
|
+
.devices-table-row { grid-template-columns: 16px minmax(0, 1fr) 48px; row-gap: var(--sp-2); }
|
|
2142
|
+
.devices-table-row > :nth-child(1) { grid-column: 1; grid-row: 1; }
|
|
2143
|
+
.devices-table-row > :nth-child(2) { grid-column: 2; grid-row: 1; }
|
|
2144
|
+
.devices-table-row > :nth-child(3) { grid-column: 2; grid-row: 2; }
|
|
2145
|
+
.devices-table-row > :nth-child(4) { grid-column: 2; grid-row: 3; }
|
|
2146
|
+
.devices-table-row > :nth-child(5) { grid-column: 3; grid-row: 1; }
|
|
2147
|
+
.devices-table-availability::before,
|
|
2148
|
+
.devices-table-version::before { content: attr(data-label) " "; color: var(--text-tertiary); font-family: var(--font-sans); font-size: var(--font-size-2xs); text-transform: uppercase; }
|
|
2149
|
+
}
|
|
2150
|
+
|
|
1756
2151
|
@media (max-width: 720px) {
|
|
1757
|
-
.
|
|
1758
|
-
.
|
|
1759
|
-
.project-
|
|
2152
|
+
.recipient-policy-sharing-toolbar { align-items: stretch; flex-direction: column; }
|
|
2153
|
+
.recipient-policy-sharing-received-row { grid-template-columns: 1fr; }
|
|
2154
|
+
.project-inventory-row-header { grid-template-columns: 28px minmax(0, 1fr); }
|
|
2155
|
+
.project-inventory-row-actions { grid-column: 2; grid-row: 2; justify-content: flex-start; }
|
|
2156
|
+
.project-inventory-table-row > :nth-child(3) { grid-column: 2; grid-row: 3; }
|
|
2157
|
+
.project-inventory-table-row > :nth-child(4) { grid-column: 2; grid-row: 4; }
|
|
2158
|
+
.project-inventory-table-row > :nth-child(5) { grid-column: 2; grid-row: 5; }
|
|
2159
|
+
.project-inventory-table-row > :nth-child(6) { grid-column: 2; grid-row: 6; }
|
|
2160
|
+
.project-recipient-action { width: auto; }
|
|
1760
2161
|
.recipient-policy-management-dialog .modal-card { width: calc(100vw - 16px); }
|
|
1761
2162
|
.recipient-policy-management-actions,
|
|
1762
2163
|
.recipient-policy-sharing-responsive-actions { display: grid; grid-template-columns: 1fr; }
|
|
@@ -1778,6 +2179,16 @@
|
|
|
1778
2179
|
.device-identity-setup-summary { align-items: stretch; flex-direction: column; }
|
|
1779
2180
|
.device-identity-setup-summary .settings-button,
|
|
1780
2181
|
.device-identity-review-panel .settings-button { min-height: 44px; width: 100%; }
|
|
2182
|
+
.devices-summary-bar,
|
|
2183
|
+
.devices-coordinator-status,
|
|
2184
|
+
.devices-pairing-header,
|
|
2185
|
+
.devices-pairing-command,
|
|
2186
|
+
.devices-identity-header,
|
|
2187
|
+
#devicesMount .recipient-policy-sharing-header { align-items: stretch; flex-direction: column; }
|
|
2188
|
+
.devices-summary-bar .settings-button,
|
|
2189
|
+
.devices-coordinator-status .settings-button,
|
|
2190
|
+
.devices-pairing-panel button { width: 100%; min-height: 44px; }
|
|
2191
|
+
.devices-empty-actions { align-items: stretch; flex-direction: column; width: 100%; }
|
|
1781
2192
|
}
|
|
1782
2193
|
|
|
1783
2194
|
/* 36×36 square icon buttons — theme toggle, settings gear. */
|
|
@@ -1925,7 +2336,9 @@
|
|
|
1925
2336
|
transition: background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);
|
|
1926
2337
|
}
|
|
1927
2338
|
.toggle-button:hover { background: var(--toggle-hover-bg); color: var(--text-primary); }
|
|
1928
|
-
.toggle-button.active
|
|
2339
|
+
.toggle-button.active,
|
|
2340
|
+
.toggle-button[data-state="checked"],
|
|
2341
|
+
.toggle-button[aria-checked="true"] {
|
|
1929
2342
|
background: var(--accent-subtle);
|
|
1930
2343
|
color: var(--accent);
|
|
1931
2344
|
box-shadow: inset 0 0 0 1px var(--accent-strong);
|
|
@@ -2000,18 +2413,14 @@
|
|
|
2000
2413
|
.feed-skeleton-chip.w-56 { width: 56px; }
|
|
2001
2414
|
|
|
2002
2415
|
/* ── Feed items ────────────────────────────────────────── */
|
|
2003
|
-
/* Design-handoff clarification (2026-04-19): feed items render with
|
|
2004
|
-
a full-width top banner in the kind's tint, not a 4px left rail.
|
|
2005
|
-
Banner ~28px tall, --accent-subtle bg per kind, 1px accent-strong
|
|
2006
|
-
bottom border; kind chip sits inset left inside the banner. */
|
|
2007
|
-
|
|
2008
2416
|
.feed-item {
|
|
2417
|
+
display: grid;
|
|
2418
|
+
grid-template-columns: 104px minmax(0, 1fr) auto;
|
|
2419
|
+
column-gap: var(--sp-4);
|
|
2420
|
+
padding: var(--sp-4) var(--sp-5);
|
|
2009
2421
|
border: 1px solid var(--border);
|
|
2010
|
-
border-radius: var(--radius-
|
|
2422
|
+
border-radius: var(--radius-lg);
|
|
2011
2423
|
background: var(--surface-1);
|
|
2012
|
-
overflow: hidden;
|
|
2013
|
-
display: flex;
|
|
2014
|
-
flex-direction: column;
|
|
2015
2424
|
box-shadow: var(--shadow-sm);
|
|
2016
2425
|
transition: transform var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);
|
|
2017
2426
|
}
|
|
@@ -2021,31 +2430,17 @@
|
|
|
2021
2430
|
border-color: var(--border-hover);
|
|
2022
2431
|
}
|
|
2023
2432
|
|
|
2024
|
-
|
|
2025
|
-
.feed-kind-banner {
|
|
2026
|
-
padding: 7px var(--sp-5);
|
|
2027
|
-
background: var(--accent-subtle);
|
|
2028
|
-
border-bottom: 1px solid var(--accent-strong);
|
|
2029
|
-
}
|
|
2030
|
-
.feed-item.change .feed-kind-banner { background: var(--accent-cool-subtle); border-bottom-color: color-mix(in srgb, var(--accent-cool) 30%, transparent); }
|
|
2031
|
-
.feed-item.bugfix .feed-kind-banner { background: var(--accent-warm-subtle); border-bottom-color: color-mix(in srgb, var(--accent-warm) 30%, transparent); }
|
|
2032
|
-
.feed-item.refactor .feed-kind-banner { background: var(--accent-violet-subtle); border-bottom-color: color-mix(in srgb, var(--accent-violet) 30%, transparent); }
|
|
2033
|
-
.feed-item.discovery .feed-kind-banner { background: var(--accent-steel-subtle); border-bottom-color: color-mix(in srgb, var(--accent-steel) 30%, transparent); }
|
|
2034
|
-
.feed-item.docs .feed-kind-banner { background: var(--accent-ochre-subtle); border-bottom-color: color-mix(in srgb, var(--accent-ochre) 30%, transparent); }
|
|
2035
|
-
.feed-item.test .feed-kind-banner { background: var(--accent-neutral-subtle); border-bottom-color: color-mix(in srgb, var(--accent-neutral) 30%, transparent); }
|
|
2036
|
-
/* Core emits 'decision' / 'exploration' / 'session_summary' too — preserve
|
|
2037
|
-
neutral treatments so those items aren't unstyled. */
|
|
2038
|
-
.feed-item.decision .feed-kind-banner { background: var(--accent-neutral-subtle); border-bottom-color: color-mix(in srgb, var(--accent-neutral) 30%, transparent); }
|
|
2039
|
-
.feed-item.exploration .feed-kind-banner { background: color-mix(in srgb, var(--text-tertiary) 12%, transparent); border-bottom-color: color-mix(in srgb, var(--text-tertiary) 24%, transparent); }
|
|
2040
|
-
.feed-item.session_summary .feed-kind-banner { background: color-mix(in srgb, var(--accent-cool) 10%, transparent); border-bottom-color: color-mix(in srgb, var(--accent-cool) 22%, transparent); }
|
|
2041
|
-
|
|
2433
|
+
.feed-kind-rail { align-self: start; min-width: 0; }
|
|
2042
2434
|
.feed-card-body {
|
|
2043
2435
|
padding: var(--sp-4) var(--sp-5);
|
|
2044
2436
|
display: flex;
|
|
2045
2437
|
flex-direction: column;
|
|
2046
2438
|
gap: var(--sp-2);
|
|
2047
2439
|
}
|
|
2048
|
-
|
|
2440
|
+
.feed-item > .feed-card-body {
|
|
2441
|
+
padding: 0;
|
|
2442
|
+
min-width: 0;
|
|
2443
|
+
}
|
|
2049
2444
|
.feed-card-header {
|
|
2050
2445
|
display: flex;
|
|
2051
2446
|
align-items: flex-start;
|
|
@@ -2053,21 +2448,23 @@
|
|
|
2053
2448
|
gap: var(--sp-3);
|
|
2054
2449
|
}
|
|
2055
2450
|
.feed-card-header > .feed-header { flex: 1; overflow: hidden; }
|
|
2056
|
-
|
|
2057
|
-
.feed-header {
|
|
2451
|
+
.feed-card-side {
|
|
2058
2452
|
display: flex;
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2453
|
+
flex-direction: column;
|
|
2454
|
+
align-items: flex-end;
|
|
2455
|
+
justify-content: space-between;
|
|
2062
2456
|
min-width: 0;
|
|
2457
|
+
gap: var(--sp-3);
|
|
2063
2458
|
}
|
|
2064
|
-
|
|
2065
|
-
.feed-
|
|
2459
|
+
.feed-card-side-top,
|
|
2460
|
+
.feed-card-side-bottom {
|
|
2066
2461
|
display: flex;
|
|
2067
2462
|
align-items: center;
|
|
2463
|
+
justify-content: flex-end;
|
|
2464
|
+
min-width: 0;
|
|
2068
2465
|
gap: var(--sp-2);
|
|
2069
|
-
flex-shrink: 0;
|
|
2070
2466
|
}
|
|
2467
|
+
.feed-card-side-bottom { flex-wrap: wrap; }
|
|
2071
2468
|
|
|
2072
2469
|
.feed-menu-panel {
|
|
2073
2470
|
min-width: 180px;
|
|
@@ -2127,25 +2524,88 @@
|
|
|
2127
2524
|
}
|
|
2128
2525
|
|
|
2129
2526
|
.feed-title {
|
|
2130
|
-
|
|
2527
|
+
display: block;
|
|
2528
|
+
width: 100%;
|
|
2529
|
+
min-width: 0;
|
|
2530
|
+
padding: 0;
|
|
2531
|
+
border: 0;
|
|
2532
|
+
background: transparent;
|
|
2533
|
+
color: var(--text-primary);
|
|
2534
|
+
font-family: var(--font-sans);
|
|
2131
2535
|
font-size: var(--font-size-lg);
|
|
2132
|
-
|
|
2536
|
+
font-weight: var(--font-weight-semibold);
|
|
2537
|
+
line-height: 1.35;
|
|
2538
|
+
text-align: left;
|
|
2539
|
+
overflow-wrap: anywhere;
|
|
2540
|
+
white-space: normal;
|
|
2541
|
+
}
|
|
2542
|
+
button.feed-title { cursor: pointer; }
|
|
2543
|
+
button.feed-title:hover { color: var(--accent); }
|
|
2544
|
+
button.feed-title:focus-visible {
|
|
2545
|
+
border-radius: var(--radius-sm);
|
|
2546
|
+
outline: 2px solid var(--accent);
|
|
2547
|
+
outline-offset: 2px;
|
|
2548
|
+
}
|
|
2549
|
+
.feed-summary {
|
|
2133
2550
|
min-width: 0;
|
|
2134
|
-
display: -webkit-box;
|
|
2135
|
-
-webkit-box-orient: vertical;
|
|
2136
|
-
-webkit-line-clamp: 2;
|
|
2137
2551
|
overflow: hidden;
|
|
2138
|
-
|
|
2139
|
-
|
|
2552
|
+
color: var(--text-secondary);
|
|
2553
|
+
font-size: var(--font-size-md);
|
|
2554
|
+
line-height: 1.4;
|
|
2555
|
+
text-overflow: ellipsis;
|
|
2556
|
+
white-space: nowrap;
|
|
2140
2557
|
}
|
|
2141
|
-
.feed-
|
|
2142
|
-
|
|
2558
|
+
.feed-meta-line {
|
|
2559
|
+
display: flex;
|
|
2560
|
+
align-items: center;
|
|
2561
|
+
flex-wrap: wrap;
|
|
2562
|
+
min-width: 0;
|
|
2563
|
+
gap: 6px;
|
|
2143
2564
|
color: var(--text-tertiary);
|
|
2565
|
+
font-size: var(--font-size-sm);
|
|
2144
2566
|
}
|
|
2567
|
+
.feed-project { color: var(--text-secondary); }
|
|
2145
2568
|
.feed-meta {
|
|
2146
2569
|
color: var(--text-tertiary);
|
|
2147
2570
|
font-size: var(--font-size-sm);
|
|
2148
2571
|
}
|
|
2572
|
+
.feed-expanded-provenance {
|
|
2573
|
+
display: flex;
|
|
2574
|
+
flex-wrap: wrap;
|
|
2575
|
+
gap: 6px;
|
|
2576
|
+
}
|
|
2577
|
+
.feed-search-match {
|
|
2578
|
+
display: flex;
|
|
2579
|
+
min-width: 0;
|
|
2580
|
+
gap: var(--sp-2);
|
|
2581
|
+
padding: var(--sp-2) var(--sp-3);
|
|
2582
|
+
border-left: 2px solid var(--accent);
|
|
2583
|
+
background: var(--accent-subtle);
|
|
2584
|
+
color: var(--text-secondary);
|
|
2585
|
+
font-size: var(--font-size-sm);
|
|
2586
|
+
}
|
|
2587
|
+
.feed-search-match-label {
|
|
2588
|
+
flex-shrink: 0;
|
|
2589
|
+
color: var(--accent);
|
|
2590
|
+
font-family: var(--font-mono);
|
|
2591
|
+
text-transform: capitalize;
|
|
2592
|
+
}
|
|
2593
|
+
.feed-search-match > span:last-child {
|
|
2594
|
+
min-width: 0;
|
|
2595
|
+
overflow-wrap: anywhere;
|
|
2596
|
+
}
|
|
2597
|
+
.feed-detail {
|
|
2598
|
+
display: flex;
|
|
2599
|
+
flex-direction: column;
|
|
2600
|
+
gap: var(--sp-2);
|
|
2601
|
+
padding-top: var(--sp-2);
|
|
2602
|
+
border-top: 1px solid var(--border);
|
|
2603
|
+
animation: feedDisclosure var(--duration-fast) var(--ease-out);
|
|
2604
|
+
}
|
|
2605
|
+
@keyframes feedDisclosure {
|
|
2606
|
+
from { opacity: 0; transform: translateY(-4px); }
|
|
2607
|
+
to { opacity: 1; transform: translateY(0); }
|
|
2608
|
+
}
|
|
2149
2609
|
/* Empty state renders as a terminal-output block — mono surface,
|
|
2150
2610
|
blinking mint cursor — to match the codemem "warm local journal"
|
|
2151
2611
|
voice and signal "this is a CLI-native tool." */
|
|
@@ -2183,12 +2643,6 @@
|
|
|
2183
2643
|
50% { opacity: 0; }
|
|
2184
2644
|
}
|
|
2185
2645
|
|
|
2186
|
-
.feed-provenance {
|
|
2187
|
-
display: flex;
|
|
2188
|
-
flex-wrap: wrap;
|
|
2189
|
-
gap: 6px;
|
|
2190
|
-
}
|
|
2191
|
-
|
|
2192
2646
|
/* ── Chip base ─────────────────────────────────────────── */
|
|
2193
2647
|
/* Shared layout for every pill-shaped label in the viewer. Per-variant
|
|
2194
2648
|
rules below only override background / color / border / typography.
|
|
@@ -2218,6 +2672,12 @@
|
|
|
2218
2672
|
background: var(--surface-2);
|
|
2219
2673
|
color: var(--text-tertiary);
|
|
2220
2674
|
}
|
|
2675
|
+
.feed-item .feed-meta-line > *, .feed-item .feed-expanded-provenance > * {
|
|
2676
|
+
min-width: 0;
|
|
2677
|
+
max-width: 100%;
|
|
2678
|
+
white-space: normal;
|
|
2679
|
+
overflow-wrap: anywhere;
|
|
2680
|
+
}
|
|
2221
2681
|
.provenance-chip.mine { background: var(--accent-subtle); color: var(--accent); border-color: rgba(43, 122, 176, 0.18); }
|
|
2222
2682
|
.provenance-chip.author { color: var(--text-secondary); }
|
|
2223
2683
|
.provenance-chip.private { background: rgba(140, 140, 140, 0.12); color: var(--text-secondary); }
|
|
@@ -2234,10 +2694,61 @@
|
|
|
2234
2694
|
}
|
|
2235
2695
|
|
|
2236
2696
|
.feed-body {
|
|
2697
|
+
min-width: 0;
|
|
2698
|
+
overflow-wrap: anywhere;
|
|
2237
2699
|
font-size: var(--font-size-md);
|
|
2238
2700
|
line-height: 1.55;
|
|
2239
2701
|
color: var(--text-secondary);
|
|
2240
2702
|
}
|
|
2703
|
+
.first-run-guide {
|
|
2704
|
+
display: flex;
|
|
2705
|
+
flex-direction: column;
|
|
2706
|
+
gap: var(--sp-3);
|
|
2707
|
+
margin-bottom: var(--sp-4);
|
|
2708
|
+
padding: var(--sp-4);
|
|
2709
|
+
border: 1px solid var(--border);
|
|
2710
|
+
border-radius: var(--radius-md);
|
|
2711
|
+
background: var(--surface-1);
|
|
2712
|
+
}
|
|
2713
|
+
.first-run-guide-header {
|
|
2714
|
+
display: flex;
|
|
2715
|
+
align-items: flex-start;
|
|
2716
|
+
justify-content: space-between;
|
|
2717
|
+
gap: var(--sp-3);
|
|
2718
|
+
}
|
|
2719
|
+
.first-run-guide h2 { margin: 0; font-size: var(--font-size-lg); }
|
|
2720
|
+
.first-run-guide p { margin: 3px 0 0; color: var(--text-secondary); }
|
|
2721
|
+
.first-run-guide-list {
|
|
2722
|
+
display: grid;
|
|
2723
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
2724
|
+
gap: var(--sp-2);
|
|
2725
|
+
margin: 0;
|
|
2726
|
+
padding: 0;
|
|
2727
|
+
list-style: none;
|
|
2728
|
+
}
|
|
2729
|
+
.first-run-guide-list li {
|
|
2730
|
+
display: flex;
|
|
2731
|
+
align-items: center;
|
|
2732
|
+
justify-content: space-between;
|
|
2733
|
+
gap: var(--sp-2);
|
|
2734
|
+
min-width: 0;
|
|
2735
|
+
padding: var(--sp-2);
|
|
2736
|
+
border: 1px solid var(--border);
|
|
2737
|
+
border-radius: var(--radius-sm);
|
|
2738
|
+
}
|
|
2739
|
+
.first-run-guide-list li.is-complete { background: var(--surface-2); }
|
|
2740
|
+
.first-run-guide-status { display: flex; align-items: flex-start; gap: var(--sp-2); min-width: 0; }
|
|
2741
|
+
.first-run-guide-status > span:last-child { display: flex; flex-direction: column; min-width: 0; }
|
|
2742
|
+
.first-run-guide-status .small { color: var(--text-tertiary); }
|
|
2743
|
+
.feed-empty-actions { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
|
|
2744
|
+
|
|
2745
|
+
@media (max-width: 755px) {
|
|
2746
|
+
.first-run-guide-header,
|
|
2747
|
+
.first-run-guide-list li { align-items: stretch; flex-direction: column; }
|
|
2748
|
+
.first-run-guide-list { grid-template-columns: 1fr; }
|
|
2749
|
+
.first-run-guide button,
|
|
2750
|
+
.feed-empty-actions .settings-button { width: 100%; }
|
|
2751
|
+
}
|
|
2241
2752
|
.feed-body.narrative { max-width: 88ch; }
|
|
2242
2753
|
.feed-body.clamp { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
|
|
2243
2754
|
.feed-body.clamp-3 { -webkit-line-clamp: 3; }
|
|
@@ -2268,16 +2779,15 @@
|
|
|
2268
2779
|
.summary-section-label { font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-tertiary); }
|
|
2269
2780
|
.summary-section-content { font-size: var(--font-size-md); line-height: 1.5; color: var(--text-primary); }
|
|
2270
2781
|
|
|
2271
|
-
.feed-
|
|
2782
|
+
.feed-visibility-label {
|
|
2272
2783
|
display: flex;
|
|
2273
|
-
flex-
|
|
2274
|
-
gap:
|
|
2275
|
-
|
|
2276
|
-
|
|
2784
|
+
flex-direction: column;
|
|
2785
|
+
gap: 3px;
|
|
2786
|
+
color: var(--text-tertiary);
|
|
2787
|
+
font-size: var(--font-size-2xs);
|
|
2788
|
+
letter-spacing: 0.06em;
|
|
2789
|
+
text-transform: uppercase;
|
|
2277
2790
|
}
|
|
2278
|
-
.feed-footer-left { display: flex; flex-direction: column; gap: 6px; }
|
|
2279
|
-
.feed-footer-right { display: flex; align-items: center; gap: var(--sp-2); flex-shrink: 0; }
|
|
2280
|
-
.feed-visibility-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
|
|
2281
2791
|
.feed-visibility-select {
|
|
2282
2792
|
min-width: 180px;
|
|
2283
2793
|
padding: 6px 10px;
|
|
@@ -2287,22 +2797,8 @@
|
|
|
2287
2797
|
color: var(--text-primary);
|
|
2288
2798
|
font-family: var(--font-sans);
|
|
2289
2799
|
font-size: var(--font-size-sm);
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
.feed-expand {
|
|
2294
|
-
border: 1px solid var(--border);
|
|
2295
|
-
background: transparent;
|
|
2296
|
-
color: var(--text-tertiary);
|
|
2297
|
-
padding: 3px 10px;
|
|
2298
|
-
font-size: var(--font-size-xs);
|
|
2299
|
-
transition: background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);
|
|
2300
|
-
}
|
|
2301
|
-
.feed-expand:hover { background: var(--accent-subtle); color: var(--accent); }
|
|
2302
|
-
.feed-expand:focus-visible {
|
|
2303
|
-
outline: 2px solid var(--accent);
|
|
2304
|
-
outline-offset: 2px;
|
|
2305
|
-
box-shadow: 0 0 0 4px var(--focus-ring);
|
|
2800
|
+
letter-spacing: normal;
|
|
2801
|
+
text-transform: none;
|
|
2306
2802
|
}
|
|
2307
2803
|
|
|
2308
2804
|
.feed-tags { display: flex; flex-wrap: wrap; gap: 6px; }
|
|
@@ -2310,6 +2806,9 @@
|
|
|
2310
2806
|
filename is informative and earns its horizontal space. */
|
|
2311
2807
|
.feed-files { display: flex; flex-wrap: wrap; gap: 6px; }
|
|
2312
2808
|
.feed-file {
|
|
2809
|
+
max-width: 100%;
|
|
2810
|
+
overflow: hidden;
|
|
2811
|
+
text-overflow: ellipsis;
|
|
2313
2812
|
padding: 2px 8px;
|
|
2314
2813
|
border-radius: var(--radius-sm);
|
|
2315
2814
|
background: var(--surface-2);
|
|
@@ -2323,7 +2822,7 @@
|
|
|
2323
2822
|
|
|
2324
2823
|
/* ── Pills & badges ────────────────────────────────────── */
|
|
2325
2824
|
|
|
2326
|
-
/* Kind chip — lives inside .feed-kind-
|
|
2825
|
+
/* Kind chip — lives inside .feed-kind-rail. Tint + colored border
|
|
2327
2826
|
match the banner per kind so the chip reads as part of the strip. */
|
|
2328
2827
|
.kind-chip {
|
|
2329
2828
|
padding: 2px 10px;
|
|
@@ -2423,55 +2922,31 @@
|
|
|
2423
2922
|
|
|
2424
2923
|
.health-update-banner {
|
|
2425
2924
|
display: flex;
|
|
2426
|
-
align-items:
|
|
2427
|
-
|
|
2428
|
-
|
|
2925
|
+
align-items: center;
|
|
2926
|
+
flex-wrap: wrap;
|
|
2927
|
+
gap: var(--sp-2);
|
|
2928
|
+
padding: 10px var(--sp-4);
|
|
2429
2929
|
border: 1px solid var(--border);
|
|
2430
|
-
border-radius: var(--radius-
|
|
2930
|
+
border-radius: var(--radius-md);
|
|
2431
2931
|
background: var(--surface-1);
|
|
2432
|
-
|
|
2433
|
-
}
|
|
2434
|
-
.health-update-banner--current {
|
|
2435
|
-
border-color: color-mix(in srgb, var(--status-healthy) 34%, var(--border));
|
|
2436
|
-
background: color-mix(in srgb, var(--status-healthy) 7%, var(--surface-1));
|
|
2437
|
-
}
|
|
2438
|
-
.health-update-banner--available,
|
|
2439
|
-
.health-update-banner--stale {
|
|
2440
|
-
border-color: color-mix(in srgb, var(--accent-warm) 34%, var(--border));
|
|
2441
|
-
background: color-mix(in srgb, var(--accent-warm-subtle) 34%, var(--surface-1));
|
|
2442
|
-
}
|
|
2443
|
-
.health-update-banner--unavailable {
|
|
2444
|
-
border-color: color-mix(in srgb, var(--status-attention) 34%, var(--border));
|
|
2445
|
-
background: color-mix(in srgb, var(--status-attention) 7%, var(--surface-1));
|
|
2932
|
+
color: var(--text-secondary);
|
|
2446
2933
|
}
|
|
2447
2934
|
.health-update-icon {
|
|
2448
|
-
width:
|
|
2449
|
-
height:
|
|
2450
|
-
flex: 0 0
|
|
2451
|
-
margin-top: 2px;
|
|
2935
|
+
width: 16px;
|
|
2936
|
+
height: 16px;
|
|
2937
|
+
flex: 0 0 16px;
|
|
2452
2938
|
color: var(--accent);
|
|
2453
2939
|
}
|
|
2454
|
-
.health-update-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
.health-update-banner--unavailable .health-update-icon { color: var(--status-attention); }
|
|
2458
|
-
.health-update-copy { min-width: 0; }
|
|
2459
|
-
.health-update-copy h2 { font-size: var(--font-size-lg); line-height: 1.3; }
|
|
2460
|
-
.health-update-copy p { margin-top: var(--sp-1); color: var(--text-secondary); }
|
|
2461
|
-
.health-update-guidance { display: grid; gap: 3px; }
|
|
2462
|
-
.health-update-guidance-label {
|
|
2463
|
-
color: var(--text-tertiary);
|
|
2464
|
-
font-size: var(--font-size-xs);
|
|
2465
|
-
font-weight: var(--font-weight-semibold);
|
|
2466
|
-
letter-spacing: 0.06em;
|
|
2467
|
-
text-transform: uppercase;
|
|
2940
|
+
.health-update-source {
|
|
2941
|
+
background: var(--accent-cool-subtle);
|
|
2942
|
+
color: var(--accent-cool);
|
|
2468
2943
|
}
|
|
2469
|
-
.health-update-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
font-size: var(--font-size-sm);
|
|
2944
|
+
.health-update-detail { flex: 1 1 280px; min-width: 0; }
|
|
2945
|
+
.health-update-command {
|
|
2946
|
+
flex: 1 1 100%;
|
|
2473
2947
|
overflow-wrap: anywhere;
|
|
2474
2948
|
}
|
|
2949
|
+
.health-update-copy-button { margin-left: auto; }
|
|
2475
2950
|
|
|
2476
2951
|
.health-actions, .sync-actions {
|
|
2477
2952
|
display: grid;
|
|
@@ -3049,7 +3524,8 @@
|
|
|
3049
3524
|
animation: sync-attention-target var(--duration-attention) var(--ease-out);
|
|
3050
3525
|
}
|
|
3051
3526
|
.settings-button:disabled,
|
|
3052
|
-
.settings-button[aria-disabled="true"]
|
|
3527
|
+
.settings-button[aria-disabled="true"],
|
|
3528
|
+
.settings-save[aria-disabled="true"] {
|
|
3053
3529
|
opacity: 0.55;
|
|
3054
3530
|
cursor: not-allowed;
|
|
3055
3531
|
}
|
|
@@ -3523,6 +3999,18 @@
|
|
|
3523
3999
|
}
|
|
3524
4000
|
.modal-body { display: flex; flex-direction: column; gap: var(--sp-3); flex: 1; min-height: 0; overflow-y: auto; padding-right: 6px; }
|
|
3525
4001
|
.modal-footer { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); flex-shrink: 0; padding-top: var(--sp-2); border-top: 1px solid var(--border); }
|
|
4002
|
+
.settings-footer-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
|
|
4003
|
+
.settings-link-button {
|
|
4004
|
+
padding: 0;
|
|
4005
|
+
border: 0;
|
|
4006
|
+
background: transparent;
|
|
4007
|
+
color: var(--text-secondary);
|
|
4008
|
+
font: inherit;
|
|
4009
|
+
font-size: var(--font-size-sm);
|
|
4010
|
+
text-decoration: underline;
|
|
4011
|
+
text-underline-offset: 2px;
|
|
4012
|
+
}
|
|
4013
|
+
.settings-link-button:hover { color: var(--text-primary); }
|
|
3526
4014
|
/* ── Toast (Radix Toast-backed) ───────────────────────── */
|
|
3527
4015
|
/* Fixed viewport anchored bottom-right. Each toast is a surface-card
|
|
3528
4016
|
with a severity-tinted left accent keyed to .toast-{variant}. */
|
|
@@ -3658,9 +4146,9 @@
|
|
|
3658
4146
|
border-radius: 50%;
|
|
3659
4147
|
border: 2px solid color-mix(in srgb, var(--accent) 22%, transparent);
|
|
3660
4148
|
border-top-color: var(--accent);
|
|
3661
|
-
animation:
|
|
4149
|
+
animation: viewerLoadingSpin var(--duration-attention) linear infinite;
|
|
3662
4150
|
}
|
|
3663
|
-
@keyframes
|
|
4151
|
+
@keyframes viewerLoadingSpin {
|
|
3664
4152
|
from { transform: rotate(0deg); }
|
|
3665
4153
|
to { transform: rotate(360deg); }
|
|
3666
4154
|
}
|
|
@@ -3683,6 +4171,23 @@
|
|
|
3683
4171
|
color: var(--accent);
|
|
3684
4172
|
background: var(--accent-subtle);
|
|
3685
4173
|
}
|
|
4174
|
+
.advanced-heading { margin: 0 0 var(--sp-4); font-size: var(--font-size-2xl); }
|
|
4175
|
+
#advancedTabsMount .settings-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
4176
|
+
.advanced-sync-status,
|
|
4177
|
+
.advanced-sync-status-label {
|
|
4178
|
+
display: flex;
|
|
4179
|
+
align-items: center;
|
|
4180
|
+
}
|
|
4181
|
+
.advanced-sync-status { justify-content: space-between; gap: var(--sp-4); }
|
|
4182
|
+
.advanced-sync-status-label { gap: var(--sp-3); }
|
|
4183
|
+
.advanced-sync-status-label .xl { font-size: var(--font-size-xl); }
|
|
4184
|
+
.advanced-administration-sections { margin-bottom: var(--sp-3); }
|
|
4185
|
+
|
|
4186
|
+
@media (max-width: 720px) {
|
|
4187
|
+
.advanced-sync-status { align-items: stretch; flex-direction: column; }
|
|
4188
|
+
.advanced-sync-status .section-actions { align-items: stretch; flex-direction: column; }
|
|
4189
|
+
.advanced-sync-status .settings-save { width: 100%; }
|
|
4190
|
+
}
|
|
3686
4191
|
.settings-panel { display: flex; flex-direction: column; gap: var(--sp-3); }
|
|
3687
4192
|
.settings-panel[data-state="inactive"] { display: none; }
|
|
3688
4193
|
.settings-panel[hidden] { display: none; }
|
|
@@ -3842,6 +4347,19 @@
|
|
|
3842
4347
|
}
|
|
3843
4348
|
|
|
3844
4349
|
.field { display: flex; flex-direction: column; gap: 6px; font-size: var(--font-size-md); }
|
|
4350
|
+
.settings-outcome {
|
|
4351
|
+
margin: 0;
|
|
4352
|
+
color: var(--text-tertiary);
|
|
4353
|
+
font-size: var(--font-size-xs);
|
|
4354
|
+
line-height: 1.45;
|
|
4355
|
+
}
|
|
4356
|
+
.settings-outcome > summary,
|
|
4357
|
+
.settings-config-details > summary { cursor: pointer; color: var(--text-secondary); }
|
|
4358
|
+
.settings-outcome > summary:focus-visible,
|
|
4359
|
+
.settings-config-details > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
4360
|
+
.settings-outcome-details { display: grid; gap: var(--sp-1); padding-top: var(--sp-2); }
|
|
4361
|
+
.settings-config-details { margin-top: var(--sp-4); font-size: var(--font-size-xs); overflow-wrap: anywhere; }
|
|
4362
|
+
.settings-outcome strong { color: var(--text-secondary); font-weight: var(--font-weight-medium); }
|
|
3845
4363
|
.field input:not([type="checkbox"]), .field select, .field textarea { padding: var(--sp-2) var(--sp-3); border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--input-bg); font-family: var(--font-sans); font-size: var(--font-size-md); color: var(--text-primary); }
|
|
3846
4364
|
.settings-select-trigger {
|
|
3847
4365
|
display: inline-flex;
|
|
@@ -3902,7 +4420,9 @@
|
|
|
3902
4420
|
justify-content: flex-start;
|
|
3903
4421
|
gap: 10px;
|
|
3904
4422
|
flex: 0 1 auto;
|
|
4423
|
+
flex-wrap: wrap;
|
|
3905
4424
|
}
|
|
4425
|
+
.settings-switch-row .settings-outcome { flex-basis: 100%; }
|
|
3906
4426
|
.settings-switch-copy {
|
|
3907
4427
|
color: var(--text-primary);
|
|
3908
4428
|
line-height: 1.35;
|
|
@@ -3965,6 +4485,19 @@
|
|
|
3965
4485
|
transition: background var(--duration-fast) var(--ease-standard);
|
|
3966
4486
|
}
|
|
3967
4487
|
.settings-save:hover { background: var(--control-hover-bg); }
|
|
4488
|
+
/* Text actions share geometry; icon, tab, and segmented controls retain theirs. */
|
|
4489
|
+
.settings-button,
|
|
4490
|
+
.settings-save {
|
|
4491
|
+
display: inline-flex;
|
|
4492
|
+
align-items: center;
|
|
4493
|
+
justify-content: center;
|
|
4494
|
+
box-sizing: border-box;
|
|
4495
|
+
min-height: 36px;
|
|
4496
|
+
padding: 8px 12px;
|
|
4497
|
+
border-radius: var(--radius-md);
|
|
4498
|
+
font-size: var(--font-size-sm);
|
|
4499
|
+
line-height: 18px;
|
|
4500
|
+
}
|
|
3968
4501
|
.sync-dialog-card {
|
|
3969
4502
|
width: min(560px, 100%);
|
|
3970
4503
|
}
|
|
@@ -4112,8 +4645,8 @@
|
|
|
4112
4645
|
50% { transform: scale(1.3); opacity: 0.5; }
|
|
4113
4646
|
}
|
|
4114
4647
|
|
|
4115
|
-
/* newPulse: fresh feed items pulse
|
|
4116
|
-
|
|
4648
|
+
/* newPulse: fresh feed items pulse the card outline from accent-strong
|
|
4649
|
+
to transparent once on mount. The class is
|
|
4117
4650
|
applied by feed.ts only while state.newItemKeys holds the item's
|
|
4118
4651
|
key (700ms useEffect then clears it). Skipped entirely under
|
|
4119
4652
|
prefers-reduced-motion so the ambient accessibility pass still
|
|
@@ -4150,12 +4683,9 @@
|
|
|
4150
4683
|
.tab-btn { flex-shrink: 0; }
|
|
4151
4684
|
.tab-panel { padding: var(--sp-4); }
|
|
4152
4685
|
.summary-row { grid-template-columns: 1fr; }
|
|
4153
|
-
.
|
|
4154
|
-
.feed-actions { width: 100%; justify-content: flex-end; }
|
|
4686
|
+
.health-tile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
4155
4687
|
.actor-row { align-items: stretch; flex-direction: column; }
|
|
4156
4688
|
.peer-scope-row { grid-template-columns: 1fr; }
|
|
4157
|
-
.feed-visibility-controls { align-items: stretch; }
|
|
4158
|
-
.feed-visibility-select { width: 100%; }
|
|
4159
4689
|
.actor-actions { justify-content: flex-start; }
|
|
4160
4690
|
.legacy-review-header { flex-direction: column; }
|
|
4161
4691
|
.legacy-review-group-main { grid-template-columns: 1fr; }
|
|
@@ -4164,6 +4694,41 @@
|
|
|
4164
4694
|
.legacy-review-bulk-row .settings-save { width: 100%; }
|
|
4165
4695
|
}
|
|
4166
4696
|
|
|
4697
|
+
@media (max-width: 755px) {
|
|
4698
|
+
.feed-item {
|
|
4699
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
4700
|
+
row-gap: var(--sp-3);
|
|
4701
|
+
padding: var(--sp-4);
|
|
4702
|
+
}
|
|
4703
|
+
.feed-kind-rail { grid-column: 1; grid-row: 1; align-self: center; }
|
|
4704
|
+
.feed-card-side { display: contents; }
|
|
4705
|
+
.feed-card-side-top { grid-column: 2; grid-row: 1; }
|
|
4706
|
+
.feed-item > .feed-card-body { grid-column: 1 / -1; grid-row: 2; }
|
|
4707
|
+
.feed-card-side-bottom {
|
|
4708
|
+
grid-column: 1 / -1;
|
|
4709
|
+
grid-row: 3;
|
|
4710
|
+
justify-content: space-between;
|
|
4711
|
+
flex-wrap: wrap;
|
|
4712
|
+
}
|
|
4713
|
+
.feed-toggle { max-width: 100%; }
|
|
4714
|
+
.toggle-button { padding-inline: var(--sp-2); }
|
|
4715
|
+
.feed-visibility-label { flex: 1 1 180px; }
|
|
4716
|
+
.feed-visibility-select { box-sizing: border-box; width: 100%; min-width: 0; }
|
|
4717
|
+
.feed-meta-line { max-width: 100%; }
|
|
4718
|
+
.feed-file { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
|
|
4719
|
+
}
|
|
4720
|
+
|
|
4721
|
+
@media print {
|
|
4722
|
+
.feed-menu-trigger,
|
|
4723
|
+
.feed-card-side-bottom { display: none !important; }
|
|
4724
|
+
.feed-item {
|
|
4725
|
+
break-inside: avoid;
|
|
4726
|
+
grid-template-columns: 104px minmax(0, 1fr) auto;
|
|
4727
|
+
box-shadow: none;
|
|
4728
|
+
}
|
|
4729
|
+
.feed-item:hover { transform: none; box-shadow: none; }
|
|
4730
|
+
}
|
|
4731
|
+
|
|
4167
4732
|
@media (max-width: 720px) {
|
|
4168
4733
|
.header-title { font-size: var(--font-size-xl); }
|
|
4169
4734
|
}
|
|
@@ -4213,6 +4778,12 @@
|
|
|
4213
4778
|
}
|
|
4214
4779
|
|
|
4215
4780
|
@media (prefers-reduced-motion: reduce) {
|
|
4781
|
+
.health-loading-icon,
|
|
4782
|
+
.viewer-reconnect-spinner,
|
|
4783
|
+
.feed-detail,
|
|
4784
|
+
.feed-item.new-item {
|
|
4785
|
+
animation: none;
|
|
4786
|
+
}
|
|
4216
4787
|
*, *::before, *::after {
|
|
4217
4788
|
animation-duration: 0.01ms !important;
|
|
4218
4789
|
animation-iteration-count: 1 !important;
|
|
@@ -4501,15 +5072,21 @@
|
|
|
4501
5072
|
<!-- ── Tab: Health ─────────────────────────────────────── -->
|
|
4502
5073
|
<div class="tab-panel" id="tab-health" hidden>
|
|
4503
5074
|
<div id="healthUpdateBanner" hidden></div>
|
|
4504
|
-
<
|
|
4505
|
-
<div class="
|
|
4506
|
-
<
|
|
5075
|
+
<section class="card health-system-card" id="healthSystemCard" aria-label="System health" tabindex="-1">
|
|
5076
|
+
<div class="health-system-header">
|
|
5077
|
+
<div id="healthStatus">
|
|
5078
|
+
<div class="health-status-summary">
|
|
5079
|
+
<div class="health-status-copy">
|
|
5080
|
+
<strong class="health-status-word status-unknown">Assessing</strong>
|
|
5081
|
+
<div class="section-meta" id="healthMeta" role="status" aria-live="polite" aria-atomic="true">Assessing health signals…</div>
|
|
5082
|
+
</div>
|
|
5083
|
+
</div>
|
|
5084
|
+
</div>
|
|
4507
5085
|
<button class="settings-button" id="healthOpenDiagnostics" type="button">View diagnostics</button>
|
|
4508
5086
|
</div>
|
|
4509
|
-
<div class="section-meta" id="healthMeta">Assessing health signals…</div>
|
|
4510
5087
|
<div class="health-actions" id="healthActions"></div>
|
|
4511
|
-
<div
|
|
4512
|
-
</
|
|
5088
|
+
<div id="healthGrid"></div>
|
|
5089
|
+
</section>
|
|
4513
5090
|
|
|
4514
5091
|
<div class="summary-row">
|
|
4515
5092
|
<div class="card" style="animation-delay: 0.05s">
|
|
@@ -4530,20 +5107,17 @@
|
|
|
4530
5107
|
<div id="recipientPolicyReviewMount" hidden></div>
|
|
4531
5108
|
<div class="card" style="animation-delay: 0s">
|
|
4532
5109
|
<div class="section-header">
|
|
4533
|
-
<
|
|
4534
|
-
<h2>Projects</h2>
|
|
4535
|
-
<div class="section-meta">Choose exact Projects, then share them with Teams or Identities.</div>
|
|
4536
|
-
</div>
|
|
5110
|
+
<h2>Projects</h2>
|
|
4537
5111
|
<div class="section-actions project-selection-actions">
|
|
4538
5112
|
<span class="section-meta" id="projectsSelectionStatus" role="status" aria-live="polite">0 Projects selected.</span>
|
|
4539
|
-
<button class="settings-button project-selection-target" id="projectsShareSelected" type="button" disabled>
|
|
5113
|
+
<button class="settings-button project-selection-target" id="projectsShareSelected" type="button" disabled>Add Teams or Identities</button>
|
|
4540
5114
|
</div>
|
|
4541
5115
|
</div>
|
|
4542
5116
|
<div class="projects-toolbar">
|
|
4543
|
-
<input class="feed-search" id="projectsSearch" placeholder="Search
|
|
4544
|
-
<select id="projectsStatusFilter" aria-label="
|
|
5117
|
+
<input class="feed-search" id="projectsSearch" placeholder="Search by name, path, or git remote…" />
|
|
5118
|
+
<select id="projectsStatusFilter" aria-label="Filter projects"></select>
|
|
5119
|
+
<span class="small" id="projectsInventoryMeta">Loading project inventory…</span>
|
|
4545
5120
|
</div>
|
|
4546
|
-
<div class="section-meta" id="projectsInventoryMeta">Loading project inventory…</div>
|
|
4547
5121
|
<div class="project-inventory-skeleton" id="projectsInventorySkeleton" role="status" aria-label="Loading project inventory" aria-busy="true">
|
|
4548
5122
|
<div class="project-inventory-skeleton-row">
|
|
4549
5123
|
<div class="project-inventory-skeleton-line title"></div>
|
|
@@ -4563,8 +5137,7 @@
|
|
|
4563
5137
|
</div>
|
|
4564
5138
|
</div>
|
|
4565
5139
|
<details class="card project-advanced-surface">
|
|
4566
|
-
<summary>
|
|
4567
|
-
<div class="section-meta">Use the legacy invitation flow when the recipient does not have an Identity yet.</div>
|
|
5140
|
+
<summary>Invite someone</summary>
|
|
4568
5141
|
<div class="section-actions" id="projectShareFlowMount"></div>
|
|
4569
5142
|
</details>
|
|
4570
5143
|
</div>
|
|
@@ -4581,39 +5154,33 @@
|
|
|
4581
5154
|
|
|
4582
5155
|
<!-- ── Tab: Advanced ───────────────────────────────────── -->
|
|
4583
5156
|
<div class="tab-panel" id="tab-advanced" hidden>
|
|
4584
|
-
<
|
|
4585
|
-
|
|
4586
|
-
<div>
|
|
4587
|
-
<h2>Advanced</h2>
|
|
4588
|
-
<div class="section-meta">Device sync, legacy Team and Space setup, and coordinator administration.</div>
|
|
4589
|
-
</div>
|
|
4590
|
-
<div class="section-actions" aria-label="Advanced sections" role="group">
|
|
4591
|
-
<button class="settings-button" id="advancedSyncButton" type="button" aria-pressed="true">Sync</button>
|
|
4592
|
-
<button class="settings-button" id="advancedTeamsButton" type="button" aria-pressed="false">Coordinator Administration</button>
|
|
4593
|
-
</div>
|
|
4594
|
-
</div>
|
|
4595
|
-
</div>
|
|
5157
|
+
<h2 class="advanced-heading">Advanced</h2>
|
|
5158
|
+
<div id="advancedTabsMount"></div>
|
|
4596
5159
|
|
|
4597
|
-
<div id="advancedSyncContent">
|
|
5160
|
+
<div id="advancedSyncContent" role="tabpanel" aria-labelledby="advancedSyncButton">
|
|
4598
5161
|
|
|
4599
5162
|
<!-- Sub-view: main Sync surface. Toggled by syncViewController and
|
|
4600
5163
|
app compatibility routing for canonical and legacy hashes. -->
|
|
4601
5164
|
<div id="syncMainView">
|
|
4602
5165
|
|
|
5166
|
+
<section class="card advanced-sync-status">
|
|
5167
|
+
<div id="syncAdvancedStatusMount"></div>
|
|
5168
|
+
<div class="section-actions">
|
|
5169
|
+
<button class="settings-button" id="syncNowButton">Sync now</button>
|
|
5170
|
+
<a class="sync-subview-link" href="#advanced/sync/diagnostics">View diagnostics →</a>
|
|
5171
|
+
<button class="settings-save" id="syncTurnOnButton" type="button" hidden>Turn on sync</button>
|
|
5172
|
+
</div>
|
|
5173
|
+
</section>
|
|
5174
|
+
|
|
4603
5175
|
<!-- 1. Needs attention + team setup/status -->
|
|
4604
5176
|
<div class="card" id="syncTeamCard">
|
|
4605
5177
|
<div class="section-header">
|
|
4606
5178
|
<div class="section-header-title">
|
|
4607
|
-
<h2>
|
|
5179
|
+
<h2>Join a team</h2>
|
|
4608
5180
|
<span class="sync-online-badge" id="syncOnlineBadge" hidden role="status" aria-live="polite"></span>
|
|
4609
5181
|
</div>
|
|
4610
|
-
<div class="section-actions">
|
|
4611
|
-
<button class="settings-button" id="syncShareProjectsButton" type="button">Share projects</button>
|
|
4612
|
-
<button class="settings-button" id="syncNowButton">Sync now</button>
|
|
4613
|
-
<a class="sync-subview-link" href="#advanced/sync/diagnostics">View diagnostics →</a>
|
|
4614
|
-
</div>
|
|
4615
5182
|
</div>
|
|
4616
|
-
<div class="section-meta" id="syncTeamMeta"
|
|
5183
|
+
<div class="section-meta" id="syncTeamMeta" hidden></div>
|
|
4617
5184
|
<div class="sync-skeleton" id="syncTeamSkeleton" role="status" aria-label="Loading team sync">
|
|
4618
5185
|
<div class="sync-skeleton-line medium"></div>
|
|
4619
5186
|
<div class="sync-skeleton-block"></div>
|
|
@@ -4623,10 +5190,9 @@
|
|
|
4623
5190
|
<div id="syncSetupPanel">
|
|
4624
5191
|
<div id="syncJoinSection">
|
|
4625
5192
|
<h3 class="settings-group-title">Join a team</h3>
|
|
4626
|
-
<div class="
|
|
4627
|
-
|
|
4628
|
-
<
|
|
4629
|
-
<textarea class="feed-search" id="syncJoinInvite" placeholder="Paste a team invite or device pairing payload"></textarea>
|
|
5193
|
+
<div class="actor-create-row" id="syncJoinPanel" hidden>
|
|
5194
|
+
<label for="syncJoinInvite" class="sr-only">Invite or pairing code</label>
|
|
5195
|
+
<textarea class="feed-search" id="syncJoinInvite" placeholder="Invite or pairing code" rows="2"></textarea>
|
|
4630
5196
|
<div id="syncProjectInviteReview" role="region" aria-labelledby="syncProjectInviteReviewHeading" hidden>
|
|
4631
5197
|
<h4 id="syncProjectInviteReviewHeading" tabindex="-1">Review project invitation</h4>
|
|
4632
5198
|
<div class="section-meta" id="syncProjectInviteContext"></div>
|
|
@@ -4635,6 +5201,15 @@
|
|
|
4635
5201
|
<label for="syncRecipientDeviceName">This device</label>
|
|
4636
5202
|
<input class="feed-search" id="syncRecipientDeviceName" maxlength="120" />
|
|
4637
5203
|
</div>
|
|
5204
|
+
<div id="syncPairingReview" role="region" aria-labelledby="syncPairingReviewHeading" hidden>
|
|
5205
|
+
<h4 id="syncPairingReviewHeading" tabindex="-1">Review device pairing</h4>
|
|
5206
|
+
<p>Check these details with the other device. Accept only a device you trust.</p>
|
|
5207
|
+
<dl>
|
|
5208
|
+
<dt>Device ID</dt><dd id="syncPairingDeviceId" style="overflow-wrap: anywhere"></dd>
|
|
5209
|
+
<dt>Fingerprint</dt><dd id="syncPairingFingerprint" style="overflow-wrap: anywhere"></dd>
|
|
5210
|
+
<dt>Addresses</dt><dd id="syncPairingAddresses" style="white-space: pre-wrap; overflow-wrap: anywhere"></dd>
|
|
5211
|
+
</dl>
|
|
5212
|
+
</div>
|
|
4638
5213
|
<button class="settings-button" id="syncJoinButton">Review invite</button>
|
|
4639
5214
|
</div>
|
|
4640
5215
|
</div>
|
|
@@ -4650,19 +5225,24 @@
|
|
|
4650
5225
|
</div>
|
|
4651
5226
|
</div>
|
|
4652
5227
|
|
|
4653
|
-
<!-- 2. People
|
|
5228
|
+
<!-- 2. People and devices -->
|
|
4654
5229
|
<div class="card" style="animation-delay: 0.04s">
|
|
4655
|
-
<
|
|
5230
|
+
<div class="section-header">
|
|
5231
|
+
<h2>People and devices</h2>
|
|
5232
|
+
<a class="sync-subview-link" href="#sharing" id="advancedSharingLink">Invite someone via Sharing →</a>
|
|
5233
|
+
</div>
|
|
4656
5234
|
|
|
4657
|
-
<
|
|
4658
|
-
|
|
4659
|
-
|
|
5235
|
+
<div id="syncSharingReview" hidden>
|
|
5236
|
+
<h3 class="settings-group-title" style="margin-top: 20px">What teammates will receive</h3>
|
|
5237
|
+
<div class="section-meta" id="syncSharingReviewMeta"></div>
|
|
5238
|
+
<div class="actor-list" id="syncSharingReviewList"></div>
|
|
5239
|
+
</div>
|
|
4660
5240
|
|
|
4661
|
-
<details class="project-inventory-details" style="margin-top: 20px">
|
|
5241
|
+
<details class="project-inventory-details" id="manualDeviceIdentityControls" style="margin-top: 20px">
|
|
4662
5242
|
<summary>Manual device and identity controls</summary>
|
|
4663
5243
|
|
|
4664
5244
|
<h3 class="settings-group-title">People</h3>
|
|
4665
|
-
<div class="section-meta" id="syncActorsMeta"
|
|
5245
|
+
<div class="section-meta" id="syncActorsMeta"></div>
|
|
4666
5246
|
<div class="actor-create-row">
|
|
4667
5247
|
<div class="sync-labeled-field">
|
|
4668
5248
|
<label for="syncActorCreateInput" class="sync-labeled-field-caption">Person name</label>
|
|
@@ -4683,21 +5263,6 @@
|
|
|
4683
5263
|
<div class="device-row-skeleton"><span class="skel-pip"></span><span class="skel-name"></span><span class="skel-chip"></span></div>
|
|
4684
5264
|
<div class="device-row-skeleton"><span class="skel-pip"></span><span class="skel-name"></span><span class="skel-chip"></span></div>
|
|
4685
5265
|
</div>
|
|
4686
|
-
|
|
4687
|
-
<h3 class="settings-group-title" style="margin-top: 20px">Connect another device</h3>
|
|
4688
|
-
<div class="section-meta">Share this command on the new device to join it to the team.</div>
|
|
4689
|
-
<div class="actor-create-row">
|
|
4690
|
-
<div id="syncPairingDisclosureMount" style="display: contents"></div>
|
|
4691
|
-
</div>
|
|
4692
|
-
<div id="syncPairingPanelMount" style="display: contents"></div>
|
|
4693
|
-
</details>
|
|
4694
|
-
|
|
4695
|
-
<div id="syncSharingReview" hidden>
|
|
4696
|
-
<h3 class="settings-group-title" style="margin-top: 20px">What teammates will receive</h3>
|
|
4697
|
-
<div class="section-meta" id="syncSharingReviewMeta"></div>
|
|
4698
|
-
<div class="actor-list" id="syncSharingReviewList"></div>
|
|
4699
|
-
</div>
|
|
4700
|
-
|
|
4701
5266
|
<div id="syncLegacyClaims" hidden>
|
|
4702
5267
|
<h3 class="settings-group-title" style="margin-top: 20px">Legacy device history</h3>
|
|
4703
5268
|
<div class="peer-meta" id="syncLegacyClaimsMeta"></div>
|
|
@@ -4707,6 +5272,7 @@
|
|
|
4707
5272
|
<button class="sync-legacy-button" id="syncLegacyClaimButton">Attach device history</button>
|
|
4708
5273
|
</div>
|
|
4709
5274
|
</div>
|
|
5275
|
+
</details>
|
|
4710
5276
|
</div>
|
|
4711
5277
|
|
|
4712
5278
|
</div><!-- /#syncMainView -->
|
|
@@ -4728,7 +5294,8 @@
|
|
|
4728
5294
|
</label>
|
|
4729
5295
|
</div>
|
|
4730
5296
|
</div>
|
|
4731
|
-
<div class="section-meta" id="
|
|
5297
|
+
<div class="section-meta" id="syncPrimaryStatusDetail"></div>
|
|
5298
|
+
<div class="section-meta" id="syncMeta"></div>
|
|
4732
5299
|
<div class="sync-skeleton" id="syncDiagSkeleton" role="status" aria-label="Loading diagnostics">
|
|
4733
5300
|
<div class="sync-skeleton-line long"></div>
|
|
4734
5301
|
<div class="sync-skeleton-line medium"></div>
|
|
@@ -4743,30 +5310,21 @@
|
|
|
4743
5310
|
</div><!-- /#syncDiagnosticsView -->
|
|
4744
5311
|
</div><!-- /#advancedSyncContent -->
|
|
4745
5312
|
|
|
4746
|
-
<div id="advancedTeamsContent" hidden>
|
|
5313
|
+
<div id="advancedTeamsContent" role="tabpanel" aria-labelledby="advancedTeamsButton" hidden>
|
|
4747
5314
|
<div class="card">
|
|
4748
|
-
<
|
|
4749
|
-
|
|
4750
|
-
class="
|
|
4751
|
-
|
|
4752
|
-
>
|
|
4753
|
-
|
|
4754
|
-
|
|
4755
|
-
<div class="peer-submeta">
|
|
4756
|
-
Manage Team members, names, and Project access in Sharing. Use this page only for older coordinator groups and Spaces.
|
|
4757
|
-
</div>
|
|
4758
|
-
</div>
|
|
4759
|
-
<button class="settings-button" id="coordinatorAdminOpenSharing" type="button">Open Sharing</button>
|
|
4760
|
-
</aside>
|
|
4761
|
-
<details class="advanced-administration-disclosure" open>
|
|
4762
|
-
<summary>Coordinator Administration</summary>
|
|
4763
|
-
<div class="section-meta">Technical coordinator groups, Spaces, enrollment, and recovery controls.</div>
|
|
5315
|
+
<div class="section-header">
|
|
5316
|
+
<h2 id="coordinatorAdminHeading" tabindex="-1">Coordinator administration</h2>
|
|
5317
|
+
<a class="sync-subview-link" href="#sharing" id="advancedTeamSettingsLink">Team settings →</a>
|
|
5318
|
+
</div>
|
|
5319
|
+
<div class="section-meta advanced-administration-sections">Groups · Invites · Join requests · Devices</div>
|
|
5320
|
+
<details class="advanced-administration-disclosure" id="advancedAdministrationDisclosure">
|
|
5321
|
+
<summary>Legacy administration</summary>
|
|
4764
5322
|
<div id="coordinatorAdminMount"></div>
|
|
4765
5323
|
</details>
|
|
4766
5324
|
</div>
|
|
4767
5325
|
</div>
|
|
4768
5326
|
</div>
|
|
4769
5327
|
|
|
4770
|
-
<script src="/assets/app.js?v=
|
|
5328
|
+
<script src="/assets/app.js?v=a52e5e81ae2c"></script>
|
|
4771
5329
|
</body>
|
|
4772
5330
|
</html>
|