feat(rhema-code): add the colors setting with four palettes

The stored `colors` key names a palette — rhema (the default,
Jadeite), aquamarine, black-and-white, or dracula — and the
Appearance page of /settings cycles it live, like the theme and
icon toggles beside it. Each palette carries a dark and a light
appearance under the existing `theme` key; dracula's light side is
derived, the official palette ships only dark.

The appearance decision moves off token comparison: Theme now
answers is_dark() from the ground/text luminance, so palettes
beyond the original two get the right per-profile fallback tones.
This commit is contained in:
vhaudiquet committed 2026-10-17 04:28:31 +08:00
commit 81da26b955
159 files changed
+50628

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
// The web claw is a client-side dashboard over an authenticated API:
// no server rendering, no secrets on the wire beyond the bearer token
// the user supplies. In dev, the claw-proxy server middleware (dev-only)
// keeps /v1 and /healthz same-origin against a locally running claw, so
// no CORS is involved; in the built static bundle that middleware is
// inert and the ingress owns the routing (see README.md).
export default defineNuxtConfig({
compatibilityDate: '2025-07-15',
ssr: false,
devtools: { enabled: false },
runtimeConfig: {
// Dev-only: where the proxy middleware forwards the claw's routes.
clawUpstream: 'http://127.0.0.1:7799',
public: {
// Base URL of the claw API; empty = same origin (dev proxy or
// ingress). Cross-origin bases need CORS the claw does not send.
clawBase: '',
// Default bearer token; NUXT_PUBLIC_CLAW_TOKEN. The UI can
// override it at runtime (stored in localStorage).
clawToken: '',
},
},
css: ['~/assets/css/main.css'],
typescript: {
strict: true,
},
})