b3a99f38dc
Cierra el refactor de UI. El widget render (forms, lists, modal de delete, EntityRef selector, sidebar, key handlers) deja de vivir en nakui-ui y pasa a un crate yahweh nuevo, genérico sobre MetaBackend. crates/modules/ui_engine/widgets/meta-form/ (yahweh-widget-meta-form): - pub MetaApp<B: MetaBackend> con todo el state UI + impl Render + handlers + render_*. El bound `B: MetaBackend` se propaga. - pub fn new(modules, backend, initial_toast, initial_error, cx): constructor sin bootstrap. Caller pre-construye todo. - Helpers locales del widget: lookup_field, append_compact_msg, format_seed_toast. - Cero deps a nakui o brahman-cards. Reusable por cualquier app. - 3 tests funcionales puros (lookup_field, append_compact_msg, format_seed_toast). nakui-ui (shell): - main.rs: 1959 → 424 líneas (78% reducción). Sólo bootstrap: load_ui_modules + load executors + NakuiBackend::open + cx.open_window con MetaApp::<NakuiBackend>::new como root view. - Dep nueva yahweh-widget-meta-form. - Tests E2E quedan: event_log_replay, morphism_pipeline real sales, load_ui_modules x3 (4 shell). NakuiBackend tests siguen en backend.rs (8). Widget tests en su crate. Distribución total tests refactor yahweh: - yahweh-meta-schema: 8 - yahweh-meta-runtime: 42 - yahweh-widget-meta-form: 3 - brahman-cards: 26 - nakui-ui: 12 (4 shell + 8 backend) Total: 91 tests cubriendo el área. Cada crate compila individualmente. Fase 3 (shell mínimo) era implícita en F2c — el shell ya quedó en 424 líneas. Pendientes restantes: KCL → Nickel, eliminar card.k. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
26 lines
1015 B
TOML
26 lines
1015 B
TOML
[package]
|
|
name = "nakui-ui"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
description = "Nakui — runtime GPUI de la metainterfaz: carga module.json desde un directorio, monta sidebar de menús + área principal con listas y formularios sin código compilado por módulo."
|
|
|
|
[dependencies]
|
|
nakui-core = { path = "../../modules/nakui/core" }
|
|
yahweh-meta-schema = { path = "../../modules/ui_engine/libs/meta-schema" }
|
|
yahweh-meta-runtime = { path = "../../modules/ui_engine/libs/meta-runtime" }
|
|
brahman-cards = { path = "../../core/brahman-cards" }
|
|
yahweh-widget-text-input = { path = "../../modules/ui_engine/widgets/text_input" }
|
|
yahweh-widget-meta-form = { path = "../../modules/ui_engine/widgets/meta-form" }
|
|
yahweh-theme = { path = "../../modules/ui_engine/libs/theme" }
|
|
gpui = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
uuid = { workspace = true, features = ["serde"] }
|
|
|
|
[[bin]]
|
|
name = "nakui-ui"
|
|
path = "src/main.rs"
|
|
|
|
[dev-dependencies]
|
|
tempfile = { workspace = true }
|