# llimphi-widget-rag-sidebar *Read this in English: [README.md](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 - los **dientes** del rail (con `llimphi_widget_dock_rail`, aparte), - el **cuerpo** del panel abierto (una `View` ya pintada por el host), - los **grupos** del multiswitch (cada uno un `segmented` con su callback), 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.) ```ignore 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](../../LEEME.md).