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/pin-input.md

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)

Powered by TurnKey Linux.