hyperhive/frontend/packages/dashboard/src/core.css
iris be8d97ded7 feat(dashboard): add standalone C0R3 page (system tab → its own page)
Carves the dashboard's SYST3M tab content out into a standalone page at
/core.html, reached from the H0M3 hub, with a createTabStrip sub-tab
strip (default = Rebuild Queue): rebuild queue, meta inputs, kept state,
container load. Same minimal-chrome standalone-page pattern as
/logs.html (← home back-link + sub-tab nav).

This is the additive first step: the new page is its own esbuild bundle
that cold-loads /api/state and subscribes to /dashboard/stream for the
same live rebuild_queue_changed / meta_inputs_changed / meta_update_running
/ tombstones_changed events the dashboard uses. The four section
renderers are ported from tabs.js; the dashboard's SYST3M tab is left in
place and untouched, so this PR cannot regress the existing dashboard.
Removing the now-duplicate SYST3M tab + de-duplicating the renderers
(into a shared module) + splitting the shared section CSS out of
dashboard.css is the deliberate follow-up.

core.css imports dashboard.css wholesale (transitional) so the ported
sections render identically; dashboard.css does not import common.css so
nothing double-loads. build.mjs gains core.js / core.css / core.html
entries; no Rust change (hive-c0re serves dist/ via ServeDir, and the
/dashboard/stream + /dashboard/history routes are registered ahead of
the fallback).

Page name "C0R3" is a placeholder pending the operator's pick — trivially
renamed (the /core.html URL + the C0R3 label).
2026-06-10 19:51:06 +02:00

36 lines
1.5 KiB
CSS

/* ─── /core.html — C0R3 page ───────────────────────────────────────
Standalone page carved out of the dashboard's old SYST3M tab. Same
minimal-chrome pattern as /logs.html (a `← home` back-link + a
createTabStrip sub-tab strip; base tab + page-header styling comes
from @hive/shared via common.css, linked by core.html).
The four section renderers (rebuild queue, meta inputs, kept state,
container load) are ported verbatim from the dashboard, so they emit
the exact same class names. Those section-internal rules live in
dashboard.css; rather than duplicate the (scattered) blocks here, we
@import dashboard.css wholesale — transitional. dashboard.css does
NOT @import common.css (it relies on link order), so this doesn't
double-load anything; the dashboard-only chrome rules it carries
(`body.dashboard-shell`, `.dashboard-chrome`, `.tabbar`) simply match
nothing on /core.html. The follow-up that removes the SYST3M tab can
split the shared section rules into their own stylesheet. */
@import "./dashboard.css";
body.core-shell {
margin: 0;
padding: 0;
}
/* Fill the header row next to the ← home back-link, same as the logs
sub-tab strip. */
.core-tabbar {
flex: 1;
}
.core-main {
padding: 1.2em 1.5em 2em;
}
/* createTabStrip toggles the native `hidden` attribute on inactive
panes; ensure it wins over any inherited display. */
.core-pane[hidden] { display: none; }