rvlib-shipkit 1.3.0 → 1.5.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 +105 -0
- package/README.md +17 -17
- package/package.json +3 -2
- package/src/asks/asks-queue.ts +4 -2
- package/src/assets/kits/identity-kit.ts +15 -13
- package/src/assets/run-assets.ts +12 -2
- package/src/check.ts +73 -98
- package/src/checks/SK001-package-json-shape.check.ts +26 -4
- package/src/checks/SK002-contracts-fulfillness.check.ts +4 -0
- package/src/checks/SK003-claude-md-shape.check.ts +5 -1
- package/src/checks/SK004-gitignore-policy.check.ts +7 -4
- package/src/checks/SK005-rvlib-versions.check.ts +53 -21
- package/src/checks/SK006-npm-publish-safety.check.ts +4 -0
- package/src/checks/SK007-github-visibility.check.ts +4 -2
- package/src/checks/SK008-reviewer-agent.check.ts +6 -4
- package/src/checks/SK009-commit-ai-tells.check.ts +94 -74
- package/src/checks/SK010-undeclared-unit.check.ts +4 -0
- package/src/checks/SK011-sibling-unit-ranges.check.ts +4 -0
- package/src/checks/SK012-config-barrel-import.check.ts +5 -1
- package/src/checks/SK013-one-way-in-policy.check.ts +7 -3
- package/src/checks/SK014-prose-ste.check.ts +20 -6
- package/src/checks/SK015-nested-repo.check.ts +4 -2
- package/src/checks/SK016-legacy-check-shapes.check.ts +23 -16
- package/src/checks/SK017-vscode-hub-task.check.ts +22 -7
- package/src/checks/SK018-test-files-run.check.ts +6 -2
- package/src/checks/SK019-tests-run-in-units.check.ts +8 -4
- package/src/checks/SK020-self-spawning-check.check.ts +4 -0
- package/src/checks/SK022-machine-runs-the-pin.check.ts +6 -4
- package/src/checks/SK024-identity-colors.check.ts +5 -3
- package/src/checks/SK025-release-drift.check.ts +4 -5
- package/src/checks/SK026-asks-autoclose.check.ts +4 -4
- package/src/checks/SK027-agent-wiki-links.check.ts +34 -9
- package/src/checks/SK028-readme.check.ts +10 -2
- package/src/checks/SK029-explicit-check-files.check.ts +95 -0
- package/src/cli/cmd_Asks.ts +5 -5
- package/src/cli/cmd_Assets.ts +7 -7
- package/src/cli/cmd_Bump.ts +12 -11
- package/src/cli/cmd_Check.ts +8 -7
- package/src/cli/cmd_Checks.ts +7 -6
- package/src/cli/cmd_Ci.ts +12 -11
- package/src/cli/cmd_Commands.ts +16 -13
- package/src/cli/cmd_ConfigKeys.ts +7 -6
- package/src/cli/cmd_Contracts.ts +3 -3
- package/src/cli/cmd_CrossRepoActivity.ts +10 -6
- package/src/cli/cmd_Fleet.ts +9 -7
- package/src/cli/cmd_GlobalProcesses.ts +116 -4
- package/src/cli/cmd_Home.ts +23 -17
- package/src/cli/cmd_Hooks.ts +6 -5
- package/src/cli/cmd_Init.ts +5 -4
- package/src/cli/cmd_Keys.ts +8 -7
- package/src/cli/cmd_Mv.ts +7 -6
- package/src/cli/cmd_Needs.ts +4 -3
- package/src/cli/cmd_Overview.ts +4 -3
- package/src/cli/cmd_Pb.ts +2 -2
- package/src/cli/cmd_Planned.ts +6 -5
- package/src/cli/cmd_Prose.ts +5 -5
- package/src/cli/cmd_Reflect.ts +7 -7
- package/src/cli/cmd_Release.ts +6 -5
- package/src/cli/cmd_Releases.ts +5 -4
- package/src/cli/cmd_Serve.ts +4 -3
- package/src/cli/cmd_Smoke.ts +5 -4
- package/src/cli/cmd_Start.ts +7 -6
- package/src/cli/cmd_Status.ts +4 -3
- package/src/cli/cmd_Tui.ts +3 -2
- package/src/cli/cmd_When.ts +71 -0
- package/src/cli/cmd_Wiki.ts +4 -4
- package/src/cli.ts +7 -2
- package/src/collections/checks.ts +2 -0
- package/src/collections/collection-types.ts +24 -4
- package/src/collections/providers.ts +6 -2
- package/src/contracts/apply-contracts.ts +9 -8
- package/src/contracts/contract-types.ts +8 -2
- package/src/contracts/contracts-engine.ts +34 -13
- package/src/contracts/manifests/identity.contract.ts +6 -5
- package/src/contracts/manifests/social.contract.ts +4 -2
- package/src/contracts/manifests/steam.contract.ts +7 -3
- package/src/contracts/web-surface.ts +59 -0
- package/src/core/budget.ts +19 -9
- package/src/core/canonical-scripts.ts +1 -1
- package/src/core/check-runner.ts +63 -25
- package/src/core/config-rewrite.ts +37 -24
- package/src/core/discover-checks.ts +31 -7
- package/src/core/layout.ts +2 -0
- package/src/core/legacy-shapes.ts +39 -10
- package/src/core/motherhome.ts +88 -66
- package/src/core/one-way-in-policy.ts +2 -2
- package/src/core/outcome-words.ts +18 -2
- package/src/core/port-check-cli.ts +52 -0
- package/src/core/port-check-file.ts +295 -0
- package/src/core/port-check-files.ts +31 -0
- package/src/core/retention.ts +0 -14
- package/src/core/run-check.ts +14 -14
- package/src/core/run-ci.ts +11 -7
- package/src/core/run-fix.ts +30 -23
- package/src/core/run-fixers.ts +42 -5
- package/src/core/runs-matrix.ts +179 -0
- package/src/core/runs.ts +242 -0
- package/src/core/update-policy.ts +20 -0
- package/src/core/when-block.ts +29 -30
- package/src/core/when.ts +41 -103
- package/src/core/wire.ts +34 -9
- package/src/fleet/scan-fleet.ts +20 -4
- package/src/fleet/update-fleet.ts +6 -6
- package/src/home/activity-shape.ts +4 -1
- package/src/home/activity.ts +22 -15
- package/src/home/gui-app/ShipkitGui.swift +144 -25
- package/src/home/gui-app.ts +93 -30
- package/src/home/home-launchd.ts +30 -6
- package/src/home/home-routes.ts +14 -2
- package/src/home/home-start.ts +33 -5
- package/src/home/hubs.ts +5 -5
- package/src/home/machine-stores.ts +4 -2
- package/src/home/open-app.ts +23 -10
- package/src/home/pm-config.ts +15 -11
- package/src/home/pm-inputs.ts +76 -0
- package/src/home/pm.ts +11 -3
- package/src/home/process-rows.ts +23 -6
- package/src/home/resources.ts +67 -15
- package/src/home/run-daemon.ts +6 -1
- package/src/home/run-pm.ts +30 -5
- package/src/home/serve-web.ts +2 -2
- package/src/home/supervise.ts +24 -1
- package/src/home/widgets.ts +32 -3
- package/src/hooks/commit-message.ts +2 -3
- package/src/hooks/run-hooks.ts +60 -6
- package/src/init-repo.ts +6 -6
- package/src/ledger/gate-checks.ts +115 -61
- package/src/ledger/git-key.ts +5 -1
- package/src/ledger/ledger.ts +5 -5
- package/src/ledger/store.ts +11 -0
- package/src/ledger/toolchain-identity.ts +45 -27
- package/src/ledger/world-cache.ts +17 -15
- package/src/plan/repo-source.ts +18 -39
- package/src/release/run-release.ts +5 -0
- package/src/repo-config.ts +36 -56
- package/src/rules/rule.ts +2 -2
- package/src/scaffold/files/agent-coding.md +1 -1
- package/src/scaffold/files/agent-index.md +1 -1
- package/src/scaffold/files/verify-skill.md +2 -2
- package/src/serve/hub-app/activity-st.ts +5 -4
- package/src/serve/hub-app/activity-view.tsx +4 -4
- package/src/serve/hub-app/admin-view.tsx +13 -11
- package/src/serve/hub-app/check-view.tsx +66 -46
- package/src/serve/hub-app/check-words.ts +1 -11
- package/src/serve/hub-app/checks-svc.ts +16 -36
- package/src/serve/hub-app/col-tables-view.tsx +131 -0
- package/src/serve/hub-app/col-tables.ts +115 -0
- package/src/serve/hub-app/cols-svc.ts +33 -4
- package/src/serve/hub-app/dock-st.ts +3 -2
- package/src/serve/hub-app/dock-view.tsx +36 -0
- package/src/serve/hub-app/dock.css +7 -1
- package/src/serve/hub-app/float-cards.tsx +30 -0
- package/src/serve/hub-app/floating.tsx +41 -4
- package/src/serve/hub-app/git-st.ts +42 -0
- package/src/serve/hub-app/git-view.tsx +61 -0
- package/src/serve/hub-app/hash-route.ts +45 -1
- package/src/serve/hub-app/header-bar.tsx +62 -72
- package/src/serve/hub-app/health-svc.ts +3 -2
- package/src/serve/hub-app/home-st.ts +15 -3
- package/src/serve/hub-app/home-strip.css +69 -19
- package/src/serve/hub-app/home-strip.tsx +192 -118
- package/src/serve/hub-app/home.html +1 -0
- package/src/serve/hub-app/hub-app.tsx +21 -5
- package/src/serve/hub-app/hub-types.ts +11 -5
- package/src/serve/hub-app/hub.css +88 -44
- package/src/serve/hub-app/icons.tsx +15 -0
- package/src/serve/hub-app/index.html +1 -0
- package/src/serve/hub-app/keys.ts +11 -8
- package/src/serve/hub-app/live-svc.ts +3 -2
- package/src/serve/hub-app/machine-st.ts +34 -49
- package/src/serve/hub-app/palette-st.ts +5 -5
- package/src/serve/hub-app/palette-view.tsx +1 -1
- package/src/serve/hub-app/plan-view.tsx +51 -0
- package/src/serve/hub-app/planned-st.ts +9 -4
- package/src/serve/hub-app/processes-view.tsx +38 -0
- package/src/serve/hub-app/project-list.tsx +3 -3
- package/src/serve/hub-app/projects-svc.ts +15 -10
- package/src/serve/hub-app/prose-hits-st.ts +3 -2
- package/src/serve/hub-app/reach.ts +36 -0
- package/src/serve/hub-app/readme-svc.ts +3 -2
- package/src/serve/hub-app/repo-sections.ts +117 -0
- package/src/serve/hub-app/repo-st.ts +47 -10
- package/src/serve/hub-app/runs-tabs.ts +1 -1
- package/src/serve/hub-app/sidebar.tsx +12 -37
- package/src/serve/hub-app/timeline-svc.ts +3 -2
- package/src/serve/hub-app/timeline-view.tsx +14 -11
- package/src/serve/hub-app/tree-build.ts +149 -155
- package/src/serve/hub-app/tree-row.tsx +39 -9
- package/src/serve/hub-app/tree-svc.ts +70 -49
- package/src/serve/hub-app/when-view.tsx +89 -0
- package/src/serve/hub-app/when.css +17 -0
- package/src/serve/hub-runtime.ts +3 -16
- package/src/serve/project-gutter.ts +1 -2
- package/src/serve/run-serve.ts +1 -1
- package/src/serve/serve-hub.ts +4 -14
- package/src/serve/warm-cell.ts +49 -16
- package/src/suite/judge-suites.ts +42 -17
- package/src/suite/suite-cli.ts +5 -8
- package/src/wiki/lint-md.ts +2 -0
- package/src/wiki/scan-md.ts +37 -10
- package/src/serve/hub-app/processes-svc.ts +0 -63
- package/src/serve/hub-app/repo-sections.tsx +0 -61
- package/src/serve/repo-processes.ts +0 -89
|
@@ -20,6 +20,7 @@ import { PlannedSt } from './planned-st.ts'
|
|
|
20
20
|
import { ActivitySt } from './activity-st.ts'
|
|
21
21
|
import { ProjectsSvc } from './projects-svc.ts'
|
|
22
22
|
import { parseFilter, RepoSt } from './repo-st.ts'
|
|
23
|
+
import { openSection, repoSections, sectionOfRepo } from './repo-sections.ts'
|
|
23
24
|
|
|
24
25
|
/** the longest one repo's read ahead holds the next one back */
|
|
25
26
|
export const PREFETCH_WAIT_MS = 10_000
|
|
@@ -68,7 +69,7 @@ export class HomeSt {
|
|
|
68
69
|
planned: PlannedSt
|
|
69
70
|
/** what every repo committed and holds, polled while it is the page */
|
|
70
71
|
activity: ActivitySt
|
|
71
|
-
/** the one picker, cmd+
|
|
72
|
+
/** the one picker, cmd+j */
|
|
72
73
|
palette: PaletteSt
|
|
73
74
|
/** the widths of the project list and a repo's sidebar */
|
|
74
75
|
layout: LayoutSt
|
|
@@ -169,8 +170,19 @@ export class HomeSt {
|
|
|
169
170
|
for (const r of this.repos.values()) r.dispose()
|
|
170
171
|
}
|
|
171
172
|
|
|
172
|
-
/** a list click, a repo row: that repo, in place, as a history entry
|
|
173
|
+
/** a list click, a repo row: that repo, in place, as a history entry,
|
|
174
|
+
* on the section the repo left showed. One already inside that section
|
|
175
|
+
* keeps its own page there, and one that has no such section opens its
|
|
176
|
+
* README. Written before the repo shows, so the one history entry
|
|
177
|
+
* already names it */
|
|
173
178
|
select(name: string): void {
|
|
179
|
+
const from = this.page === 'repo' ? this.shown : null
|
|
180
|
+
const to = this.repo(name)
|
|
181
|
+
const want = from == null || from === to ? null : sectionOfRepo(from)
|
|
182
|
+
if (want != null && sectionOfRepo(to) !== want) {
|
|
183
|
+
const known = to.cols.loaded || to.cols.cached
|
|
184
|
+
openSection(to, known && !repoSections(to).some((s) => s.id === want) ? 'readme' : want)
|
|
185
|
+
}
|
|
174
186
|
this.show('repo', name, 'push')
|
|
175
187
|
}
|
|
176
188
|
|
|
@@ -178,7 +190,7 @@ export class HomeSt {
|
|
|
178
190
|
* before the repo is shown, so the one history entry already names it */
|
|
179
191
|
openCheck(repo: string, check: string): void {
|
|
180
192
|
this.repo(repo).cols.select('checks', `check:${check}`)
|
|
181
|
-
this.
|
|
193
|
+
this.show('repo', repo, 'push')
|
|
182
194
|
}
|
|
183
195
|
|
|
184
196
|
/** a link to a page of the home: the same page, in place */
|
|
@@ -10,14 +10,42 @@
|
|
|
10
10
|
.hswatch input{width:16px;height:16px;padding:0;border:1px solid var(--line);border-radius:3px;background:none;cursor:pointer}
|
|
11
11
|
.hswatch input::-webkit-color-swatch-wrapper{padding:0}
|
|
12
12
|
.hswatch input::-webkit-color-swatch{border:none;border-radius:2px}
|
|
13
|
-
.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
.
|
|
19
|
-
.
|
|
20
|
-
.
|
|
13
|
+
/* trouble, as cards (float-cards.tsx), never taking room, so one coming or
|
|
14
|
+
going moves nothing: at the top right, in a zero height box right after
|
|
15
|
+
the bar, so just under it whatever its height. The words wrap, never cut */
|
|
16
|
+
.htoasts{position:absolute;right:var(--s3);top:var(--s2);z-index:25;display:flex;flex-direction:column;align-items:flex-end;gap:var(--s1);max-width:min(60ch,calc(100% - 2 * var(--s3)));pointer-events:none}
|
|
17
|
+
.hanchor{position:relative;height:0;flex:none;z-index:25}
|
|
18
|
+
.htoast{max-width:100%;padding:var(--s1) var(--s2);background:var(--panel);border:1px solid var(--red);border-radius:4px;box-shadow:0 6px 20px var(--shadow);font-size:12px;line-height:1.45;color:var(--errink);white-space:normal;overflow-wrap:anywhere;pointer-events:auto}
|
|
19
|
+
.htoast b{color:var(--red);margin-right:var(--s1)}
|
|
20
|
+
.htoast.warn{border-color:var(--warn);color:var(--warn)}
|
|
21
|
+
.htoast.warn b{color:var(--warn)}
|
|
22
|
+
.htoast .hproc{vertical-align:middle}
|
|
23
|
+
/* the bar's run: one small check… button, then a spinner while a run goes,
|
|
24
|
+
its words in a tooltip (header-bar.tsx) */
|
|
25
|
+
.hcheck{height:22px;padding:0 var(--s2);font-size:11.5px;flex:none}
|
|
26
|
+
.hbusy{display:inline-flex;align-items:center;justify-content:center;width:18px;min-width:18px;height:22px;flex:none;border-radius:3px;cursor:default;outline:none}
|
|
27
|
+
.hbusy:focus-visible{box-shadow:0 0 0 1px var(--accent)}
|
|
28
|
+
/* a popover opened on a click (floating.tsx Pop) */
|
|
29
|
+
.fpop{z-index:40;width:max-content;max-width:min(44ch,90vw);padding:var(--s1);background:var(--panel2);border:1px solid var(--line);border-radius:4px;box-shadow:0 6px 20px var(--shadow);outline:none}
|
|
30
|
+
.hmenu{display:flex;flex-direction:column;gap:var(--s0)}
|
|
31
|
+
.fpopw{max-width:min(96ch,94vw)}
|
|
32
|
+
.hmenu2{display:flex;align-items:stretch}
|
|
33
|
+
.hmacts{flex:none;min-width:24ch;max-width:36ch}
|
|
34
|
+
.hmabout{flex:1 1 auto;min-width:0;max-width:56ch;max-height:60vh;overflow:auto;display:flex;flex-direction:column;gap:var(--s1);margin-left:var(--s1);padding:var(--s1) var(--s2);border-left:1px solid var(--line);user-select:text}
|
|
35
|
+
.hmabout .md{overflow-wrap:anywhere}
|
|
36
|
+
.hmabout .md>:first-child{margin-top:0}
|
|
37
|
+
.hmlog{display:block;font-size:11px;color:var(--dim);white-space:pre-wrap;overflow-wrap:anywhere}
|
|
38
|
+
@media (max-width:640px){.hmenu2{flex-direction:column}.hmabout{margin:var(--s1) 0 0;border-left:0;border-top:1px solid var(--line)}}
|
|
39
|
+
.hmitem{display:flex;align-items:flex-start;gap:var(--s2);width:100%;padding:var(--s1) var(--s2);border:0;border-radius:3px;background:none;color:var(--ink);text-align:left;white-space:normal;cursor:pointer}
|
|
40
|
+
.hmitem:hover:not(:disabled),.hmitem:focus-visible{background:var(--panel)}
|
|
41
|
+
.hmitem:disabled{opacity:.45;cursor:default}
|
|
42
|
+
.hmitem .hico{flex:none;width:14px;height:14px;margin-top:2px}
|
|
43
|
+
.hmitem span{display:flex;flex-direction:column;gap:2px}
|
|
44
|
+
.hmitem b{font-size:12.5px;font-weight:600}
|
|
45
|
+
.hmitem small{font-size:11.5px;line-height:1.4;color:var(--dim)}
|
|
46
|
+
.hmhead{display:flex;align-items:center;gap:var(--s1);padding:var(--s1) var(--s2) 0;font-size:12.5px}
|
|
47
|
+
.hmhead span{color:var(--dim)}
|
|
48
|
+
.hmnote{display:block;font-size:11.5px;line-height:1.4;color:var(--dim);overflow-wrap:anywhere}
|
|
21
49
|
.hdot{display:inline-block;width:8px;height:8px;border-radius:4px;margin-right:var(--s1);background:var(--line)}
|
|
22
50
|
.hdot.up{background:var(--ok)}.hdot.starting,.hdot.stopping{background:var(--warn)}.hdot.crashed{background:var(--red)}
|
|
23
51
|
.hres{display:inline-flex;align-items:center;padding:var(--s0) var(--s2);font-size:12px}
|
|
@@ -30,7 +58,7 @@
|
|
|
30
58
|
/* each widget card exactly as wide as what it holds; a widget's leading
|
|
31
59
|
<header> joins the title line, dim */
|
|
32
60
|
.hmon{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--s2)}
|
|
33
|
-
.hwidget{flex:0 1 auto;max-width:100%;padding:var(--
|
|
61
|
+
.hwidget{flex:0 1 auto;max-width:100%;padding:var(--s0) var(--s2);border:1px solid var(--line);border-radius:3px;font-size:12px;line-height:1.4;overflow:auto}
|
|
34
62
|
.hwidget h3{margin:0;font-size:12px;font-weight:650;white-space:nowrap}
|
|
35
63
|
.hwidget h3 .hdim{font-weight:400}
|
|
36
64
|
/* meters in two columns: <table class="wmeters">, label · bar · value, twice a row */
|
|
@@ -38,8 +66,13 @@
|
|
|
38
66
|
.wmeters td:nth-child(3n){padding-right:var(--s3)}
|
|
39
67
|
.wmeters td:last-child{padding-right:0}
|
|
40
68
|
.wmeters .wbar{margin-right:0}
|
|
69
|
+
/* a meter's value: small, its digits one width so a column never jitters */
|
|
70
|
+
.wmeters .wv{font-size:11px;font-variant-numeric:tabular-nums}
|
|
41
71
|
.hwidget table{border-collapse:collapse}
|
|
42
72
|
.hwidget td{padding:0 var(--s3) 0 0;white-space:nowrap;vertical-align:middle}
|
|
73
|
+
/* a widget error: in its card where the html goes, or one mark after the cards */
|
|
74
|
+
.hwerr{font-size:12px;color:var(--warn);white-space:nowrap;cursor:help}
|
|
75
|
+
.hwerr .gpwarn{margin:0 var(--s1) 0 0}
|
|
43
76
|
.hbad{color:var(--errink)}
|
|
44
77
|
.hwait{flex:1;min-height:0;padding:var(--s4);color:var(--dim);font-size:13px;overflow:auto}
|
|
45
78
|
.hwait p{margin:0 0 var(--s2)}
|
|
@@ -57,7 +90,7 @@
|
|
|
57
90
|
sideways */
|
|
58
91
|
.gpwrap{container-type:inline-size;font-size:13px}
|
|
59
92
|
.c-gpname{width:180px}.c-gpver{width:56px}.c-gppid{width:64px}.c-gpstate{width:110px}
|
|
60
|
-
.c-gpb.take{width:78px}.c-gpb.
|
|
93
|
+
.c-gpb.take{width:78px}.c-gpb.stop,.c-gpb.restart{width:24px}
|
|
61
94
|
.gptable td{vertical-align:middle}
|
|
62
95
|
.gptable td.acname{vertical-align:top}
|
|
63
96
|
.gpcore{color:var(--ink)}
|
|
@@ -78,20 +111,30 @@
|
|
|
78
111
|
.gpstate{color:var(--dim);font-size:12px;font-variant-numeric:tabular-nums}
|
|
79
112
|
.gpstate.up{color:var(--ok)}.gpstate.crashed{color:var(--red)}.gpstate.starting{color:var(--warn)}
|
|
80
113
|
.gptable td.gpb{padding-left:0;padding-right:var(--s1);text-align:right;overflow:visible}
|
|
81
|
-
.gpb
|
|
114
|
+
.gptable td.gpb.stop,.gptable td.gpb.restart{padding:0;text-align:center}
|
|
115
|
+
/* a small icon button: a process's start or stop, its restart, the open before its url */
|
|
116
|
+
.gpi{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:3px;background:none;color:var(--dim);cursor:pointer;vertical-align:middle}
|
|
117
|
+
.gpi .hico{width:14px;height:14px;color:inherit}
|
|
118
|
+
.gpi:hover:not(:disabled){color:var(--ink);background:var(--panel2)}
|
|
119
|
+
.gpi.go{color:var(--ok)}
|
|
120
|
+
.gpi:disabled{opacity:.35;cursor:default}
|
|
121
|
+
.gphost .gpi{margin-right:var(--s1)}
|
|
122
|
+
/* the app button while its app builds: a spinner, never faded */
|
|
123
|
+
.gpi[aria-busy]:disabled{opacity:1;cursor:progress}
|
|
82
124
|
.gpb button.hsm{padding:0 var(--s1);font-size:11px}
|
|
83
125
|
.gpb.act{white-space:nowrap}
|
|
84
126
|
.gpb.act button + button{margin-left:var(--s1)}
|
|
85
|
-
.gphead div{display:flex;
|
|
127
|
+
.gphead div{display:flex;align-items:center;gap:var(--s1)}
|
|
128
|
+
.gphead .sp{flex:1}
|
|
86
129
|
.gphead button.hsm{padding:0 var(--s1);font-size:11px}
|
|
87
|
-
|
|
130
|
+
/* what a process has to say (its note, a refused take over): a mark after
|
|
131
|
+
its state words, the words on hover, never a line of its own */
|
|
132
|
+
.gpwarn{display:inline-block;vertical-align:middle;width:6px;height:6px;margin-left:var(--s1);border-radius:1px;background:var(--warn)}
|
|
133
|
+
.gpstate span[title]{cursor:help}
|
|
88
134
|
@container (max-width:620px){.c-gphost,.gphost,.c-gpver,.gpver,.c-gppid,.gppid{display:none}.gptable .c-name{width:96px}.c-gpname{width:110px}.c-gpstate{width:88px}}
|
|
89
135
|
/* a phone: the state words go too, the dot and the tint still say it, and
|
|
90
|
-
only start (stop)
|
|
91
|
-
@container (max-width:440px){.c-gpstate,.gpstate,.c-gpb.act,.gpb.act,.c-gpb.take,.gpb.take,.c-gpb.restart,.gpb.restart
|
|
92
|
-
.hopen{margin-left:var(--s2)}
|
|
93
|
-
.hopen button{display:inline-flex;align-items:center;padding:var(--s0) var(--s1)}
|
|
94
|
-
.hopen .hico{color:inherit}
|
|
136
|
+
only start (stop) stays, the label taking what is left */
|
|
137
|
+
@container (max-width:440px){.c-gpstate,.gpstate,.c-gpb.act,.gpb.act,.c-gpb.take,.gpb.take,.c-gpb.restart,.gpb.restart{display:none}.gptable .c-name{width:64px}.c-gpname{width:auto}}
|
|
95
138
|
.hsec{min-width:0}
|
|
96
139
|
.hsec h2{display:flex;align-items:center;gap:var(--s2);height:28px;margin:0 0 var(--s2);padding-bottom:var(--s1);border-bottom:1px solid var(--line);
|
|
97
140
|
font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-weight:600}
|
|
@@ -107,7 +150,14 @@
|
|
|
107
150
|
.hnote{font-size:12px;color:var(--warn)}
|
|
108
151
|
/* a filled bar any widget can draw: <span class="wbar" style="--p:51%"><i></i></span>,
|
|
109
152
|
green below 70%, `mid` from 70%, `hi` from 90% (the widget picks the class) */
|
|
110
|
-
.wbar{display:inline-block;vertical-align:middle;width:
|
|
153
|
+
.wbar{display:inline-block;vertical-align:middle;width:40px;height:7px;margin-right:var(--s2);border-radius:4px;background:var(--line);overflow:hidden}
|
|
111
154
|
.wbar > i{display:block;height:100%;width:var(--p,0%);background:var(--ok)}
|
|
112
155
|
.wbar.mid > i{background:var(--warn)}
|
|
113
156
|
.wbar.hi > i{background:var(--red)}
|
|
157
|
+
|
|
158
|
+
/* a process card on the processes page: the menu's two panels at page width */
|
|
159
|
+
.pcard .hmacts{max-width:none}
|
|
160
|
+
.pcard .hmabout{max-width:none;max-height:none}
|
|
161
|
+
.pcard>.cstitle{margin:var(--s3) 0 var(--s1)}
|
|
162
|
+
.pcard .hlog{margin-top:0}
|
|
163
|
+
.pcard.lit{border-color:var(--accent)}
|