feat(frontend): add the H0M3 menu-hub page (#1464 step 1)
First step of the dashboard-tab consolidation (#1464): a static menu page linking to every top-level surface, so the tab strip can later shed its `→` page-links and the dashboard can graduate Stats/Settings to their own pages. - dashboard/src/home.{html,css,js}: a responsive grid of link tiles (D4SHB04RD, FL0W, L0GS, M4TR1X). Pure portal — no tabbar/SSE. Colours from the shared theme.css, base typography from common.css. The Matrix tile is hidden until home.js confirms `matrix_gui_enabled` (same gating as the dashboard's M4TR1X tab); home.js also fills the swarm/hive identity line. - build.mjs: emit home.{html,css,js}. Served at `/home.html` for now (additive — reachable via the existing ServeDir, links to surfaces at their current routes). Promoting it to `/` (and relocating the dashboard to `/dashboard` + wiring `← home` back-links) is the next step — a route swap that touches hive-c0re's static router, coordinating with damocles. Deliberately decoupled so this page ships standalone without conflicting with the in-flight tabs.js change (#1449/#1451). Part of #1464.
This commit is contained in:
parent
3cac374c60
commit
b0eb824cfa
4 changed files with 150 additions and 3 deletions
|
|
@ -43,7 +43,7 @@ mkdirSync(staticDir(''), { recursive: true });
|
|||
// follow-up once asset sizes warrant it). esbuild writes each entry
|
||||
// to `static/<name>.js` based on the entryPoint basename.
|
||||
await build({
|
||||
entryPoints: [src('tabs.js'), src('flow.js'), src('logs.js')],
|
||||
entryPoints: [src('tabs.js'), src('flow.js'), src('logs.js'), src('home.js')],
|
||||
outdir: staticDir(''),
|
||||
bundle: true,
|
||||
format: 'esm',
|
||||
|
|
@ -81,7 +81,7 @@ await build({
|
|||
// (the standalone Catppuccin palette — kept its own file so a theme
|
||||
// swap replaces only it) + common.css (shared typography, badges,
|
||||
// buttons, inbox, side panel) plus its own page-specific bundle.
|
||||
for (const entry of ['theme.css', 'common.css', 'dashboard.css', 'flow.css', 'logs.css']) {
|
||||
for (const entry of ['theme.css', 'common.css', 'dashboard.css', 'flow.css', 'logs.css', 'home.css']) {
|
||||
await build({
|
||||
entryPoints: [src(entry)],
|
||||
outfile: staticDir(entry),
|
||||
|
|
@ -91,7 +91,7 @@ for (const entry of ['theme.css', 'common.css', 'dashboard.css', 'flow.css', 'lo
|
|||
});
|
||||
}
|
||||
|
||||
for (const html of ['index.html', 'flow.html', 'logs.html']) {
|
||||
for (const html of ['index.html', 'flow.html', 'logs.html', 'home.html']) {
|
||||
copyFileSync(src(html), dist(html));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue