8fdef818cc
Iter 6. Cierra el ciclo del theme: ya teníamos paleta themed + widgets que la consumen, faltaba el control UI para rotar entre presets en vivo. Ahora hay un botón yahweh que muestra el theme actual y al click avanza al siguiente. crates/modules/ui_engine/widgets/theme-switcher/: - pub fn theme_switcher(cx: &mut App) -> impl IntoElement: botón clickable con bg=panel_alt, hover=row_hover, label "Tema: <name> ▸". Al click hace Theme::set(cx, Theme::next_after(current.name)). - 2 tests #[gpui::test]: smoke + verificación de cambio de global. - Dev-dep gpui con test-support. Migración: - nakui-explorer: header pasa a flex_row con label flex_grow + switcher alineado derecha. - yahweh-widget-meta-form (sidebar): mismo pattern en el header "Nakui" del sidebar. Tests stack: 115 → 117. Beneficio: click cambia toda la paleta en vivo. 6 presets disponibles (Nebula, Aurora, Sunset, Flat Dark, Solarized Light, High Contrast) ciclables circularmente. Limitación: TextInput entities tienen colors hardcoded; migrar text_input al theme es iter futura. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
23 lines
990 B
TOML
23 lines
990 B
TOML
[package]
|
|
name = "yahweh-widget-meta-form"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
description = "Yahweh — widget metainterfaz: lista, formulario, modal de delete y selector EntityRef que renderean cualquier `yahweh-meta-schema::Module` contra cualquier `yahweh_meta_runtime::MetaBackend`. App-agnostic."
|
|
|
|
[dependencies]
|
|
gpui = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
uuid = { workspace = true, features = ["serde"] }
|
|
yahweh-meta-runtime = { path = "../../libs/meta-runtime" }
|
|
yahweh-meta-schema = { path = "../../libs/meta-schema" }
|
|
yahweh-theme = { path = "../../libs/theme" }
|
|
yahweh-widget-banner = { path = "../banner" }
|
|
yahweh-widget-theme-switcher = { path = "../theme-switcher" }
|
|
yahweh-widget-text-input = { path = "../text_input" }
|
|
|
|
[dev-dependencies]
|
|
# Activar TestAppContext + helpers para tests del widget que
|
|
# necesiten un cx GPUI sintético (sin abrir window real).
|
|
gpui = { workspace = true, features = ["test-support"] }
|