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.
12 KiB
12 KiB
password-field — ficha de auditoría (RE-AUDITADA 2026-07-07, profundidad piloto)
- Familia: fields · Método: solo análisis; evidencia por dimensión · demos fuera
- Capas leídas: morfo completo (1-130+; eventos íntegros) · soma types completo (1-110+) · pack sema ✓ existe · css (censo familia: focus outline, alturas, strength 6px)
- Máquina: NEEDS-WORK —
E-2.3(sin README eidos) ·R-1.3(readonly sin estilo) · tests 0
Dimensiones (evidencia leída)
| # | Dimensión | Estado | Evidencia |
|---|---|---|---|
| 1 | Composición | ✓ | Surface consensuada contra 5 refs (Ark/Chakra/Mantine/Prime/Ant — documentado morfo :13-20); partes Input/VisibilityTrigger/CapsLockIndicator/StrengthMeter compositivas |
| 2 | Naming | ✓ conforme | value/onValueChange ✓; visible/onVisibilityChange (par bindable ✓, types :56-59); onSubmit crudo (mismo F-4 de search → _naming); purpose: 'current'|'new' → autocomplete (types :61-66 — API password-manager-aware); strength pluggable con default $libs/secs (:95-110) |
| 3 | Coherencia semántica | ✓ DOCTRINA DE REFERENCIA | El morfo documenta con INCIDENTE por qué teclear NO es commit (commit-input por tecla disparaba pulse 260ms + beep por letra; alineado con editable/number/search/combobox — :40-47); commit-toggle-visibility = commit.toggle + affirm con cita cap. 23 (:59-72); signal-notify-caps-state con persistence: 'stateBound' + ciclo clearSignal razonado (el indicador seguiría 240ms y moriría con CapsLock aún activo — :73-93) |
| 4 | API | ✓ | min/maxLength; strength con resultado estructurado (score/label/warnings) y override zxcvbn/OWASP documentado; snippetProps completos (:17-30) |
| 5 | Tokens | ✓ con dup | height-{k} duplicada (SYS-6); strength-segment 6px = geometría del meter |
| 6 | Sema | ✓ | Pack ✓ + el contrato de eventos más fino del catálogo |
| 7 | Animaciones | ✓ | Sin keyframes; el settle del commit lo evitó la doctrina de :40-47 |
| 8 | Contrato morfo | ✓ ejemplar | APG textbox + ARIA toggle-button del trigger — citas CORRECTAS (:38, :10-11); innovación CapsLock documentada como gap 10/10 refs (:22-26); flags visible/caps-active/focused/empty (:118-121) |
| 9 | A11y | ✓ resuelto a nivel contrato | a11ySemantic: { requiresLiveRegion: true, reducedMotionFallback: 'text' } en el evento de caps (:99-102) — el anuncio para AT es parte del CONTRATO, no un extra; aria-label↔Field.Label documentado |
| 10 | Theming | hallazgo | R-1.3 readonly sin estilo (patrón familia) |
| 11 | Composición interna | ✓ | OR-merge con Field documentado (types :38-40, :73) |
| 12 | Estados | ✓ | visible/caps/focused/empty proyectados; purpose para autofill |
| 13 | Runtime | ✓ | Caps vía getModifierState en keydown del propio input (documentado :24-26) — sin listeners globales |
| 14 | Docs+tests | gap doble | Sin README eidos (E-2.3) y cero tests — el contrato más rico de la familia sin suite que lo proteja |
| 15 | i18n | ✓ | texts show/hide/caps-warning localizados (:32-37); warnings del meter traducibles vía langs (documentado types :103-105) |
Hallazgos y propuestas
| ID | Hallazgo | Propuesta |
|---|---|---|
| F-1 | Cero tests para el contrato más fino de la familia (toggle+aria, caps stateBound+clearSignal, strength plugable, debounce n/a) | Suite prioritaria en fase de fixes (SYS-2): el stateBound del caps es EXACTAMENTE lo que una regresión rompería en silencio |
| F-2 | Sin README eidos | SYS-4 |
| F-3 | readonly sin estilo (R-1.3) | Tratamiento único de familia |
| F-4 | onSubmit crudo (tipado heterogéneo) |
Veredicto _naming |
| F-5 | height-{k} duplicada |
SYS-6 |
| Nota ✓✓ | La doctrina teclear≠commit (:40-47) y el a11ySemantic del caps son CANON exportable | Citarlos como referencia en el veredicto de field F-2 (Field.Input debe adoptar commit-submit al Enter, el patrón que este morfo documenta) y en la doctrina sema |
Escalan al sistema
SYS-2 · SYS-4 · SYS-6 · _naming (onSubmit crudo) · la doctrina de :40-47 resuelve el field F-2 a nivel de familia (commit-submit-en-Enter como patrón de inputs de texto).
Veredictos
(pendiente — checkpoint post-barrido)