feat(nouser-explorer): integración al stack yahweh themed

Iter 10. nouser-explorer (paralela a nakui-explorer pero para ver
Mónadas via daemon nouser) tenía colors hardcoded idénticos al
patrón previo. Aplico el mismo refactor: theme global instalado,
chrome a slots, widgets compartidos.

- Nuevas deps: yahweh-theme + 3 widgets (banner, card,
  theme-switcher).
- main() instala Theme::install_default.
- render: 4 vars rgb() chrome → theme slots.
- Header: flex_row + theme switcher a la derecha (mismo pattern
  que nakui-explorer).
- error_banner: div hardcoded → banner_themed(Error).
- 2 cards (Engine/Monad): div().flex_col().p().bg().rounded()...
  → card_themed(cx).border_l_4().border_color(accent).
- Accents semánticos (engine cyan, data purple) quedan locales
  como señales de dominio.

Las dos apps explorer del repo ahora comparten paleta themed +
switcher común.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sergio
2026-05-10 11:09:33 +00:00
parent ea074d7d57
commit 2f426b0171
4 changed files with 72 additions and 28 deletions
+37
View File
@@ -6,6 +6,43 @@ ratio/diff ver `git show <sha>`.
## 2026-05-10
### feat(nouser-explorer): integración al stack yahweh themed
Iter 10. `nouser-explorer` (la app paralela a `nakui-explorer`
para ver Mónadas via daemon nouser) tenía colors hardcoded
idénticos al patrón previo. Aplico el mismo refactor que se hizo
para `nakui-explorer` en iter 4: instala el theme global, migra
chrome a slots, usa los widgets `banner_themed` / `card_themed` /
`theme_switcher`.
Cambios en `nouser-explorer`:
- **Nuevas deps**: `yahweh-theme`, `yahweh-widget-banner`,
`yahweh-widget-card`, `yahweh-widget-theme-switcher`.
- **`main()`**: `Theme::install_default(cx)` antes de
`cx.open_window`.
- **`render`**: 4 vars `let X = rgb(...)` (chrome) → theme slots
(`bg_app`/`fg_text`/`fg_muted`/`bg_panel`/`border`).
- **Header**: gana flex_row + theme switcher en la derecha (mismo
pattern que nakui-explorer).
- **`error_banner`**: pasa de div hardcoded a `banner_themed(cx,
Banner::Error, ...)` con override de padding (16/8) por
convención del header.
- **2 cards de Engine y Monad**: pasan de `div().flex().flex_col()
.p().mb().bg(card_bg).rounded().border_l_4().border_color()...`
a `card_themed(cx).border_l_4().border_color(accent)...`.
- **Acentos semánticos**: `accent_engine` (cyan, las "máquinas")
y `accent_data` (purple, las Mónadas) quedan locales — son
señales del dominio nouser, no del chrome.
Tests: workspace stack intacto. nouser-explorer no tiene tests
propios (siempre fue una vista live del daemon, sin lógica
testable separada).
Beneficio operativo: las dos apps explorer del repo
(`nakui-explorer` para event log + `nouser-explorer` para Mónadas)
ahora comparten la misma paleta themed + el mismo control de
switcher. Si un usuario las corre lado a lado, la consistencia
visual emerge sola.
### feat(yahweh): caret blinking + slots ornament en theme + MetaApp full themed
Iters 8-9 combinadas. Tres mejoras pequeñas que cierran la
integración del theme: