tawasuyu

tawasuyu/llimphi

Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.

Rust 660Markdown 302TOML 157RON 312382 Sutichaykuna

⎇ main widgets/rag-sidebar/LEEME.md Markdown · 34 siq'ikuna · 1.6 KB Ñawpa willay ch'uya

chore: refresco desde el monorepo — 27 crates nuevos (anim, lottie, svg, mesh, image, layer, test, wire-view, widgets rag-sidebar/router/lazy-list/rive-button) y sync de los 95 existentes 93253cc22 · Sergio ·

1# llimphi-widget-rag-sidebar
2
3*Read this in English: [README.md](README.md).*
4
5El **chrome reusable** de un sidebar acoplable ("rag sidebar"): la barra con **buscador jerárquico** + **control mutable**, el **cabezal uniforme** de panel, y el **popover multiswitch** de disposición.
6
7Render-only y agnóstico del `Msg`. El widget NO conoce el dominio: el host
8(pata, wawa-panel, cualquier app) aporta
9
10- los **dientes** del rail (con `llimphi_widget_dock_rail`, aparte),
11- el **cuerpo** del panel abierto (una `View<Msg>` ya pintada por el host),
12- los **grupos** del multiswitch (cada uno un `segmented` con su callback),
13
14y el widget pinta el chrome uniforme alrededor. Así **un solo dueño** pinta el
15header/buscador/control en todas las apps, en vez de que cada una lo re-derive.
16
17(No confundir con `pata-llimphi/src/rag.rs`, que es un *diente* concreto —
18preguntarle al correo con RAG—; aquí "rag" es el nombre del sidebar.)
19```ignore
20let body = mi_panel(...);                 // el host pinta el cuerpo
21let spec = RagSidebarSpec {
22    title: "Archivos".into(), no_header: false, accessory: Some(toggle), body,
23    search: nav.search.clone(), search_focused: nav.focused, search_hits: hay,
24    on_search_focus: Arc::new(|f| Msg::SearchFocus(f)),
25    control_open: nav.control_open, t, on_control_toggle: Msg::ControlToggle,
26    groups: vec![RagSwitchGroup::new("Rail", &["Adentro","Afuera"], outside as usize,
27                   move |i| Msg::SetOutside(i==1))],
28};
29rag_drawer_view(spec, w, h, &RagSidebarPalette::from_theme(&theme))
30```
31
32---
33
34Parte de **llimphi** — ver [llimphi](../../LEEME.md).

LEEME.md

llimphi-widget-rag-sidebar

Read this in English: README.md.

El chrome reusable de un sidebar acoplable ("rag sidebar"): la barra con buscador jerárquico + control mutable, el cabezal uniforme de panel, y el popover multiswitch de disposición.

Render-only y agnóstico del Msg. El widget NO conoce el dominio: el host (pata, wawa-panel, cualquier app) aporta

y el widget pinta el chrome uniforme alrededor. Así un solo dueño pinta el header/buscador/control en todas las apps, en vez de que cada una lo re-derive.

(No confundir con pata-llimphi/src/rag.rs, que es un diente concreto — preguntarle al correo con RAG—; aquí "rag" es el nombre del sidebar.)

let body = mi_panel(...);                 // el host pinta el cuerpo
let spec = RagSidebarSpec {
    title: "Archivos".into(), no_header: false, accessory: Some(toggle), body,
    search: nav.search.clone(), search_focused: nav.focused, search_hits: hay,
    on_search_focus: Arc::new(|f| Msg::SearchFocus(f)),
    control_open: nav.control_open, t, on_control_toggle: Msg::ControlToggle,
    groups: vec![RagSwitchGroup::new("Rail", &["Adentro","Afuera"], outside as usize,
                   move |i| Msg::SetOutside(i==1))],
};
rag_drawer_view(spec, w, h, &RagSidebarPalette::from_theme(&theme))

Parte de llimphi — ver llimphi.