|
|
|
|
@ -2,10 +2,10 @@
|
|
|
|
|
|
|
|
|
|
**Handoff. Fecha: 2026-07-08 · actualizado 2026-07-09.** Rama `alpha-0.1-sec-dom`.
|
|
|
|
|
|
|
|
|
|
> **Arranca mañana aquí →** [§ P5 — lo que queda](#p5--lo-que-queda-arrancar-aquí-mañana).
|
|
|
|
|
> **S6 Field-family está COMPLETO y pusheado** (`53b6f629..d1670caa`). Lo siguiente
|
|
|
|
|
> es **S8 calendar-surface**, luego **P6** y **P7**. Dos follow-ups no bloqueantes
|
|
|
|
|
> registrados abajo.
|
|
|
|
|
> **Arranca aquí → P7** (S9 iniciativas · S4 28 READMEs · S7 papeleo · errores baseline).
|
|
|
|
|
> **P5 y P6 están CERRADOS**: P5 = S1·S5·depth·touch·S6·S8 ✅ (S6 `53b6f629..d1670caa`;
|
|
|
|
|
> S8 `83e13be6`). P6 = C6 `3b02fd11` · C7 `444e05eb` · B.11 `0f0feb4f` ✅.
|
|
|
|
|
> Pende tu decisión touch-rows↔§37. Follow-ups no bloqueantes abajo.
|
|
|
|
|
|
|
|
|
|
Documento de continuación para retomar la fase de fixes de la re-auditoría de
|
|
|
|
|
componentes. La **fuente de verdad de los veredictos** es
|
|
|
|
|
@ -24,9 +24,9 @@ componentes. La **fuente de verdad de los veredictos** es
|
|
|
|
|
| **P2** contratos morfo (role=application×4, aria-selected fuera del Day, drp translationRef, field data-state, pin-input commit-set, media-player renames) | ✅ |
|
|
|
|
|
| **P3** packs sema (13 packs nuevos + 12 morfos `family-default`→`'pack'`) | ✅ |
|
|
|
|
|
| **P4** naming/API N1–N10 | ✅ **COMPLETO** |
|
|
|
|
|
| **P5** sistema/eidos | 🟡 **EN CURSO** — S1 ✅ · S5 ✅ · depth ✅ · touch-rows ✅ · **S6 ✅** (composición + poda + de-alias, pusheado) · **S8 pendiente** |
|
|
|
|
|
| **P6** C7 textarea-measure + D13 · C6 weekInfo · B.11 splitter | ⬜ pendiente |
|
|
|
|
|
| **P7** S9 iniciativas · S4 28 READMEs · S7 papeleo · errores de tipo baseline | ⬜ pendiente |
|
|
|
|
|
| **P5** sistema/eidos | ✅ **CERRADO** — S1 ✅ · S5 ✅ · depth ✅ · touch-rows ✅ · **S6 ✅** (composición + poda + de-alias) · **S8 ✅** (`--calendar-range-*` API pública `83e13be6`) · (touch↔§37 pende decisión) |
|
|
|
|
|
| **P6** C7 textarea-measure + D13 · C6 weekInfo · B.11 splitter | ✅ **CERRADO** — C6 `3b02fd11` · C7 `444e05eb` · B.11 `0f0feb4f` |
|
|
|
|
|
| **P7** S9 iniciativas · S4 28 READMEs · S7 papeleo · errores de tipo baseline | ⬜ pendiente — **empezar aquí** |
|
|
|
|
|
|
|
|
|
|
## ⚠️ Reconciliar PRIMERO — conflicto touch-rows ↔ §37
|
|
|
|
|
|
|
|
|
|
@ -134,10 +134,46 @@ Doctrina del usuario: **todos los fields deben SER fields** (componen `field.css
|
|
|
|
|
en el DOM (xs/sm/lg) que el elemento consumidor lleva `[data-size]`. La revisión
|
|
|
|
|
adversarial cazó exactamente esto en time-range-picker.
|
|
|
|
|
|
|
|
|
|
## P5 — lo que queda (arrancar aquí mañana)
|
|
|
|
|
|
|
|
|
|
- **S8 calendar-surface** CONFIRMADO + tokens de rango como **API pública** de la
|
|
|
|
|
capa (drp deja de tunear `--_calendar-range-*` ajenos). **← EMPEZAR AQUÍ.**
|
|
|
|
|
## P5 — CERRADO ✅ (S8 hecho 2026-07-09, `83e13be6`)
|
|
|
|
|
|
|
|
|
|
- **S8 calendar-surface**: 8 tokens públicos `--calendar-range-{start,end}-*` en el
|
|
|
|
|
recipe `calendar` (API de la capa); range-calendar los consume por el nombre
|
|
|
|
|
público; drp deja de tunear los `--_calendar-range-*` privados. Value-preserving
|
|
|
|
|
(25/25, baseline 59, eidos-lint 0, navegador idéntico en 4 colores + drp popover).
|
|
|
|
|
Asimetría deliberada documentada: start desde `:root` (tema-overrideable), end atado
|
|
|
|
|
al accent en el host. Detalle en memoria [[recipe-orphan-test-prune]] /
|
|
|
|
|
[[compose-base-field-not-replicate]] (mismo patrón anti-alias que el de-alias de pickers).
|
|
|
|
|
|
|
|
|
|
## P6 — CERRADO ✅ (2026-07-09→10)
|
|
|
|
|
|
|
|
|
|
- **C6** (`3b02fd11`): `getWeekInfo(locale)` público en `$libs/days` (convención Intl
|
|
|
|
|
1=lun..7=dom; `firstDay` espeja el `getWeekStart` interno; weekend de Intl con
|
|
|
|
|
fallback sáb/dom documentado, caché por locale). Calendar + range-calendar derivan
|
|
|
|
|
`weekend` del locale (antes: hardcoded sáb/dom con 'en-US' — mal para ar-SA).
|
|
|
|
|
Verificado en vivo (ar-SA → vie/sáb). **Hallazgo extra arreglado**: `getSimpleWeekNumber`
|
|
|
|
|
mezclaba marcos (weekStartsOn absoluto + locale-relativo) → semanas 'simple'
|
|
|
|
|
desplazadas −1 en es-ES; ancla en marco en-US fijo + test de regresión.
|
|
|
|
|
- **C7** (`444e05eb`): textarea `measureAutosize` difiere la lectura vía
|
|
|
|
|
`dom.measure` del contexto (antes: reflow forzado POR TECLA). Censo D13:
|
|
|
|
|
violaciones arregladas en scroll-area (getters del thumb leían clientHeight en
|
|
|
|
|
`$derived` → reflow por tick; ahora track medido por RO en $state), virtual-list
|
|
|
|
|
(×2 viewports), virtual-grid, carousel (seed diferido + fallback vivo en render
|
|
|
|
|
eliminado). Conformes sin cambio: float-panel, cropper, splitter (lecturas
|
|
|
|
|
event-time antes de write — D13 es regla de timing). Suites actualizadas al
|
|
|
|
|
contrato diferido.
|
|
|
|
|
- **B.11** (`0f0feb4f`): par bindable del splitter — `sizes` (bindable, % por orden
|
|
|
|
|
de registro: seed + sync + escritura externa clampada) + `onResize`→`onSizesChange`
|
|
|
|
|
(norma X+onXChange; dos nombres = alias). `onResizeEnd` se queda (momento commit).
|
|
|
|
|
Verificado en vivo en ambas direcciones.
|
|
|
|
|
- **Gotcha de entorno registrado** (memoria `hidden-pane-suspends-raf`): el Browser
|
|
|
|
|
pane oculto (`visibilityState: hidden`) suspende rAF + entrega de RO → sondas de
|
|
|
|
|
medición "muertas", screenshots en timeout. Chequear la vitalidad de rAF ANTES de
|
|
|
|
|
diagnosticar; verificar vía suite de navegador de vitest en su lugar. La sonda
|
|
|
|
|
reflowDetector quedó pendiente por esto (opcional, no bloqueante).
|
|
|
|
|
|
|
|
|
|
## Lo que queda — **arrancar aquí: P7**
|
|
|
|
|
|
|
|
|
|
- **P7** — S9 iniciativas · S4 28 READMEs · S7 papeleo · errores de tipo baseline.
|
|
|
|
|
|
|
|
|
|
### Follow-ups no bloqueantes (registrados)
|
|
|
|
|
|
|
|
|
|
|