@codemem/server 0.46.3 → 0.47.0-beta.3
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/account/context.d.ts +41 -0
- package/dist/account/context.d.ts.map +1 -0
- package/dist/account/guard.d.ts +13 -0
- package/dist/account/guard.d.ts.map +1 -0
- package/dist/account/link-registry.d.ts +51 -0
- package/dist/account/link-registry.d.ts.map +1 -0
- package/dist/account/status.d.ts +65 -0
- package/dist/account/status.d.ts.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1579 -396
- package/dist/index.js.map +1 -1
- package/dist/routes/account-operations.d.ts +11 -0
- package/dist/routes/account-operations.d.ts.map +1 -0
- package/dist/routes/account-status.d.ts +7 -0
- package/dist/routes/account-status.d.ts.map +1 -0
- package/dist/routes/account.d.ts +9 -0
- package/dist/routes/account.d.ts.map +1 -0
- package/dist/routes/file-context.d.ts +4 -0
- package/dist/routes/file-context.d.ts.map +1 -0
- package/dist/routes/memory-tools.d.ts.map +1 -1
- package/dist/routes/memory.d.ts.map +1 -1
- package/dist/routes/stats.d.ts.map +1 -1
- package/dist/routes/sync.d.ts +1 -29
- package/dist/routes/sync.d.ts.map +1 -1
- package/dist/routes/target-validation.d.ts.map +1 -1
- package/dist/routes/team-setup.d.ts.map +1 -1
- package/package.json +2 -2
- package/static/app.js +52 -49
- package/static/app.js.br +0 -0
- package/static/app.js.gz +0 -0
- package/static/controls.css +175 -3
- package/static/controls.css.br +0 -0
- package/static/controls.css.gz +0 -0
- package/static/index.html +109 -305
package/static/index.html
CHANGED
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
10
10
|
<link href="https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet" />
|
|
11
|
-
<script src="https://unpkg.com/lucide@latest"></script>
|
|
12
11
|
<script>
|
|
13
12
|
(function() {
|
|
14
13
|
try {
|
|
@@ -31,13 +30,46 @@
|
|
|
31
30
|
1. Dark defaults from tokens.css (:root).
|
|
32
31
|
2. Light overrides from themes.css ([data-theme="light"] +
|
|
33
32
|
@media (prefers-color-scheme: light)).
|
|
34
|
-
3.
|
|
33
|
+
3. Shared controls from controls.css.
|
|
35
34
|
4. The component-level rules below, which reference the tokens
|
|
36
35
|
via var(--...).
|
|
37
36
|
Edit packages/ui/static/tokens.css and themes.css to change the
|
|
38
|
-
token surface, controls.css for
|
|
37
|
+
token surface, controls.css for shared-control defaults, and this
|
|
39
38
|
<style> block for per-component styling. */
|
|
40
39
|
|
|
40
|
+
/* My Account profile: keep these rules local to the linked card. */
|
|
41
|
+
.my-account-profile {
|
|
42
|
+
display: flex;
|
|
43
|
+
align-items: center;
|
|
44
|
+
gap: 0.75rem;
|
|
45
|
+
}
|
|
46
|
+
.my-account-profile-text {
|
|
47
|
+
min-width: 0;
|
|
48
|
+
overflow-wrap: anywhere;
|
|
49
|
+
}
|
|
50
|
+
.my-account-profile-text p { margin: 0.25rem 0 0; }
|
|
51
|
+
.my-account-technical-details { overflow-wrap: anywhere; }
|
|
52
|
+
.my-account-avatar {
|
|
53
|
+
position: relative;
|
|
54
|
+
display: inline-flex;
|
|
55
|
+
align-items: center;
|
|
56
|
+
justify-content: center;
|
|
57
|
+
flex: 0 0 3rem;
|
|
58
|
+
width: 3rem;
|
|
59
|
+
height: 3rem;
|
|
60
|
+
border: 1px solid var(--border);
|
|
61
|
+
border-radius: 50%;
|
|
62
|
+
overflow: hidden;
|
|
63
|
+
font-weight: 600;
|
|
64
|
+
}
|
|
65
|
+
.my-account-avatar img {
|
|
66
|
+
position: absolute;
|
|
67
|
+
inset: 0;
|
|
68
|
+
width: 100%;
|
|
69
|
+
height: 100%;
|
|
70
|
+
object-fit: cover;
|
|
71
|
+
}
|
|
72
|
+
|
|
41
73
|
/* ── Reset & base ──────────────────────────────────────── */
|
|
42
74
|
|
|
43
75
|
*, *::before, *::after { box-sizing: border-box; margin: 0; }
|
|
@@ -973,9 +1005,6 @@
|
|
|
973
1005
|
below only override padding / sizing / colors / typography.
|
|
974
1006
|
Markup stays unchanged; each variant class continues to work
|
|
975
1007
|
standalone. */
|
|
976
|
-
.btn,
|
|
977
|
-
.settings-button,
|
|
978
|
-
.sync-legacy-button,
|
|
979
1008
|
.feed-menu-trigger,
|
|
980
1009
|
.feed-expand {
|
|
981
1010
|
display: inline-flex;
|
|
@@ -991,10 +1020,6 @@
|
|
|
991
1020
|
border: 1px solid var(--control-border);
|
|
992
1021
|
background: var(--control-bg);
|
|
993
1022
|
color: var(--control-text);
|
|
994
|
-
padding: 5px 12px;
|
|
995
|
-
min-width: 28px;
|
|
996
|
-
min-height: 28px;
|
|
997
|
-
font-size: var(--font-size-sm);
|
|
998
1023
|
transition: background var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);
|
|
999
1024
|
}
|
|
1000
1025
|
.settings-button:hover {
|
|
@@ -1200,21 +1225,8 @@
|
|
|
1200
1225
|
/* ── Selects / inputs ──────────────────────────────────── */
|
|
1201
1226
|
|
|
1202
1227
|
.project-filter {
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
border: 1px solid var(--border);
|
|
1206
|
-
background: var(--input-bg);
|
|
1207
|
-
color: var(--text-primary);
|
|
1208
|
-
font-family: var(--font-sans);
|
|
1209
|
-
font-size: var(--font-size-sm);
|
|
1210
|
-
cursor: pointer;
|
|
1211
|
-
transition: border-color var(--duration-fast) var(--ease-standard);
|
|
1212
|
-
}
|
|
1213
|
-
.project-filter:hover { border-color: var(--border-hover); }
|
|
1214
|
-
.project-filter:focus {
|
|
1215
|
-
outline: none;
|
|
1216
|
-
border-color: var(--accent);
|
|
1217
|
-
box-shadow: 0 0 0 3px var(--focus-ring);
|
|
1228
|
+
min-width: 96px;
|
|
1229
|
+
max-width: 240px;
|
|
1218
1230
|
}
|
|
1219
1231
|
|
|
1220
1232
|
.projects-toolbar {
|
|
@@ -1301,12 +1313,7 @@
|
|
|
1301
1313
|
.project-inventory-badges:empty { display: none; }
|
|
1302
1314
|
.project-inventory-row-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--sp-2); }
|
|
1303
1315
|
.project-inventory-row-actions .settings-button { min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
|
|
1304
|
-
.project-row-menu {
|
|
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; }
|
|
1316
|
+
.project-row-menu { flex: 0 0 auto; }
|
|
1310
1317
|
.project-inventory-details { background: var(--surface-2); }
|
|
1311
1318
|
.project-inventory-details-row,
|
|
1312
1319
|
.project-inventory-details-cell { display: block; min-width: 0; }
|
|
@@ -1334,14 +1341,8 @@
|
|
|
1334
1341
|
.project-detail-grid dd { margin: 0; overflow-wrap: anywhere; color: var(--text-primary); }
|
|
1335
1342
|
.project-inventory-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-4); }
|
|
1336
1343
|
.project-domain-select {
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
border: 1px solid var(--border);
|
|
1340
|
-
border-radius: var(--radius-sm);
|
|
1341
|
-
background: var(--input-bg);
|
|
1342
|
-
color: var(--text-primary);
|
|
1343
|
-
font-family: var(--font-sans);
|
|
1344
|
-
font-size: var(--font-size-md);
|
|
1344
|
+
--select-width: auto;
|
|
1345
|
+
--select-min-width: min(100%, 260px);
|
|
1345
1346
|
}
|
|
1346
1347
|
.project-guardrail-confirmation { flex-basis: 100%; margin-top: var(--sp-2); }
|
|
1347
1348
|
.projects-pagination { margin-top: var(--sp-4); }
|
|
@@ -1349,8 +1350,6 @@
|
|
|
1349
1350
|
.project-selection-checkbox { width: 18px; height: 18px; }
|
|
1350
1351
|
.project-recipient-summary { min-width: 0; }
|
|
1351
1352
|
.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
1353
|
.project-inventory-child-row { padding-left: var(--sp-5); }
|
|
1355
1354
|
.project-inventory-cluster + .project-inventory-child .project-inventory-child-row { border-top: 1px solid var(--border); }
|
|
1356
1355
|
.recipient-policy-review-section + .recipient-policy-review-section { margin-top: var(--sp-5); }
|
|
@@ -1366,7 +1365,6 @@
|
|
|
1366
1365
|
justify-content: space-between;
|
|
1367
1366
|
gap: var(--sp-4);
|
|
1368
1367
|
}
|
|
1369
|
-
}
|
|
1370
1368
|
.recipient-policy-review-count {
|
|
1371
1369
|
color: var(--text-tertiary);
|
|
1372
1370
|
font-weight: var(--font-weight-regular);
|
|
@@ -1423,7 +1421,6 @@
|
|
|
1423
1421
|
margin-top: var(--sp-1);
|
|
1424
1422
|
}
|
|
1425
1423
|
.recipient-policy-review-meta .badge { margin-left: var(--sp-2); }
|
|
1426
|
-
.recipient-policy-review-select { min-width: 0; width: 100%; }
|
|
1427
1424
|
.recipient-policy-review-details {
|
|
1428
1425
|
grid-column: 1 / -1;
|
|
1429
1426
|
padding: var(--sp-3) 0 var(--sp-1);
|
|
@@ -1475,12 +1472,15 @@
|
|
|
1475
1472
|
list-style: none;
|
|
1476
1473
|
}
|
|
1477
1474
|
.project-recipient-chip {
|
|
1475
|
+
overflow: hidden;
|
|
1478
1476
|
padding: 3px 9px;
|
|
1479
1477
|
border: 1px solid var(--border);
|
|
1480
1478
|
border-radius: var(--radius-pill);
|
|
1481
1479
|
background: var(--surface-2);
|
|
1482
1480
|
color: var(--text-primary);
|
|
1483
1481
|
font-size: var(--font-size-xs);
|
|
1482
|
+
text-overflow: ellipsis;
|
|
1483
|
+
white-space: nowrap;
|
|
1484
1484
|
}
|
|
1485
1485
|
.project-advanced-administration { margin-top: var(--sp-3); }
|
|
1486
1486
|
.project-advanced-surface summary,
|
|
@@ -1559,8 +1559,6 @@
|
|
|
1559
1559
|
}
|
|
1560
1560
|
.legacy-team-device-row label { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); }
|
|
1561
1561
|
.legacy-team-device-evidence { display: grid; gap: var(--sp-1); }
|
|
1562
|
-
.legacy-team-device-select { box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; margin: 0; }
|
|
1563
|
-
.legacy-team-device-select:disabled { opacity: 0.55; cursor: not-allowed; }
|
|
1564
1562
|
.legacy-team-device-actions { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
|
|
1565
1563
|
.legacy-team-project-list {
|
|
1566
1564
|
display: grid;
|
|
@@ -1595,8 +1593,6 @@
|
|
|
1595
1593
|
}
|
|
1596
1594
|
.legacy-team-project-row-content > * { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
|
|
1597
1595
|
.legacy-team-project-row label { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); }
|
|
1598
|
-
.legacy-team-project-select { box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; margin: 0; }
|
|
1599
|
-
.legacy-team-project-select:disabled { opacity: 0.55; cursor: not-allowed; }
|
|
1600
1596
|
.legacy-team-setup-row-needs-attention {
|
|
1601
1597
|
border-color: var(--accent);
|
|
1602
1598
|
background: var(--accent-subtle);
|
|
@@ -2003,8 +1999,6 @@
|
|
|
2003
1999
|
.device-identity-rebind legend { padding: 0 var(--sp-2); font-weight: var(--font-weight-semibold); }
|
|
2004
2000
|
.device-identity-setup-card label,
|
|
2005
2001
|
.device-identity-rebind label { display: flex; align-items: center; gap: var(--sp-2); }
|
|
2006
|
-
.device-identity-setup-card select,
|
|
2007
|
-
.device-identity-rebind select { width: 100%; min-height: 36px; }
|
|
2008
2002
|
.device-identity-rebind { margin-top: var(--sp-4); }
|
|
2009
2003
|
.device-identity-rebind-review { display: grid; gap: var(--sp-3); padding-top: var(--sp-2); }
|
|
2010
2004
|
.device-identity-review-panel { margin-top: var(--sp-4); }
|
|
@@ -2113,11 +2107,6 @@
|
|
|
2113
2107
|
.devices-table-version { color: var(--text-tertiary); font-family: var(--font-mono); font-size: var(--font-size-xs); }
|
|
2114
2108
|
.devices-table-sync { display: grid; gap: 2px; color: var(--text-tertiary); font-size: var(--font-size-xs); }
|
|
2115
2109
|
.devices-table-sync strong { color: var(--text-secondary); font-weight: var(--font-weight-medium); }
|
|
2116
|
-
.devices-row-menu { position: relative; }
|
|
2117
|
-
.devices-row-menu > summary { list-style: none; }
|
|
2118
|
-
.devices-row-menu > summary::-webkit-details-marker { display: none; }
|
|
2119
|
-
.devices-row-menu[open] > .feed-menu-trigger { background: var(--surface-2); color: var(--text-primary); border-color: var(--border-hover); }
|
|
2120
|
-
.devices-row-menu > .feed-menu-panel { position: absolute; top: calc(100% + 4px); right: 0; }
|
|
2121
2110
|
.devices-table-details { border-top: 1px solid var(--border); background: var(--surface-2); }
|
|
2122
2111
|
.devices-table-details > td { display: grid; gap: var(--sp-3); padding: var(--sp-4) var(--sp-6); }
|
|
2123
2112
|
.devices-table-details p { margin: 0; }
|
|
@@ -2221,8 +2210,8 @@
|
|
|
2221
2210
|
|
|
2222
2211
|
/* 36×36 square icon buttons — theme toggle, settings gear. */
|
|
2223
2212
|
.icon-button {
|
|
2224
|
-
width:
|
|
2225
|
-
height:
|
|
2213
|
+
width: var(--control-button-height);
|
|
2214
|
+
height: var(--control-button-height);
|
|
2226
2215
|
padding: 0;
|
|
2227
2216
|
display: inline-flex;
|
|
2228
2217
|
align-items: center;
|
|
@@ -2309,14 +2298,6 @@
|
|
|
2309
2298
|
transition: border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);
|
|
2310
2299
|
}
|
|
2311
2300
|
.feed-search::placeholder { color: var(--text-tertiary); }
|
|
2312
|
-
.feed-search:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--focus-ring); }
|
|
2313
|
-
.feed-search.legacy-team-device-select,
|
|
2314
|
-
.feed-search.legacy-team-project-select {
|
|
2315
|
-
box-sizing: border-box;
|
|
2316
|
-
width: 100%;
|
|
2317
|
-
min-width: 0;
|
|
2318
|
-
max-width: 100%;
|
|
2319
|
-
}
|
|
2320
2301
|
|
|
2321
2302
|
.feed-inspector-files {
|
|
2322
2303
|
width: 100%;
|
|
@@ -2335,10 +2316,6 @@
|
|
|
2335
2316
|
transition: border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);
|
|
2336
2317
|
}
|
|
2337
2318
|
.feed-inspector-files::placeholder { color: var(--text-tertiary); }
|
|
2338
|
-
.feed-inspector-files:focus {
|
|
2339
|
-
border-color: var(--accent);
|
|
2340
|
-
box-shadow: 0 0 0 3px var(--focus-ring);
|
|
2341
|
-
}
|
|
2342
2319
|
|
|
2343
2320
|
.feed-toggle {
|
|
2344
2321
|
display: inline-flex;
|
|
@@ -2527,11 +2504,14 @@
|
|
|
2527
2504
|
|
|
2528
2505
|
.feed-menu-panel {
|
|
2529
2506
|
min-width: 180px;
|
|
2530
|
-
|
|
2531
|
-
|
|
2507
|
+
max-width: min(420px, var(--radix-dropdown-menu-content-available-width));
|
|
2508
|
+
max-height: var(--radix-dropdown-menu-content-available-height);
|
|
2509
|
+
overflow-y: auto;
|
|
2510
|
+
padding: var(--popup-padding);
|
|
2511
|
+
border-radius: var(--popup-radius);
|
|
2532
2512
|
border: 1px solid var(--border);
|
|
2533
2513
|
background: var(--surface-1);
|
|
2534
|
-
box-shadow: var(--shadow
|
|
2514
|
+
box-shadow: var(--popup-shadow);
|
|
2535
2515
|
z-index: 24;
|
|
2536
2516
|
}
|
|
2537
2517
|
.feed-menu-trigger {
|
|
@@ -2557,29 +2537,40 @@
|
|
|
2557
2537
|
box-shadow: 0 0 0 4px var(--focus-ring);
|
|
2558
2538
|
}
|
|
2559
2539
|
.feed-menu-item {
|
|
2540
|
+
border: 0;
|
|
2541
|
+
background: transparent;
|
|
2542
|
+
font-family: inherit;
|
|
2543
|
+
text-align: left;
|
|
2560
2544
|
display: flex;
|
|
2561
2545
|
align-items: center;
|
|
2562
2546
|
width: 100%;
|
|
2563
|
-
min-height:
|
|
2547
|
+
min-height: var(--control-button-height);
|
|
2564
2548
|
padding: 8px 10px;
|
|
2565
2549
|
border-radius: var(--radius-md);
|
|
2566
2550
|
color: var(--text-primary);
|
|
2567
2551
|
font-size: var(--font-size-md);
|
|
2568
2552
|
cursor: pointer;
|
|
2569
2553
|
user-select: none;
|
|
2554
|
+
white-space: normal;
|
|
2555
|
+
overflow-wrap: anywhere;
|
|
2570
2556
|
outline: none;
|
|
2571
2557
|
}
|
|
2572
|
-
.feed-menu-item[data-
|
|
2558
|
+
.feed-menu-item:not([data-disabled]):not(:disabled):hover,
|
|
2559
|
+
.feed-menu-item:not([data-disabled]):not(:disabled):focus-visible,
|
|
2560
|
+
.feed-menu-item:not([data-disabled]):not(:disabled)[data-highlighted] {
|
|
2573
2561
|
background: var(--surface-2);
|
|
2574
2562
|
}
|
|
2575
|
-
.feed-menu-item[data-disabled] {
|
|
2576
|
-
color: var(--text-tertiary);
|
|
2577
|
-
cursor: default;
|
|
2578
|
-
}
|
|
2579
2563
|
.feed-menu-item.danger {
|
|
2580
2564
|
color: var(--accent-warm);
|
|
2581
2565
|
}
|
|
2582
|
-
.feed-menu-item
|
|
2566
|
+
.feed-menu-item[data-disabled],
|
|
2567
|
+
.feed-menu-item:disabled {
|
|
2568
|
+
color: var(--text-tertiary);
|
|
2569
|
+
cursor: default;
|
|
2570
|
+
}
|
|
2571
|
+
.feed-menu-item.danger:not([data-disabled]):not(:disabled):hover,
|
|
2572
|
+
.feed-menu-item.danger:not([data-disabled]):not(:disabled):focus-visible,
|
|
2573
|
+
.feed-menu-item.danger:not([data-disabled]):not(:disabled)[data-highlighted] {
|
|
2583
2574
|
background: rgba(212, 100, 46, 0.1);
|
|
2584
2575
|
}
|
|
2585
2576
|
|
|
@@ -2908,24 +2899,14 @@
|
|
|
2908
2899
|
min-width: 0;
|
|
2909
2900
|
}
|
|
2910
2901
|
.feed-visibility-select {
|
|
2911
|
-
display: inline-flex;
|
|
2912
|
-
align-items: center;
|
|
2913
|
-
justify-content: space-between;
|
|
2914
|
-
gap: var(--sp-2);
|
|
2915
2902
|
width: 124px;
|
|
2916
|
-
min-width: 0;
|
|
2917
2903
|
min-height: 30px;
|
|
2918
2904
|
padding: 6px 10px;
|
|
2919
2905
|
border-radius: var(--radius-pill);
|
|
2920
|
-
border: 1px solid var(--border);
|
|
2921
|
-
background: var(--input-bg);
|
|
2922
|
-
color: var(--text-primary);
|
|
2923
|
-
font-family: var(--font-sans);
|
|
2924
2906
|
font-size: var(--font-size-sm);
|
|
2925
2907
|
letter-spacing: normal;
|
|
2926
2908
|
text-transform: none;
|
|
2927
2909
|
}
|
|
2928
|
-
.feed-visibility-content { z-index: 30; }
|
|
2929
2910
|
|
|
2930
2911
|
.feed-tags { display: flex; flex-wrap: wrap; gap: 6px; }
|
|
2931
2912
|
/* File paths render as compact pill-tags in their own row — the actual
|
|
@@ -3345,7 +3326,16 @@
|
|
|
3345
3326
|
.peer-scope-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-2); }
|
|
3346
3327
|
.peer-scope-editor { display: grid; gap: 8px; }
|
|
3347
3328
|
.peer-scope-chips { display: flex; flex-wrap: wrap; gap: 6px; min-height: 32px; align-items: flex-start; padding: 8px 10px; margin: 0; list-style: none; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-2); }
|
|
3348
|
-
.peer-scope-chip {
|
|
3329
|
+
.peer-scope-chip {
|
|
3330
|
+
min-width: 0;
|
|
3331
|
+
max-width: 100%;
|
|
3332
|
+
white-space: normal;
|
|
3333
|
+
overflow-wrap: anywhere;
|
|
3334
|
+
padding: 4px 8px;
|
|
3335
|
+
background: rgba(43, 122, 176, 0.12);
|
|
3336
|
+
color: var(--accent);
|
|
3337
|
+
font-size: var(--font-size-sm);
|
|
3338
|
+
}
|
|
3349
3339
|
.peer-scope-chip.empty { background: transparent; color: var(--text-tertiary); border-style: dashed; border-color: var(--border); }
|
|
3350
3340
|
|
|
3351
3341
|
/* ProjectScopePicker — selected chips on top, an "Add project"
|
|
@@ -3414,11 +3404,11 @@
|
|
|
3414
3404
|
display: grid;
|
|
3415
3405
|
grid-template-rows: auto 1fr;
|
|
3416
3406
|
gap: 4px;
|
|
3417
|
-
padding:
|
|
3407
|
+
padding: var(--popup-padding);
|
|
3418
3408
|
background: var(--surface-1);
|
|
3419
3409
|
border: 1px solid var(--border);
|
|
3420
|
-
border-radius: var(--radius
|
|
3421
|
-
box-shadow: var(--shadow
|
|
3410
|
+
border-radius: var(--popup-radius);
|
|
3411
|
+
box-shadow: var(--popup-shadow);
|
|
3422
3412
|
z-index: 50;
|
|
3423
3413
|
}
|
|
3424
3414
|
/* Vanilla-DOM popover (peer-scope) anchors inline under its trigger;
|
|
@@ -3442,10 +3432,6 @@
|
|
|
3442
3432
|
font: inherit;
|
|
3443
3433
|
font-size: var(--font-size-md);
|
|
3444
3434
|
}
|
|
3445
|
-
.project-scope-picker-search:focus {
|
|
3446
|
-
outline: 2px solid var(--accent);
|
|
3447
|
-
outline-offset: 1px;
|
|
3448
|
-
}
|
|
3449
3435
|
.project-scope-picker-results {
|
|
3450
3436
|
margin: 0;
|
|
3451
3437
|
padding: 4px 0;
|
|
@@ -3732,89 +3718,11 @@
|
|
|
3732
3718
|
max-width: 100%;
|
|
3733
3719
|
flex: 1 1 320px;
|
|
3734
3720
|
}
|
|
3735
|
-
.sync-radix-select-trigger {
|
|
3736
|
-
display: inline-flex;
|
|
3737
|
-
align-items: center;
|
|
3738
|
-
justify-content: space-between;
|
|
3739
|
-
gap: 8px;
|
|
3740
|
-
width: 100%;
|
|
3741
|
-
text-align: left;
|
|
3742
|
-
}
|
|
3743
|
-
.sync-radix-select-trigger > span:first-child {
|
|
3744
|
-
min-width: 0;
|
|
3745
|
-
overflow: hidden;
|
|
3746
|
-
text-overflow: ellipsis;
|
|
3747
|
-
white-space: nowrap;
|
|
3748
|
-
}
|
|
3749
|
-
.sync-radix-select-icon {
|
|
3750
|
-
color: var(--text-tertiary);
|
|
3751
|
-
flex: 0 0 auto;
|
|
3752
|
-
}
|
|
3753
|
-
.sync-radix-select-content {
|
|
3754
|
-
z-index: 30;
|
|
3755
|
-
min-width: var(--radix-select-trigger-width);
|
|
3756
|
-
max-width: min(420px, calc(100vw - 24px));
|
|
3757
|
-
overflow: hidden;
|
|
3758
|
-
border: 1px solid var(--border);
|
|
3759
|
-
border-radius: var(--radius-md);
|
|
3760
|
-
background: var(--surface-1);
|
|
3761
|
-
box-shadow: var(--shadow-lg);
|
|
3762
|
-
}
|
|
3763
|
-
.sync-radix-select-viewport {
|
|
3764
|
-
padding: 6px;
|
|
3765
|
-
}
|
|
3766
|
-
.sync-radix-select-item {
|
|
3767
|
-
position: relative;
|
|
3768
|
-
display: flex;
|
|
3769
|
-
align-items: center;
|
|
3770
|
-
justify-content: space-between;
|
|
3771
|
-
gap: 12px;
|
|
3772
|
-
min-height: 36px;
|
|
3773
|
-
padding: 8px 12px;
|
|
3774
|
-
border-radius: var(--radius-sm);
|
|
3775
|
-
color: var(--text-primary);
|
|
3776
|
-
font-family: var(--font-sans);
|
|
3777
|
-
font-size: var(--font-size-md);
|
|
3778
|
-
cursor: pointer;
|
|
3779
|
-
user-select: none;
|
|
3780
|
-
}
|
|
3781
|
-
.sync-radix-select-item[data-highlighted] {
|
|
3782
|
-
outline: none;
|
|
3783
|
-
background: var(--accent-subtle);
|
|
3784
|
-
color: var(--accent);
|
|
3785
|
-
}
|
|
3786
|
-
.sync-radix-select-item[data-disabled] {
|
|
3787
|
-
opacity: 0.45;
|
|
3788
|
-
cursor: default;
|
|
3789
|
-
}
|
|
3790
|
-
.sync-radix-select-indicator {
|
|
3791
|
-
color: var(--accent);
|
|
3792
|
-
flex: 0 0 auto;
|
|
3793
|
-
}
|
|
3794
3721
|
.sync-legacy-claim-row { margin-top: 12px; gap: 12px; align-items: center; flex-wrap: wrap; }
|
|
3795
|
-
.sync-legacy-select {
|
|
3796
|
-
padding: 8px 12px;
|
|
3797
|
-
border-radius: var(--radius-md);
|
|
3798
|
-
border: 1px solid var(--border);
|
|
3799
|
-
background: var(--input-bg);
|
|
3800
|
-
color: var(--text-primary);
|
|
3801
|
-
font-family: var(--font-sans);
|
|
3802
|
-
font-size: var(--font-size-md);
|
|
3803
|
-
cursor: pointer;
|
|
3804
|
-
transition: border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);
|
|
3805
|
-
}
|
|
3806
|
-
.sync-legacy-select:hover { border-color: var(--border-hover); }
|
|
3807
|
-
.sync-legacy-select:focus {
|
|
3808
|
-
outline: none;
|
|
3809
|
-
border-color: var(--accent);
|
|
3810
|
-
box-shadow: 0 0 0 3px var(--focus-ring);
|
|
3811
|
-
}
|
|
3812
3722
|
.sync-legacy-button {
|
|
3813
3723
|
border: 1px solid var(--control-border);
|
|
3814
3724
|
background: var(--control-bg);
|
|
3815
3725
|
color: var(--control-text);
|
|
3816
|
-
padding: 8px 14px;
|
|
3817
|
-
font-size: var(--font-size-md);
|
|
3818
3726
|
font-weight: var(--font-weight-semibold);
|
|
3819
3727
|
transition: background var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);
|
|
3820
3728
|
}
|
|
@@ -3831,23 +3739,6 @@
|
|
|
3831
3739
|
cursor: default;
|
|
3832
3740
|
transform: none;
|
|
3833
3741
|
}
|
|
3834
|
-
.sync-actor-select {
|
|
3835
|
-
padding: 8px 12px;
|
|
3836
|
-
border-radius: var(--radius-md);
|
|
3837
|
-
border: 1px solid var(--border);
|
|
3838
|
-
background: var(--input-bg);
|
|
3839
|
-
color: var(--text-primary);
|
|
3840
|
-
font-family: var(--font-sans);
|
|
3841
|
-
font-size: var(--font-size-md);
|
|
3842
|
-
cursor: pointer;
|
|
3843
|
-
transition: border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);
|
|
3844
|
-
}
|
|
3845
|
-
.sync-actor-select:hover { border-color: var(--border-hover); }
|
|
3846
|
-
.sync-actor-select:focus {
|
|
3847
|
-
outline: none;
|
|
3848
|
-
border-color: var(--accent);
|
|
3849
|
-
box-shadow: 0 0 0 3px var(--focus-ring);
|
|
3850
|
-
}
|
|
3851
3742
|
.peer-meta { font-size: var(--font-size-md); color: var(--text-tertiary); font-feature-settings: 'tnum' 1; }
|
|
3852
3743
|
.peer-addresses { font-family: var(--font-mono); font-size: var(--font-size-sm); color: var(--text-tertiary); letter-spacing: 0.02em; }
|
|
3853
3744
|
.attempts-list { margin-top: var(--sp-3); display: grid; gap: 6px; font-size: var(--font-size-md); color: var(--text-tertiary); }
|
|
@@ -3921,16 +3812,6 @@
|
|
|
3921
3812
|
flex-shrink: 0;
|
|
3922
3813
|
}
|
|
3923
3814
|
.diagnostics-controls label { display: grid; gap: 5px; color: var(--text-secondary); font-size: var(--font-size-sm); }
|
|
3924
|
-
.diagnostics-controls select {
|
|
3925
|
-
width: 100%;
|
|
3926
|
-
min-height: 36px;
|
|
3927
|
-
border: 1px solid var(--border);
|
|
3928
|
-
border-radius: var(--radius-md);
|
|
3929
|
-
padding: 6px 10px;
|
|
3930
|
-
background: var(--input-bg);
|
|
3931
|
-
color: var(--text-primary);
|
|
3932
|
-
}
|
|
3933
|
-
.diagnostics-controls select:focus-visible,
|
|
3934
3815
|
.diagnostics-new-events:focus-visible,
|
|
3935
3816
|
.diagnostics-recovery:focus-visible {
|
|
3936
3817
|
outline: 2px solid var(--accent);
|
|
@@ -4053,6 +3934,7 @@
|
|
|
4053
3934
|
timestamps, full file paths). Mono by default since most hints
|
|
4054
3935
|
are paths / timestamps; callers can override per instance. */
|
|
4055
3936
|
.tooltip-content {
|
|
3937
|
+
position: relative;
|
|
4056
3938
|
background: var(--surface-1);
|
|
4057
3939
|
border: 1px solid var(--border);
|
|
4058
3940
|
border-radius: var(--radius-sm);
|
|
@@ -4521,56 +4403,6 @@
|
|
|
4521
4403
|
.settings-config-details { margin-top: var(--sp-4); font-size: var(--font-size-xs); overflow-wrap: anywhere; }
|
|
4522
4404
|
.settings-outcome strong { color: var(--text-secondary); font-weight: var(--font-weight-medium); }
|
|
4523
4405
|
.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); }
|
|
4524
|
-
.settings-select-trigger {
|
|
4525
|
-
display: inline-flex;
|
|
4526
|
-
align-items: center;
|
|
4527
|
-
justify-content: space-between;
|
|
4528
|
-
gap: 8px;
|
|
4529
|
-
width: 100%;
|
|
4530
|
-
padding: var(--sp-2) var(--sp-3);
|
|
4531
|
-
border-radius: var(--radius-sm);
|
|
4532
|
-
border: 1px solid var(--border);
|
|
4533
|
-
background: var(--input-bg);
|
|
4534
|
-
color: var(--text-primary);
|
|
4535
|
-
font-family: var(--font-sans);
|
|
4536
|
-
font-size: var(--font-size-md);
|
|
4537
|
-
text-align: left;
|
|
4538
|
-
}
|
|
4539
|
-
.settings-select-trigger:hover { border-color: var(--border-hover); }
|
|
4540
|
-
.settings-select-trigger:focus {
|
|
4541
|
-
outline: none;
|
|
4542
|
-
border-color: var(--accent);
|
|
4543
|
-
box-shadow: 0 0 0 3px var(--focus-ring);
|
|
4544
|
-
}
|
|
4545
|
-
.settings-select-content {
|
|
4546
|
-
z-index: 30;
|
|
4547
|
-
min-width: var(--radix-select-trigger-width);
|
|
4548
|
-
overflow: hidden;
|
|
4549
|
-
border: 1px solid var(--border);
|
|
4550
|
-
border-radius: var(--radius-md);
|
|
4551
|
-
background: var(--surface-1);
|
|
4552
|
-
box-shadow: var(--shadow-lg);
|
|
4553
|
-
}
|
|
4554
|
-
.settings-select-viewport { padding: 6px; }
|
|
4555
|
-
.settings-select-item {
|
|
4556
|
-
min-height: 36px;
|
|
4557
|
-
display: flex;
|
|
4558
|
-
align-items: center;
|
|
4559
|
-
justify-content: space-between;
|
|
4560
|
-
gap: 12px;
|
|
4561
|
-
padding: 8px 12px;
|
|
4562
|
-
border-radius: var(--radius-sm);
|
|
4563
|
-
color: var(--text-primary);
|
|
4564
|
-
font-family: var(--font-sans);
|
|
4565
|
-
font-size: var(--font-size-md);
|
|
4566
|
-
cursor: pointer;
|
|
4567
|
-
user-select: none;
|
|
4568
|
-
}
|
|
4569
|
-
.settings-select-item[data-highlighted] {
|
|
4570
|
-
outline: none;
|
|
4571
|
-
background: var(--accent-subtle);
|
|
4572
|
-
color: var(--accent);
|
|
4573
|
-
}
|
|
4574
4406
|
.field-checkbox { flex-direction: row; align-items: center; gap: 8px; }
|
|
4575
4407
|
.field-checkbox input[type="checkbox"] { width: 14px; height: 14px; margin: 0; }
|
|
4576
4408
|
.field-checkbox label { margin: 0; }
|
|
@@ -4637,30 +4469,20 @@
|
|
|
4637
4469
|
border: 1px solid var(--control-border);
|
|
4638
4470
|
background: var(--control-bg);
|
|
4639
4471
|
color: var(--control-text);
|
|
4640
|
-
padding: var(--sp-2) var(--sp-4);
|
|
4641
|
-
border-radius: var(--radius-md);
|
|
4642
|
-
font-family: var(--font-sans);
|
|
4643
|
-
font-size: var(--font-size-sm);
|
|
4644
4472
|
cursor: pointer;
|
|
4645
4473
|
transition: background var(--duration-fast) var(--ease-standard);
|
|
4646
4474
|
}
|
|
4647
4475
|
.settings-save:hover { background: var(--control-hover-bg); }
|
|
4648
|
-
/* Text actions share geometry; icon, tab, and segmented controls retain theirs. */
|
|
4649
|
-
.settings-button,
|
|
4650
|
-
.settings-save {
|
|
4651
|
-
display: inline-flex;
|
|
4652
|
-
align-items: center;
|
|
4653
|
-
justify-content: center;
|
|
4654
|
-
box-sizing: border-box;
|
|
4655
|
-
min-height: 36px;
|
|
4656
|
-
padding: 8px 12px;
|
|
4657
|
-
border-radius: var(--radius-md);
|
|
4658
|
-
font-size: var(--font-size-sm);
|
|
4659
|
-
line-height: 18px;
|
|
4660
|
-
}
|
|
4661
4476
|
.sync-dialog-card {
|
|
4662
4477
|
width: min(560px, 100%);
|
|
4663
4478
|
}
|
|
4479
|
+
fieldset.sync-dialog-stack {
|
|
4480
|
+
border: 0;
|
|
4481
|
+
margin: 0;
|
|
4482
|
+
padding: 0;
|
|
4483
|
+
min-width: 0;
|
|
4484
|
+
}
|
|
4485
|
+
fieldset.sync-dialog-stack > legend { padding: 0; }
|
|
4664
4486
|
.sync-dialog-actions {
|
|
4665
4487
|
display: flex;
|
|
4666
4488
|
gap: var(--sp-2);
|
|
@@ -4678,19 +4500,14 @@
|
|
|
4678
4500
|
font-size: var(--font-size-md);
|
|
4679
4501
|
box-sizing: border-box;
|
|
4680
4502
|
}
|
|
4681
|
-
.sync-dialog-input:focus {
|
|
4682
|
-
border-color: var(--accent);
|
|
4683
|
-
outline: 2px solid var(--focus-ring);
|
|
4684
|
-
outline-offset: 1px;
|
|
4685
|
-
}
|
|
4686
4503
|
.autocomplete-popover {
|
|
4687
4504
|
background: var(--surface-1, var(--bg-elevated));
|
|
4688
4505
|
border: 1px solid var(--border);
|
|
4689
|
-
border-radius: var(--radius
|
|
4690
|
-
box-shadow:
|
|
4506
|
+
border-radius: var(--popup-radius);
|
|
4507
|
+
box-shadow: var(--popup-shadow);
|
|
4691
4508
|
max-height: 260px;
|
|
4692
4509
|
overflow-y: auto;
|
|
4693
|
-
padding:
|
|
4510
|
+
padding: var(--popup-padding);
|
|
4694
4511
|
z-index: 120;
|
|
4695
4512
|
}
|
|
4696
4513
|
.autocomplete-listbox {
|
|
@@ -4734,10 +4551,16 @@
|
|
|
4734
4551
|
}
|
|
4735
4552
|
.sync-dialog-radio-list {
|
|
4736
4553
|
display: grid;
|
|
4554
|
+
min-width: 0;
|
|
4555
|
+
margin: 0;
|
|
4556
|
+
padding: 0;
|
|
4557
|
+
border: 0;
|
|
4737
4558
|
gap: var(--sp-2);
|
|
4738
4559
|
}
|
|
4560
|
+
.sync-dialog-radio-list legend { max-width: 100%; overflow-wrap: anywhere; }
|
|
4739
4561
|
.sync-dialog-radio-option {
|
|
4740
4562
|
display: flex;
|
|
4563
|
+
min-width: 0;
|
|
4741
4564
|
align-items: center;
|
|
4742
4565
|
gap: 10px;
|
|
4743
4566
|
padding: 10px 12px;
|
|
@@ -4747,18 +4570,20 @@
|
|
|
4747
4570
|
cursor: pointer;
|
|
4748
4571
|
transition: border-color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);
|
|
4749
4572
|
}
|
|
4750
|
-
.
|
|
4573
|
+
.sync-dialog-choice-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
|
|
4751
4574
|
.devices-table-device .sync-subview-link { display: block; margin-top: 4px; text-align: left; }
|
|
4752
4575
|
.devices-rename-form { display: flex; flex-wrap: wrap; align-items: end; gap: 8px; margin-top: 6px; }
|
|
4753
4576
|
.devices-rename-form label { display: grid; gap: 4px; font-weight: var(--font-weight-normal); }
|
|
4754
|
-
.sync-dialog-radio-option:hover {
|
|
4577
|
+
.sync-dialog-radio-option:hover:not(:has(:disabled, [data-disabled], button[data-state="checked"], input:checked)) {
|
|
4755
4578
|
border-color: var(--border-hover);
|
|
4756
4579
|
background: color-mix(in srgb, var(--surface-1) 94%, var(--surface-0));
|
|
4757
4580
|
}
|
|
4758
|
-
.sync-dialog-radio-option:has(button[data-state="checked"]) {
|
|
4581
|
+
.sync-dialog-radio-option:has(button[data-state="checked"], input:checked) {
|
|
4759
4582
|
border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
|
|
4760
4583
|
background: color-mix(in srgb, var(--accent-subtle) 68%, var(--surface-1));
|
|
4761
4584
|
}
|
|
4585
|
+
.sync-dialog-radio-option:has(:disabled, [data-disabled]) { cursor: not-allowed; opacity: 0.6; }
|
|
4586
|
+
.sync-dialog-radio-option:has(:disabled, [data-disabled]) :is(button, input, label) { cursor: not-allowed; }
|
|
4762
4587
|
.sync-dialog-radio-option button {
|
|
4763
4588
|
width: 18px;
|
|
4764
4589
|
height: 18px;
|
|
@@ -4786,6 +4611,8 @@
|
|
|
4786
4611
|
background: var(--accent);
|
|
4787
4612
|
}
|
|
4788
4613
|
.sync-dialog-radio-label {
|
|
4614
|
+
min-width: 0;
|
|
4615
|
+
overflow-wrap: anywhere;
|
|
4789
4616
|
color: var(--text-primary);
|
|
4790
4617
|
font-size: var(--font-size-md);
|
|
4791
4618
|
}
|
|
@@ -4907,33 +4734,12 @@
|
|
|
4907
4734
|
.feed-item > .feed-card-body { grid-column: 1; grid-row: 3; }
|
|
4908
4735
|
}
|
|
4909
4736
|
|
|
4910
|
-
/*
|
|
4911
|
-
Token-aligned focus rings.
|
|
4912
|
-
|
|
4913
|
-
The interactive surfaces below previously relied on the browser's
|
|
4914
|
-
default focus outline. They now share the same focus language as
|
|
4915
|
-
the rest of the system:
|
|
4916
|
-
- Buttons get a 2px var(--accent) outline with a 2px offset.
|
|
4917
|
-
- Inputs and selects get an accent border + 3px var(--focus-ring)
|
|
4918
|
-
halo, matching .feed-search / .project-filter / .sync-actor-select.
|
|
4919
|
-
Radix-managed items (with [data-highlighted]) are intentionally not
|
|
4920
|
-
touched here because their highlight state already serves as a
|
|
4921
|
-
keyboard-focus indicator. */
|
|
4737
|
+
/* Non-native button surfaces retain an offset keyboard outline. */
|
|
4922
4738
|
.coordinator-admin-tab-trigger:focus-visible,
|
|
4923
4739
|
.feed-inspector-button:focus-visible {
|
|
4924
4740
|
outline: 2px solid var(--accent);
|
|
4925
4741
|
outline-offset: 2px;
|
|
4926
4742
|
}
|
|
4927
|
-
.actor-merge-select:focus,
|
|
4928
|
-
.actor-name-input:focus,
|
|
4929
|
-
.feed-visibility-select:focus,
|
|
4930
|
-
.legacy-review-search:focus,
|
|
4931
|
-
.peer-scope-input:focus,
|
|
4932
|
-
.project-domain-select:focus {
|
|
4933
|
-
outline: none;
|
|
4934
|
-
border-color: var(--accent);
|
|
4935
|
-
box-shadow: 0 0 0 3px var(--focus-ring);
|
|
4936
|
-
}
|
|
4937
4743
|
|
|
4938
4744
|
@media (prefers-reduced-motion: reduce) {
|
|
4939
4745
|
.health-loading-icon,
|
|
@@ -4974,9 +4780,7 @@
|
|
|
4974
4780
|
<span class="runtime-label" id="runtimeLabel" hidden></span>
|
|
4975
4781
|
<span class="meta-line" id="metaLine"></span>
|
|
4976
4782
|
</div>
|
|
4977
|
-
<
|
|
4978
|
-
<option value="">All Projects</option>
|
|
4979
|
-
</select>
|
|
4783
|
+
<div class="project-filter" id="projectFilterMount"></div>
|
|
4980
4784
|
<button class="icon-button" id="themeToggle" type="button" aria-label="Switch theme">
|
|
4981
4785
|
<i data-lucide="sun" aria-hidden="true"></i>
|
|
4982
4786
|
</button>
|
|
@@ -5483,6 +5287,6 @@
|
|
|
5483
5287
|
</div>
|
|
5484
5288
|
</div>
|
|
5485
5289
|
|
|
5486
|
-
<script src="/assets/app.js?v=
|
|
5290
|
+
<script src="/assets/app.js?v=55d1f3f56f44"></script>
|
|
5487
5291
|
</body>
|
|
5488
5292
|
</html>
|