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/editable.md

10 KiB

editable — ficha de auditoría (RE-AUDITADA 2026-07-07, profundidad piloto)

  • Familia: fields (texto in-place preview↔edit) · Método: solo análisis; evidencia por dimensión · demos fuera
  • Capas leídas: morfo completo (1-110+) · soma types completo · provider dirigido (autoResize :30,:374-377) · pack ✓
  • Máquina: PASS limpio · tests ✓ (con 1 error de tipos en la línea base de check — data-editing indexado, a absorber en fixes) · README ×2 ✓

Dimensiones (evidencia leída)

# Dimensión Estado Evidencia
1 Composición ✓ Area/Control/Preview/Input/EditTrigger(+Submit/Cancel) compositivos
2 Naming 4 datos de censo defaultValue (types :16-21 — PRIMER uncontrolled-initial del catálogo, doc React-style "read once at mount") → ¿canon o redundante con $bindable(inicial)? · par onValueChange (cambia el comprometido) + onValueCommit (cada commit) :60-63 — distinción sutil que el resto no hace · onValueRevert: () => void crudo SIN payload (:64-65 — encaja la regla "crudo solo señal sin dato" ✓) · editing/onEditingChange par bindable ✓
3 Coherencia semántica ✓ shift-enter-mode (shift, sin intent — cambio de contexto ✓) · commit-save affirm · commit-cancel neutral (commit exige intent por política de familia; neutral es correcto — verificado contra la doctrina)
4 API ✓ rica activationMode: focus|click|dblclick|none + submitMode: enter|blur|both|none (:32-49); selectOnFocus; hidden-input por name (:26-27)
5 Tokens ✓ Recipe canónico
6 Sema ✓ Pack ✓ (enter/save/cancel con carácter)
7 Animaciones ✓ Sin keyframes
8 Contrato morfo ✓ Preview role='textbox' en div (patrón Chakra/Ark del valor-como-textbox-readonly, :102-110); data-editing/empty/placeholder-shown flags; aria-required/invalid condicionales
9 A11y ✓ Activación por foco accesible por defecto; triggers con textos
10 Theming ✓ Focus o5 → censo SYS-5; state-hover preview ✓ tier neutro
11 Composición interna verificar Como tags-input: sin mención de OR-merge con Field en types → verificación dirigida (pass SYS-6)
12 Estados ✓ con gap menor editing/empty/disabled/readonly/invalid ✓; F-1: maxLength (:54-55) SIN señal de overflow (0 hits) — textarea tiene el contrato signal-warn-count-overflow untilFix para lo mismo
13 Runtime ✓ por diseño autoResize dimensiona por ch desde el valor + min-width: 2ch (provider :374-377) — cero medición de DOM (evita la clase de reflow de textarea F-1 por construcción); el contraste correcto: ch para una línea, medición-diferida para multilínea
14 Docs+tests ✓ README ×2, suite ✓ (+ el error de tipos baseline a absorber)
15 i18n ✓ texts morfo

Hallazgos y propuestas

ID Hallazgo Propuesta
F-1 maxLength sin contrato de overflow (asimetría con textarea) Adoptar signal-warn-count-overflow del hermano (untilFix + persistent-trace) o documentar por qué no aplica al in-place
F-2 defaultValue — patrón uncontrolled único en el catálogo Veredicto _naming: ¿se canoniza (y entonces quién más lo necesita) o se poda (el $bindable(inicial) de Svelte 5 cubre el caso)?
F-3 Error de tipos preexistente en su suite (baseline check) Fix trivial en fase de fixes
F-4 Participación Field sin documentar Verificación dirigida (con tags-input)

Escalan al sistema

_naming (defaultValue · el par Change/Commit · Revert crudo ✓ como regla) · patrón "ch-sizing vs medición-diferida" como doctrina de autoResize (exportable).

Veredictos

(pendiente — checkpoint post-barrido)

Powered by TurnKey Linux.