This commit is contained in:
2026-08-06 20:51:46 +02:00
parent f86db1556c
commit d1b70ea7d2
30 changed files with 1601 additions and 260 deletions

View File

@@ -80,6 +80,24 @@ en custom properties (`--pi-color-*`, `--pi-theme-*`) aplicadas vía `ShellClass
tema (Default/Alternative/Minimal/Gradient) y guía para añadir tokens o temas
nuevos: [`TOKENS.md`](./TOKENS.md).
Tres piezas pensadas para que reskinear la librería en otro proyecto sea
barato:
- **`PiThemeService`** (`util/theme`) — inyectable, con `theme`/`darkMode`
como señales normales (mutables con setters o con `[(value)]`/`[(checked)]`
directo), persistencia en `localStorage` y aplicación de clases vía
`effect()`. Sustituye al cableado manual que antes vivía en cada app
consumidora (ver el `app.ts` del playground antes/después de esta
extracción).
- **`nx g @pi/ui:theme <nombre>`** — genera `_<nombre>.scss`, lo registra en
`themes/index.scss`, añade la entrada a `ShellClass` y extiende
`PiThemeService`; el tema queda seleccionable sin pasos manuales.
- **`nx run ui:lint-styles`** — regla de stylelint (`pi/no-raw-color-token`)
que detecta un `--pi-color-*` usado fuera del fallback de un
`--pi-theme-*`, la misma clase de bug que dejó colores de marca fijos en
modo oscuro (accordion/tab/select-option, antes de tokenizarlos). Target
aparte por ahora — ver TOKENS.md para el porqué y el estado de adopción.
| Componente | Contrato | Tipo del valor |
| ---------------------------------------------------- | --------------------- | ------------------------------------- |
| text, email, password, phone, icon, search, textarea | `FormValueControl` | `string` |