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.
10 KiB
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-editingindexado, 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)