From 677ae5cdc8cad986ad447cf95eb68e531190dbda Mon Sep 17 00:00:00 2001 From: Brian Love Date: Sun, 10 May 2026 09:04:23 -0700 Subject: [PATCH] feat(examples-chat): A2UI Theme palette dropdown (Pass 4) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a 6th palette dropdown that switches A2UI theme presets at runtime by toggling `data-theme` on the document root. The global stylesheet keys scoped `--a2ui-*` overrides off this attribute. Four presets, mirroring the lib-side files shipped in PR #235: - Default dark (lib's :host defaults; data-theme attr set but no override block needed — the unset state) - Default light (neutral light, blue accent, off-white surface) - Material dark (M3 purple primary on dark surface) - Material light (M3 purple primary on near-white surface) Inline-themes-in-styles.css approach (vs. dynamic swap) sidesteps the workspace-vs-published-path resolution complexity: each theme's :root override block lives in examples/chat/angular/src/styles.css gated by `data-theme="..."` attribute selector. Mirrors content from libs/chat/src/themes/*.css. Wiring: - demo-shell: `theme` signal (default 'default-dark', persisted via palette-persistence under key 'theme'); `effect()` reflects current signal value onto `` so the global stylesheet's `:root[data-theme=...]` rules activate. Initial mount reads from persistence and the effect immediately syncs the attribute. - control-palette: new `theme` + `themeOptions` inputs and `themeChange` output; new ` + +