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-field.md

43 lines
7.9 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-field — ficha de auditoría (RE-AUDITADA 2026-07-07, profundidad piloto)
- **Familia**: fields (trío de segmentos) · **Método**: solo análisis; evidencia por dimensión · demos fuera
- **Capas leídas**: [morfo](../../../src/uix/morfo/components/time-field.ts) completo (1-100+teclado) · [soma types](../../../src/uix/soma/components/time-field/types.ts) completo · provider dirigido (commit wiring :436) · [wrapper eidos](../../../src/uix/eidos/components/time-field/time-field.svelte) completo · css/recipe (censo familia: focus o2/b1, alturas, marker compartido) · sema: sin pack, **declarado** (`expression: "family-default"`, morfo :8)
- **Máquina**: PASS limpio · tests ✓ · README ×2 ✓
## Dimensiones (evidencia leída)
| # | Dimensión | Estado | Evidencia |
| --- | -------------------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | Composición | ✓ | Partes compositivas (Provider/Input/Segment/Label/HiddenInput); snippet `segments` ordenado (types :20-22) |
| 2 | Naming | ✓ conforme | `value/onValueChange` + `placeholder/onPlaceholderChange` (types :30-36); `validate/onInvalid`, `minValue/maxValue`, `readonlySegments`, `granularity`, `hideTimeZone`, `errorMessageId`, `locale/dir/hourCycle` (:38-67) — fila conforme en [\_naming.md](./_naming.md) |
| 3 | Coherencia semántica | **hallazgo de trío** | Solo `commit-set` (morfo :14-25) — **date-field además emite `commit-reset`** al limpiar: vaciar un time-field no produce señal semántica → F-1. `intent: neutral`, `sequence: post` ✓ canon |
| 4 | API | ✓ | Espejo exacto de date-field (sin `kind`, correcto: no aplica a horas); bindables declarados; fallbacks reactivos documentados (types :59-67) |
| 5 | Tokens | ✓ con dup | Recipe canónico; `height-{k}` re-declara el bundle (SYS-6, evidencia matriz familia) |
| 6 | Sema | declarado, cuestionado | `family-default` EXPLÍCITO en morfo — el trío roto es elección declarada, no olvido; la pregunta SYS-3 pasa a ser: ¿debe el trío compartir UNA expression (los tres pack o los tres default)? El provider usa `targetOverride` en el trigger (:436 ✓ el fix de partes doble-registradas) |
| 7 | Animaciones | ✓ | Sin keyframes; transición solo-background heredada del patrón de familia |
| 8 | Contrato morfo | ✓ más rico que su hermano | APG spinbutton ✓; teclado 5 teclas (verificado — sin Home/End, F-2); **su bloque ARIA del Input es MÁS completo que el de date-field**: añade `aria-readonly` ariaBoolean + `aria-invalid` condicional (morfo :76-90) que date-field no tiene → F-3 (unificar el trío al bloque rico) |
| 9 | A11y | ✓ con F-2 | aria-value\* por segmento, labelledby condicional; falta Home/End |
| 10 | Theming | censo | Focus outline (o2/b1) → SYS-5; segment marker compartido ✓ (state-layer llega) |
| 11 | Composición interna | mandato | Sin wrapper `[data-field]` (SYS-6/B.1 — fue LA sonda en vivo de esta familia); wrapper eidos espejo exacto de date-field (leído) |
| 12 | Estados | ✓ | invalid/disabled/readonly/required + readonlySegments granular; hidden-input forms ✓ |
| 13 | Runtime | ✓ | Sin timers/listeners crudos en lo dirigido; targetOverride ✓ |
| 14 | Docs+tests | ✓ | README ×2, suite ✓ |
| 15 | i18n | ✓ | texts morfo; formatter por locale reactivo; `$libs/days` ✓ |
## Hallazgos y propuestas
| ID | Hallazgo | Propuesta |
| ------- | ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------- |
| **F-1** | Falta `commit-reset` (date-field lo tiene; limpiar no suena) | Añadir el evento al morfo + wiring en provider (espejo de date-field) — como parte del veredicto de trío SYS-3 |
| **F-2** | Sin Home/End (APG spinbutton) | Pass de familia de segmentos (con date/color) |
| **F-3** | ARIA del Input asimétrico en el trío (este es el RICO) | Unificar: date-field adopta aria-readonly/aria-invalid de time-field |
| **F-4** | `height-{k}` duplicadas | SYS-6 |
## Escalan al sistema
SYS-3 **matizado con evidencia nueva**: el trío declara expressions distintas a propósito (`pack` vs `family-default` ×2) — el veredicto es de COHERENCIA declarada, no de olvido. · SYS-5 · SYS-6.
## Veredictos
_(pendiente — checkpoint post-barrido)_

Powered by TurnKey Linux.