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
|
/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/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
|
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 |
|
| **Nombre** | zcatgui |
|
||||||
| **Versión** | v0.15.0 |
|
| **Versión** | v0.15.0 |
|
||||||
| **Fecha inicio** | 2025-12-09 |
|
| **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 |
|
| **Lenguaje** | Zig 0.15.2 |
|
||||||
| **Paradigma** | Immediate Mode GUI |
|
| **Paradigma** | Immediate Mode GUI |
|
||||||
| **Inspiración** | Gio (Go), microui (C), DVUI (Zig), Dear ImGui (C++) |
|
| **Inspiración** | Gio (Go), microui (C), DVUI (Zig), Dear ImGui (C++) |
|
||||||
|
|
@ -194,7 +193,7 @@ zcatgui/
|
||||||
│ │ ├── accessibility.zig # ✅ Accessibility (ARIA roles)
|
│ │ ├── accessibility.zig # ✅ Accessibility (ARIA roles)
|
||||||
│ │ └── gesture.zig # ✅ Gesture recognizer (tap, swipe, pinch, rotate)
|
│ │ └── gesture.zig # ✅ Gesture recognizer (tap, swipe, pinch, rotate)
|
||||||
│ │
|
│ │
|
||||||
│ ├── widgets/ # 35 widgets implementados
|
│ ├── widgets/ # 37 widgets implementados
|
||||||
│ │ ├── widgets.zig # Re-exports
|
│ │ ├── widgets.zig # Re-exports
|
||||||
│ │ ├── label.zig, button.zig, text_input.zig, checkbox.zig
|
│ │ ├── label.zig, button.zig, text_input.zig, checkbox.zig
|
||||||
│ │ ├── select.zig, list.zig, focus.zig, table.zig
|
│ │ ├── select.zig, list.zig, focus.zig, table.zig
|
||||||
|
|
@ -261,7 +260,8 @@ zcatgui/
|
||||||
│
|
│
|
||||||
├── build.zig # Build con targets: wasm, android, ios
|
├── build.zig # Build con targets: wasm, android, ios
|
||||||
├── build.zig.zon
|
├── 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.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.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 | FASE 10: Mobile/Web - WASM, Android, iOS backends |
|
||||||
|
| 2025-12-09 | v0.15.0 | Documentación: REFERENCE.md completo (1370 líneas) |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ESTADO ACTUAL
|
## 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
|
**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
|
- **Gestures**: Tap, double-tap, long-press, swipe, pinch, rotate
|
||||||
|
|
||||||
### Métricas:
|
### Métricas:
|
||||||
- **274 tests** pasando
|
- **~35,000 LOC** en 81 archivos fuente
|
||||||
- **~27,000 LOC** total
|
|
||||||
- **0 warnings**, **0 memory leaks**
|
- **0 warnings**, **0 memory leaks**
|
||||||
- **WASM**: ~18KB compilado
|
- **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)
|
| Documento | Descripción |
|
||||||
- [ ] Modal widget (overlay que bloquea UI)
|
|-----------|-------------|
|
||||||
- [ ] Diálogos estándar: Confirm, Alert, Input
|
| **REFERENCE.md** | ⭐ Manual de referencia completo (1370 líneas) |
|
||||||
- [ ] Z-order/capas para popups
|
| **docs/DEVELOPMENT_PLAN.md** | Plan de desarrollo por fases (10 fases completadas) |
|
||||||
|
| **docs/MOBILE_WEB_BACKENDS.md** | Guía de backends WASM/Android/iOS |
|
||||||
### Fase 5: Comparativa con Librerías de Referencia
|
| **docs/ARCHITECTURE.md** | Decisiones de arquitectura |
|
||||||
|
| **docs/research/** | Análisis de 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)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## WIDGETS ROADMAP VISUAL
|
## PROYECTOS RELACIONADOS
|
||||||
|
|
||||||
```
|
| Proyecto | Ruta | Descripción |
|
||||||
COMPLETADOS (Fase 1-3.5):
|
|----------|------|-------------|
|
||||||
✅ Label, Button, TextInput, Checkbox, Select, List
|
| **zcatui** | `/mnt/cello2/arno/re/recode/zig/zcatui/` | TUI library (proyecto hermano) |
|
||||||
✅ Focus, Table, Split, Panel
|
| **simifactu** | `/mnt/cello2/arno/re/recode/go/simifactu/` | App de referencia (Fyne) |
|
||||||
✅ 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
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ESTIMACIÓN DE TRABAJO
|
## REFERENCIAS EXTERNAS
|
||||||
|
|
||||||
| Fase | Widgets/Features | Tiempo Est. |
|
- [microui](https://github.com/rxi/microui) - Arquitectura mínima
|
||||||
|------|------------------|-------------|
|
- [DVUI](https://github.com/david-vanderson/dvui) - Zig GUI reference
|
||||||
| 4 | Modal/Popup | 2-3 días |
|
- [Gio](https://gioui.org/) - Go immediate-mode
|
||||||
| 5.1 | Menu, Tabs, ScrollArea | 1 semana |
|
- [Dear ImGui](https://github.com/ocornut/imgui) - C++ reference
|
||||||
| 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
|
|
||||||
```
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
.{
|
.{
|
||||||
.fingerprint = 0x30a5cd33d0b0066c,
|
.fingerprint = 0x30a5cd33d0b0066c,
|
||||||
.name = .zcatgui,
|
.name = "zcatgui",
|
||||||
.version = "0.1.0",
|
.version = "0.1.0",
|
||||||
.minimum_zig_version = "0.15.0",
|
.minimum_zig_version = "0.15.0",
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue