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

37 lines
6.0 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.

# time-range-field — ficha de auditoría (RE-AUDITADA 2026-07-07, profundidad piloto)
- **Familia**: fields (rango de horas; dos endpoints TimeField) · **Método**: solo análisis; evidencia por dimensión · demos fuera
- **Capas leídas**: [morfo](../../../src/uix/morfo/components/time-range-field.ts) (63 líneas; censo `semantic:`=0, **`apg:`=0**) · [soma types](../../../src/uix/soma/components/time-range-field/types.ts) superficie · arquitectura de delegación verificada en el gemelo [date-range-field](date-range-field.md) (mismo patrón per-endpoint)
- **Máquina**: **NEEDS-WORK** — `E-2.3` (falta README eidos) · `R-1.3` (`data-readonly` sin estilo) · `R-1.4` (**`data-invalid` sin estilo**)
## Dimensiones (evidencia leída)
| # | Dimensión | Estado | Evidencia |
| ----------------- | -------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | Composición | ✓ | Mismo patrón del gemelo: cada Input = TimeField completo por endpoint; 0 eventos propios = delegación by-design |
| 2 | Naming | ✓ | `value: TimeRange` + `onValueChange` + `onStartValueChange`/`onEndValueChange` — coherente con date-range ✓ |
| 3 | Coherencia semántica | condicionada + cuestión de diseño | Delegada a time-field (que SÍ tiene commit-set ✓, 1 evento)… **pero time-field no tiene pack** → este range entero suena a default crudo mientras date-range suena tuneado: la asimetría SYS-3 en su forma más visible. Comparte con el gemelo la falta de evento rango-completo (F-1 conjunta) |
| 8 | Contrato morfo | **gap menor** | **F-2**: SIN cita `apg:` — su gemelo cita spinbutton y time-field single también; una línea de asimetría documental |
| 12 | Estados | **hallazgo doble (máquina)** | R-1.3 readonly Y **R-1.4 invalid** sin materializar — el único de la familia donde INVALID tampoco pinta: un rango inválido (end < start) valida en soma pero NO SE VE → F-3 prioritario |
| 14 | Docs | gap | Sin README eidos (E-2.3) |
| 4-7, 9-11, 13, 15 | | heredan del single | Wrapper de composición |
## Hallazgos y propuestas
| ID | Hallazgo | Propuesta |
| ------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| **F-1** | Sin evento de rango-completo (compartida con date-range F-1) | Misma decisión, mismo fix para ambos ranges |
| **F-2** | Sin cita APG (gemelo y single la tienen) | Añadir `apg: spinbutton` — una línea; verificar por qué el guard F-1.x no lo cazó |
| **F-3** | `data-invalid` sin estilo (R-1.4) — la validación de rango existe y no pinta | Materializar invalid (border `--{c}-border-invalid` como el gemelo) — y a largo plazo vía composición Field (SYS-6) |
| **F-4** | readonly sin estilo (R-1.3) | Censo de familia ×4 |
| **F-5** | README eidos ausente | SYS-4 |
| **F-6** | Compuesto SIN `expression` declarada (canon `'delegated'` existe; primos pickers lo usan) | Añadir `expression: 'delegated'` — SYS-11, mismo pase que el gemelo |
## Escalan al sistema
SYS-3 (el range hace VISIBLE la asimetría del trío: gemelos que suenan distinto) · SYS-4 · SYS-6 · censos R-1.3/R-1.4.
## Veredictos
_(pendiente — checkpoint post-barrido)_

Powered by TurnKey Linux.