feat(web): unify console + docs on @unom/ui; host OpenAPI via Scalar
apple / swift (push) Successful in 55s
ci / web (push) Successful in 45s
ci / docs-site (push) Successful in 1m18s
ci / rust (push) Successful in 4m14s
deb / build-publish (push) Successful in 2m16s
decky / build-publish (push) Successful in 12s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 6s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 23s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 3s
ci / bench (push) Successful in 4m40s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 4s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 46s
rpm / build-publish (bazzite, punktfunk-fedora-rpm) (push) Successful in 8m35s
rpm / build-publish (fedora-44, punktfunk-fedora44-rpm) (push) Successful in 8m18s
docker / deploy-docs (push) Successful in 19s
android / android (push) Successful in 3m12s
apple / swift (push) Successful in 55s
ci / web (push) Successful in 45s
ci / docs-site (push) Successful in 1m18s
ci / rust (push) Successful in 4m14s
deb / build-publish (push) Successful in 2m16s
decky / build-publish (push) Successful in 12s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 6s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 23s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 3s
ci / bench (push) Successful in 4m40s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 4s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 46s
rpm / build-publish (bazzite, punktfunk-fedora-rpm) (push) Successful in 8m35s
rpm / build-publish (fedora-44, punktfunk-fedora44-rpm) (push) Successful in 8m18s
docker / deploy-docs (push) Successful in 19s
android / android (push) Successful in 3m12s
Move the management console (web/) off shadcn/ui to the shared @unom/ui design system the marketing site + docs are built on, on the punktfunk violet brand over dark chrome: - Add @unom/ui/@unom/style/motion/radix-ui/zod + Geist; web/.npmrc maps the @unom scope (packages are public-read, so CI needs no npm auth). - styles.css: one dark-violet palette (#141019/#1c1530, brand #6c5bf3 -> #a79ff8) exposed under BOTH the shadcn token names the routes use and @unom/ui's contract, so routes + components both resolve; pulls in @unom/ui's material gloss + easings. - components/ui/* now back onto @unom/ui (AnimatedButton/InputText/Label/ AnimatedCard); brand-mark/wordmark/logo replace the generic Radio icon in the shell + login. - MaterialProvider (specular gloss) at the root. No UI sounds, like the site. docs-site: new /api route renders the host management REST API as an interactive Scalar reference (reads public/openapi.json, a snapshot of docs/api/openapi.json), branded violet and linked from the top nav, the docs sidebar, the landing page, and host-cli.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+10
-3
@@ -5,9 +5,14 @@ OpenAPI at `docs/api/openapi.json`). It shows live status, host capabilities, pa
|
||||
clients, the pairing-PIN flow, and session controls.
|
||||
|
||||
Stack: **TanStack Start** (full SSR) on **Bun** via **Nitro v2** (`bun` preset) · **React
|
||||
Query** through **orval** codegen from the OpenAPI spec · **shadcn/ui** (Tailwind v4) ·
|
||||
Query** through **orval** codegen from the OpenAPI spec · **[`@unom/ui`](https://git.unom.io/unom/ui)**
|
||||
— the shared punktfunk/unom design system the marketing site + docs are built on (Tailwind v4,
|
||||
animated components + specular "material" gloss, the violet brand on dark chrome) ·
|
||||
**Paraglide** i18n (en/de). Package manager + runtime: **Bun**.
|
||||
|
||||
The `@unom` registry mapping lives in [`.npmrc`](.npmrc); the auth token comes from
|
||||
`~/.npmrc` (or a CI secret).
|
||||
|
||||
## Develop
|
||||
|
||||
```sh
|
||||
@@ -91,8 +96,10 @@ Generated code is **not committed** (gitignored) — reproduced from sources:
|
||||
src/
|
||||
routes/ file-based routes (index=dashboard, host, clients, pairing, settings)
|
||||
components/
|
||||
app-shell.tsx sidebar nav + language switcher
|
||||
ui/ shadcn/ui primitives (button, card, table, …)
|
||||
app-shell.tsx sidebar nav (brand lens + wordmark) + language switcher
|
||||
brand-mark/wordmark/logo.tsx punktfunk lens mark + wordmark (shared with the site/docs)
|
||||
unom-providers.tsx @unom/ui Material provider (specular gloss; no sounds, like the site)
|
||||
ui/ @unom/ui-backed primitives (button, input, label, card; badge/table/skeleton)
|
||||
query-state.tsx loading/error wrapper (incl. 401 → "set a token")
|
||||
api/
|
||||
fetcher.ts orval mutator: base URL, bearer token, JSON, throwing ApiError
|
||||
|
||||
Reference in New Issue
Block a user