feat(yahweh-widget-card): container card-shape compartido para timeline entries
Iter 3 de integración nakui↔yahweh. El card visual pattern (padding consistente + rounded + flex_col + gap) que vivía duplicado en cada timeline entry de nakui-explorer ahora es un widget yahweh reusable. crates/modules/ui_engine/widgets/card/: - pub fn card() -> Div: flex_col + px(12) + py(8) + mb(4) + rounded(4) + gap(2). Sin colores (caller decide via builder). - 1 test smoke. nakui-explorer: - Los 2 timeline entry patterns (Seed/Morphism) pasan de ~7 calls a ~3, intención "card with accent" emerge del nombre. Tests stack: 111 → 112. App-agnostic — el widget no impone paleta, permite themes diversos. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,50 @@ ratio/diff ver `git show <sha>`.
|
||||
|
||||
## 2026-05-10
|
||||
|
||||
### feat(yahweh-widget-card): container card-shape compartido para timeline entries
|
||||
Iteración 3 de la integración nakui ↔ yahweh. El "card visual"
|
||||
pattern (padding consistente + rounded + flex_col + gap) que vivía
|
||||
duplicado en cada timeline entry de `nakui-explorer` ahora es un
|
||||
widget yahweh reusable. Sin acoplamiento a colores: el caller
|
||||
decide bg/border/accent.
|
||||
|
||||
Crate nuevo: `crates/modules/ui_engine/widgets/card/`
|
||||
(`yahweh-widget-card`):
|
||||
- **Dep**: solo `gpui`. App-agnostic.
|
||||
- **`pub fn card() -> Div`**: container con `flex_col` + `px(12)`
|
||||
+ `py(8)` + `mb(4)` + `rounded(4)` + `gap(2)`. Sin colores
|
||||
aplicados.
|
||||
- El return es `Div` GPUI — el caller compone con `.bg(...)`,
|
||||
`.border_l_4()`, `.border_color(...)`, `.child(...)`, hover,
|
||||
on_click, etc., según necesite.
|
||||
- 1 test smoke (constructor no panicea).
|
||||
|
||||
Migración de `nakui-explorer`:
|
||||
- Nueva dep `yahweh-widget-card`.
|
||||
- Los 2 patterns de timeline entry (Seed y Morphism) pasan de:
|
||||
```rust
|
||||
div().flex().flex_col().px(12).py(8).mb(4).bg(card_bg)
|
||||
.rounded(4).border_l_4().border_color(accent).gap(2)...
|
||||
```
|
||||
a:
|
||||
```rust
|
||||
card().bg(card_bg).border_l_4().border_color(accent)...
|
||||
```
|
||||
- Reducción ~7 calls → ~3 por entry; legibilidad mejor (la
|
||||
intención "card with accent" emerge del nombre `card()`).
|
||||
|
||||
Tests stack: 111 → **112 verdes** (+1 del crate card). Cada crate
|
||||
afectado compila y testea individualmente.
|
||||
|
||||
Beneficio operativo:
|
||||
- Si `MetaApp` o cualquier futura app necesita un container
|
||||
card-shape (ej. info card, expanded list row), `card()` está
|
||||
ya disponible.
|
||||
- Cambiar el padding/rounded/gap canónico = un cambio en un solo
|
||||
lugar.
|
||||
- El widget no impone colores → no fuerza una paleta y permite
|
||||
themes diversos por app/contexto.
|
||||
|
||||
### feat(yahweh-widget-banner): widget compartido para toasts/errores cross-app
|
||||
Patrón visual común a `yahweh-widget-meta-form` (toast success +
|
||||
error_banner) y `nakui-explorer` (error_banner): un `div` con bg
|
||||
|
||||
Reference in New Issue
Block a user