You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/docs/audit/components/natural-time-picker.md

38 lines
4.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# natural-time-picker — ficha de auditoría (RE-AUDITADA 2026-07-07, profundidad piloto)
- **Familia**: pickers (reloj natural: cielo/astros) · **Método**: solo análisis; evidencia por dimensión · demos fuera
- **Capas leídas**: [morfo](../../../src/uix/morfo/components/natural-time-picker.ts) COMPLETO (117 líneas) · delegación verificada en [picker](picker.md) genérico
- **Máquina**: NEEDS-WORK — `A-1.4` (sin URL APG) · `R-2.1` (9 colores crudos) · `R-1.3`/`R-1.4` (readonly/invalid sin estilo) · `E-2.3` (sin README) · tests **0**
- **CORRECCIÓN MAYOR sobre el pass superficial**: el "A-3.1 interactivo con 0 eventos = sema ciego por diseño roto" era INJUSTO. El header del morfo (:4-19) documenta la composición completa (Picker genérico = host transaccional Listo/Cancelar/Borrar + deferValue · TimeField segmentado · Slider banda · Button steppers/chips · PickerShell footer) y la razón: "Open/close are delegated to the composed Popover, so this morfo declares no dialog semantics **and no events**". `scope: ['soma','eidos']` (sin sema :23) — coherente. La delegación es REAL y está escrita… pero ver F-1: el eslabón transaccional delega en un Picker que AÚN no tiene eventos.
## Dimensiones (evidencia leída)
| # | Dimensión | Estado | Evidencia |
|---|---|---|---|
| 1 | Composición | ✓ documentada | Header :10-15: solo el gradiente daylight es bespoke; todo lo demás compone primitivos del sistema — el espíritu "compose existing components" cumplido y ESCRITO |
| 3 | Coherencia semántica | **gap heredado, no propio** | **F-1**: la cadena semántica tiene un eslabón hueco — el valor comete por TimeField (commit-set ✓ del embebido), pero Listo/Cancelar/Borrar fluyen por el Picker genérico cuyo morfo declara 0 eventos (deuda RECONOCIDA en picker :18-19 "candidate commit-* events for a later sema pass"). El "Listo" de un picker (el gesto más commit del patrón) suena a Button contact genérico |
| 5 | Tokens | hallazgo matizado | Los 9 hex (R-2.1) son los CIELOS — la excepción *physically-fixed* existe justo para esto PERO exige anotación `/* literal: … */` línea a línea y no la llevan → F-2 (anotar, NO tokenizar) |
| 8 | Contrato morfo | ✓ moderno | `data-state` CON values `['open','closed']` enumerados (:39,:75,:96 — el patrón que calendar F-3 pide) + `data-starting-style`/`data-ending-style` condicionales (:97-106, hooks de motion) + flags disabled/readonly/required/invalid |
| 9 | A11y | gap menor | Trigger completo (haspopup dialog + expanded + label vía translationRef ✓ :76-85); Content con Escape/Tab trap (:109-113); **F-3**: sin cita APG (A-1.4) — la razón "Popover posee el diálogo" merece la cita del patrón compuesto como hace date-picker (apg ×2) |
| 12 | Estados | hallazgo máquina | R-1.3/R-1.4 readonly/invalid sin materializar |
| 14 | Docs+tests | **gap triple** | Sin README (ninguno de los dos niveles), sin tests |
| 15 | i18n | ✓ | texts + translationRef localizados (:24-27,:82) |
## Hallazgos y propuestas
| ID | Hallazgo | Propuesta |
|---|---|---|
| **F-1** | El footer transaccional no tiene semántica (deuda del Picker genérico, reconocida allí) | Resolver EN el Picker genérico (commit-set fulfill en Accept / commit-cancel neutral / commit-clear neutral) — ntp y los 5 pickers a migrar lo heredan gratis; NO declarar eventos propios aquí (rompería la delegación correcta) |
| **F-2** | 9 hex sin anotación (R-2.1) | Anotar cada uno `/* literal: physically-fixed sky/astro color */`; NO tokenizar |
| **F-3** | Sin cita APG (A-1.4) | Citar el patrón compuesto (dialog vía Popover) como date-picker; valorar además slider APG para la banda |
| **F-4** | readonly/invalid sin estilo | Patrón familia |
| **F-5** | Sin README ×2, sin tests | Paquete de estándares completo (SYS-9: iniciativa a medias) |
## Escalan al sistema
SYS-2 · SYS-4 · SYS-9 · **corrección del censo A-3.1**: ntp EXONERADO con matiz (delegación documentada; la deuda vive en picker :18-19) — pin-input queda como el único caso desnudo · la máquina debe leer scope-sin-sema + header de composición antes de flaguear A-3.1.
## Veredictos
*(pendiente — checkpoint post-barrido)*

Powered by TurnKey Linux.