@rightkit/system-ui 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/LICENSE-APACHE +201 -0
- package/LICENSE-MIT +21 -0
- package/README.md +36 -2
- package/dist/activityLease.d.ts +1 -0
- package/dist/activityLease.js +20 -0
- package/dist/api.d.ts +1011 -0
- package/dist/api.js +296 -0
- package/dist/chart.d.ts +14 -0
- package/dist/chart.js +94 -0
- package/dist/components/Chart.d.ts +40 -0
- package/dist/components/Chart.js +109 -0
- package/dist/env.d.ts +60 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.js +28 -0
- package/dist/kept.d.ts +3 -0
- package/dist/kept.js +21 -0
- package/dist/lib/chatKind.d.ts +4 -0
- package/dist/lib/chatKind.js +15 -0
- package/dist/lib/legal.d.ts +26 -0
- package/dist/lib/legal.js +39 -0
- package/dist/lib/onboardingSettings.d.ts +2 -0
- package/dist/lib/onboardingSettings.js +17 -0
- package/dist/lib/qr.d.ts +9 -0
- package/dist/lib/qr.js +286 -0
- package/dist/lib/rk.d.ts +6 -0
- package/dist/lib/rk.js +30 -0
- package/dist/metrics.d.ts +24 -0
- package/dist/metrics.js +76 -0
- package/dist/onboarding/flow.d.ts +31 -0
- package/dist/onboarding/flow.js +81 -0
- package/dist/onboarding/gate.d.ts +8 -0
- package/dist/onboarding/gate.js +52 -0
- package/dist/styles.css +8 -0
- package/dist/views/Activity.d.ts +3 -0
- package/dist/views/Activity.js +111 -0
- package/dist/views/Apps.d.ts +1 -0
- package/dist/views/Apps.js +478 -0
- package/dist/views/Chat.d.ts +1 -0
- package/dist/views/Chat.js +255 -0
- package/dist/views/ChromeSnapshots.d.ts +6 -0
- package/dist/views/ChromeSnapshots.js +19 -0
- package/dist/views/Cleanup.d.ts +4 -0
- package/dist/views/Cleanup.js +291 -0
- package/dist/views/DriveHealth.d.ts +14 -0
- package/dist/views/DriveHealth.js +81 -0
- package/dist/views/Duplicates.d.ts +2 -0
- package/dist/views/Duplicates.js +99 -0
- package/dist/views/LauncherSettings.d.ts +63 -0
- package/dist/views/LauncherSettings.js +242 -0
- package/dist/views/NearbySettings.d.ts +117 -0
- package/dist/views/NearbySettings.js +237 -0
- package/dist/views/Storage.d.ts +9 -0
- package/dist/views/Storage.js +916 -0
- package/dist/views/activity.css +94 -0
- package/dist/views/apps.css +98 -0
- package/dist/views/chat.css +61 -0
- package/dist/views/cleanup.css +49 -0
- package/dist/views/health.css +17 -0
- package/dist/views/membrane.css +23 -0
- package/dist/views/monitor.css +99 -0
- package/dist/views/settings.css +176 -0
- package/dist/views/settingsKit.d.ts +14 -0
- package/dist/views/settingsKit.js +43 -0
- package/dist/views/storage.css +121 -0
- package/dist/views/storageEstimate.d.ts +6 -0
- package/dist/views/storageEstimate.js +7 -0
- package/dist/visible.d.ts +3 -0
- package/dist/visible.js +42 -0
- package/package.json +110 -3
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/* Activity timeline. Scoped under .ck-activity; tokens come from styles.css. */
|
|
2
|
+
.ck-activity {
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
gap: 14px;
|
|
6
|
+
min-height: 0;
|
|
7
|
+
overflow: auto;
|
|
8
|
+
padding: 14px 18px 18px;
|
|
9
|
+
scroll-padding: 12px;
|
|
10
|
+
}
|
|
11
|
+
.ck-activity :focus-visible { outline: 2px solid var(--rk-focus, var(--rk-accent)); outline-offset: 2px; border-radius: 6px; }
|
|
12
|
+
.ck-activity h2 { margin: 0 0 6px 2px; font-size: 13px; font-weight: 600; color: var(--rk-ink); }
|
|
13
|
+
.ck-activity p { margin: 0; }
|
|
14
|
+
.ck-activity .muted { color: var(--rk-ink-2); font-size: 12px; }
|
|
15
|
+
.ck-activity > * { flex: none; }
|
|
16
|
+
|
|
17
|
+
.ck-activity-head {
|
|
18
|
+
display: flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
justify-content: space-between;
|
|
21
|
+
gap: 12px;
|
|
22
|
+
flex-wrap: wrap;
|
|
23
|
+
}
|
|
24
|
+
.ck-activity-select { min-width: 140px; }
|
|
25
|
+
|
|
26
|
+
.ck-activity-day { display: flex; flex-direction: column; min-width: 0; }
|
|
27
|
+
.ck-activity-list {
|
|
28
|
+
list-style: none;
|
|
29
|
+
margin: 0;
|
|
30
|
+
padding: 0;
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-direction: column;
|
|
33
|
+
border: 1px solid var(--rk-hairline);
|
|
34
|
+
border-radius: 12px;
|
|
35
|
+
background: var(--rk-panel, var(--rk-fill-2));
|
|
36
|
+
overflow: hidden;
|
|
37
|
+
}
|
|
38
|
+
.ck-activity-row {
|
|
39
|
+
display: grid;
|
|
40
|
+
grid-template-columns: 74px 112px minmax(0, 1fr) auto;
|
|
41
|
+
align-items: center;
|
|
42
|
+
gap: 10px;
|
|
43
|
+
padding: 9px 14px;
|
|
44
|
+
min-width: 0;
|
|
45
|
+
transition: background-color 120ms ease;
|
|
46
|
+
}
|
|
47
|
+
.ck-activity-row + .ck-activity-row { border-top: 1px solid var(--rk-hairline); }
|
|
48
|
+
.ck-activity-row:hover { background: var(--rk-plane); }
|
|
49
|
+
.ck-activity-row:active { background: color-mix(in srgb, var(--rk-accent) 14%, var(--rk-plane)); }
|
|
50
|
+
|
|
51
|
+
.ck-activity-time {
|
|
52
|
+
color: var(--rk-ink-2);
|
|
53
|
+
font-size: 12px;
|
|
54
|
+
font-variant-numeric: tabular-nums;
|
|
55
|
+
white-space: nowrap;
|
|
56
|
+
}
|
|
57
|
+
.ck-activity-kind {
|
|
58
|
+
justify-self: start;
|
|
59
|
+
padding: 2px 8px;
|
|
60
|
+
border: 1px solid var(--rk-hairline);
|
|
61
|
+
border-radius: 999px;
|
|
62
|
+
color: var(--rk-ink-2);
|
|
63
|
+
font-size: 11px;
|
|
64
|
+
white-space: nowrap;
|
|
65
|
+
}
|
|
66
|
+
.ck-activity-summary {
|
|
67
|
+
min-width: 0;
|
|
68
|
+
color: var(--rk-ink);
|
|
69
|
+
font-size: 13px;
|
|
70
|
+
overflow-wrap: anywhere;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.ck-activity-empty {
|
|
74
|
+
display: flex;
|
|
75
|
+
flex-direction: column;
|
|
76
|
+
gap: 4px;
|
|
77
|
+
padding: 18px;
|
|
78
|
+
border: 1px dashed var(--rk-hairline);
|
|
79
|
+
border-radius: 12px;
|
|
80
|
+
color: var(--rk-ink);
|
|
81
|
+
font-size: 13px;
|
|
82
|
+
}
|
|
83
|
+
.ck-activity-error { color: var(--rk-danger, #c0392b); font-size: 12px; }
|
|
84
|
+
.ck-activity-more { display: flex; justify-content: center; }
|
|
85
|
+
.ck-activity-note { padding: 0 2px; }
|
|
86
|
+
|
|
87
|
+
@media (max-width: 560px) {
|
|
88
|
+
.ck-activity { padding: 12px 16px 16px; }
|
|
89
|
+
.ck-activity-row { grid-template-columns: 1fr auto; grid-template-areas: "time kind" "summary summary" "open open"; }
|
|
90
|
+
.ck-activity-time { grid-area: time; }
|
|
91
|
+
.ck-activity-kind { grid-area: kind; justify-self: end; }
|
|
92
|
+
.ck-activity-summary { grid-area: summary; }
|
|
93
|
+
.ck-activity-row > button { grid-area: open; justify-self: start; }
|
|
94
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/* Apps page (v2.1). Tokens come from styles.css and the app-shell. */
|
|
2
|
+
.ck-apps { gap: 8px; }
|
|
3
|
+
.ck-apps > * { min-width: 0; }
|
|
4
|
+
.ck-apps :focus-visible { outline: 2px solid var(--rk-focus, var(--rk-accent)); outline-offset: 2px; }
|
|
5
|
+
|
|
6
|
+
.ck-apps-tools { display: flex; align-items: center; gap: 8px; flex: none; }
|
|
7
|
+
.ck-apps-search { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; height: 32px; padding: 0 10px; border-radius: 7px; border: 1px solid var(--ck-control-line, var(--rk-hairline)); background: var(--rk-fill-2); color: var(--rk-ink-3); }
|
|
8
|
+
.ck-apps-search:focus-within { border-color: var(--rk-accent); }
|
|
9
|
+
.ck-apps-search svg { flex: none; }
|
|
10
|
+
.ck-apps-search input { flex: 1; min-width: 0; height: 100%; border: 0; background: none; color: var(--rk-ink); font: inherit; outline: none; }
|
|
11
|
+
.ck-apps-search input::placeholder { color: var(--rk-ink-3); }
|
|
12
|
+
.ck-apps-search:has(input:focus-visible) { outline: 2px solid var(--rk-focus, var(--rk-accent)); outline-offset: 2px; }
|
|
13
|
+
.ck-apps-filters { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; flex: none; }
|
|
14
|
+
.ck-apps-summary { font-size: 12px; color: var(--rk-ink-2); overflow-wrap: anywhere; }
|
|
15
|
+
|
|
16
|
+
.ck-apps-about { flex: none; font-size: 12px; color: var(--rk-ink-2); }
|
|
17
|
+
.ck-apps-about > summary { display: inline-block; min-height: 24px; padding: 3px 0; cursor: pointer; }
|
|
18
|
+
.ck-apps-about p { margin: 4px 0 0; max-width: 560px; }
|
|
19
|
+
|
|
20
|
+
.ck-apps-card { display: flex; flex-direction: column; flex: 1; min-height: 0; overflow: auto; border: 1px solid var(--rk-hairline); border-radius: 12px; background: var(--rk-fill-2); padding: 0 12px; scroll-padding: 10px; }
|
|
21
|
+
.ck-apps-card:focus-visible { outline-offset: -2px; }
|
|
22
|
+
|
|
23
|
+
.ck-apps-row { display: grid; grid-template-columns: minmax(0, 1fr) auto 84px; align-items: center; gap: 10px; padding: 2px 0; border-bottom: 1px solid var(--rk-hairline); }
|
|
24
|
+
.ck-apps-row:last-child { border-bottom: 0; }
|
|
25
|
+
.ck-apps-open { display: flex; align-items: center; gap: 10px; min-width: 0; min-height: 48px; padding: 4px 6px 4px 0; border-radius: 8px; color: var(--rk-ink); font: inherit; text-align: left; }
|
|
26
|
+
.ck-apps-open:hover { background: var(--rk-plane); }
|
|
27
|
+
.ck-apps-text { display: flex; flex-direction: column; min-width: 0; }
|
|
28
|
+
.ck-apps-name { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; font-weight: 600; overflow-wrap: anywhere; }
|
|
29
|
+
.ck-apps-sub { font-size: 12px; color: var(--rk-ink-2); overflow-wrap: anywhere; }
|
|
30
|
+
.ck-apps-icon { flex: none; width: 28px; height: 28px; border-radius: 6px; object-fit: contain; }
|
|
31
|
+
.ck-apps-icon--fallback { display: inline-flex; align-items: center; justify-content: center; background: var(--rk-plane); color: var(--rk-ink-3); }
|
|
32
|
+
.ck-apps-size { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; font-variant-numeric: tabular-nums; color: var(--rk-ink-2); white-space: nowrap; }
|
|
33
|
+
.ck-apps-bar { display: block; width: 100%; height: 4px; border-radius: 2px; background: var(--rk-plane); overflow: hidden; }
|
|
34
|
+
.ck-apps-bar i { display: block; height: 100%; background: var(--rk-accent); }
|
|
35
|
+
|
|
36
|
+
.ck-apps-update { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; min-width: 0; max-width: 260px; }
|
|
37
|
+
.ck-apps-badge { display: inline-block; max-width: 100%; padding: 1px 7px; border-radius: 6px; font-size: 12px; line-height: 1.5; background: var(--rk-plane); color: var(--rk-ink-2); overflow-wrap: anywhere; }
|
|
38
|
+
.ck-apps-badge--warn { background: var(--rk-warn-soft, var(--rk-plane)); color: var(--rk-warn); }
|
|
39
|
+
.ck-apps-badge--ok { background: var(--rk-ok-soft, var(--rk-plane)); color: var(--rk-ok); }
|
|
40
|
+
.ck-apps-badge--bad { background: var(--rk-bad-soft, var(--rk-plane)); color: var(--rk-bad); }
|
|
41
|
+
.ck-apps-badge--accent { color: var(--rk-accent); }
|
|
42
|
+
.ck-apps-status { font-size: 12px; color: var(--rk-ink-2); overflow-wrap: anywhere; text-align: right; }
|
|
43
|
+
.ck-apps-status--ok { color: var(--rk-ok); }
|
|
44
|
+
.ck-apps-status--bad { color: var(--rk-bad); }
|
|
45
|
+
|
|
46
|
+
.ck-apps-state { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 18px 4px; color: var(--rk-ink-2); }
|
|
47
|
+
.ck-apps-state strong { color: var(--rk-ink); font-size: 14px; }
|
|
48
|
+
.ck-apps-error { flex: none; padding: 8px 12px; border-radius: 8px; background: var(--rk-bad-soft, var(--rk-fill-2)); color: var(--rk-bad); font-size: 12px; overflow-wrap: anywhere; }
|
|
49
|
+
.ck-apps-failed { margin-top: 4px; color: var(--rk-bad); }
|
|
50
|
+
|
|
51
|
+
/* Detail */
|
|
52
|
+
.ck-apps-head { display: flex; align-items: center; gap: 10px; flex: none; }
|
|
53
|
+
.ck-apps-head-title { flex: 1; min-width: 0; }
|
|
54
|
+
.ck-apps-head-title h2 { margin: 0; font-size: 15px; line-height: 1.35; font-weight: 650; color: var(--rk-ink); overflow-wrap: anywhere; }
|
|
55
|
+
.ck-apps-back { display: inline-flex; align-items: center; gap: 2px; }
|
|
56
|
+
.ck-apps-group + .ck-apps-group { margin-top: 6px; }
|
|
57
|
+
.ck-apps-group-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 36px; font-weight: 600; }
|
|
58
|
+
.ck-apps-group-head span { min-width: 0; overflow-wrap: anywhere; }
|
|
59
|
+
.ck-apps-group-head .muted { font-weight: 400; }
|
|
60
|
+
.ck-apps-item { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: start; gap: 8px; padding: 6px 0; border-top: 1px solid var(--rk-hairline); cursor: pointer; }
|
|
61
|
+
.ck-apps-item > .rk-check { margin: 7px 0 0 7px; }
|
|
62
|
+
.ck-apps-path { display: block; font-weight: 600; overflow-wrap: anywhere; word-break: break-word; }
|
|
63
|
+
.ck-apps-item-main { min-width: 0; padding-top: 5px; }
|
|
64
|
+
.ck-apps-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 3px; }
|
|
65
|
+
.ck-apps-item .ck-apps-size { padding-top: 5px; }
|
|
66
|
+
.ck-apps-extra { margin: 8px 0; font-size: 12px; color: var(--rk-ink-2); overflow-wrap: anywhere; }
|
|
67
|
+
.ck-apps-extra h3 { margin: 0 0 2px; font-size: 12px; font-weight: 650; color: var(--rk-ink); }
|
|
68
|
+
.ck-apps-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; flex: none; padding-top: 8px; border-top: 1px solid var(--rk-hairline); }
|
|
69
|
+
.ck-apps-foot-copy { flex: 1 1 240px; min-width: 0; }
|
|
70
|
+
.ck-apps-foot-copy strong { font-variant-numeric: tabular-nums; color: var(--rk-ink); }
|
|
71
|
+
.ck-apps-foot-copy .ck-apps-sub { display: block; }
|
|
72
|
+
|
|
73
|
+
/* Starts by itself: read-only list, loaded when opened */
|
|
74
|
+
.ck-apps-startup { flex: none; font-size: 12px; color: var(--rk-ink-2); }
|
|
75
|
+
.ck-apps-startup > summary { display: inline-block; min-height: 24px; padding: 3px 6px 3px 0; border-radius: 6px; font-weight: 600; color: var(--rk-ink); cursor: pointer; }
|
|
76
|
+
.ck-apps-startup > summary:hover { background: var(--rk-plane); }
|
|
77
|
+
.ck-apps-startup > summary:active { background: var(--rk-fill-2); color: var(--rk-ink-2); }
|
|
78
|
+
.ck-apps-startup-body { display: flex; flex-direction: column; gap: 6px; max-height: 260px; overflow: auto; padding: 6px 0 2px; }
|
|
79
|
+
.ck-apps-startup-tools { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
|
|
80
|
+
.ck-apps-startup-scope { margin: 8px 0 2px; font-size: 12px; font-weight: 650; color: var(--rk-ink); }
|
|
81
|
+
.ck-apps-startrow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) auto auto; align-items: center; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--rk-hairline); }
|
|
82
|
+
.ck-apps-startrow .ck-apps-text { min-width: 0; }
|
|
83
|
+
.ck-apps-startwhat { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--rk-ink-2); font-variant-numeric: tabular-nums; }
|
|
84
|
+
.ck-apps-note { font-size: 12px; color: var(--rk-ink-2); }
|
|
85
|
+
.ck-apps-note p { margin: 2px 0 0; overflow-wrap: anywhere; }
|
|
86
|
+
@media (max-width: 860px) {
|
|
87
|
+
.ck-apps-startrow { grid-template-columns: minmax(0, 1fr) auto auto; }
|
|
88
|
+
.ck-apps-startwhat { grid-column: 1 / -1; grid-row: 2; }
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@media (max-width: 860px) {
|
|
92
|
+
.ck-apps { gap: 6px; padding: 10px 12px; }
|
|
93
|
+
.ck-apps-open { min-height: 44px; }
|
|
94
|
+
}
|
|
95
|
+
@media (forced-colors: active) {
|
|
96
|
+
.ck-apps-card, .ck-apps-badge { border: 1px solid CanvasText; }
|
|
97
|
+
.ck-apps-bar i { background: Highlight; }
|
|
98
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/* Chat section. Tokens come from styles.css and the app-shell; every class is scoped under .ck-chat. */
|
|
2
|
+
.ck-chat { overflow: auto; gap: 12px; padding: 14px 18px 18px; scroll-padding: 12px; }
|
|
3
|
+
.ck-chat > * { flex: none; }
|
|
4
|
+
.ck-chat :focus-visible { outline: 2px solid var(--rk-focus, var(--rk-accent)); outline-offset: 2px; }
|
|
5
|
+
.ck-chat h2 { margin: 0; font-size: 13px; font-weight: 600; color: var(--rk-ink); }
|
|
6
|
+
.ck-chat h3 { margin: 0 0 4px; font-size: 12px; font-weight: 600; color: var(--rk-ink); }
|
|
7
|
+
.ck-chat .ck-sub { font-size: 12px; line-height: 1.45; color: var(--rk-ink-2); overflow-wrap: anywhere; margin: 0; }
|
|
8
|
+
.ck-chat .error { font-size: 12px; overflow-wrap: anywhere; color: var(--rk-bad); padding: 8px 12px; border-radius: 8px; background: var(--rk-bad-soft); }
|
|
9
|
+
|
|
10
|
+
.ck-chat-intro { margin: 0; font-size: 12px; line-height: 1.5; color: var(--rk-ink-2); max-width: 680px; }
|
|
11
|
+
|
|
12
|
+
.ck-chat-panel { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 12px 14px; border: 1px solid var(--rk-hairline); border-radius: 12px; background: var(--rk-panel, var(--rk-fill-2)); }
|
|
13
|
+
|
|
14
|
+
.ck-chat-status { font-size: 13px; color: var(--rk-ink); overflow-wrap: anywhere; }
|
|
15
|
+
.ck-chat-link-line { display: flex; flex-wrap: wrap; gap: 2px 10px; font-size: 12px; color: var(--rk-ink-2); }
|
|
16
|
+
.ck-chat-link-error { color: var(--rk-bad); overflow-wrap: anywhere; }
|
|
17
|
+
|
|
18
|
+
.ck-chat-main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: start; }
|
|
19
|
+
@media (max-width: 720px) { .ck-chat-main { grid-template-columns: minmax(0, 1fr); } }
|
|
20
|
+
|
|
21
|
+
.ck-chat-search { display: flex; align-items: center; gap: 8px; height: 32px; padding: 0 10px; border-radius: 7px; border: 1px solid var(--ck-control-line, var(--rk-hairline)); background: var(--rk-fill-2); color: var(--rk-ink-3); }
|
|
22
|
+
.ck-chat-search:focus-within { border-color: var(--rk-accent); }
|
|
23
|
+
.ck-chat-search svg { flex: none; }
|
|
24
|
+
.ck-chat-search input { flex: 1; min-width: 0; height: 100%; border: 0; background: none; color: var(--rk-ink); font: inherit; outline: none; }
|
|
25
|
+
.ck-chat-search input::placeholder { color: var(--rk-ink-3); }
|
|
26
|
+
|
|
27
|
+
.ck-chat-device { display: flex; flex-direction: column; gap: 4px; }
|
|
28
|
+
.ck-chat-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
|
|
29
|
+
|
|
30
|
+
/* Chat rows are buttons: hover, pressed and selected each look different. */
|
|
31
|
+
.ck-chat-item { display: grid; grid-template-columns: 58px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 8px; row-gap: 1px; width: 100%; min-height: 40px; padding: 5px 8px; border-radius: 8px; color: var(--rk-ink); font: inherit; text-align: left; }
|
|
32
|
+
.ck-chat-item:hover { background: var(--rk-plane); }
|
|
33
|
+
.ck-chat-item:active { background: color-mix(in srgb, var(--rk-accent) 22%, var(--rk-plane)); }
|
|
34
|
+
.ck-chat-item[aria-pressed="true"] { background: color-mix(in srgb, var(--rk-accent) 14%, transparent); box-shadow: inset 2px 0 0 var(--rk-accent); }
|
|
35
|
+
.ck-chat-kind { grid-row: 1 / span 2; align-self: center; font-size: 10px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; padding: 1px 6px; border-radius: 999px; text-align: center; background: var(--rk-fill-2); color: var(--rk-ink-2); }
|
|
36
|
+
.ck-chat-kind-claude { background: color-mix(in srgb, var(--rk-accent) 18%, transparent); color: var(--rk-ink); }
|
|
37
|
+
.ck-chat-kind-muse { background: var(--rk-plane); color: var(--rk-ink); box-shadow: inset 0 0 0 1px var(--rk-line-strong); }
|
|
38
|
+
.ck-chat-name { min-width: 0; font-size: 12px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
39
|
+
.ck-chat-meta { min-width: 0; font-size: 11px; color: var(--rk-ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
40
|
+
|
|
41
|
+
.ck-chat-compose { gap: 8px; }
|
|
42
|
+
.ck-chat-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; font-size: 12px; color: var(--rk-ink-2); }
|
|
43
|
+
.ck-chat-field input, .ck-chat-field textarea { width: 100%; min-width: 0; box-sizing: border-box; padding: 6px 10px; border-radius: 7px; border: 1px solid var(--ck-control-line, var(--rk-hairline)); background: var(--rk-fill-2); color: var(--rk-ink); font: inherit; outline: none; }
|
|
44
|
+
.ck-chat-field input:focus-visible, .ck-chat-field textarea:focus-visible { border-color: var(--rk-accent); outline: 2px solid var(--rk-focus, var(--rk-accent)); outline-offset: 2px; }
|
|
45
|
+
.ck-chat-field input::placeholder, .ck-chat-field textarea::placeholder { color: var(--rk-ink-3); }
|
|
46
|
+
.ck-chat-field textarea { resize: vertical; min-height: 96px; line-height: 1.45; }
|
|
47
|
+
.ck-chat-field textarea:disabled { opacity: .55; }
|
|
48
|
+
.ck-chat-compose-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
|
|
49
|
+
.ck-chat-receipt { padding: 8px 10px; border-radius: 8px; background: var(--rk-plane); font-size: 12px; line-height: 1.45; color: var(--rk-ink); overflow-wrap: anywhere; }
|
|
50
|
+
|
|
51
|
+
.ck-chat-disclosure { display: inline-flex; align-items: center; gap: 4px; align-self: flex-start; min-height: 28px; padding: 3px 8px 3px 4px; border-radius: 7px; color: var(--rk-ink); font: inherit; font-size: 13px; font-weight: 600; }
|
|
52
|
+
.ck-chat-disclosure:hover { background: var(--rk-plane); }
|
|
53
|
+
.ck-chat-disclosure:active { background: color-mix(in srgb, var(--rk-accent) 22%, var(--rk-plane)); }
|
|
54
|
+
.ck-chat-inbox { display: flex; flex-direction: column; gap: 8px; }
|
|
55
|
+
.ck-chat-message { display: flex; flex-direction: column; gap: 3px; padding: 8px 10px; border-radius: 8px; background: var(--rk-plane); }
|
|
56
|
+
.ck-chat-message pre { margin: 0; font: inherit; font-size: 12px; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--rk-ink); }
|
|
57
|
+
|
|
58
|
+
.ck-chat-link-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 32px; font-size: 13px; color: var(--rk-ink); }
|
|
59
|
+
.ck-chat-link-name { min-width: 0; overflow-wrap: anywhere; }
|
|
60
|
+
.ck-chat-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; gap: 10px; }
|
|
61
|
+
@media (max-width: 720px) { .ck-chat-form { grid-template-columns: minmax(0, 1fr); } }
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/* Cleanup page (v2.1). Scoped under .ck-cleanup; tokens come from styles.css. */
|
|
2
|
+
.ck-cleanup { overflow: hidden; gap: 10px; }
|
|
3
|
+
.ck-cleanup h2 { margin: 0; font-size: 15px; line-height: 1.35; }
|
|
4
|
+
.ck-cleanup p { margin: 0; }
|
|
5
|
+
.ck-cleanup .muted { color: var(--rk-ink-2); font-size: 12px; }
|
|
6
|
+
.ck-cleanup :focus-visible { outline: 2px solid var(--rk-focus, var(--rk-accent)); outline-offset: 2px; }
|
|
7
|
+
.ck-num { font-variant-numeric: tabular-nums; white-space: nowrap; }
|
|
8
|
+
.ck-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex: none; }
|
|
9
|
+
.ck-head > div { min-width: 0; }
|
|
10
|
+
.ck-cleanup > [role="group"], .ck-cleanup > [role="radiogroup"], .ck-cleanup > [role="tablist"] { flex: none; align-self: flex-start; }
|
|
11
|
+
|
|
12
|
+
.ck-scroll { flex: 1; min-height: 0; overflow: auto; display: flex; flex-direction: column; gap: 10px; scroll-padding: 10px; }
|
|
13
|
+
.ck-card { background: var(--rk-fill-2); border: 1px solid var(--rk-hairline); border-radius: 10px; padding: 8px 12px; flex: none; }
|
|
14
|
+
.ck-card > h2 { padding: 4px 0 6px; }
|
|
15
|
+
.ck-empty { padding: 16px 0; }
|
|
16
|
+
|
|
17
|
+
.ck-group + .ck-group { margin-top: 8px; }
|
|
18
|
+
.ck-group-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 32px; }
|
|
19
|
+
.ck-group-head label { display: flex; align-items: center; gap: 4px; min-width: 0; padding-left: 4px; }
|
|
20
|
+
.ck-check { width: 32px; height: 32px; display: inline-grid; place-items: center; flex: none; }
|
|
21
|
+
.ck-row { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 8px; align-items: start; padding: 2px 0; border-top: 1px solid var(--rk-hairline); }
|
|
22
|
+
.ck-row .ck-check { margin-top: 2px; }
|
|
23
|
+
.ck-size { padding-top: 9px; color: var(--rk-ink-2); }
|
|
24
|
+
|
|
25
|
+
.ck-detail { min-width: 0; }
|
|
26
|
+
.ck-detail summary, .ck-held summary, .ck-about summary { display: flex; align-items: flex-start; gap: 6px; list-style: none; cursor: pointer; min-height: 32px; padding: 7px 0 4px; border-radius: 6px; }
|
|
27
|
+
.ck-detail summary::-webkit-details-marker, .ck-held summary::-webkit-details-marker, .ck-about summary::-webkit-details-marker { display: none; }
|
|
28
|
+
.ck-detail summary > svg, .ck-held summary > svg, .ck-about summary > svg { flex: none; margin-top: 3px; color: var(--rk-ink-2); transition: transform 0.12s; }
|
|
29
|
+
.ck-detail[open] > summary > svg, .ck-held[open] > summary > svg, .ck-about[open] > summary > svg { transform: rotate(90deg); }
|
|
30
|
+
.ck-detail summary > span, .ck-held summary > span, .ck-about summary > span { min-width: 0; flex: 1; }
|
|
31
|
+
.ck-title { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
|
|
32
|
+
.ck-reason { display: block; overflow-wrap: anywhere; }
|
|
33
|
+
.ck-path { padding: 0 0 4px 20px; overflow-wrap: anywhere; word-break: break-word; }
|
|
34
|
+
|
|
35
|
+
.ck-held, .ck-about { flex: none; border-top: 1px solid var(--rk-hairline); padding-top: 2px; }
|
|
36
|
+
.ck-held-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 4px 0 4px 20px; }
|
|
37
|
+
.ck-held-row > span:first-child { min-width: 0; overflow-wrap: anywhere; }
|
|
38
|
+
.ck-held-row .ck-size { padding-top: 0; }
|
|
39
|
+
.ck-about p { padding: 0 0 6px 20px; }
|
|
40
|
+
|
|
41
|
+
.ck-history { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 8px 0; border-top: 1px solid var(--rk-hairline); }
|
|
42
|
+
.ck-history-main { display: flex; flex-direction: column; gap: 1px; min-width: 0; overflow-wrap: anywhere; }
|
|
43
|
+
.ck-paths summary { padding-top: 4px; }
|
|
44
|
+
.ck-issue { color: var(--rk-bad); font-size: 12px; padding-top: 2px; }
|
|
45
|
+
.ck-lines { display: block; white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
.ck-selection { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; border-top: 1px solid var(--rk-hairline); padding-top: 8px; }
|
|
49
|
+
.ck-selection > div { min-width: 0; flex: 1 1 220px; }
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* Drive health and duplicates in Storage. Tokens come from styles.css. */
|
|
2
|
+
.health-line { display: inline-flex; flex-wrap: wrap; gap: 3px 7px; align-items: center; min-width: 0; }
|
|
3
|
+
.health-panel { gap: 10px; }
|
|
4
|
+
.health-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 8px 12px; }
|
|
5
|
+
.health-metric { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
|
|
6
|
+
.health-section { display: flex; flex-direction: column; gap: 3px; }
|
|
7
|
+
.health-test { display: flex; justify-content: space-between; gap: 10px; }
|
|
8
|
+
.health-spark { display: flex; flex-direction: column; gap: 3px; }
|
|
9
|
+
.health-spark svg { display: block; width: 100%; height: 44px; overflow: visible; }
|
|
10
|
+
.volume-cell { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
|
|
11
|
+
.volume-cell .health-toggle { align-self: flex-start; }
|
|
12
|
+
.dup-controls { flex-wrap: wrap; align-items: center; }
|
|
13
|
+
.dup-path { flex: 1; min-width: 200px; }
|
|
14
|
+
.dup-group { gap: 2px; }
|
|
15
|
+
.dup-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 4px 0; border-top: 1px solid var(--rk-hairline); }
|
|
16
|
+
.dup-row.sub { padding-left: 18px; }
|
|
17
|
+
.dup-row .name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/* Membrane section (#386). Scoped under .ck-membrane; tokens come from styles.css. */
|
|
2
|
+
.ck-membrane { display: flex; flex-direction: column; gap: 14px; min-height: 0; overflow: auto; padding: 14px 18px 18px; scroll-padding: 12px; }
|
|
3
|
+
.ck-membrane > * { flex: none; }
|
|
4
|
+
.ck-membrane :focus-visible { outline: 2px solid var(--rk-focus, var(--rk-accent)); outline-offset: 2px; border-radius: 6px; }
|
|
5
|
+
.ck-membrane h2 { margin: 0 0 6px 2px; font-size: 13px; font-weight: 600; color: var(--rk-ink); }
|
|
6
|
+
.ck-membrane p { margin: 0; }
|
|
7
|
+
.ck-membrane .muted { color: var(--rk-ink-2); font-size: 12px; }
|
|
8
|
+
.ck-membrane-card { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; }
|
|
9
|
+
.ck-membrane-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
|
|
10
|
+
.ck-membrane-head h2 { margin: 0; }
|
|
11
|
+
.ck-membrane-kv { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 6px 12px; margin: 0; font-size: 12px; align-items: baseline; }
|
|
12
|
+
.ck-membrane-kv dt { color: var(--rk-ink-2); }
|
|
13
|
+
.ck-membrane-kv dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
|
|
14
|
+
.ck-membrane-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
|
|
15
|
+
.ck-membrane-row { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); gap: 10px; align-items: baseline; padding: 6px 2px; border-top: 1px solid var(--rk-hairline); font-size: 12px; }
|
|
16
|
+
.ck-membrane-row:first-child { border-top: 0; }
|
|
17
|
+
.ck-membrane-path { overflow-wrap: anywhere; color: var(--rk-ink); }
|
|
18
|
+
.ck-membrane-error { color: var(--rk-danger, var(--rk-ink)); font-size: 12px; }
|
|
19
|
+
.ck-membrane-log { margin: 0; max-height: 320px; overflow: auto; padding: 10px 12px; border-radius: 8px; background: var(--rk-surface-2, transparent); border: 1px solid var(--rk-hairline); font-size: 11px; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--rk-ink); }
|
|
20
|
+
@media (max-width: 560px) {
|
|
21
|
+
.ck-membrane-row { grid-template-columns: minmax(0, 1fr); gap: 2px; }
|
|
22
|
+
.ck-membrane-kv { grid-template-columns: 90px minmax(0, 1fr); }
|
|
23
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/* Graphs on Overview and Monitor. Tokens come from styles.css and the shell. */
|
|
2
|
+
.chart-spark { display: block; width: 100%; overflow: visible; }
|
|
3
|
+
.chart-line { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
|
|
4
|
+
.chart-dashed { stroke-dasharray: 4 3; }
|
|
5
|
+
.chart-fill { fill: currentColor; fill-opacity: 0.14; stroke: none; }
|
|
6
|
+
.chart-grid { stroke: var(--rk-hairline); stroke-width: 1; vector-effect: non-scaling-stroke; }
|
|
7
|
+
.chart-base { stroke: var(--rk-ink-3); stroke-opacity: 0.5; }
|
|
8
|
+
|
|
9
|
+
.chart { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
|
|
10
|
+
.chart-plot { position: relative; flex: 1; min-width: 0; touch-action: pan-y; }
|
|
11
|
+
.chart-svg { display: block; width: 100%; height: 100%; overflow: visible; }
|
|
12
|
+
.chart-row { display: flex; gap: 6px; min-width: 0; }
|
|
13
|
+
.chart-yaxis { flex: none; width: 50px; display: flex; flex-direction: column; justify-content: space-between; text-align: right; font-size: 11px; line-height: 1; color: var(--rk-ink-3); font-variant-numeric: tabular-nums; white-space: nowrap; }
|
|
14
|
+
.chart-rule { position: absolute; top: 0; bottom: 0; width: 1px; margin-left: -0.5px; background: var(--rk-ink-2); pointer-events: none; }
|
|
15
|
+
.chart-tip { position: absolute; top: 4px; z-index: 2; display: flex; flex-direction: column; gap: 1px; padding: 4px 8px; border: 1px solid var(--rk-hairline); border-radius: 6px; background: var(--rk-plane); color: var(--rk-ink); font-size: 12px; line-height: 1.35; white-space: nowrap; pointer-events: none; font-variant-numeric: tabular-nums; }
|
|
16
|
+
.chart-tip-time { color: var(--rk-ink-2); }
|
|
17
|
+
.chart-tip-row { display: inline-flex; align-items: center; gap: 6px; }
|
|
18
|
+
.chart-tip-row i { display: inline-block; width: 8px; height: 8px; border-radius: 2px; }
|
|
19
|
+
.chart-axis { display: flex; justify-content: space-between; padding-left: 56px; font-size: 11px; color: var(--rk-ink-3); }
|
|
20
|
+
|
|
21
|
+
.monitor-charts { display: flex; flex-direction: column; gap: 10px; flex: none; }
|
|
22
|
+
.monitor-charts-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-width: 0; font-size: 11px; color: var(--rk-ink-3); }
|
|
23
|
+
/* One symmetric row of three compact cards, so the process table stays in view (#415). */
|
|
24
|
+
.monitor-charts-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; min-width: 0; }
|
|
25
|
+
.monitor-chart-card .chart-yaxis { display: none; }
|
|
26
|
+
/* The time axis repeats the caption above the row ("History, last 15 minutes"), so the cards drop it (#415). */
|
|
27
|
+
.monitor-chart-card .chart-axis { display: none; }
|
|
28
|
+
.monitor-chart-card { display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 8px 10px; border: 1px solid var(--rk-hairline); border-radius: 12px; background: var(--rk-panel, var(--rk-fill-2)); }
|
|
29
|
+
.monitor-chart-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 2px 10px; min-width: 0; font-size: 12px; color: var(--rk-ink-2); }
|
|
30
|
+
.monitor-chart-now { color: var(--rk-ink); font-weight: 600; font-variant-numeric: tabular-nums; }
|
|
31
|
+
.monitor-legend { display: inline-flex; flex-wrap: wrap; gap: 2px 10px; font-size: 11px; color: var(--rk-ink-2); }
|
|
32
|
+
.monitor-legend span { display: inline-flex; align-items: center; gap: 5px; }
|
|
33
|
+
.monitor-legend i { display: inline-block; width: 12px; height: 0; border-top: 2px solid; }
|
|
34
|
+
.monitor-legend i.dashed { border-top-style: dashed; }
|
|
35
|
+
.monitor-waiting { padding: 8px 0; font-size: 12px; }
|
|
36
|
+
|
|
37
|
+
/* The page scrolls as a whole once charts sit above the process table. */
|
|
38
|
+
.monitor-view { overflow: auto; flex-wrap: nowrap; }
|
|
39
|
+
.monitor-view .mon-list { flex: none; overflow: visible; }
|
|
40
|
+
|
|
41
|
+
.monitor-notice { display: flex; flex-direction: column; gap: 2px; flex: none; padding: 10px 12px; border: 1px solid var(--rk-hairline); border-radius: 12px; background: var(--rk-panel, var(--rk-fill-2)); }
|
|
42
|
+
.monitor-notice.warn { border-color: var(--rk-warn); }
|
|
43
|
+
.monitor-notice.bad { border-color: var(--rk-bad); }
|
|
44
|
+
.monitor-notice.calm { flex-direction: row; align-items: baseline; flex-wrap: wrap; gap: 2px 8px; padding: 4px 2px; border: 0; background: none; }
|
|
45
|
+
.monitor-notice.calm h2 { font-size: 13px; }
|
|
46
|
+
.monitor-notice h2 .ok { color: var(--rk-ok); }
|
|
47
|
+
.monitor-notice h2 .warn { color: var(--rk-warn); }
|
|
48
|
+
.monitor-notice h2 .bad { color: var(--rk-bad); }
|
|
49
|
+
.monitor-notice p { margin: 0; font-size: 12px; color: var(--rk-ink-2); overflow-wrap: anywhere; }
|
|
50
|
+
.monitor-h2 { margin: 0; font-size: 15px; line-height: 1.35; font-weight: 650; color: var(--rk-ink); }
|
|
51
|
+
.monitor-charts-head .monitor-h2 { font-size: 15px; }
|
|
52
|
+
.monitor-notice h2 { margin: 0; font-size: 15px; font-weight: 650; color: var(--rk-ink); }
|
|
53
|
+
.monitor-meta { flex: 0 1 auto; white-space: normal; }
|
|
54
|
+
.monitor-view .mon-section { flex-wrap: wrap; }
|
|
55
|
+
.monitor-view .caption { flex: none; margin: 0; }
|
|
56
|
+
|
|
57
|
+
/* Threads and Started sit between Memory and Actions; Actions also holds Reveal. */
|
|
58
|
+
.monitor-view .mon-cols { grid-template-columns: minmax(0, 1fr) 56px 84px 64px 76px 312px; }
|
|
59
|
+
/* The five fixed columns need about 660px on their own. In a narrower window the name used to
|
|
60
|
+
shrink to nothing, so there the actions move to their own line under the row and the name
|
|
61
|
+
keeps the space. */
|
|
62
|
+
.monitor-view .mon-list { container-type: inline-size; }
|
|
63
|
+
@container (max-width: 860px) {
|
|
64
|
+
.monitor-view .mon-cols { grid-template-columns: minmax(120px, 1fr) 56px 84px 64px 76px; row-gap: 4px; }
|
|
65
|
+
.monitor-view .mon-cols > .mon-actions { grid-column: 1 / -1; flex-wrap: wrap; }
|
|
66
|
+
.monitor-view .mon-head > :nth-child(6), .monitor-view .mon-member > :nth-child(6) { display: none; }
|
|
67
|
+
}
|
|
68
|
+
.monitor-view .mon-head [role="columnheader"] { display: flex; min-width: 0; }
|
|
69
|
+
.monitor-view .mon-head [role="columnheader"].mon-num { justify-content: flex-end; }
|
|
70
|
+
.monitor-view .mon-sort {
|
|
71
|
+
display: inline-flex; align-items: center; gap: 3px; min-width: 0; height: 24px; padding: 0 6px; margin: 0 -6px;
|
|
72
|
+
border-radius: 6px; color: var(--rk-ink-2); font: inherit; font-size: 11px;
|
|
73
|
+
}
|
|
74
|
+
.monitor-view .mon-sort[aria-current="true"] { color: var(--rk-ink); font-weight: 600; }
|
|
75
|
+
.monitor-view .mon-sort:hover { color: var(--rk-ink); background: var(--rk-fill-2); }
|
|
76
|
+
.monitor-view .mon-sort:active { color: var(--rk-ink); background: var(--rk-plane); box-shadow: inset 0 0 0 1px var(--rk-hairline); }
|
|
77
|
+
|
|
78
|
+
/* Inspect panel: one process, read when asked. Lists scroll inside the panel; paths stay selectable. */
|
|
79
|
+
.monitor-view .mon-inspect { display: flex; flex-direction: column; gap: 8px; min-width: 0; margin: 2px 0 6px; padding: 10px 12px; border: 1px solid var(--rk-hairline); border-radius: 10px; background: var(--rk-panel, var(--rk-fill-2)); }
|
|
80
|
+
.monitor-view .mon-inspect-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 12px; min-width: 0; }
|
|
81
|
+
.monitor-view .mon-inspect-title { margin: 0; font-size: 13px; font-weight: 650; color: var(--rk-ink); overflow-wrap: anywhere; }
|
|
82
|
+
.monitor-view .mon-inspect-actions { display: inline-flex; gap: 6px; flex: none; }
|
|
83
|
+
.monitor-view .mon-inspect-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px 14px; min-width: 0; }
|
|
84
|
+
.monitor-view .mon-inspect-h { margin: 0 0 4px; font-size: 12px; font-weight: 600; color: var(--rk-ink-2); }
|
|
85
|
+
.monitor-view .mon-inspect-list { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 0; max-height: 220px; overflow: auto; list-style: none; font-size: 12px; font-variant-numeric: tabular-nums; }
|
|
86
|
+
.monitor-view .mon-inspect-port { display: grid; grid-template-columns: 56px 48px minmax(0, 1fr); gap: 8px; min-width: 0; }
|
|
87
|
+
.monitor-view .mon-inspect-path { min-width: 0; overflow-wrap: anywhere; color: var(--rk-ink); user-select: text; }
|
|
88
|
+
.monitor-view .mon-inspect-notes { margin: 0; padding-left: 16px; }
|
|
89
|
+
.monitor-view .mon-inspect p { margin: 0; }
|
|
90
|
+
|
|
91
|
+
/* Per-process history in the Inspect panel: kept only while the Monitor page is open. */
|
|
92
|
+
.monitor-view .mon-history { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
|
|
93
|
+
.monitor-view .mon-history .mon-inspect-h { margin: 0; }
|
|
94
|
+
.monitor-view .mon-spark-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px 14px; min-width: 0; }
|
|
95
|
+
.monitor-view .mon-spark-cell { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
|
|
96
|
+
.monitor-view .mon-spark-head { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; color: var(--rk-ink-2); }
|
|
97
|
+
.monitor-view .mon-spark-now { color: var(--rk-ink); font-weight: 600; font-variant-numeric: tabular-nums; }
|
|
98
|
+
.monitor-view .mon-spark { height: 32px; color: var(--rk-accent); }
|
|
99
|
+
.monitor-view .mon-spark-range { font-variant-numeric: tabular-nums; }
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/* Settings pages (v2.1): grouped cards, one row per setting, local status beside the control.
|
|
2
|
+
Tokens come from the app shell and styles.css. Every class here is scoped under .ck-settings. */
|
|
3
|
+
.ck-settings { overflow: auto; gap: 14px; padding: 14px 18px 18px; scroll-padding: 12px; }
|
|
4
|
+
.ck-settings > * { flex: none; }
|
|
5
|
+
.ck-settings :focus-visible { outline: 2px solid var(--rk-focus, var(--rk-accent)); outline-offset: 2px; border-radius: 6px; }
|
|
6
|
+
|
|
7
|
+
.ck-settings .ck-sgroup { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin-bottom: 0; }
|
|
8
|
+
.ck-settings .ck-sgroup > h2 { margin: 0 0 0 2px; font-size: 13px; font-weight: 600; color: var(--rk-ink); }
|
|
9
|
+
.ck-settings .ck-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--rk-hairline); border-radius: 12px; background: var(--rk-panel, var(--rk-fill-2)); box-shadow: none; }
|
|
10
|
+
.ck-settings .ck-card > * + * { border-top: 1px solid var(--rk-hairline); }
|
|
11
|
+
.ck-settings .ck-card > .ck-foot { border-top: 0; margin-top: -6px; padding: 0 14px 10px; }
|
|
12
|
+
.ck-settings .ck-card > .ck-foot + .ck-set,
|
|
13
|
+
.ck-settings .ck-card > .ck-foot + .ck-account,
|
|
14
|
+
.ck-settings .ck-card > .ck-foot + .ck-permrow { border-top: 1px solid var(--rk-hairline); }
|
|
15
|
+
|
|
16
|
+
.ck-settings .ck-sub,
|
|
17
|
+
.ck-settings .rk-sr__desc { margin-top: 0; color: var(--rk-ink-2); font-size: 12px; line-height: 1.45; }
|
|
18
|
+
.ck-settings .ck-num { min-width: 38px; text-align: right; font-variant-numeric: tabular-nums; }
|
|
19
|
+
.ck-settings .error { color: var(--rk-bad); font-size: 12px; overflow-wrap: anywhere; }
|
|
20
|
+
.ck-settings > .error { padding: 8px 12px; border-radius: 8px; background: var(--rk-bad-soft); }
|
|
21
|
+
|
|
22
|
+
/* Claude accounts under the Claude row: one compact hairline-separated list, a row per account */
|
|
23
|
+
.ck-settings .ck-claude-list { flex: 0 0 auto; width: calc(100% + 28px); display: flex; flex-direction: column; margin: 0 -14px -8px; border-top: 1px solid var(--rk-hairline); }
|
|
24
|
+
.ck-settings .ck-claude-account { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; min-height: 44px; padding: 4px 14px; overflow: hidden; }
|
|
25
|
+
.ck-settings .ck-claude-account + .ck-claude-account { border-top: 1px solid var(--rk-hairline); }
|
|
26
|
+
.ck-settings .ck-claude-account .ck-account-name { flex: 1 1 auto; flex-wrap: nowrap; min-width: 0; gap: 8px; }
|
|
27
|
+
.ck-settings .ck-claude-name { display: inline-flex; align-items: center; gap: 6px; min-width: 0; max-width: 100%; padding: 2px 4px; margin: 0 -4px; border-radius: 6px; color: var(--rk-ink); font: inherit; font-weight: 600; cursor: text; }
|
|
28
|
+
.ck-settings .ck-claude-name-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
29
|
+
.ck-settings .ck-claude-name svg { flex: none; opacity: .4; color: var(--rk-ink-3); }
|
|
30
|
+
.ck-settings .ck-claude-account:hover .ck-claude-name svg,
|
|
31
|
+
.ck-settings .ck-claude-name:focus-visible svg { opacity: 1; }
|
|
32
|
+
.ck-settings .ck-claude-name:hover { background: var(--rk-fill-2); }
|
|
33
|
+
.ck-settings .ck-claude-edit { width: 200px; min-height: 28px; padding: 2px 8px; font-weight: 600; }
|
|
34
|
+
.ck-settings .ck-claude-plan, .ck-settings .ck-claude-asof { white-space: nowrap; }
|
|
35
|
+
.ck-settings .ck-forget { width: 22px; height: 22px; opacity: 0; }
|
|
36
|
+
.ck-settings .ck-claude-account:hover .ck-forget,
|
|
37
|
+
.ck-settings .ck-forget:focus-visible { opacity: 1; }
|
|
38
|
+
.ck-settings .ck-forget:hover { background: var(--rk-fill-2); color: var(--rk-bad); }
|
|
39
|
+
.ck-settings .ck-claude-meters { flex: 1 1 400px; display: flex; gap: 16px; min-width: 0; max-width: 60%; }
|
|
40
|
+
.ck-settings .ck-claude-none { text-align: right; }
|
|
41
|
+
.ck-settings .ck-claude-win { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
|
|
42
|
+
.ck-settings .ck-claude-head { display: flex; align-items: baseline; gap: 6px; line-height: 16px; white-space: nowrap; }
|
|
43
|
+
.ck-settings .ck-claude-head .ck-sub { line-height: 16px; font-size: 11px; }
|
|
44
|
+
.ck-settings .ck-claude-eta { margin-left: auto; overflow: hidden; text-overflow: ellipsis; }
|
|
45
|
+
.ck-settings .ck-claude-value { font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--rk-ink); }
|
|
46
|
+
.ck-settings .ck-claude-bar-off { display: block; height: 4px; border-radius: 2px; background: var(--rk-fill-2); }
|
|
47
|
+
.ck-settings .ck-claude-unseen { display: flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border-top: 1px solid var(--rk-hairline); color: var(--rk-ink-3); font: inherit; font-size: 12px; text-align: left; }
|
|
48
|
+
.ck-settings .ck-claude-unseen:hover { color: var(--rk-ink); }
|
|
49
|
+
.ck-settings .ck-claude-unseen + .ck-claude-account { border-top: 1px solid var(--rk-hairline); }
|
|
50
|
+
|
|
51
|
+
/* Rows */
|
|
52
|
+
.ck-settings .ck-set,
|
|
53
|
+
.ck-settings .ck-account { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; min-height: 48px; padding: 8px 14px; border-bottom: 0; }
|
|
54
|
+
.ck-settings .ck-text,
|
|
55
|
+
.ck-settings .rk-sr__text { flex: 1 1 240px; min-width: 0; overflow-wrap: anywhere; }
|
|
56
|
+
.ck-settings .ck-text > strong,
|
|
57
|
+
.ck-settings .rk-sr__label { font-weight: 500; color: var(--rk-ink); }
|
|
58
|
+
.ck-settings .ck-ctl,
|
|
59
|
+
.ck-settings .rk-sr__control { flex: 0 1 auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; margin-left: auto; min-width: 0; }
|
|
60
|
+
.ck-settings .ck-ctl .error { flex-basis: 100%; text-align: right; }
|
|
61
|
+
/* Not the RightKit toggle: it is a <button> with a fixed 22px track, and a taller
|
|
62
|
+
min-height stretches the track while the knob stays pinned 2px from the top. */
|
|
63
|
+
.ck-settings .ck-ctl button:not(.rk-toggle),
|
|
64
|
+
.ck-settings .ck-line button:not(.rk-toggle),
|
|
65
|
+
.ck-settings .ck-savebar button:not(.rk-toggle) { min-height: 32px; }
|
|
66
|
+
.ck-settings .ck-ctls { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; }
|
|
67
|
+
.ck-settings .ck-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
|
|
68
|
+
.ck-settings .ck-line.ck-inline { justify-content: flex-end; }
|
|
69
|
+
.ck-settings .ck-line > .ck-input { flex: 1 1 140px; }
|
|
70
|
+
.ck-settings .ck-line > .ck-path { flex: 1 1 200px; overflow-wrap: anywhere; }
|
|
71
|
+
.ck-settings .ck-foot.ck-line { align-items: center; }
|
|
72
|
+
.ck-settings .ck-stack { flex-direction: column; align-items: stretch; }
|
|
73
|
+
.ck-settings .ck-stack > .ck-text { flex: none; }
|
|
74
|
+
/* A remote approval's whole summary (up to 1600 characters): wrapped, never cut; a long one scrolls inside a capped box. */
|
|
75
|
+
.ck-settings .ck-approval-summary { margin: 4px 0; max-height: 160px; overflow-y: auto; overflow-x: hidden; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; line-height: 1.45; color: var(--rk-ink-2); }
|
|
76
|
+
.ck-settings .ck-list { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
|
|
77
|
+
.ck-settings .ck-savebar { flex-wrap: nowrap; justify-content: space-between; }
|
|
78
|
+
.ck-settings .ck-subgroup { display: flex; flex-direction: column; }
|
|
79
|
+
.ck-settings .ck-subgroup > .ck-set { border-top: 1px solid var(--rk-hairline); }
|
|
80
|
+
.ck-settings .ck-subhead { padding: 8px 14px 0; font-size: 12px; font-weight: 600; color: var(--rk-ink-2); }
|
|
81
|
+
.ck-settings .ck-keys { min-width: 96px; }
|
|
82
|
+
.ck-settings .ck-indent { margin-left: 12px; overflow-wrap: anywhere; }
|
|
83
|
+
.ck-settings .ck-about { padding: 0 2px; }
|
|
84
|
+
.ck-settings .ck-lead { padding: 8px 12px; border-radius: 8px; font-size: 12px; background: var(--rk-fill-2); color: var(--rk-ink-2); }
|
|
85
|
+
.ck-settings .ck-card > .ck-lead { margin: 10px 14px; border-top: 0; }
|
|
86
|
+
.ck-settings .ck-card > .ck-lead + .ck-permrow { border-top: 0; }
|
|
87
|
+
.ck-settings .ck-lead.ck-tone-ok { background: var(--rk-ok-soft); color: var(--rk-ok); }
|
|
88
|
+
.ck-settings .ck-lead.ck-tone-warn { background: var(--rk-warn-soft); color: var(--rk-warn); }
|
|
89
|
+
.ck-settings .ck-tone-ok { color: var(--rk-ok); }
|
|
90
|
+
.ck-settings .ck-tone-warn { color: var(--rk-warn); }
|
|
91
|
+
.ck-settings .ck-tone-bad { color: var(--rk-bad); }
|
|
92
|
+
.ck-settings .ck-lead.ck-tone-ok, .ck-settings .ck-lead.ck-tone-warn { font-weight: 500; }
|
|
93
|
+
|
|
94
|
+
/* Permissions: the row's own border replaces the group's */
|
|
95
|
+
.ck-settings .ck-permrow > .ck-set { border-top: 0; }
|
|
96
|
+
.ck-settings .ck-permrow > .ck-foot { padding: 0 14px 10px; }
|
|
97
|
+
.ck-settings .ck-stale { display: flex; flex-direction: column; gap: 2px; padding: 4px 14px; }
|
|
98
|
+
.ck-settings .ck-stale-check { min-height: 32px; margin-left: 12px; }
|
|
99
|
+
|
|
100
|
+
/* Status: always text, colour only reinforces it */
|
|
101
|
+
.ck-settings .ck-status { display: inline-block; border-radius: 6px; padding: 2px 8px; font-size: 12px; line-height: 1.4; white-space: nowrap; background: var(--rk-fill-2); color: var(--rk-ink-2); border: 1px solid var(--rk-hairline); }
|
|
102
|
+
.ck-settings .ck-status-granted { background: var(--rk-ok-soft); color: var(--rk-ok); border-color: transparent; }
|
|
103
|
+
.ck-settings .ck-status-needsApproval { background: var(--rk-warn-soft); color: var(--rk-warn); border-color: transparent; }
|
|
104
|
+
|
|
105
|
+
/* Accounts */
|
|
106
|
+
.ck-settings .ck-account-name { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
|
|
107
|
+
.ck-settings .ck-account-name > strong { font-weight: 600; color: var(--rk-ink); }
|
|
108
|
+
.ck-settings .ck-account-actions { margin-top: 6px; }
|
|
109
|
+
.ck-settings .ck-account .ck-ctl { flex-wrap: nowrap; gap: 12px; }
|
|
110
|
+
.ck-settings .ck-order { display: flex; gap: 4px; }
|
|
111
|
+
|
|
112
|
+
/* Inputs */
|
|
113
|
+
.ck-settings .rk-select { min-width: 120px; max-width: 100%; }
|
|
114
|
+
.ck-settings .ck-input { min-width: 0; }
|
|
115
|
+
.ck-settings .ck-input-name { width: 220px; max-width: 100%; }
|
|
116
|
+
/* Multi-line lists stay plain textareas; single-line fields are the shell's Input. */
|
|
117
|
+
.ck-settings textarea.ck-input { width: 100%; min-height: 32px; min-width: 0; padding: 4px 10px; border: 1px solid var(--ck-control-line, var(--rk-hairline)); border-radius: 8px; background: var(--rk-plane); color: var(--rk-ink); font: inherit; resize: vertical; line-height: 1.4; }
|
|
118
|
+
.ck-settings textarea.ck-input::placeholder { color: var(--rk-ink-3); }
|
|
119
|
+
.ck-settings textarea.ck-input:focus-visible { border-color: var(--rk-accent); }
|
|
120
|
+
.ck-settings .ck-slider { display: flex; align-items: center; gap: 10px; min-height: 32px; }
|
|
121
|
+
.ck-settings .ck-slider input { width: 140px; }
|
|
122
|
+
|
|
123
|
+
@media (max-width: 860px) {
|
|
124
|
+
.ck-settings { padding: 12px 14px 16px; gap: 12px; }
|
|
125
|
+
}
|
|
126
|
+
@media (forced-colors: active) {
|
|
127
|
+
.ck-settings .ck-card, .ck-settings .ck-status, .ck-settings .ck-input { border: 1px solid CanvasText; }
|
|
128
|
+
.ck-settings :focus-visible { outline: 2px solid Highlight; }
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/* The Chat chat list: grouped by computer, Claude live, Codex recent. */
|
|
132
|
+
.ck-settings .ck-chats { display: flex; flex-direction: column; gap: 10px; padding: 0 14px 12px; }
|
|
133
|
+
.ck-settings .ck-chats-head { margin: 0 0 4px; font-size: 12px; font-weight: 600; color: var(--rk-ink); display: flex; gap: 8px; align-items: baseline; }
|
|
134
|
+
.ck-settings .ck-chats-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
|
|
135
|
+
.ck-settings .ck-chats-row { display: grid; grid-template-columns: 52px minmax(0, 1fr) minmax(0, 160px) 120px; align-items: center; gap: 8px; min-height: 24px; font-size: 12px; }
|
|
136
|
+
.ck-settings .ck-chats-kind { font-size: 10px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; padding: 1px 6px; border-radius: 999px; text-align: center; }
|
|
137
|
+
.ck-settings .ck-chats-kind-claude { background: color-mix(in srgb, var(--rk-accent) 18%, transparent); color: var(--rk-ink); }
|
|
138
|
+
.ck-settings .ck-chats-kind-codex { background: var(--rk-fill-2); color: var(--rk-ink-2); }
|
|
139
|
+
.ck-settings .ck-chats-kind-muse { background: var(--rk-plane); color: var(--rk-ink); box-shadow: inset 0 0 0 1px var(--rk-line-strong); }
|
|
140
|
+
.ck-settings .ck-chats-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
141
|
+
.ck-settings .ck-chats-folder { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--rk-ink-2); }
|
|
142
|
+
.ck-settings .ck-chats-when { display: flex; gap: 6px; justify-content: flex-end; white-space: nowrap; font-size: 11px; color: var(--rk-ink-3); }
|
|
143
|
+
.ck-settings .ck-chats-status { font-size: 11px; color: var(--rk-ink-3); }
|
|
144
|
+
.ck-settings .ck-chats-status-busy { color: var(--rk-ink); }
|
|
145
|
+
.ck-settings .ck-chats-more { padding-left: 60px; }
|
|
146
|
+
.ck-settings .ck-chats-inbox { grid-column: 2 / -1; font-size: 11px; }
|
|
147
|
+
|
|
148
|
+
/* Nearby devices: one row per device with a name, a note line and Allow / Ask / Deny. */
|
|
149
|
+
.ck-settings .ck-device { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; min-height: 48px; padding: 8px 14px; }
|
|
150
|
+
.ck-settings .ck-device .ck-text { flex: 1 1 240px; min-width: 0; }
|
|
151
|
+
.ck-settings .ck-device .ck-ctl { flex-wrap: nowrap; gap: 12px; }
|
|
152
|
+
.ck-settings .ck-device:hover .ck-claude-name svg,
|
|
153
|
+
.ck-settings .ck-device:hover .ck-forget { opacity: 1; }
|
|
154
|
+
|
|
155
|
+
/* Search: a box above the sections; while it has text every section shows only its matching rows. */
|
|
156
|
+
.ck-settings .ck-search { display: flex; align-items: center; gap: 8px; position: sticky; top: -14px; z-index: 2; margin: -14px -18px 0; padding: 14px 18px 8px; background: var(--rk-plane); }
|
|
157
|
+
.ck-settings .ck-search .ck-input { flex: 1 1 auto; min-width: 0; }
|
|
158
|
+
.ck-settings .ck-search-none { padding: 4px 2px; }
|
|
159
|
+
.ck-settings .ck-search-section { display: flex; flex-direction: column; gap: 10px; min-width: 0; margin: 0; }
|
|
160
|
+
.ck-settings .ck-search-section > .rk-settings__result-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0; border-bottom: 1px solid var(--rk-hairline); padding-bottom: 4px; }
|
|
161
|
+
.ck-settings .ck-search-section .rk-settings__result-title { margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--rk-ink-3); }
|
|
162
|
+
.ck-settings .ck-mark { background: color-mix(in srgb, var(--rk-accent) 28%, transparent); color: inherit; border-radius: 3px; padding: 0 1px; }
|
|
163
|
+
/* Footnotes and the about line belong to the page, not to a result. */
|
|
164
|
+
.ck-settings .ck-search-section .ck-foot:not([role="alert"]),
|
|
165
|
+
.ck-settings .ck-search-section .ck-about { display: none; }
|
|
166
|
+
@media (max-width: 860px) {
|
|
167
|
+
.ck-settings .ck-search { margin: -12px -14px 0; padding: 12px 14px 8px; top: -12px; }
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/* Blocked apps: the list is also the drop target for a .app, .exe or .lnk. */
|
|
171
|
+
.ck-settings .ck-drop { display: flex; flex-direction: column; min-height: 44px; margin: 4px 0 8px; padding: 4px 12px; border: 1px dashed var(--rk-hairline); border-radius: 8px; justify-content: center; }
|
|
172
|
+
.ck-settings .ck-drop.ck-drop-over { border-color: var(--rk-accent, currentColor); }
|
|
173
|
+
.ck-settings .ck-drop .ck-set { border-top: 0; }
|
|
174
|
+
/* Each switch row takes the full width, so every switch sits in one column at the right (#413). */
|
|
175
|
+
.ck-onboarding-features .ck-set > .ck-line { flex: 1 1 100%; flex-wrap: nowrap; }
|
|
176
|
+
.ck-onboarding-features .ck-line > div:first-child { flex: 1 1 0; min-width: 0; }
|