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:
parent
b42945ba81
commit
2de8f626be
2 changed files with 33 additions and 228 deletions
259
CLAUDE.md
259
CLAUDE.md
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
.{
|
||||
.fingerprint = 0x30a5cd33d0b0066c,
|
||||
.name = .zcatgui,
|
||||
.name = "zcatgui",
|
||||
.version = "0.1.0",
|
||||
.minimum_zig_version = "0.15.0",
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue