feat(sacred-valley): card factory, registry ordering, view skeleton

Adds the Plan 6 card framework: svCard() chrome factory, pure orderCards()
ordering helper with unit tests, three stub card modules (clock/weather/host-perf),
and rewrites sacred_valley.js with the two-band layout that mounts ordered cards.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
root
2026-06-02 22:26:09 +10:00
parent 4b5faefa80
commit c3a3ac4feb
7 changed files with 79 additions and 9 deletions

View File

@@ -0,0 +1,14 @@
// Pure ordering logic (kept DOM-free so it is unit-testable). The card MODULES
// themselves are imported by sacred_valley.js, which passes their defs here.
export function orderCards(defs, layout = { card_order: [], hidden: [] }) {
const byId = new Map(defs.map(d => [d.id, d]));
const hidden = new Set(layout.hidden || []);
const out = [];
for (const id of layout.card_order || []) {
if (byId.has(id) && !hidden.has(id)) { out.push(byId.get(id)); byId.delete(id); }
}
for (const d of defs) {
if (byId.has(d.id) && !hidden.has(d.id)) out.push(d);
}
return out;
}