0b51b8ee
web: shell, theme, keyboard, stub routes, palette skeleton
- lib/theme.ts: bootstrapTheme() + setTheme() with OS/localStorage sync - lib/keyboard.ts: g-prefix nav, j/k cursor, ⌘K palette, Esc, Enter - lib/theme.test.ts + lib/keyboard.test.ts: 26 vitest tests (TDD) - shell/TopBar.tsx: brand crumb, search trigger, tab nav using router pathname - shell/SubBar.tsx: slot component with optional right section - shell/Palette.tsx: modal overlay, JUMP items, synthetic SEARCH row - styles/shell.css + styles/palette.css: ported verbatim from prototype.css - routes/__root.tsx: wires TopBar, Outlet, Palette, keyboard controller, bootstrapTheme - routes/index.tsx + projects/stats/health/settings/search.tsx: EmptyState stubs - main.tsx: replace scaffold div with RouterProvider - vitest.config.ts: add jsdom url for localStorage support (Node 25 compat)
Eugene Blikh <bigbes@gmail.com> — 2026-04-26 03:53:01 UTC
Commit 0b51b8ee59a86f13b764e305ebffa0c60507ec12 —
view raw patch
Parent(s):
76a281a0
| File | Status | + | − |
|---|---|---|---|
internal/server/web/dist/index.html
|
M | +19 | -1 |
web/src/lib/keyboard.test.ts
|
A | +249 | |
web/src/lib/keyboard.ts
|
A | +97 | |
web/src/lib/theme.test.ts
|
A | +172 | |
web/src/lib/theme.ts
|
A | +47 | |
web/src/main.tsx
|
M | +12 | -4 |
web/src/routeTree.gen.ts
|
M | +129 | -8 |
web/src/routes/__root.tsx
|
M | +62 | -2 |
web/src/routes/health.tsx
|
A | +21 | |
web/src/routes/index.tsx
|
A | +22 | |
web/src/routes/projects.tsx
|
A | +21 | |
web/src/routes/search.tsx
|
A | +32 | |
web/src/routes/settings.tsx
|
A | +21 | |
web/src/routes/stats.tsx
|
A | +21 | |
web/src/shell/Palette.tsx
|
A | +148 | |
web/src/shell/SubBar.tsx
|
A | +18 | |
web/src/shell/TopBar.tsx
|
A | +50 | |
web/src/styles/palette.css
|
A | +126 | |
web/src/styles/shell.css
|
A | +184 | |
web/vitest.config.ts
|
M | +5 |