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/date-range-field.md

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 Segment del single; README :44) y los commit-set del 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)

Powered by TurnKey Linux.