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/range-calendar.md

39 lines
8.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# range-calendar — ficha de auditoría (RE-AUDITADA 2026-07-07, profundidad piloto)
- **Familia**: calendar (prestatario nº1: 79 tokens de calendar) · **Método**: solo análisis; evidencia por dimensión · demos fuera
- **Capas leídas**: [morfo](../../../src/uix/morfo/components/range-calendar.ts) (324 líneas; eventos :18-56, Cell :242-268, Day :282-317) · estructura contrastada con el donante [calendar](calendar.md)
- **Máquina**: **NEEDS-WORK** — `E-2.3` (falta README eidos) · `R-1.3` (`data-readonly` sin estilo) · tests ✓ · pack **✗**
## Dimensiones (evidencia leída)
| # | Dimensión | Estado | Evidencia |
| ----- | -------------------- | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | Composición | ✓ | Estructura del donante (Provider/Header/Prev/Next/Grid/Cell/Day) + no-archetype de Day con razón propia (:284 bespoke `[data-range-calendar-day]`) |
| 3 | Coherencia semántica | ✓ **contrato de referencia** con gap de carácter | **La gradación de rango que faltaba en los field-ranges está AQUÍ**: `commit-select-start` (affirm :18-23) → `commit-select-range` (**fulfill** :28-33 — el sellado del par ES el momento fulfill) → `commit-reset` (neutral :38-43) + shift-navigate. Es EL precedente interno para date-range-field/time-range-field F-1 (citarlo en su veredicto). **F-1**: toda esa riqueza suena a `family-default` (:8) — sin pack, el fulfill del rango completo no se distingue del default genérico |
| 6 | Sema | gap | Sin pack (censo: CERO packs en la familia calendar salvo el donante) → SYS-3 con el mejor argumento: eventos ricos YA declarados sin carácter |
| 8 | Contrato morfo | ✓ con herencias | `data-range-start`/`data-range-end` en Cell (:253-254) y Day (:294-295) + data-selected para el tramo — vocabulario de rango coherente; **F-2**: `role='application'` (:64) heredado sin razón (censo familia — 4 morfos) · **F-3**: Day `role='button'` (:289) + `aria-selected` (:317) — el MISMO ARIA inválido del donante (calendar F-2); Cell (:268) la lleva legítimamente |
| 9 | A11y | con F-2/F-3 | Teclado del donante (grid APG) |
| 11 | Composición interna | **borrower** | 79 tokens `--calendar-*` consumidos informalmente + privados de acento re-declarados (8 ✓); marcas holiday/event muertas tras B.2 (el token vive en `[data-calendar]`) → SYS-8, caso TRIVIAL (privados ya declarados) |
| 12 | Estados | hallazgo máquina | R-1.3 readonly sin materializar (patrón familia) |
| 14 | Docs+tests | gap | Sin README eidos (E-2.3); tests ✓ |
| resto | | ✓ / hereda donante | Incluida la cuestión weekend-por-locale (calendar F-4) si comparte la derivación |
## Hallazgos y propuestas
| ID | Hallazgo | Propuesta |
| ------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| **F-1** | Semántica de rango ejemplar SIN pack (fulfill suena genérico) | SYS-3: si la familia gana packs, este es EL candidato (start affirm suave → range fulfill pleno → reset neutral) |
| **F-2** | `role='application'` heredado sin razón documentada | Resolver JUNTO con calendar F-1 (decisión única de familia) |
| **F-3** | `aria-selected` sobre Day `role='button'` (:317) — ARIA inválido, duplicado del Cell | Mismo fix que calendar F-2 (familia entera en un pase) |
| **F-4** | Marcas holiday/event muertas (borrow roto) | SYS-8 (capa calendar-surface) |
| **F-5** | readonly sin estilo (R-1.3) | Patrón familia (con date-picker) |
| **F-6** | README eidos ausente | SYS-4 |
## Escalan al sistema
SYS-3 (mejor evidencia del catálogo) · SYS-4 · SYS-8 (prestatario ancla) · censo `role='application'` ×4 · censo ARIA-inválido Day ×2 · **precedente commit-select-start/range para los field-ranges** (cruce de familias).
## Veredictos
_(pendiente — checkpoint post-barrido)_

Powered by TurnKey Linux.