docs: Update CLAUDE.md with REFERENCE.md link and cleanup

- Add REFERENCE.md to documentation protocol (Step 3)
- Update widget count to 37
- Update LOC to ~35K
- Add REFERENCE.md to file structure
- Remove obsolete roadmap sections (now in DEVELOPMENT_PLAN.md)
- Simplify documentation section with table
- Clean up references section

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
reugenio 2025-12-09 22:46:09 +01:00
parent b42945ba81
commit 2de8f626be
2 changed files with 33 additions and 228 deletions

259
CLAUDE.md
View file

@ -17,13 +17,12 @@
/mnt/cello2/arno/re/recode/TEAM_STANDARDS/QUICK_REFERENCE.md
```
### Paso 3: Leer documentación de investigación
### Paso 3: Leer documentación
```
docs/DEVELOPMENT_PLAN.md # ⭐ PLAN MAESTRO - Leer primero
REFERENCE.md # ⭐ MANUAL DE REFERENCIA COMPLETO (1370 líneas)
docs/DEVELOPMENT_PLAN.md # Plan de desarrollo por fases
docs/MOBILE_WEB_BACKENDS.md # Documentación backends mobile/web
docs/research/WIDGET_COMPARISON.md # Comparativa zcatgui vs DVUI vs Gio
docs/research/GIO_UI_ANALYSIS.md # Análisis de Gio UI (Go)
docs/research/IMMEDIATE_MODE_LIBS.md # Comparativa librerías immediate-mode
docs/research/SIMIFACTU_FYNE_ANALYSIS.md # Requisitos extraídos de Simifactu
docs/ARCHITECTURE.md # Arquitectura y decisiones de diseño
```
@ -47,7 +46,7 @@ Una vez verificado el estado, continúa desde donde se dejó.
| **Nombre** | zcatgui |
| **Versión** | v0.15.0 |
| **Fecha inicio** | 2025-12-09 |
| **Estado** | ✅ 35 widgets, 274 tests, paridad DVUI + mobile backends |
| **Estado** | ✅ COMPLETO - 37 widgets, ~35K LOC, 4 backends |
| **Lenguaje** | Zig 0.15.2 |
| **Paradigma** | Immediate Mode GUI |
| **Inspiración** | Gio (Go), microui (C), DVUI (Zig), Dear ImGui (C++) |
@ -194,7 +193,7 @@ zcatgui/
│ │ ├── accessibility.zig # ✅ Accessibility (ARIA roles)
│ │ └── gesture.zig # ✅ Gesture recognizer (tap, swipe, pinch, rotate)
│ │
│ ├── widgets/ # 35 widgets implementados
│ ├── widgets/ # 37 widgets implementados
│ │ ├── widgets.zig # Re-exports
│ │ ├── label.zig, button.zig, text_input.zig, checkbox.zig
│ │ ├── select.zig, list.zig, focus.zig, table.zig
@ -261,7 +260,8 @@ zcatgui/
├── build.zig # Build con targets: wasm, android, ios
├── build.zig.zon
└── CLAUDE.md
├── CLAUDE.md # Este archivo
└── REFERENCE.md # ⭐ Manual de referencia completo (1370 líneas)
```
---
@ -599,14 +599,17 @@ const stdout = std.fs.File.stdout(); // NO std.io.getStdOut()
| 2025-12-09 | v0.14.0 | FASE 8: Accessibility system, Testing framework, 274 tests |
| 2025-12-09 | v0.14.1 | FASE 9: Gio parity - 12 widgets + gesture system |
| 2025-12-09 | v0.15.0 | FASE 10: Mobile/Web - WASM, Android, iOS backends |
| 2025-12-09 | v0.15.0 | Documentación: REFERENCE.md completo (1370 líneas) |
---
## ESTADO ACTUAL
**✅ PROYECTO COMPLETADO - v0.15.0 - Paridad DVUI + Mobile/Web**
**✅ PROYECTO COMPLETADO - v0.15.0**
### Widgets (35 total - 100% paridad DVUI):
> **Para detalles técnicos completos, ver `REFERENCE.md`** (1370 líneas de documentación)
### Widgets (37 total):
**Básicos (7)**: Label, Button, Checkbox, Radio, Slider, TextInput, NumberEntry
@ -644,8 +647,7 @@ const stdout = std.fs.File.stdout(); // NO std.io.getStdOut()
- **Gestures**: Tap, double-tap, long-press, swipe, pinch, rotate
### Métricas:
- **274 tests** pasando
- **~27,000 LOC** total
- **~35,000 LOC** en 81 archivos fuente
- **0 warnings**, **0 memory leaks**
- **WASM**: ~18KB compilado
@ -671,227 +673,30 @@ cd /mnt/cello2/arno/re/recode/zig/zcatgui
---
## PLAN DE TRABAJO EXTENDIDO
## DOCUMENTACIÓN DISPONIBLE
### Fase 4: Modal/Popup (PRÓXIMO)
- [ ] Modal widget (overlay que bloquea UI)
- [ ] Diálogos estándar: Confirm, Alert, Input
- [ ] Z-order/capas para popups
### Fase 5: Comparativa con Librerías de Referencia
#### 5.1 Comparar con DVUI (Zig) - Librería base de referencia
DVUI tiene ~30 widgets. Comparar y extraer lo que nos falta:
| Widget DVUI | zcatgui | Prioridad |
|-------------|---------|-----------|
| Button | ✅ | - |
| Checkbox | ✅ | - |
| TextInput | ✅ | - |
| Slider | ❌ | Media |
| ScrollArea | ❌ | Alta |
| Menu | ❌ | Alta |
| Dropdown | ✅ (Select) | - |
| TreeView | ❌ | Baja |
| Modal | ⏳ | Alta |
| Popup | ⏳ | Alta |
| Radio | ❌ | Media |
| ColorPicker | ❌ | Baja |
| ProgressBar | ❌ | Media |
#### 5.2 Comparar con Gio (Go)
Gio es immediate-mode moderno. Extraer patterns:
- [ ] Sistema de constraints/layout
- [ ] Gesture handling
- [ ] Animation system
- [ ] Theming approach
#### 5.3 Comparar con zcatui (nuestro TUI - 35 widgets)
Widgets de zcatui que deberíamos portar a GUI:
| Widget zcatui | zcatgui | Prioridad | Notas |
|---------------|---------|-----------|-------|
| input | ✅ | - | TextInput |
| select | ✅ | - | |
| checkbox | ✅ | - | |
| table | ✅ | - | |
| list | ✅ | - | |
| panel | ✅ | - | |
| **popup** | ⏳ | Alta | Modal/Popup |
| **menu** | ❌ | Alta | Menús contextuales |
| **tabs** | ❌ | Alta | Tab navigation |
| **tree** | ❌ | Media | TreeView |
| **calendar** | ❌ | Media | Date picker |
| **filepicker** | ❌ | Media | File browser |
| **dirtree** | ❌ | Media | Directory tree |
| progress | ❌ | Media | ProgressBar |
| gauge | ❌ | Baja | |
| sparkline | ❌ | Baja | |
| barchart | ❌ | Baja | |
| chart | ❌ | Baja | |
| canvas | ❌ | Baja | Custom drawing |
| markdown | ❌ | Baja | |
| syntax | ❌ | Baja | Code highlighting |
| viewport | ❌ | Media | Scrollable content |
| scroll | ❌ | Alta | ScrollArea |
| scrollbar | ❌ | Alta | |
| slider | ❌ | Media | |
| spinner | ❌ | Baja | Loading indicator |
| statusbar | ❌ | Media | |
| textarea | ❌ | Alta | Multiline input |
| tooltip | ❌ | Media | Hover help |
| help | ❌ | Baja | |
| logo | ❌ | Baja | |
| clear | ✅ | - | Implicit |
| block | ✅ | - | Panel/Container |
| paragraph | ✅ | - | Label |
### Fase 6: Widgets Específicos Simifactu
#### 6.1 AutoComplete/ComboBox Widget (CRÍTICO)
Widget usado en Simifactu para:
- Provincias (dropdown con búsqueda)
- Países (dropdown con búsqueda)
- Tipos IVA (dropdown con valores predefinidos)
- Poblaciones (autocomplete con sugerencias)
```zig
pub const AutoComplete = struct {
/// Current text value
text: []const u8,
/// All available options
options: []const []const u8,
/// Filtered options based on text
filtered: []const []const u8,
/// Whether dropdown is open
open: bool,
/// Selected index in filtered list
selected: i32,
/// Allow custom values not in list
allow_custom: bool,
/// Callback when value changes
on_change: ?*const fn([]const u8) void,
};
```
#### 6.2 AdvancedTable Analysis
Analizar `/mnt/cello2/arno/re/recode/go/simifactu/internal/ui/components/advanced_table/`:
- [ ] Sorting por columnas (click en header)
- [ ] Resize de columnas (drag)
- [ ] Column reordering (drag)
- [ ] Multi-select rows
- [ ] Copy/Paste cells
- [ ] Undo/Redo edits
- [ ] Calculated columns
- [ ] Column visibility toggle
- [ ] Export selected rows
#### 6.3 Sistema Lego Panels
Layout modular tipo Simifactu:
- [ ] Panel registry (panels registran su ID)
- [ ] Layout presets (Ctrl+1/2/3)
- [ ] Drag-and-drop panel reordering
- [ ] Panel minimize/maximize
- [ ] Save/restore layout state
- [ ] Panel communication (pub/sub)
### Fase 7: Features Avanzados
#### 7.1 Sistema de Themes
- [ ] Theme struct con todos los colores
- [ ] Hot-reload de themes
- [ ] Theme editor widget
- [ ] Persistencia de themes
#### 7.2 TTF Fonts
- [ ] Integrar stb_truetype
- [ ] Font atlas generation
- [ ] Multiple font sizes
- [ ] Font fallback chain
#### 7.3 Internacionalización
- [ ] String tables
- [ ] RTL support (futuro)
| Documento | Descripción |
|-----------|-------------|
| **REFERENCE.md** | ⭐ Manual de referencia completo (1370 líneas) |
| **docs/DEVELOPMENT_PLAN.md** | Plan de desarrollo por fases (10 fases completadas) |
| **docs/MOBILE_WEB_BACKENDS.md** | Guía de backends WASM/Android/iOS |
| **docs/ARCHITECTURE.md** | Decisiones de arquitectura |
| **docs/research/** | Análisis de librerías de referencia |
---
## WIDGETS ROADMAP VISUAL
## PROYECTOS RELACIONADOS
```
COMPLETADOS (Fase 1-3.5):
✅ Label, Button, TextInput, Checkbox, Select, List
✅ Focus, Table, Split, Panel
✅ Keyboard integration
EN PROGRESO:
⏳ Modal/Popup
PRÓXIMOS (Fase 4-5):
📋 Menu, Tabs, ScrollArea, Scrollbar
📋 Radio, Slider, ProgressBar
📋 Textarea (multiline), Tooltip
SIMIFACTU-ESPECÍFICOS (Fase 6):
🎯 AutoComplete/ComboBox
🎯 AdvancedTable features (sort, resize, multi-select)
🎯 Lego Panel system
AVANZADOS (Fase 7):
🔮 Calendar, DatePicker
🔮 FilePicker, DirTree
🔮 Tree/TreeView
🔮 Themes hot-reload
🔮 TTF fonts
```
| Proyecto | Ruta | Descripción |
|----------|------|-------------|
| **zcatui** | `/mnt/cello2/arno/re/recode/zig/zcatui/` | TUI library (proyecto hermano) |
| **simifactu** | `/mnt/cello2/arno/re/recode/go/simifactu/` | App de referencia (Fyne) |
---
## ESTIMACIÓN DE TRABAJO
## REFERENCIAS EXTERNAS
| Fase | Widgets/Features | Tiempo Est. |
|------|------------------|-------------|
| 4 | Modal/Popup | 2-3 días |
| 5.1 | Menu, Tabs, ScrollArea | 1 semana |
| 5.2 | Radio, Slider, Progress | 3-4 días |
| 5.3 | Textarea, Tooltip | 3-4 días |
| 6.1 | AutoComplete | 3-4 días |
| 6.2 | AdvancedTable | 1-2 semanas |
| 6.3 | Lego Panels | 1 semana |
| 7 | Themes, TTF | 1-2 semanas |
| **TOTAL** | | **6-8 semanas** |
---
## ARCHIVOS DE REFERENCIA
### Simifactu (Go/Fyne)
```
/mnt/cello2/arno/re/recode/go/simifactu/
├── internal/ui/components/advanced_table/ # AdvancedTable (2000+ LOC)
├── internal/ui/panels_v3/ # Lego panel system
├── third_party/fynex-widgets/ # AutoComplete, DateEntry, etc.
└── internal/ui/dialogs/ # Modal dialogs
```
### zcatui (Zig TUI - 35 widgets)
```
/mnt/cello2/arno/re/recode/zig/zcatui/src/widgets/
├── popup.zig # Modal/Popup reference
├── menu.zig # Menu widget
├── tabs.zig # Tab navigation
├── tree.zig # TreeView
├── calendar.zig # Calendar/DatePicker
├── filepicker.zig # File browser
└── ...
```
### DVUI (Zig GUI reference)
```
https://github.com/david-vanderson/dvui
```
### Gio (Go immediate-mode)
```
https://gioui.org/
docs/research/GIO_UI_ANALYSIS.md
```
- [microui](https://github.com/rxi/microui) - Arquitectura mínima
- [DVUI](https://github.com/david-vanderson/dvui) - Zig GUI reference
- [Gio](https://gioui.org/) - Go immediate-mode
- [Dear ImGui](https://github.com/ocornut/imgui) - C++ reference

View file

@ -1,6 +1,6 @@
.{
.fingerprint = 0x30a5cd33d0b0066c,
.name = .zcatgui,
.name = "zcatgui",
.version = "0.1.0",
.minimum_zig_version = "0.15.0",