feat(audit): component re-audit + fixes P0–P5 (P4 complete, P5 in progress)
Re-audit of the whole component catalog at pilot depth (91 fichas + the
checkpoint verdicts in docs/audit/components/) and the executed fix packages.
- P0–P3: doctrine (sema participation, CANON §3 intent, component-guide §5 +
API naming, §32 outline), guards (morfo-vocabulary-check S10/S11d,
component-audit A-3.1/A-1.4/S9, eidos-lint classHooks), morfo contracts
(role=application removed ×4, aria-selected off the Day, drp translationRef,
field data-state prune, pin-input commit-set, media-player renames), 13 new
sema packs + 12 morfos family-default → pack.
- P4 (N1–N10) COMPLETE: selectionMode (select/combobox/toggle-group/calendar);
onValueCommit terminal-callback norm (pin-input/search/password/textarea +
date/time/color-field add); typed validation reason + onInvalid (tags-input,
css-field); index/onIndexChange (carousel); deselectable; openDelay/
groupSkipDelay; allowCustomValue; defaultValue prune.
- P5 (in progress): S1 class-hooks codemod (22 hooks → data-attrs across
cropper/button/image-picker/toggle/image-adjustments); S5 outline remnant in
field.css; depth pass (data-depth=overlay on tooltip/toast/float-panel);
touch-rows (--touch-target token, decoupled ::before hit-slop, area-not-visual,
44 AAA). S6 (Field composition) + S8 (calendar-surface) pending.
Verification: errors-outside-(alpha|words|palabras|chronos) == 59 (baseline);
morfo-vocabulary-check exit 0; eidos-lint class-hooks/invalid 0 on touched
components; per-component vitest suites green.
Handoff + remaining plan: docs/process/continue-audit-fixes-2026-07.md
Excluded (broken by the N1 rename, left broken per user decision, not staged):
words/**, palabras/**, chronos, web/routes/alpha/**.
Reconciliation pending: the touch-rows ::before for checkbox/switch reverses
changelog §37's earlier pseudo-element rejection (WCAG-overlap) that had routed
markers to a labeled-row/Field task — flagged for the user in the handoff.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3 months ago
|
|
|
|
# spin-field — ficha de auditoría (capa compartida, no componente pleno)
|
|
|
|
|
|
|
|
|
|
|
|
- **Fecha**: 2026-07-07 · **Familia**: fields · **Naturaleza**: **capa visual compartida** (§34, 2026-06-11) — el recipe/CSS único del stepper-field que number-field y css-field consumen; NO tiene morfo ni soma propios (como list-surface)
|
|
|
|
|
|
- **Capas**: morfo — (by-design de capa) · soma — · README **ninguno** · pack sema — (los commits los emiten number/css-field)
|
|
|
|
|
|
- **Máquina**: **PASS** limpio.
|
|
|
|
|
|
|
|
|
|
|
|
## Dimensiones — las que aplican a una capa
|
|
|
|
|
|
|
|
|
|
|
|
| Dim | Estado | Nota |
|
|
|
|
|
|
|---|---|---|
|
|
|
|
|
|
| 5/10 tokens | ✓ | `--spin-field-*` vía recipe; `data-spin-field*` markers; state-hover ✓ (1 uso, tier neutro correcto); glifos ▲/▼ +/− por `:empty::before` tematizables (§33) |
|
|
|
|
|
|
| 8 contrato | nota doctrinal | Sin morfo — la doctrina "morfo-first incluso leaf (scope eidos)" vs la naturaleza de CAPA (list-surface tampoco tiene). Coherente si se clasifica capa, no componente → alimentar el criterio en SYS (¿qué ES capa vs componente? calendar-surface llegará con la misma pregunta) |
|
|
|
|
|
|
| 15 docs | **gap** | Ni README ni doc de capa — la capa que dos componentes consumen no está documentada en sitio propio (solo §34 del changelog) |
|
|
|
|
|
|
| altura | ✓ | `--spin-field-height-md` = size-bundle ✓ (no duplica: ES la fuente para sus dos consumidores) |
|
|
|
|
|
|
|
|
|
|
|
|
## Hallazgos y propuestas
|
|
|
|
|
|
|
|
|
|
|
|
| ID | Hallazgo | Propuesta |
|
|
|
|
|
|
|---|---|---|
|
|
|
|
|
|
| F-1 | Capa sin doc propia | Doc de capa en `eidos/components/spin-field/README.md` (qué markers expone, qué tokens, quién la consume) — mismo patrón que tendrá calendar-surface |
|
|
|
|
|
|
| F-2 | Criterio capa-vs-componente sin escribir | → **SYS-7** (nuevo): definir formalmente "capa compartida" (spin-field, list-surface, field-segment-state, futura calendar-surface): sin morfo/soma, markers `data-{layer}*`, README de capa, y cómo la máquina las clasifica |
|
|
|
|
|
|
|
|
|
|
|
|
## Escalan al sistema
|
|
|
|
|
|
|
|
|
|
|
|
**SYS-7** (nuevo — clasificación de capas compartidas).
|
|
|
|
|
|
|
|
|
|
|
|
## Veredictos
|
|
|
|
|
|
|
|
|
|
|
|
*(pendiente — checkpoint post-barrido)*
|