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

42 lines
8.3 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.

# mask-field — ficha de auditoría (RE-AUDITADA 2026-07-07, profundidad piloto)
- **Familia**: fields (Tier-1, decisiones LOCKED 07-05) · **Método**: solo análisis; evidencia por dimensión · demos fuera
- **Capas leídas**: [morfo](../../../src/uix/morfo/components/mask-field.ts) completo (1-110+) · [soma types](../../../src/uix/soma/components/mask-field/types.ts) completo · pack ✓ · engine propio (`mask-engine`, tests ×2 ✓)
- **Máquina**: PASS con `R-1.3` · tests **2** ✓✓ · README ×2 ✓
## Dimensiones (evidencia leída)
| # | Dimensión | Estado | Evidencia |
| --- | -------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | Composición | ✓ | Single-input compositivo; el morfo RAZONA por qué NO se fragmenta en fake-segments (eso es de Date/Time — :18-20) |
| 2 | Naming | ✓ con dato nuevo | `value/onValueChange` ✓ + **`onValueCommit: OnChangeFn`** para blur/Enter (types :75-76) — TERCER patrón de callback terminal del catálogo (vs `onSubmit` crudo de search/password) → fila clave en \_naming; `showMask/placeholderChar/definitions` (decisiones locked); `unmaskedValue` como derivado read-only en snippet (:19-20) |
| 3 | Coherencia semántica | ✓ | `commit-set` solo en confirmación — la doctrina teclear≠commit citada y alineada (morfo :43-47); `expression: 'pack'` + pack ✓ |
| 4 | API | ✓ ejemplar | Alfabeto de tokens documentado con escape y cola opcional (`\9`, `[ ... ]` — types :47-53); `definitions` merge-over con RegExp por slot (:55-60); modelo de valor = string enmascarado con la convención de la industria citada (morfo :25-28) |
| 5 | Tokens | ✓ con dup | `height-{k}` duplicada (SYS-6); tokens 9-A-\* del engine per decisión |
| 6 | Sema | ✓ | Pack ✓ |
| 7 | Animaciones | ✓ | `showMask` revela esqueleto sin keyframes |
| 8 | Contrato morfo | ✓ | APG textbox CORRECTO (:41 — un solo textbox, no combobox como search); `data-complete` con razón (intrínseco a máscara, gate de submit sin re-derivar — :74-77); flags focused/empty ✓ |
| 9 | A11y | ✓ con doctrina propia | **Valor anunciado siempre veraz**: los keystrokes rechazados REVIERTEN visiblemente en vez de tragarse en silencio (el lector siempre relee el valor comprometido — morfo :21-23) — doctrina exportable a cualquier input con formateo |
| 10 | Theming | hallazgo | R-1.3 readonly sin estilo (patrón familia) |
| 11 | Composición interna | ✓ documentada | Field integration EXPLÍCITA: el Input se registra en `Field.inputId` → Label/Helper/Error se auto-cablean (types :35-38) — de lo poco de la familia que documenta el wiring |
| 12 | Estados | ✓ | complete/focused/empty + OR-merge; `name` envía el valor ENMASCARADO (documentado :89) |
| 13 | Runtime | ✓ | Engine puro con suite propia; sin timers/DOM crudo |
| 14 | Docs+tests | ✓ el mejor de la familia | 2 suites (engine + provider) |
| 15 | i18n | ✓ | translationRef en aria-label; texts morfo |
## Hallazgos y propuestas
| ID | Hallazgo | Propuesta |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------ |
| **F-1** | readonly sin estilo (R-1.3) | Tratamiento único de familia |
| **F-2** | `height-{k}` duplicada | SYS-6 |
| **Nota ✓** | `onValueCommit` (OnChangeFn) es candidato a CANON del callback terminal (vs `onSubmit` crudo) — coincide con la convención Radix/bits del slider | Veredicto \_naming: unificar el trío de patrones |
## Escalan al sistema
\_naming (callback terminal: onValueCommit vs onSubmit vs solo-evento) · SYS-5 · SYS-6 · doctrina "valor anunciado veraz" exportable.
## Veredictos
_(pendiente — checkpoint post-barrido)_

Powered by TurnKey Linux.