`npm run component:audit` now reports 77 / 77 PASS, 0 NEEDS-WORK,
0 BROKEN.
**month-grid + year-grid READMEs**
Add Baseline / Comparativa / Decisiones / Gaps sections (F-1.1 /
F-1.2 / F-1.3 / F-1.4). Both grids are standalone primitives
extracted from DatePicker's `kind: 'month' | 'year'` views (task
`#70`); they have no air counterpart. Documented Sema event design
(single `commit-set` for value mutation, `nav-step` for paginated
header navigation), the 4×3 grid choice, configurable `decadeSize`
for YearGrid, and known gaps (multi-year range, quick-jump,
localized month names — all deferred).
**Audit script `focusMoveActions` extension**
`A-3.7` was firing on month-grid/year-grid because the script didn't
recognise `next-row`, `prev-row`, `first-month`, `last-month`,
`first-year`, `last-year`, `next-page`, `prev-page` as focus moves.
They ARE focus moves inside their respective grids (same semantic as
`next-day` / `first-day-of-week` inside Calendar). Added to the
focusMoveActions set in `scripts/component-audit.ts` so the
event-vs-keyboard ratio heuristic no longer over-counts.
**time-range-picker**
- README Gaps section rewritten as a table with explicit disposition
markers (`implementar` / `diferir` / `descartar`) per F-1.4.
- Recipe `time-range-picker.css` now styles `[data-readonly]` (lower
opacity + pointer-events: none on trigger/clear) and `[data-invalid]`
(threat-colour border + focus ring) — closes R-1.3 / R-1.4. Both
attrs were declared in morfo but unstyled.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>