From a4d86edb24aadd89cbb6c3a8649db2e7802614fa Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 24 Jun 2026 18:17:30 +0200 Subject: [PATCH] docs(eidos): deepen Lote A hand-off scoping for calendar + code-block MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Records the verified implementation scoping for the two remaining Lote A items so the next pass is efficient: calendar/range prev-next (recipe untouched — control-* shared with the selects; needs eidos size contexts + grid handling + demo chevron update; ~12 files) and code-block copy (compose with value=codeRef .textContent; Trigger+Indicator replace the toggling button — a UX change; remove the copy chrome + handleCopy/timer). Co-Authored-By: Claude Opus 4.8 --- src/uix/eidos/COMPONENT_COHERENCE_AUDIT.md | 30 ++++++++++++++-------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/uix/eidos/COMPONENT_COHERENCE_AUDIT.md b/src/uix/eidos/COMPONENT_COHERENCE_AUDIT.md index b673962fe..7be8642fe 100644 --- a/src/uix/eidos/COMPONENT_COHERENCE_AUDIT.md +++ b/src/uix/eidos/COMPONENT_COHERENCE_AUDIT.md @@ -728,16 +728,26 @@ time-picker + morfo: **65/65**. Navegador: langs ES + transición de los 4 input familia close defiere a los defaults de Button (solid/primary), sin hardcodear ghost/neutral (banner ajustado). **Familia close COMPLETA** (dialog·drawer·popover· banner·toast·float-panel), 4 commits, verificada en navegador. - - ⏳ **Pendiente del Lote A** (más delicado — handoff): - - **calendar/range prev/next** (×4) → `IconButton`+`SvgChevron`. **Riesgo de layout**: - `--_calendar-control-size` lo comparten el botón Y la **columna del grid** (`grid-template- - columns: ctrl minmax(0,1fr) ctrl`), así que el size se queda (grid) y solo el chrome se - va; `:focus-visible`/`:disabled` son selectores **compartidos** con month-select/year- - select/day (extraer prev/next sin tocar el resto). Verificar el layout del header en - navegador tras migrar. Borrar `--calendar-control-{border,bg,color,hover,...}` (NO - `--calendar-control-size`). - - **code-block copy** → componer `` (cierra también su hardcode de langs - "Copy code to clipboard"; el botón reimplementa el comportamiento de clipboard). + - ⏳ **Pendiente del Lote A** (más delicado — handoff con scoping profundo): + - **calendar/range prev/next** (×4) → `IconButton`+`SvgChevron`. Scoping verificado: + (1) **recipe NO se toca** — `--calendar-control-{border,bg,color,radius,hover,...}` los + comparten prev/next Y los month/year-select (CSS 201-234), y `--_calendar-control-size` + lo usan grid (119) + selects (204) → **cero orphans** al migrar solo prev/next. + (2) **Quitar** el chrome de prev/next (CSS 156-182) + extraer prev/next de los selectores + **compartidos** `:focus-visible` (184) y `:disabled` (193) sin tocar month/year-select+day. + (3) **Size**: las flechas deben escalar con el calendario; NO hay contexto eidos → + crear `calendar-context.ts` + `range-calendar-context.ts` (patrón carousel-context) que + propaguen el size; mapear calendar-size→IconButton-size (control-size-md = control-height-sm, + hay offset de un paso). (4) Grid: dejar la columna en `--_calendar-control-size` o pasar a + `auto`. (5) El **demo pasa el chevron como texto** (`<`) → + actualizar el demo para mostrar `SvgChevron`. ~12 ficheros (calendar + range-calendar). + - **code-block copy** → componer ``. Scoping: `` + con `codeText = codeRef.textContent` (dinámico, reactivo al montar el ``); + `` (compone Button) + `` reemplazan el botón único + que togglea "Copy"/"Copied" → **cambio de UX** (trigger + indicator). Quitar `handleCopy`/ + `copied`/`copyTimer`/`onDestroy` (Clipboard los posee) + el chrome `[data-code-block-copy]` + (CSS 76-108) + adaptar el layout del header (el wrapper Clipboard vs el botón). Cierra el + hardcode de langs (Clipboard posee su label). - **float-panel `action` + `stage-trigger`** (los "controles"): mismo patrón que la migración del close, pero no son closes — opcional, comparten chrome propio coherente. 2. **DIM 1 — Lote B** (estructural): 6 `` (calendar