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.
3.4 KiB
3.4 KiB
pin-input — ficha de auditoría (RE-AUDITADA 2026-07-07, profundidad piloto)
- Familia: fields (OTP/pin) · Método: solo análisis; evidencia por dimensión · demos fuera
- Capas leídas: morfo (eventos+partes verificados por grep exhaustivo) · soma types superficie · provider dirigido (:18,:99) + su test (:115)
- Máquina: PASS limpio · tests ✓ · README ×2 ✓
- Chequeo de delegación (lección date-range): compone
FieldProvider.get()(:99, OR-merge de flags ✓) pero el morfo de Field TAMPOCO tiene eventos commit (field F-2) → no hay delegación semántica posible; F-1 se sostiene sin excusa composicional
Dimensiones (evidencia leída)
| # | Dimensión | Estado | Evidencia |
|---|---|---|---|
| 1 | Composición | ✓ | Patrón OTP estándar: UN <input> real invisible + celdas fake renderizadas (PinInputCellData: char/isActive/isFilled/hasFakeCaret — types) — el input-único preserva autofill de SMS/gestores ✓ |
| 2 | Naming | dato de censo | PinInputType: numeric|alphanumeric|alphabetic|custom; cells en snippet; value string; onComplete (test provider :115 "fires onComplete once") — CUARTO nombre de callback terminal del catálogo (vs onValueCommit/onSubmit/solo-evento) → _naming fila 22 |
| 3 | Coherencia semántica | GAP GRAVE (elevado desde el pass superficial) | F-1: semantic: = 0 confirmado (77 líneas) Y el header del morfo (:7-9) PROMETE lo contrario: "Sound for commit-fill (when the input reaches its length) comes from the commit family base — no per-component cascade needed" — pero no existe evento commit-fill alguno y scope: ['soma','eidos'] (:10) NI SIQUIERA incluye sema: el sonido prometido es FÍSICAMENTE imposible. Comentario y contrato se contradicen en el mismo fichero. Tras el censo de delegaciones de la familia pickers (ntp exonerado, Picker con deuda declarada), pin-input queda como el único 0-eventos desnudo del catálogo |
| 4 | API | ✓ | Tipos de entrada, celdas derivadas, fake caret |
| 8 | Contrato morfo | con F-1 | APG textbox ✓ correcto para el input único |
| 9 | A11y | verificar en fixes | El anuncio del progreso (celda N de M) — revisar cuando F-1 defina los eventos |
| 10-15 | ✓ | Focus outline; tests ✓; README ×2 ✓; sin señales de indisciplina |
Hallazgos y propuestas
| ID | Hallazgo | Propuesta |
|---|---|---|
| F-1 | Interactivo sin contrato semántico (0 eventos; onComplete dispara JS crudo sin commit) |
Declarar: commit-set (+fulfill) al completar todas las celdas (donde hoy dispara onComplete) · opcional signal-warn-reject untilFix si el consumidor marca el código inválido (el patrón de la familia: textarea/tags/form) · luego pack o family-default razonado. Es EL gap de contrato de la familia junto a natural-time-picker |
| F-2 | Composición Field: soma OR-merge ✓ verificado (:99,:136 inputId al hidden) | Queda solo verificar el wrapper eidos (label/error del OTP) con el pass SYS-6 |
Escalan al sistema
Censo A-3.1-de-facto (interactivos sin eventos): natural-time-picker + pin-input — y pregunta al guard: ¿por qué la máquina no lo flaguea aquí? (afinar la regla A-3.1) · SYS-6.
Veredictos
(pendiente — checkpoint post-barrido)