@intentius/behold 0.29.9 → 0.29.10
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/cli.js +1 -0
- package/package.json +1 -1
- package/web/kiosk.html +3 -0
- package/web/kiosk.js +14 -9
package/dist/cli.js
CHANGED
|
@@ -21775,6 +21775,7 @@ function watchSource(projectDir, onChange, debounceMs = 200) {
|
|
|
21775
21775
|
clearTimeout(timer);
|
|
21776
21776
|
timer = setTimeout(onChange, debounceMs);
|
|
21777
21777
|
});
|
|
21778
|
+
watcher.on("error", (e) => console.warn(`behold: watching ${dir}: ${e.message}`));
|
|
21778
21779
|
return () => {
|
|
21779
21780
|
clearTimeout(timer);
|
|
21780
21781
|
watcher.close();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentius/behold",
|
|
3
|
-
"version": "0.29.
|
|
3
|
+
"version": "0.29.10",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "behold — a live control plane on chant. See your whole estate (every substrate in one graph), coloured by drift; act through delegated, gated Ops.",
|
package/web/kiosk.html
CHANGED
|
@@ -137,6 +137,7 @@
|
|
|
137
137
|
.k-box.k-more-below { -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 1.3em), transparent); mask-image: linear-gradient(to bottom, #000 calc(100% - 1.3em), transparent); }
|
|
138
138
|
.k-box.k-more-above { -webkit-mask-image: linear-gradient(to top, #000 calc(100% - 1.3em), transparent); mask-image: linear-gradient(to top, #000 calc(100% - 1.3em), transparent); }
|
|
139
139
|
.k-box.k-more-above.k-more-below { -webkit-mask-image: linear-gradient(to bottom, transparent, #000 1.3em, #000 calc(100% - 1.3em), transparent); mask-image: linear-gradient(to bottom, transparent, #000 1.3em, #000 calc(100% - 1.3em), transparent); }
|
|
140
|
+
.k-box-empty { background: transparent; }
|
|
140
141
|
.k-box-title { background: transparent; padding: 0.1em 0.1em 0; overflow: hidden; }
|
|
141
142
|
/* behold#571: between scenarios the card's box carries what the demo is about. */
|
|
142
143
|
.k-intro { margin: 0; font-size: 1.12em; line-height: 1.4; color: var(--fg); }
|
|
@@ -217,6 +218,8 @@
|
|
|
217
218
|
border-radius: 8px; box-shadow: 0 6px 24px color-mix(in srgb, var(--shadow) 70%, transparent); font-size: 1.15em; line-height: 1.45; }
|
|
218
219
|
#k-what-pop[hidden] { display: none; }
|
|
219
220
|
#k-what-pop p { margin: 0; }
|
|
221
|
+
#k-what-pop .k-what-more { margin-top: 0.5em; }
|
|
222
|
+
#k-what-pop a { color: var(--focus); }
|
|
220
223
|
.k-menu summary { cursor: pointer; color: var(--muted); list-style: none; }
|
|
221
224
|
.k-menu summary::-webkit-details-marker { display: none; }
|
|
222
225
|
.k-menu summary::after { content: " ▾"; }
|
package/web/kiosk.js
CHANGED
|
@@ -584,6 +584,8 @@ function drawBar(bar, s, now, foot) {
|
|
|
584
584
|
if (panel.note) holdBox.appendChild(elRoots("p", "k-note", panel.note, s));
|
|
585
585
|
else if (panel.stage === "pull-request") for (const u of unreviewedLines(s.answer)) holdBox.appendChild(elRoots("p", "k-note k-unknown", u, s));
|
|
586
586
|
}
|
|
587
|
+
// behold#571: render what's present: an empty hold keeps its place (nothing moves when one comes) but draws no box.
|
|
588
|
+
if (!holdBox.children.length) holdBox.className += " k-box-empty";
|
|
587
589
|
right.appendChild(holdBox);
|
|
588
590
|
bar.appendChild(right);
|
|
589
591
|
|
|
@@ -691,8 +693,9 @@ export const LEDGER_POLL_MS = 10_000;
|
|
|
691
693
|
/** behold#571: the approval panel's words for the approval the driver gives next, over its command. */
|
|
692
694
|
export const DRIVER_SIGNS = "Next the driver plays a reviewer with no hand in the change and signs this plan with that reviewer's key:";
|
|
693
695
|
|
|
694
|
-
/** behold#571: "What is this?"
|
|
695
|
-
export const
|
|
696
|
+
/** behold#571: "What is this?" says what behold is; the demo's own intro stays on the card between scenarios. */
|
|
697
|
+
export const WHAT_TEXT = "This is behold, a live view of infrastructure. It draws the setup as a graph and shows its pipeline runs, their logs and the approvals they wait for, as they happen. Here it watches a demo pipeline that runs one change through several Terraform states in a loop.";
|
|
698
|
+
export const WHAT_DOCS = { text: "behold's documentation", url: "https://intentius.io/behold/" };
|
|
696
699
|
|
|
697
700
|
/** behold#571: a fade at a box's edge where its text goes on past it. */
|
|
698
701
|
function fade(b) {
|
|
@@ -959,14 +962,16 @@ export function startKiosk({ bar, frame, foot, side, main, views, tools = null }
|
|
|
959
962
|
};
|
|
960
963
|
if (tools && tools.runsToggle) tools.runsToggle.addEventListener("click", () => setRunsOpen(!document.body.classList.contains("k-runs-open")));
|
|
961
964
|
|
|
962
|
-
// behold#571: "What is this?" opens
|
|
965
|
+
// behold#571: "What is this?" opens what behold is over the page (no layout moves); a click elsewhere or Escape closes it.
|
|
963
966
|
const whatText = () => {
|
|
964
|
-
if (!tools || !tools.pop) return;
|
|
965
|
-
const
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
967
|
+
if (!tools || !tools.pop || tools.pop.firstElementChild) return;
|
|
968
|
+
const docs = el("a", null, WHAT_DOCS.text);
|
|
969
|
+
docs.href = WHAT_DOCS.url;
|
|
970
|
+
docs.target = "_blank";
|
|
971
|
+
docs.rel = "noopener";
|
|
972
|
+
const more = el("p", "k-what-more");
|
|
973
|
+
more.append(docs);
|
|
974
|
+
tools.pop.replaceChildren(el("p", null, WHAT_TEXT), more);
|
|
970
975
|
};
|
|
971
976
|
if (tools && tools.what && tools.pop) {
|
|
972
977
|
const setWhat = (open) => {
|