From f456e8fd32ab6a54f4983e3e70ae7b9cc7901f16 Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 20 May 2026 23:11:49 +0200 Subject: [PATCH] docs: add PENDIENTES.md backlog Living backlog for UIX. Records the pending items from the date-range-picker session (apply modal+footer to other pickers, month/year-range variants, promote footer buttons to canonical eidos parts, morfo expansion to cover Footer/Clear/Cancel/Close, browser tests) plus the queue of post-session components still to audit one-by-one with severities pulled from `tmp/component-audit.md`. Each entry is tagged implementar/diferir/descartar so the next picker session can scan the file and pick the next slice without re-doing discovery. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/uix/PENDIENTES.md | 116 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 src/uix/PENDIENTES.md diff --git a/src/uix/PENDIENTES.md b/src/uix/PENDIENTES.md new file mode 100644 index 000000000..0c0244c5c --- /dev/null +++ b/src/uix/PENDIENTES.md @@ -0,0 +1,116 @@ +# Pendientes UIX + +> Backlog vivo. Cada entrada lleva una disposición: **implementar** / +> **diferir** / **descartar**. Mantener priorizado por capa afectada y +> dependencias. + +## Pickers (continuación de date-range-picker) + +| Item | Disposición | Notas | +| --- | --- | --- | +| Aplicar `mode: 'inline' \| 'modal'` + footer (`clearButton`/`cancelButton`/`closeButton`) a `date-picker` (single) | **implementar** | Mismo patrón que el range. Provider expone `clear/cancel/commit`. Modal fuerza closeButton. | +| Propagar el patrón modal+footer a `time-picker`, `time-range-picker`, `color-picker`, `combobox`, `select`, `popover` cuando proceda | **implementar** | Decidir por componente; muchos no necesitan footer. | +| `MonthRangePicker` (Chakra-style) | **implementar** | Componente nuevo. Segments month/year + grid de meses, sin calendario de días. | +| `YearRangePicker` | **implementar** | Componente nuevo. Segments year + grid de años. | +| `MonthPicker` / `YearPicker` (single) | **implementar** | Variantes hermanas de los anteriores. | +| Botón Clear/Save/Close como **eidos parts** canónicos (no inline en demo) | **implementar** | Hoy viven en `picker-actions.svelte` del demo. Promover a `` + `` etc. y registrar en morfo. | +| Morfo `date-range-picker`: añadir parts Footer/Clear/Cancel/Close + eventos `commit-save` y `commit-clear-from-footer` | **implementar** | Hace falta para que el audit no marque ARIA gaps cuando el footer está activo. | +| Tests browser del flujo completo (Playwright) | **implementar** | Abrir/cerrar, modal/inline, snapshot/cancel, clear, click-outside, Escape. | +| Sema event al bloquear click cuando `mode='modal'` | **diferir** | Útil para screen reader feedback. No bloquea. | + +## Tooltip (warnings pendientes del audit) + +| Item | Disposición | +| --- | --- | +| `A-3.6` evento `open`/`close` sin variante `{verb}-X` o `{family}-X` | **diferir** — disclosure puro, el naming actual es semánticamente válido. | +| `D-4.3` demo no emite `uix.events.emit(...)` para wirear Play buttons | **implementar** cuando se haga la próxima pasada de demos. | + +## Audit one-by-one (post-sesión) + +Los componentes que entraron después del 2026-05-09 y siguen marcados +**NEEDS-WORK** o más. Se irán cerrando en sesiones sucesivas con un +browser-walk + scope-table. + +### Prioridad alta (alto tráfico / muchos errores) + +- [ ] combobox · 5 err / 1 warn +- [ ] select · 5 err / 1 warn +- [ ] form · 5 err / 3 warns +- [ ] tabs · 5 err / 2 warns +- [ ] toast · 5 err / 3 warns +- [ ] radio-group · 5 err / 1 warn +- [ ] toggle · 5 err / 3 warns +- [ ] avatar · 5 err / 0 warns +- [ ] icon · 5 err / 0 warns + +### Prioridad media + +- [ ] accordion · 5 err / 1 warn +- [ ] calendar · 3 err / 2 warns — base de los pickers, conviene cerrarlo antes de añadir variantes month/year +- [ ] checkbox · 4 err +- [ ] collapsible · 4 err / 1 warn +- [ ] date-field · 4 err / 1 warn +- [ ] date-picker · 4 err / 2 warns +- [ ] dialog (verificar visual) +- [ ] drawer · 4 err / 1 warn +- [ ] file-upload · 3 err / 2 warns +- [ ] number-field · 4 err / 1 warn +- [ ] popover · 3 err / 1 warn +- [ ] slider · 4 err +- [ ] stepper · 4 err / 1 warn +- [ ] tags-input · 4 err / 1 warn +- [ ] toolbar · 4 err + +### Prioridad baja + +- [ ] breadcrumb · 4 err +- [ ] color-field · 2 err / 1 warn +- [ ] color-picker · 1 err +- [ ] command · 2 err / 1 warn +- [ ] context-menu · 2 err +- [ ] date-range-field · 1 err (sólo si se decide hacer su propio walk) +- [ ] dropdown-menu · 2 err +- [ ] editable · 3 err / 1 warn +- [ ] feed · 1 err +- [ ] field · 4 err +- [ ] grid-list · 1 err +- [ ] link-preview · 1 err +- [ ] listbox · 1 err +- [ ] menubar · 2 err +- [ ] meter · 3 err +- [ ] navigation-menu · 1 err / 1 warn +- [ ] pagination · 2 err / 1 warn +- [ ] pin-input · 1 err +- [ ] progress · 3 err +- [ ] range-calendar · 1 err +- [ ] rating-group · 3 err / 2 warns +- [ ] scroll-area · 1 err +- [ ] search-field · 2 err / 2 warns +- [ ] splitter · 2 err / 1 warn +- [ ] switch · 3 err / 1 warn +- [ ] table · 1 err / 1 warn +- [ ] tag-group · 3 err / 2 warns +- [ ] time-field · 2 err / 1 warn +- [ ] time-picker · 1 err +- [ ] time-range-field · 1 err +- [ ] time-range-picker · 1 err +- [ ] toggle-group · 2 err / 1 warn +- [ ] tree-grid · 1 err +- [ ] tree-view · 1 err +- [ ] virtual-grid · 1 err +- [ ] virtual-list · 1 err + +## Audit infra + +| Item | Disposición | +| --- | --- | +| Audit A-3.6 falla con eventos `open`/`close` válidos de `emerge` | **diferir** — el regex pide `{verb}-X` pero muchos verbs son legítimos solos. Refinar regex para aceptar verbs canónicos. | +| Audit no verifica que el demo cierre el popover al hacer click-outside (cuando aplica) | **diferir** — verificación visual queda al browser-walk. | +| Translations check: añadir warning cuando un componente declara `texts.label` pero su catálogo no tiene `label` | **implementar** — pequeño, evita drift. | + +## Doc debt + +| Item | Disposición | +| --- | --- | +| READMEs/architecture docs siguen citando `morfo.translations` en muchos `.md` | **diferir** — el código está migrado a `texts`, los docs lagging. Sweep separado. | +| `src/uix/COMPONENT_COMPLETION_CHECKLIST.md` no menciona modo modal/footer ni el contrato `data-date-range-field-group` | **implementar** cuando se cierre el primer ciclo de remediación. |