diff --git a/docs/audit/theming/calendar.md b/docs/audit/theming/calendar.md index 60e464568..e485794c6 100644 --- a/docs/audit/theming/calendar.md +++ b/docs/audit/theming/calendar.md @@ -5,7 +5,7 @@ > Vista de conjunto: [README](./README.md) · método y protocolo: > [`PLAN-theming.md`](../../process/PLAN-theming.md) §1, §2, §7. -- **Medido**: 2026-08-23 · **Alcance**: **89%** — 57 de 64 knobs por token público +- **Medido**: 2026-08-24 · **Alcance**: **89%** — 57 de 64 knobs por token público - **Knobs de apariencia**: 67 — público 57 · privado 7 · global 0 · literal 0 · sistema 3 · excepción 4 _(los dos últimos, fuera del ratio)_ - **Contrato hoy** (`lib/recipes/base.ts`): 74 pública(s) — `gap`, `padding-xs`, `padding-sm`, `padding-md`, `padding-lg`, `radius`, `border-width`, `border`, `invalid-border`, `bg`, `outline-bg`, `outline-shadow`, `fg`, `shadow`, `font-family`, `font-size-xs`, `font-size-sm`, `font-size-md`, `font-size-lg`, `line-height`, `header-gap`, `heading-fg`, `heading-font-size`, `heading-font-weight`, `control-size-xs`, `control-size-sm`, `control-size-md`, `control-size-lg`, `control-radius`, `control-border-width`, `control-border`, `hover-control-border`, `control-bg`, `control-fg`, `hover-control-fg`, `select-min-width`, `select-padding-inline`, `months-gap`, `grid-gap`, `weekday-size`, `weekday-fg`, `weekday-font-size`, `weekday-font-weight`, `day-size-xs`, `day-size-sm`, `day-size-md`, `day-size-lg`, `day-radius`, `day-border-width`, `day-border`, `hover-day-border`, `day-bg`, `day-fg`, `hover-day-fg`, `day-font-weight`, `day-selected-fg`, `range-start-solid`, `range-start-solid-hover`, `range-start-border`, `range-start-text`, `range-end-solid`, `range-end-solid-hover`, `range-end-border`, `range-end-text`, `day-today-border`, `day-today-fg`, `day-today-font-weight`, `day-outside-fg`, `day-outside-opacity`, `day-weekend-fg`, `day-unavailable-decoration`, `transition-duration`, `transition-ease`, `disabled-opacity` · 5 privada(s) forward — `_palette-solid`, `_palette-solid-hover`, `_palette-track`, `_palette-border`, `_palette-text` - **Eje `size`**: no · **ficheros**: `calendar-select.css`, `calendar.css` diff --git a/docs/audit/theming/card.md b/docs/audit/theming/card.md index 64675f7fe..eca87ce67 100644 --- a/docs/audit/theming/card.md +++ b/docs/audit/theming/card.md @@ -5,7 +5,7 @@ > Vista de conjunto: [README](./README.md) · método y protocolo: > [`PLAN-theming.md`](../../process/PLAN-theming.md) §1, §2, §7. -- **Medido**: 2026-08-23 · **Alcance**: **78%** — 28 de 36 knobs por token público +- **Medido**: 2026-08-24 · **Alcance**: **78%** — 28 de 36 knobs por token público - **Knobs de apariencia**: 37 — público 28 · privado 8 · global 0 · literal 0 · sistema 1 · excepción 0 _(los dos últimos, fuera del ratio)_ - **Contrato hoy** (`lib/recipes/base.ts`): 98 pública(s) — `padding-inline-xs`, `padding-inline-sm`, `padding-inline-md`, `padding-inline-lg`, `padding-inline-xl`, `padding-block-xs`, `padding-block-sm`, `padding-block-md`, `padding-block-lg`, `padding-block-xl`, `gap-xs`, `gap-sm`, `gap-md`, `gap-lg`, `gap-xl`, `font-family`, `line-height`, `title-font-family`, `title-font-size-xs`, `title-font-size-sm`, `title-font-size-md`, `title-font-size-lg`, `title-font-size-xl`, `title-font-weight`, `title-line-height`, `title-letter-spacing`, `description-font-family`, `description-font-size-xs`, `description-font-size-sm`, `description-font-size-md`, `description-font-size-lg`, `description-font-size-xl`, `description-line-height`, `description-fg`, `body-font-size-xs`, `body-font-size-sm`, `body-font-size-md`, `body-font-size-lg`, `body-font-size-xl`, `body-line-height`, `border-width`, `radius-sm`, `radius-md`, `radius-lg`, `header-gap`, `footer-gap`, `footer-padding-start`, `footer-border-fg`, `emerge-duration`, `emerge-ease`, `emerge-distance`, `hover-lift`, `hover-shadow`, `press-scale`, `press-duration`, `selected-ring-width`, `disabled-opacity`, `outline-bg`, `primary-solid`, `primary-text`, `primary-contrast`, `secondary-solid`, `secondary-text`, `secondary-contrast`, `neutral-solid`, `neutral-text`, `neutral-contrast`, `affirm-solid`, `affirm-text`, `affirm-contrast`, `fulfill-track`, `fulfill-border`, `fulfill-solid`, `fulfill-text`, `fulfill-contrast`, `risk-solid`, `risk-text`, `risk-contrast`, `threat-solid`, `threat-text`, `threat-contrast`, `loss-track`, `loss-border`, `loss-solid`, `loss-text`, `loss-contrast`, `primary-track`, `primary-border`, `secondary-track`, `secondary-border`, `neutral-track`, `neutral-border`, `affirm-track`, `affirm-border`, `risk-track`, `risk-border`, `threat-track`, `threat-border` · 5 privada(s) forward — `_palette-track`, `_palette-border`, `_palette-solid`, `_palette-text`, `_palette-contrast` - **Eje `size`**: sí · **ficheros**: `card.css` diff --git a/docs/audit/theming/radio-group.md b/docs/audit/theming/radio-group.md index 9913205cf..6e8fe5dbe 100644 --- a/docs/audit/theming/radio-group.md +++ b/docs/audit/theming/radio-group.md @@ -5,7 +5,7 @@ > Vista de conjunto: [README](./README.md) · método y protocolo: > [`PLAN-theming.md`](../../process/PLAN-theming.md) §1, §2, §7. -- **Medido**: 2026-08-23 · **Alcance**: **81%** — 46 de 57 knobs por token público +- **Medido**: 2026-08-24 · **Alcance**: **81%** — 46 de 57 knobs por token público - **Knobs de apariencia**: 59 — público 46 · privado 10 · global 1 · literal 0 · sistema 2 · excepción 0 _(los dos últimos, fuera del ratio)_ - **Contrato hoy** (`lib/recipes/base.ts`): 69 pública(s) — `gap-vertical`, `gap-horizontal`, `item-size-xs`, `item-size-sm`, `item-size-md`, `item-size-lg`, `item-size-xl`, `dot-size-xs`, `dot-size-sm`, `dot-size-md`, `dot-size-lg`, `dot-size-xl`, `item-gap`, `font-family`, `font-size-xs`, `font-size-sm`, `font-size-md`, `font-size-lg`, `font-size-xl`, `item-size`, `dot-size`, `font-size`, `font-weight`, `line-height`, `item-label-fg`, `disabled-item-label-fg`, `invalid-item-label-fg`, `indicator-radius`, `indicator-border-width`, `indicator-bg`, `indicator-border`, `hover-indicator-border`, `disabled-indicator-bg`, `disabled-indicator-border`, `checked-disabled-indicator-bg`, `invalid-indicator-border`, `invalid-ring`, `invalid-ring-gap`, `dot-fg`, `disabled-dot-fg`, `transition-duration`, `transition-ease`, `disabled-opacity`, `primary-solid`, `primary-solid-hover`, `neutral-solid`, `neutral-solid-hover`, `secondary-solid`, `secondary-solid-hover`, `affirm-solid`, `affirm-solid-hover`, `label-font-family`, `label-font-size`, `label-font-weight`, `label-line-height`, `label-fg`, `segmented-track-bg`, `segmented-track-shadow`, `segmented-track-padding`, `segmented-track-radius`, `segmented-segment-padding-inline`, `segmented-segment-padding-block`, `segmented-segment-fg`, `hover-segmented-segment-fg`, `segmented-segment-font-weight`, `segmented-pill-shadow`, `segmented-pill-radius`, `segmented-transition-duration`, `segmented-transition-ease` · 3 privada(s) forward — `_palette-solid`, `_palette-solid-hover`, `_palette-text` - **Eje `size`**: no · **ficheros**: `radio-group.css` diff --git a/docs/audit/theming/rating-group.md b/docs/audit/theming/rating-group.md index 6faec9198..f0fbcc2a6 100644 --- a/docs/audit/theming/rating-group.md +++ b/docs/audit/theming/rating-group.md @@ -5,7 +5,7 @@ > Vista de conjunto: [README](./README.md) · método y protocolo: > [`PLAN-theming.md`](../../process/PLAN-theming.md) §1, §2, §7. -- **Medido**: 2026-08-23 · **Alcance**: **100%** — 13 de 13 knobs por token público +- **Medido**: 2026-08-24 · **Alcance**: **100%** — 13 de 13 knobs por token público - **Knobs de apariencia**: 14 — público 13 · privado 0 · global 0 · literal 0 · sistema 1 · excepción 2 _(los dos últimos, fuera del ratio)_ - **Contrato hoy** (`lib/recipes/base.ts`): 29 pública(s) — `gap-xs`, `gap-sm`, `gap-md`, `gap-lg`, `gap-xl`, `item-size-xs`, `item-size-sm`, `item-size-md`, `item-size-lg`, `item-size-xl`, `font-family`, `font-size-xs`, `font-size-sm`, `font-size-md`, `font-size-lg`, `font-size-xl`, `gap`, `item-size`, `font-size`, `line-height`, `item-fg`, `active-item-fg`, `partial-item-fg`, `invalid-item-fg`, `item-hover-offset`, `focus-radius`, `transition-duration`, `transition-ease`, `disabled-opacity` - **Eje `size`**: no · **ficheros**: `rating-group.css` diff --git a/docs/audit/theming/select.md b/docs/audit/theming/select.md index c1e2aae80..3a3c2e1b5 100644 --- a/docs/audit/theming/select.md +++ b/docs/audit/theming/select.md @@ -5,7 +5,7 @@ > Vista de conjunto: [README](./README.md) · método y protocolo: > [`PLAN-theming.md`](../../process/PLAN-theming.md) §1, §2, §7. -- **Medido**: 2026-08-23 · **Alcance**: **92%** — 57 de 62 knobs por token público +- **Medido**: 2026-08-24 · **Alcance**: **92%** — 57 de 62 knobs por token público - **Knobs de apariencia**: 69 — público 57 · privado 5 · global 0 · literal 0 · sistema 7 · excepción 3 _(los dos últimos, fuera del ratio)_ - **Contrato hoy** (`lib/recipes/base.ts`): 103 pública(s) — `stack-gap`, `font-family`, `font-size-xs`, `font-size-sm`, `font-size-md`, `font-size-lg`, `font-size-xl`, `line-height`, `fg`, `primary-text`, `secondary-text`, `neutral-text`, `affirm-text`, `fulfill-track`, `fulfill-border`, `fulfill-text`, `risk-text`, `threat-text`, `loss-track`, `loss-border`, `loss-text`, `trigger-height-xs`, `trigger-height-sm`, `trigger-height-md`, `trigger-height-lg`, `trigger-height-xl`, `trigger-padding-inline-xs`, `trigger-padding-inline-sm`, `trigger-padding-inline-md`, `trigger-padding-inline-lg`, `trigger-padding-inline-xl`, `trigger-gap-xs`, `trigger-gap-sm`, `trigger-gap-md`, `trigger-gap-lg`, `trigger-gap-xl`, `trigger-border-width`, `trigger-border`, `hover-trigger-border`, `trigger-radius`, `trigger-bg`, `trigger-shadow`, `trigger-fg`, `trigger-indicator-fg`, `trigger-indicator-size`, `placeholder-fg`, `disabled-border`, `disabled-bg`, `disabled-fg`, `invalid-border`, `content-z`, `content-padding-block-xs`, `content-padding-block-sm`, `content-padding-block-md`, `content-padding-block-lg`, `content-padding-block-xl`, `content-padding-inline-xs`, `content-padding-inline-sm`, `content-padding-inline-md`, `content-padding-inline-lg`, `content-padding-inline-xl`, `content-min-width`, `content-max-width`, `content-max-height`, `content-radius`, `content-fg`, `open-duration`, `close-duration`, `viewport-gap`, `viewport-padding`, `group-gap`, `group-padding-block`, `group-heading-padding-block`, `group-heading-padding-inline`, `group-heading-font-family`, `group-heading-font-size`, `group-heading-font-weight`, `group-heading-letter-spacing`, `group-heading-fg`, `separator-size`, `separator-margin-block`, `separator-bg`, `item-gap`, `item-padding-inline`, `item-fg`, `item-indicator-size`, `item-description-mt`, `item-description-fg`, `item-description-font-size`, `transition-duration`, `transition-ease`, `primary-track`, `primary-border`, `secondary-track`, `secondary-border`, `neutral-track`, `neutral-border`, `affirm-track`, `affirm-border`, `risk-track`, `risk-border`, `threat-track`, `threat-border` · 3 privada(s) forward — `_palette-track`, `_palette-border`, `_palette-text` - **Eje `size`**: sí · **ficheros**: `select.css` diff --git a/docs/audit/theming/toggle.md b/docs/audit/theming/toggle.md index 134d9df66..2be62825f 100644 --- a/docs/audit/theming/toggle.md +++ b/docs/audit/theming/toggle.md @@ -5,7 +5,7 @@ > Vista de conjunto: [README](./README.md) · método y protocolo: > [`PLAN-theming.md`](../../process/PLAN-theming.md) §1, §2, §7. -- **Medido**: 2026-08-23 · **Alcance**: **100%** — 24 de 24 knobs por token público +- **Medido**: 2026-08-24 · **Alcance**: **100%** — 24 de 24 knobs por token público - **Knobs de apariencia**: 25 — público 24 · privado 0 · global 0 · literal 0 · sistema 1 · excepción 3 _(los dos últimos, fuera del ratio)_ - **Contrato hoy** (`lib/recipes/base.ts`): 126 pública(s) — `height-xs`, `height-sm`, `height-md`, `height-lg`, `height-xl`, `padding-inline-xs`, `padding-inline-sm`, `padding-inline-md`, `padding-inline-lg`, `padding-inline-xl`, `gap-xs`, `gap-sm`, `gap-md`, `gap-lg`, `gap-xl`, `font-family`, `line-height`, `letter-spacing`, `font-size-xs`, `font-size-sm`, `font-size-md`, `font-size-lg`, `font-size-xl`, `font-weight-xs`, `font-weight-sm`, `font-weight-md`, `font-weight-lg`, `font-weight-xl`, `radius`, `radius-sm`, `radius-md`, `radius-lg`, `radius-xl`, `radius-full`, `border-width`, `shadow`, `transition-duration`, `transition-ease`, `primary-track`, `primary-element`, `primary-hover`, `primary-border`, `primary-solid`, `primary-solid-hover`, `primary-text`, `primary-contrast`, `neutral-track`, `neutral-element`, `neutral-hover`, `neutral-border`, `neutral-solid`, `neutral-solid-hover`, `neutral-text`, `neutral-contrast`, `risk-track`, `risk-element`, `risk-hover`, `risk-border`, `risk-solid`, `risk-solid-hover`, `risk-text`, `risk-contrast`, `threat-track`, `threat-element`, `threat-hover`, `threat-border`, `threat-solid`, `threat-solid-hover`, `threat-text`, `threat-contrast`, `secondary-track`, `secondary-element`, `secondary-hover`, `secondary-border`, `secondary-solid`, `secondary-solid-hover`, `secondary-text`, `secondary-contrast`, `affirm-track`, `affirm-element`, `affirm-hover`, `affirm-border`, `affirm-solid`, `affirm-solid-hover`, `affirm-text`, `affirm-contrast`, `palette-track`, `palette-element`, `palette-hover`, `palette-border`, `palette-solid`, `palette-solid-hover`, `palette-text`, `palette-contrast`, `solid-bg`, `solid-fg`, `solid-border`, `solid-hover-bg`, `solid-hover-border`, `solid-on-bg`, `solid-on-fg`, `solid-on-border`, `solid-on-hover-bg`, `solid-on-hover-border`, `outline-bg`, `outline-fg`, `outline-border`, `outline-hover-bg`, `outline-hover-border`, `outline-on-bg`, `outline-on-fg`, `outline-on-border`, `outline-on-hover-bg`, `outline-on-hover-border`, `ghost-bg`, `ghost-fg`, `ghost-border`, `ghost-hover-bg`, `ghost-hover-border`, `ghost-on-bg`, `ghost-on-fg`, `ghost-on-border`, `ghost-on-hover-bg`, `ghost-on-hover-border`, `disabled-opacity`, `invalid-border` - **Eje `size`**: sí · **ficheros**: `toggle.css` diff --git a/docs/next-features.md b/docs/next-features.md index 3521b03a6..702dfe13a 100644 --- a/docs/next-features.md +++ b/docs/next-features.md @@ -1443,6 +1443,28 @@ Lo que `chart` destapó (2026-08-22): chevron, con lo que los dos tokens de reposo del trigger leen muertos. Miden bien con el panel CERRADO. No hay arreglo dentro de una corrida: el instrumento sólo puede estar en un estado a la vez; se adjudica. +- **⚠ `eidos-lint` no conoce las exenciones que el test de vitest SÍ tiene** + (medido 2026-08-24 revisando la tanda). `src/uix/eidos/lint.test.ts` mantiene + cuatro conjuntos de exención declarados y razonados —`CSS_ONLY_LAYERS` + (`spin-field`: una capa CSS compartida que consumen css-field y number-field + por identidad estructural, sin morfo POR DISEÑO), `WIP_TRACKS`, + `KNOWN_MISSING_MORFO` y las raíces competidoras—, pero + `scripts/eidos-lint.ts` no los conoce: sobre `spin-field` muere con + «No morfo file» en vez de eximirlo. **El guard de la suite y el script de + línea de comandos discrepan sobre la misma ley**, y el que se corre a mano + es el que miente. Arreglo: que el script importe los mismos conjuntos, o que + vivan en un módulo que los dos lean. Preexistente, no de esta tanda. + +- **⚠ La columna `size` del censo se apaga cuando el eje de talla SUBE al + contrato** (medido 2026-08-24 en `radio-group` y `rating-group`). La columna + se calcula leyendo bloques `[data-size]` en el CSS; cuando una escala privada + se promueve al TSC con `scope: 'size:{k}'` —que es la forma CANÓNICA— esos + bloques desaparecen de la receta y el censo deja de marcar el eje: el total + bajó de 57 a 55 justo al hacerlo mejor. **El instrumento premia la forma + vieja.** No afecta al ratio de alcance, pero sí a la tabla §9 y a cualquiera + que la lea para decidir si un componente tiene talla. Arreglo: leer también + los `scope: 'size:*'` del contrato, no sólo el CSS. + - **⚠⚠ EL ÍNDICE DE GIT ES COMPARTIDO: VERIFICAR EL ÁRBOL INDEXADO NO BASTA** (medido 2026-08-24, con ocho sesiones sobre el mismo worktree). Hay UN solo `.git/index`. La técnica que esta rama daba por segura —construir el índice diff --git a/docs/process/CONTINUE-theming.md b/docs/process/CONTINUE-theming.md index 19feb564c..59ca11d73 100644 --- a/docs/process/CONTINUE-theming.md +++ b/docs/process/CONTINUE-theming.md @@ -145,9 +145,31 @@ declarar ruido reproduciéndolo sobre código idéntico.** Los dos lo hicieron. - **La demo de `chat-log` se TOCÓ como instrumento** (montaba tres de sus seis partes sólo en la prosa, así que once claves no tenían nodo que pintar). Roza la regla de que las demos quedan fuera del eje: queda dicho, no escondido. -- Quedan en la cola, por alcance: `chat-message` 84 · `fab` 88 · - `tags-input` 88 · `chat-typing` 89 · `collapsible` 90 · `accordion` 91 · - `toolbar` 91 · `scroll-area` 94 · `tabs` 96 · `slider` 97 · `toast` 98. +- **LA COLA, con la separación que la primera redacción se dejó** (corregido + 2026-08-24 al revisar: decía once y son treinta y cuatro, contados contra el + censo y el registro §8). + + **A. Nunca han pasado por el eje — 16.** Sin entrada en §8 y sin README: + `field-langs` 0 % (bloqueado por el mandato Field) · `chronos` 1 % (carril + WIP) · `mockup` 38 % (⚠ sin ruta de demo) · `sidebar` 55 % (eje propio) · + `image-adjustments` 67 % · `separator` 67 % · `chat-message` 84 % · + `fab` 88 % · `tags-input` 88 % · `chat-typing` 89 % · `collapsible` 90 % · + `toolbar` 91 % · `scroll-area` 94 % · `tabs` 96 % · `slider` 97 % · + `toast` 98 %. + + **B. Pasaron por el eje pero les FALTA el README «Talla y tema» — 18.** Su + número está adjudicado y su commit hecho; lo que falta es el artefacto del + paso §7 que se volvió obligatorio después de que cerraran (`e522e04e6` + recuperó 21, éstos quedaron fuera): `proof-of-human` · `palabras` · + `audio-player` · `drawer` · `radio-cards` · `password-field` · `tag-group` · + `popover` · `color-picker` · `timeline` · `stepper` · `aura` · `metrics` · + `float-panel` · `chart` · `accordion` · `gradient-builder` · `nav-tree`. + **No es cola de tokenización: es deuda de documentación**, y se salda con un + barrido derivado del contrato como el que ya se hizo una vez. + + Regenera siempre esta lista del censo, nunca de memoria: el criterio es + «alcance < 100 % y sin sección `## Talla y tema`», y el desempate entre A y B + es si tiene entrada en el registro §8. ## LO QUE DEJÓ LA SESIÓN DEL 2026-08-23