1# llimphi-module-allichay
2
3*Read this in English: [README.md](README.md).*
4
5El renderizador único de la configuración declarativa.
6
7Toma un `allichay::Schema` y lo pinta con el **sidebar unificado**
8(`llimphi-widget-rag-sidebar`): un diente por sección top-level y, en el panel
9del diente activo, controles escalares para los campos (toggle, slider,
10dropdown, color, texto). El rail, el panel, el header uniforme (título de la
11sección), el buscador y el control de disposición los pinta UN solo widget —
12allichay no re-deriva chrome. Los cambios salen como un `AllichayMsg` que el
13host mapea a su propio `Msg`.
14
15El cuerpo schema-driven (`section_view`/`schema_panel`) queda expuesto
16aparte para hosts que ya tienen su propio rail (p. ej. `wawa-panel`): esos
17reutilizan el renderizado de campos sin el sidebar interno.
18
19Es un módulo al estilo de `command-palette`: aporta `state + Msg + apply_key
20+ view`. El host:
21
221. guarda un `AllichayState` en su modelo;
232. llama `allichay_view` en su `view`, mapeando `AllichayMsg` → su `Msg`;
243. enruta las teclas a `AllichayState::apply_key` cuando hay un campo de
25 texto focado;
264. ante un `AllichayMsg::Change`, aplica el `(FieldPath, FieldValue)` a su
27 config (vía `allichay::Configurable::apply`) y la persiste con su propio
28 `save()` — allichay no toca el disco.
29
30Subsecciones: en v1 se pintan como grupos con encabezado dentro del panel de
31la sección activa (un solo nivel de dientes). El panel central combina las
32apps en un esquema donde cada app es una sección-diente y sus secciones
33reales bajan a subsecciones — así un mismo rail navega "apps → secciones".
34
35---
36
37Parte de **llimphi** — ver [llimphi](../../LEEME.md).
LEEME.md
llimphi-module-allichay
Read this in English: README.md.
El renderizador único de la configuración declarativa.
Toma un allichay::Schema y lo pinta con el sidebar unificado
(llimphi-widget-rag-sidebar): un diente por sección top-level y, en el panel
del diente activo, controles escalares para los campos (toggle, slider,
dropdown, color, texto). El rail, el panel, el header uniforme (título de la
sección), el buscador y el control de disposición los pinta UN solo widget —
allichay no re-deriva chrome. Los cambios salen como un AllichayMsg que el
host mapea a su propio Msg.
El cuerpo schema-driven (section_view/schema_panel) queda expuesto
aparte para hosts que ya tienen su propio rail (p. ej. wawa-panel): esos
reutilizan el renderizado de campos sin el sidebar interno.
Es un módulo al estilo de command-palette: aporta `state + Msg + apply_key
- guarda un
AllichayState en su modelo;
- llama
allichay_view en su view, mapeando AllichayMsg → su Msg;
- enruta las teclas a
AllichayState::apply_key cuando hay un campo de
texto focado;
- ante un
AllichayMsg::Change, aplica el (FieldPath, FieldValue) a su
config (vía allichay::Configurable::apply) y la persiste con su propio
save() — allichay no toca el disco.
Subsecciones: en v1 se pintan como grupos con encabezado dentro del panel de
la sección activa (un solo nivel de dientes). El panel central combina las
apps en un esquema donde cada app es una sección-diente y sus secciones
reales bajan a subsecciones — así un mismo rail navega "apps → secciones".
Parte de llimphi — ver llimphi.