docs(theming): el registro §8 recoge fab y tags-input, con su sha

Las dos entradas que faltaban de la tanda del 24, cada una con el sha resuelto
(la deuda de los trece `(COMMIT)` no se repite):

- `fab` 88 % → 100 % (`5fd2fcdd8`), contrato 10 → 12, centinela 11/12 con 1
  adjudicada. El cualificador de MODO va detrás; el guard no fotografía
  `translate` y el centinela se auto-cancela al llevarse el nodo de debajo del
  cursor.
- `tags-input` 88 % → 90 % CERRADO (`92180c390`), contrato 90 → 91, centinela
  63/91 con 28 adjudicadas. Sus cuatro privados son el puente THM-2, así que
  90 % es su techo; y su `item-fg` no ha pintado nunca porque el morfo sella
  `aria-selected='true'` en cada etiqueta.

docs:check 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
alpha-0.1-background
dev 2 months ago
parent 92180c390c
commit 82aa500797

@ -509,6 +509,60 @@ excepción abre la mano para MEDIR, no para contabilizar.
## 8. Registro
- 2026-08-24 — **`tags-input` 88 % → 90 % CERRADO** (`92180c390`), contrato 90 →
**91** claves, centinela **63/91** con 28 adjudicadas. Sus **cinco** knobs
fuera de alcance se clasificaron uno a uno ANTES de tocar nada: **uno** era la
COSTURA (`[data-invalid]` leía `var(--color-risk-border)` a pelo → entra como
`invalid-control-border`, con el nombre Y el default de
`field.invalid-control-border`, que tinta la misma parte del mismo chasis; NO
el `risk-border` de la paleta, que la cascada `[data-color]` re-enruta por
instancia y se llevaría con él el estado inválido). Los otros **cuatro son el
mismo puente THM-2** (`--_tags-input-palette-{border,track,text}` en el borde
del control enfocado y en los tres slots de la etiqueta activa): no se
acuñan, así que **90 % es su techo y es doctrina, no deuda**. Sus bloques
`[data-size]` del CSS **se quedan**: aquí NO los emite el TSC (claves de talla
planas, sin `scope: 'size:{k}'`), y retirarlos rompería el eje. **Lo que
enseñó**: (1) **su tinta de etiqueta no ha pintado NUNCA** — el morfo sella
`aria-selected='true'` como LITERAL en cada etiqueta, así que la regla de
`archetypes.css` (0,4,0) gana siempre a `[data-tags-input-item]` (0,1,0) y le
fija `color` y el velo de estado EN REPOSO; medido con `aria-selected=false`
sobre el nodo real, donde `item-fg` alcanza al instante. Tercera ocurrencia de
§12.5 y con cara de a11y (un lector anuncia todas las etiquetas como
seleccionadas) — registrado en next-features §12, no se toca desde este eje;
(2) **el guard se poisona a sí mismo abriendo**: clicar el control estampa
`data-focus` y la regla de foco re-tinta el borde a la misma (0,2,0) pero más
tarde, así que `control-border` —vivísimo— leía muerto (la clase de
`command.input-border`, otra vez). Barrer la AUSENCIA (`null`) de
`data-focus` / `data-invalid` / `data-disabled` lo devuelve: **60/91 → 63/91
sin adjudicar una clave de más**. Diff de computed vacío (2.496 valores × 8
estados en el escenario válido + 459 × 5 tallas × 3 variantes + hover en el
INVÁLIDO, con sonda de un solo uso), captura 2× byte a byte idéntica.
- 2026-08-24 — **`fab` 88 % → 100 %** (`5fd2fcdd8`), contrato 10 → **12** claves,
centinela **11/12** con 1 adjudicada. Dos knobs, y los dos del **pill
extendido**: el FAB circular no declara `padding-inline` ni `gap`, pero la
regla `[data-extended]` sí, y leía `var(--space-5)` / `var(--space-2)` a pelo
— la COSTURA de §2-A, con `global` a CERO. **El nombre lleva el cualificador
DETRÁS** (`padding-inline-extended`, `gap-extended`): `extended` es un MODO,
no un estado interactivo, así que cae en la otra mitad de la frase de D-TH.6,
como `sidebar.width-icon`; un `padding-inline` a secas habría prometido a TODO
FAB un padding que sólo tiene el pill. **Lo que enseñó**: (1) **la composición
no le quita nada, y valía la pena medirlo** — el mismo `<button>` lleva
`data-button` y `data-fab`, que es la forma del hallazgo de `gradient-picker`,
pero las reglas del FAB casan (0,3,0) contra los (0,2,0) del Button y ganan
sea cual sea el orden de carga (padding computado 20px = `--space-5`); (2)
**`lift` es la laguna del guard sobre `translate`** —hermana de la de
`transform` en background / rating-group / card— y trae una trampa nueva: **el
centinela se auto-cancela**, porque un lift de 1234px se lleva el nodo de
debajo del cursor (`:hover` cierto en t+50 ms, falso en t+300, `none` en
t+900), así que ni añadiéndole una pasada de hover se mediría; medido a mano
escribiendo el token ANTES de entrar, `translate: 0px -1234px`; (3) el
instrumento: un FAB es **UN nodo**, su segunda superficie es el hueco de icono
del Button compuesto (`EXTRA_NODES`), y su eje de talla es `data-fab-size`,
**no** `data-size` — con el barrido cartesiano `data-fab-size` ×
`data-extended` el guard pasa de **3/12 a 11/12** sin adjudicar nada de más.
Diff de computed vacío (416 valores × 7 estados en el circular + 188 × 4
tallas + hover en el pill), capturas 2× byte a byte idénticas en las dos
formas.
- 2026-08-24 — **`chat-typing` 89 % → 100 %** (`d39147c11`), contrato 7 → **8**
claves, centinela **8/8** con **cero adjudicadas**. Entra **una** clave y es
la COSTURA: `dot-radius` (`var(--radius-full)`), el único knob que leía el

Loading…
Cancel
Save

Powered by TurnKey Linux.