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.
7.7 KiB
7.7 KiB
date-range-field — ficha de auditoría (RE-AUDITADA 2026-07-07, profundidad piloto)
- Familia: fields (rango de fechas; dos endpoints DateField) · Método: solo análisis; evidencia por dimensión · demos fuera
- Capas leídas: morfo (68 líneas; censo
semantic:=0,apg:=1 spinbutton) · soma types superficie · provider dirigido (:51,:72) · exports (:5-7) · README soma (:44) - Máquina: PASS limpio · tests ✓ · README ×2 ✓
- Nota de método: el borrador inicial de esta re-ficha iba a declarar "0 eventos = rango mudo"; la lectura de la composición lo DESMIENTE — cada Input crea su propio contexto DateField (exports :5-7 re-exporta
Segmentdel single; README :44) y loscommit-setdel single disparan POR ENDPOINT. La delegación es by-design.
Dimensiones (evidencia leída)
| # | Dimensión | Estado | Evidencia |
|---|---|---|---|
| 1 | Composición | ✓ ejemplar | Cada endpoint es un DateField COMPLETO ligado a provider.startValue/endValue (README :44); Segment re-export directo del single (exports :5-7) — cero re-implementación de la maquinaria de segmentos; validación/placeholder/granularity/locale compartidos simétricamente |
| 2 | Naming | ✓ + dato de censo | value: DateRange + onValueChange ✓; onStartValueChange/onEndValueChange — PRIMER patrón de callbacks por sub-valor del catálogo (censar en otros dobles); placeholder compartido único (la incidencia 2026-05-20 #1 — el END auto-paginaba al START — documentada en el provider del single con la regla false en endpoints) |
| 3 | Coherencia semántica | ✓ delegada + cuestión de diseño | El morfo propio declara 0 eventos: la semántica vive en los singles embebidos (cada endpoint comete su commit-set al fijarse). F-1: NO existe evento de rango completo — fijar el segundo extremo (el momento terminal del gesto, cuando {start,end} queda sellado) suena igual que fijar el primero. ¿Debe el sellado del par tener su propio commit (fulfill) o bastan los dos del single? → veredicto |
| 4 | API | ✓ | validate: DateRangeValidator + onInvalid: DateOnInvalid + min/max; hereda la razón de invalidez SIN tipar del single (censo validación) |
| 6 | Sema | condicionada | Sin pack propio (correcto: delega); el carácter depende del pack del single embebido → date ✓ tuneado. La decisión SYS-3 del trío debe cubrir los ranges explícitamente |
| 8 | Contrato morfo | ✓ | APG spinbutton citado; ARIA heredada de los segments del single (README :58) |
| 5, 7, 9-15 | heredan del single | Wrapper de composición: tokens/recipe/i18n/a11y = los de date-field; focus delegado a los embebidos ✓ |
Hallazgos y propuestas
| ID | Hallazgo | Propuesta |
|---|---|---|
| F-1 | Sin evento de rango-completo (el sellado del par no se distingue del commit de un extremo) | Decidir en checkpoint: (a) declarar commit-set a nivel range cuando ambos extremos fijan (fulfill — el "cierre" perceptible), o (b) documentar que los dos commits del single bastan. Si (a), resolver los DOS ranges en el mismo fix |
| F-2 | Razón de invalidez sin tipar (heredada) | Veredicto de validación de la familia (nivelar a las razones tipadas de color-field) |
| F-3 | Compuesto SIN expression declarada — el canon existe ('delegated', morfo/types.ts, decisión 2026-05-26) y sus primos date-picker/drp lo usan |
Añadir expression: 'delegated' (una línea) — SYS-11 |
Escalan al sistema
SYS-3 (la decisión del trío debe nombrar a los ranges) · _naming (callbacks por sub-valor) · patrón "delegación semántica por composición" — segundo caso documentado tras field-langs (el morfo compuesto NO re-declara los eventos del embebido) → regla candidata para el canon.
Veredictos
(pendiente — checkpoint post-barrido)