[package] name = "llimphi-module-allichay" version.workspace = true edition.workspace = true license.workspace = true authors.workspace = true publish.workspace = true description = "llimphi-module-allichay — el renderizador único de la config declarativa. Pinta un `allichay::Schema` con el rail de dientes (secciones) y controles escalares (toggle/slider/dropdown/color/texto), y emite los cambios como (FieldPath, FieldValue). State + Msg + apply_key/view, el patrón de módulo Llimphi. Reutilizable por el panel central y por cada app." repository.workspace = true [dependencies] allichay = { workspace = true } # El COMPOSITOR, no el shell de escritorio. Este módulo no usaba nada del shell: # lo tomaba sólo por sus re-exportes (taffy, peniko, las teclas, `View`), y con # ellos se llevaba winit, wgpu y el backend `vello` —excluyente con el de una app # enjaulada—. Es el mismo trato que ya tienen los widgets (W4.6). llimphi-compositor = { workspace = true, default-features = false } llimphi-theme = { workspace = true } llimphi-widget-dock-rail = { workspace = true, default-features = false } # El sidebar unificado (rail + panel + header + buscador): un solo dueño del chrome. llimphi-widget-rag-sidebar = { workspace = true, default-features = false } # Íconos vectoriales de los dientes (glifo→vector, determinista en toda máquina). llimphi-icons = { workspace = true, default-features = false } llimphi-widget-switch = { workspace = true, default-features = false } llimphi-widget-slider = { workspace = true, default-features = false } llimphi-widget-segmented = { workspace = true, default-features = false } llimphi-widget-select = { workspace = true, default-features = false } llimphi-widget-scroll = { workspace = true, default-features = false } # `std` explícito: apagar los defaults para poder apagar `treesitter` apagaba # también `std`, y `TextInputState::handle` —que este módulo llama— vive detrás # de él. Con `--workspace` no se notaba porque otro crate lo encendía y la # unificación de features de cargo lo regalaba; con `cargo check -p` a secas, # que es lo que ve quien lo instala suelto, no compilaba. llimphi-widget-text-input = { path = "../../widgets/text-input", version = "0.1.0", default-features = false, features = ["std"] } llimphi-widget-table = { workspace = true, default-features = false } llimphi-widget-color-picker = { workspace = true } llimphi-widget-modal = { workspace = true } llimphi-widget-edit-menu = { workspace = true } llimphi-widget-context-menu = { workspace = true } [dev-dependencies] # Sólo para los dos ejemplos de ESCRITORIO (`settings_demo` abre una ventana, # `dump_panel` rasteriza con vello). El módulo en sí ya no lo usa: por eso es # dev-dependency y no dependency. llimphi-ui = { workspace = true } # Volcado headless del view a PNG (llvmpipe) para verlo sin levantar ventana, # usando el schema real de mirada como muestra. mirada-brain = { path = "../../../mirada/mirada-brain" } pata-core = { path = "../../../pata/pata-core" } png = { workspace = true } pollster = { workspace = true } # El reproductor lee una app declarada de un ARCHIVO: `allichay::Schema` ya # deriva Serialize/Deserialize, así que una app es un documento y no un binario. serde_json = { workspace = true } [features] # Los nueve widgets van **sin backend fijo** y se reenvían acá. Tomarlos con # `workspace = true` a secas les daba sus defaults —o sea `vello`— y eso chocaba # con el `wire` de una app enjaulada: nueve crates que no deciden nada eligiendo # el rasterizador de todos. # `treesitter` (default-on) reenvía la del editor: con ella, resaltado de # Rust/Python; sin ella (`--no-default-features`) degrada a texto plano y **no** # se arrastra ningún C, que es lo que permite cross-compilar desde Linux. # La dependencia va por `path` y no por `workspace = true` a propósito: heredar # del workspace sólo deja AÑADIR features, nunca apagar `default-features`. default = ["treesitter", "vello"] treesitter = ["llimphi-widget-text-input/treesitter"] # Un módulo NO elige backend: lo elige quien ensambla la app. Este default existe # sólo para que el crate se pueda compilar SOLO (`cargo check -p …`), porque el # compositor no compila sin ninguno. # El perfil de math/stdlib. Va aparte del backend porque son ejes distintos: la # jaula corre con `wire` + `std` en Linux y con `wire` + `libm` adentro de wawa. std = ["llimphi-compositor/std", "llimphi-widget-dock-rail/std", "llimphi-widget-rag-sidebar/std", "llimphi-icons/std", "llimphi-widget-switch/std", "llimphi-widget-slider/std", "llimphi-widget-segmented/std", "llimphi-widget-select/std", "llimphi-widget-scroll/std", "llimphi-widget-table/std"] libm = ["llimphi-compositor/libm", "llimphi-widget-dock-rail/libm", "llimphi-widget-rag-sidebar/libm", "llimphi-widget-switch/libm", "llimphi-widget-slider/libm", "llimphi-widget-segmented/libm", "llimphi-widget-select/libm", "llimphi-widget-scroll/libm", "llimphi-widget-table/libm"] vello = ["llimphi-compositor/vello", "llimphi-widget-dock-rail/vello", "llimphi-widget-rag-sidebar/vello", "llimphi-icons/vello", "llimphi-widget-switch/vello", "llimphi-widget-slider/vello", "llimphi-widget-segmented/vello", "llimphi-widget-select/vello", "llimphi-widget-scroll/vello", "llimphi-widget-table/vello"] cpu = ["llimphi-compositor/cpu", "llimphi-widget-dock-rail/cpu", "llimphi-widget-rag-sidebar/cpu", "llimphi-icons/cpu", "llimphi-widget-switch/cpu", "llimphi-widget-slider/cpu", "llimphi-widget-segmented/cpu", "llimphi-widget-select/cpu", "llimphi-widget-scroll/cpu", "llimphi-widget-table/cpu"] wire = ["llimphi-compositor/wire", "llimphi-widget-dock-rail/wire", "llimphi-widget-rag-sidebar/wire", "llimphi-icons/wire", "llimphi-widget-switch/wire", "llimphi-widget-slider/wire", "llimphi-widget-segmented/wire", "llimphi-widget-select/wire", "llimphi-widget-scroll/wire", "llimphi-widget-table/wire"]