# Auditoría de alcance de tema — el catálogo entero > **Generado**, no escrito a mano: `node --import tsx/esm scripts/theming-census.ts --report`. > Este README es la vista de conjunto; **una ficha por componente** al lado, con > su análisis y su **propuesta de corrección**. Método, clases, protocolo de > verificación y fases: [`PLAN-theming.md`](../../process/PLAN-theming.md). > La auditoría del SISTEMA de theming (fase 1, cerrada 2026-07-07) es > [`theming-audit.md`](../theming-audit.md); ésta es la deuda de adopción que > aquélla dejó apuntada en su §5.3-3. - **Medido**: 2026-08-23 · **162 recetas** con CSS + **8 componentes sin receta** = 170 fichas, el árbol entero de `eidos/components/` - **La pregunta**: ¿cuánto de la apariencia de cada componente puede cambiar un tema **sin tocar el sistema ni la receta**? - **Alcance global**: **67%** — 3047 de 4577 knobs pasan por un token público del componente - **Reparto**: público 3047 · privado 317 · global 814 · literal 399 · sistema transversal 509 · excepción firmada 132 _(los dos últimos, fuera del ratio)_ - **Sin token público propio**: 24 · **alcance < 20 %**: 12 · **alcance 100 %**: 28 · **con eje `size`**: 57 ## Cómo se lee | clase | qué es | ¿lo alcanza un tema del componente? | | --- | --- | --- | | `public` | `var(--{c}-…)`, el contrato del componente | **sí** | | `private` | `var(--_{c}-…)`, nombre interno | sólo si el privado deriva de un público (cada ficha lo dice en §3) | | `global` | primitivo del sistema (`--space-*`, `--radius-*`, `--color-*`, bundle `--size-{k}-*`…) | sólo moviendo el sistema entero | | `literal` | ni token: `8px`, `1.25`, `#fff` | no — y viola R-2/R-4 | | `system` | sistemas transversales que la receta CONSUME por contrato (capa de estado, anillo de foco, planos de depth, motion, bandas z, opacidad, shape, floating-gap) | sí, **a nivel de sistema**, por diseño (recipe-contract §2) — fuera del ratio | | `exception` | un literal con su anotación `/* literal: */` en la propia declaración | no hace falta: es la válvula de recipe-contract §3, una desviación ya firmada — fuera del ratio | **Alcance** = `public / (public + private + global + literal)`. `system` y `exception` quedan fuera del denominador: el primero es tematizable a nivel de sistema por diseño, el segundo es una desviación que el canon ya aceptó por escrito. **Límites de la medida** (regex sobre el CSS; sobre-reporta, nunca infra-reporta): una declaración con varios tokens se clasifica por la primera clase que casa (público → privado → sistema → global); el token público de OTRO componente cuenta como `global` y la ficha lo marca «⤴ prestado»; los valores dentro de `@keyframes` cuentan como cualquier otro. Tres defectos que ningún regex ve — privado que no deriva, velo en el nodo equivocado, doble animación — van en la checklist §4.4 de cada ficha. ## Qué NO propone una ficha La propuesta deriva nombres de la doctrina; **no la contradice**. Por eso una ficha nunca propone acuñar un token para: - **lo que posee una capa compartida** (`list-surface`, `spin-field`, `picker-shell`, `viewport-placement`, `field-segment-state`, `menu-indicator`, `sliding-indicator`): un eje = un token público de la capa + una ranura privada, consumido `var(--_x, var(--x))` — el consumidor no acuña `--{c}-{eje}` (README de `eidos/components`, «Capas compartidas» regla 2); - **el foco** (`--focus-ring-*`, theming §32) ni **la capa de estado** (`--state-*`, §38): un knob del sistema, no del componente; - **un token prestado de otro componente** (la familia `calendar` en los pickers): la corrección es la decisión de familia registrada en [`theming-audit.md`](../theming-audit.md) §B, no un duplicado con prefijo propio; - **un shorthand o un eje físico** (`padding`, `border`, `height`): primero se parte en ejes lógicos (recipe-contract §1, R-4.4), y eso es decisión. ## Sin receta CSS (8) Ni un `.css` en su directorio: **no hay knob que medir**, y eso es una respuesta, no un hueco. Cada ficha dice —medido, no supuesto— dónde vive su visual: el componente que compone, la capa compartida que consume, o la receta ajena que pinta sus attrs (y cuyos knobs ya están contados allí). [`affix`](./affix.md) · [`count-up`](./count-up.md) · [`format-date`](./format-date.md) · [`format-number`](./format-number.md) · [`icon-button`](./icon-button.md) · [`relative-time`](./relative-time.md) · [`svg`](./svg.md) · [`trans`](./trans.md) Y el **vocabulario de nombres tiene una desviación medida**: el catálogo habla mayoritariamente con el modificador al final (`-bg-hover`, `-bg-active`) mientras theming §6.7 lo pone delante (`hover-bg`). Las fichas proponen la forma **documentada** y lo dejan anotado: la normalización es **D-TH.6**, sin firmar. ## Los 20 con más knobs fuera del contrato | # | componente | fuera de alcance | alcance | knobs | contrato | | ---: | --- | ---: | ---: | ---: | ---: | | 1 | [palabras](./palabras.md) | 360 | 22% | 468 | 0 | | 2 | [chronos](./chronos.md) | 234 | 1% | 244 | 9 | | 3 | [time-range-picker](./time-range-picker.md) | 67 | 20% | 88 | 22 | | 4 | [proof-of-human](./proof-of-human.md) | 61 | 19% | 79 | 20 | | 5 | [time-picker](./time-picker.md) | 47 | 18% | 59 | 16 | | 6 | [field-langs](./field-langs.md) | 37 | 0% | 39 | 0 | | 7 | [date-range-picker](./date-range-picker.md) | 30 | 40% | 53 | 22 | | 8 | [drawer](./drawer.md) | 29 | 60% | 74 | 54 | | 9 | [radio-cards](./radio-cards.md) | 27 | 61% | 72 | 40 | | 10 | [color-picker](./color-picker.md) | 20 | 75% | 82 | 71 | | 11 | [natural-time-picker](./natural-time-picker.md) | 20 | 74% | 77 | 62 | | 12 | [sidebar](./sidebar.md) | 19 | 55% | 45 | 50 | | 13 | [mockup](./mockup.md) | 18 | 38% | 29 | 0 | | 14 | [radio-group](./radio-group.md) | 17 | 77% | 75 | 61 | | 15 | [popover](./popover.md) | 16 | 67% | 51 | 46 | | 16 | [form](./form.md) | 15 | 71% | 52 | 54 | | 17 | [tag-group](./tag-group.md) | 15 | 65% | 46 | 91 | | 18 | [file-upload](./file-upload.md) | 14 | 76% | 61 | 98 | | 19 | [combobox](./combobox.md) | 13 | 85% | 97 | 106 | | 20 | [password-field](./password-field.md) | 13 | 62% | 35 | 30 | ## Sin ningún token público propio (24) Ni una clave pública en `lib/recipes/base.ts` — alguno tiene privados forward (`_palette-*`), que no son contrato: un tema no puede nombrarlos. [`alert-dialog`](./alert-dialog.md) · [`aspect-ratio`](./aspect-ratio.md) · [`auto-grid`](./auto-grid.md) · [`avatar`](./avatar.md) · [`cascade`](./cascade.md) · [`css-field`](./css-field.md) · [`date-picker`](./date-picker.md) · [`display`](./display.md) · [`field-langs`](./field-langs.md) · [`heading`](./heading.md) · [`highlight`](./highlight.md) · [`mask-field`](./mask-field.md) · [`mockup`](./mockup.md) · [`month-grid`](./month-grid.md) · [`motion`](./motion.md) · [`number-field`](./number-field.md) · [`palabras`](./palabras.md) · [`range-calendar`](./range-calendar.md) · [`stack`](./stack.md) · [`text`](./text.md) · [`text-blur`](./text-blur.md) · [`text-scramble`](./text-scramble.md) · [`wrap`](./wrap.md) · [`year-grid`](./year-grid.md) ## Tabla completa (162 recetas, por alcance ascendente) La columna «contrato» cuenta las claves **públicas** del bloque del componente. | componente | alcance | knobs | público | privado | global | literal | sistema | contrato | size | | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | :-: | | [range-calendar](./range-calendar.md) | 0% | 98 | 0 | 7 | 2 | 4 | 85 | 0 | – | | [month-grid](./month-grid.md) | 0% | 61 | 0 | 7 | 0 | 5 | 49 | 0 | – | | [year-grid](./year-grid.md) | 0% | 61 | 0 | 7 | 0 | 5 | 49 | 0 | – | | [field-langs](./field-langs.md) | 0% | 39 | 0 | 0 | 31 | 6 | 2 | 0 | – | | [aspect-ratio](./aspect-ratio.md) | 0% | 3 | 0 | 0 | 1 | 2 | 0 | 0 | – | | [date-picker](./date-picker.md) | 0% | 2 | 0 | 0 | 0 | 2 | 0 | 0 | – | | [text-blur](./text-blur.md) | 0% | 2 | 0 | 0 | 0 | 2 | 0 | 0 | – | | [cascade](./cascade.md) | 0% | 1 | 0 | 0 | 0 | 1 | 0 | 0 | – | | [motion](./motion.md) | 0% | 1 | 0 | 0 | 0 | 1 | 0 | 0 | – | | [chronos](./chronos.md) | 1% | 244 | 3 | 21 | 202 | 11 | 7 | 9 | y | | [time-picker](./time-picker.md) | 18% | 59 | 10 | 12 | 24 | 11 | 2 | 16 | y | | [proof-of-human](./proof-of-human.md) | 19% | 79 | 14 | 17 | 29 | 15 | 4 | 20 | – | | [time-range-picker](./time-range-picker.md) | 20% | 88 | 17 | 19 | 33 | 15 | 4 | 22 | y | | [skin-media-player](./skin-media-player.md) | 22% | 11 | 2 | 0 | 1 | 6 | 2 | 10 | y | | [palabras](./palabras.md) | 22% | 468 | 103 | 1 | 272 | 87 | 5 | 0 | – | | [surface](./surface.md) | 25% | 4 | 1 | 3 | 0 | 0 | 0 | 25 | – | | [scroll-frames](./scroll-frames.md) | 33% | 9 | 3 | 1 | 1 | 4 | 0 | 4 | – | | [link](./link.md) | 36% | 14 | 4 | 4 | 1 | 2 | 3 | 5 | – | | [menu-dial](./menu-dial.md) | 38% | 8 | 3 | 0 | 1 | 4 | 0 | 3 | y | | [mockup](./mockup.md) | 38% | 29 | 11 | 0 | 13 | 5 | 0 | 0 | – | | [date-range-picker](./date-range-picker.md) | 40% | 53 | 20 | 9 | 19 | 2 | 3 | 22 | y | | [skeleton](./skeleton.md) | 45% | 11 | 5 | 5 | 0 | 1 | 0 | 9 | – | | [text-scramble](./text-scramble.md) | 50% | 4 | 2 | 0 | 0 | 2 | 0 | 0 | – | | [split-button](./split-button.md) | 50% | 2 | 1 | 0 | 1 | 0 | 0 | 1 | y | | [toggle-group](./toggle-group.md) | 50% | 2 | 1 | 0 | 1 | 0 | 0 | 1 | – | | [sidebar](./sidebar.md) | 55% | 45 | 23 | 0 | 14 | 5 | 3 | 50 | – | | [audio-player](./audio-player.md) | 56% | 18 | 10 | 0 | 8 | 0 | 0 | 8 | – | | [drawer](./drawer.md) | 60% | 74 | 43 | 8 | 16 | 5 | 2 | 54 | y | | [mark](./mark.md) | 60% | 5 | 3 | 2 | 0 | 0 | 0 | 3 | – | | [radio-cards](./radio-cards.md) | 61% | 72 | 43 | 0 | 23 | 4 | 2 | 40 | y | | [password-field](./password-field.md) | 62% | 35 | 21 | 2 | 2 | 9 | 1 | 30 | y | | [clipboard](./clipboard.md) | 63% | 8 | 5 | 2 | 1 | 0 | 0 | 6 | – | | [spinner](./spinner.md) | 64% | 25 | 16 | 5 | 0 | 4 | 0 | 18 | – | | [tag-group](./tag-group.md) | 65% | 46 | 28 | 14 | 0 | 1 | 3 | 91 | y | | [popover](./popover.md) | 67% | 51 | 32 | 4 | 12 | 0 | 3 | 46 | y | | [spin-field](./spin-field.md) | 67% | 26 | 16 | 0 | 8 | 0 | 2 | 20 | – | | [image-adjustments](./image-adjustments.md) | 67% | 18 | 10 | 0 | 4 | 1 | 3 | 12 | – | | [virtual-list](./virtual-list.md) | 67% | 13 | 8 | 0 | 0 | 4 | 1 | 12 | – | | [separator](./separator.md) | 67% | 6 | 4 | 0 | 0 | 2 | 0 | 3 | – | | [listbox](./listbox.md) | 68% | 37 | 23 | 9 | 1 | 1 | 3 | 21 | – | | [progress](./progress.md) | 69% | 35 | 24 | 2 | 3 | 6 | 0 | 41 | y | | [color-swatch](./color-swatch.md) | 70% | 10 | 7 | 0 | 3 | 0 | 0 | 12 | y | | [s-text-virtual-list](./s-text-virtual-list.md) | 70% | 10 | 7 | 0 | 3 | 0 | 0 | 9 | – | | [form](./form.md) | 71% | 52 | 36 | 8 | 5 | 2 | 1 | 54 | y | | [image-picker](./image-picker.md) | 71% | 20 | 12 | 0 | 1 | 4 | 3 | 13 | – | | [search-field](./search-field.md) | 71% | 15 | 10 | 0 | 0 | 4 | 1 | 17 | y | | [skip-link](./skip-link.md) | 71% | 8 | 5 | 0 | 0 | 2 | 1 | 8 | – | | [checkbox](./checkbox.md) | 72% | 30 | 21 | 8 | 0 | 0 | 1 | 47 | y | | [virtual-grid](./virtual-grid.md) | 73% | 12 | 8 | 0 | 0 | 3 | 1 | 12 | – | | [natural-time-picker](./natural-time-picker.md) | 74% | 77 | 56 | 0 | 14 | 6 | 1 | 62 | y | | [color-picker](./color-picker.md) | 75% | 82 | 59 | 7 | 2 | 11 | 3 | 71 | y | | [editable](./editable.md) | 75% | 44 | 30 | 7 | 1 | 2 | 4 | 56 | y | | [avatar](./avatar.md) | 75% | 36 | 27 | 3 | 0 | 6 | 0 | 0 | y | | [tooltip](./tooltip.md) | 75% | 21 | 15 | 5 | 0 | 0 | 1 | 23 | y | | [badge](./badge.md) | 75% | 20 | 15 | 5 | 0 | 0 | 0 | 71 | y | | [meter](./meter.md) | 75% | 12 | 9 | 1 | 2 | 0 | 0 | 28 | y | | [switch](./switch.md) | 76% | 22 | 16 | 4 | 1 | 0 | 1 | 51 | y | | [file-upload](./file-upload.md) | 76% | 61 | 45 | 9 | 1 | 4 | 2 | 98 | y | | [timeline](./timeline.md) | 77% | 47 | 36 | 10 | 0 | 1 | 0 | 45 | y | | [carousel](./carousel.md) | 77% | 35 | 23 | 2 | 0 | 5 | 5 | 27 | – | | [radio-group](./radio-group.md) | 77% | 75 | 56 | 10 | 7 | 0 | 2 | 61 | y | | [chat-log](./chat-log.md) | 77% | 42 | 30 | 0 | 4 | 5 | 3 | 31 | – | | [card](./card.md) | 78% | 37 | 28 | 8 | 0 | 0 | 1 | 97 | y | | [knob](./knob.md) | 78% | 26 | 18 | 1 | 1 | 3 | 3 | 33 | – | | [stepper](./stepper.md) | 79% | 60 | 44 | 11 | 0 | 1 | 4 | 69 | y | | [callout](./callout.md) | 79% | 14 | 11 | 3 | 0 | 0 | 0 | 34 | – | | [chat-composer](./chat-composer.md) | 79% | 44 | 31 | 0 | 3 | 5 | 5 | 31 | – | | [aura](./aura.md) | 80% | 35 | 28 | 0 | 1 | 6 | 0 | 37 | y | | [textarea](./textarea.md) | 80% | 28 | 20 | 2 | 0 | 3 | 3 | 37 | – | | [rating-group](./rating-group.md) | 80% | 16 | 12 | 0 | 1 | 2 | 1 | 25 | y | | [toggle](./toggle.md) | 81% | 28 | 22 | 1 | 1 | 3 | 1 | 119 | y | | [code-block](./code-block.md) | 81% | 27 | 22 | 2 | 3 | 0 | 0 | 20 | – | | [metrics](./metrics.md) | 82% | 50 | 41 | 5 | 0 | 4 | 0 | 72 | y | | [prose](./prose.md) | 83% | 53 | 44 | 0 | 0 | 9 | 0 | 37 | y | | [select](./select.md) | 83% | 72 | 54 | 5 | 3 | 3 | 7 | 101 | y | | [float-panel](./float-panel.md) | 84% | 53 | 41 | 3 | 0 | 5 | 4 | 40 | – | | [calendar](./calendar.md) | 84% | 71 | 57 | 7 | 0 | 4 | 3 | 74 | – | | [onion-menu](./onion-menu.md) | 84% | 22 | 16 | 0 | 1 | 2 | 3 | 19 | – | | [chat-message](./chat-message.md) | 84% | 84 | 65 | 0 | 6 | 6 | 7 | 75 | y | | [grid-list](./grid-list.md) | 85% | 31 | 22 | 2 | 1 | 1 | 5 | 38 | – | | [combobox](./combobox.md) | 85% | 97 | 76 | 4 | 3 | 6 | 8 | 106 | – | | [waveform](./waveform.md) | 86% | 7 | 6 | 0 | 1 | 0 | 0 | 11 | y | | [table](./table.md) | 86% | 46 | 37 | 3 | 0 | 3 | 3 | 45 | – | | [context-menu](./context-menu.md) | 87% | 33 | 26 | 0 | 1 | 3 | 3 | 28 | – | | [kbd](./kbd.md) | 87% | 15 | 13 | 0 | 1 | 1 | 0 | 13 | – | | [fab](./fab.md) | 88% | 16 | 14 | 0 | 2 | 0 | 0 | 10 | – | | [announce](./announce.md) | 88% | 8 | 7 | 0 | 1 | 0 | 0 | 9 | – | | [media-player](./media-player.md) | 88% | 50 | 44 | 0 | 0 | 6 | 0 | 61 | – | | [tags-input](./tags-input.md) | 88% | 46 | 37 | 4 | 1 | 0 | 4 | 90 | y | | [gradient-picker](./gradient-picker.md) | 88% | 27 | 23 | 0 | 2 | 1 | 1 | 25 | – | | [menubar](./menubar.md) | 88% | 27 | 23 | 0 | 3 | 0 | 1 | 35 | y | | [dialog](./dialog.md) | 89% | 35 | 31 | 4 | 0 | 0 | 0 | 44 | y | | [drag-drop](./drag-drop.md) | 89% | 16 | 8 | 1 | 0 | 0 | 7 | 9 | – | | [chat-typing](./chat-typing.md) | 89% | 9 | 8 | 0 | 1 | 0 | 0 | 7 | – | | [chart](./chart.md) | 89% | 95 | 81 | 0 | 0 | 10 | 4 | 45 | – | | [card-group](./card-group.md) | 90% | 22 | 18 | 0 | 0 | 2 | 2 | 20 | – | | [collapsible](./collapsible.md) | 90% | 12 | 9 | 0 | 1 | 0 | 2 | 11 | – | | [result](./result.md) | 90% | 21 | 19 | 0 | 0 | 2 | 0 | 27 | – | | [accordion](./accordion.md) | 91% | 65 | 58 | 1 | 0 | 5 | 1 | 76 | y | | [toolbar](./toolbar.md) | 91% | 35 | 30 | 2 | 0 | 1 | 2 | 54 | y | | [feed](./feed.md) | 91% | 34 | 30 | 1 | 1 | 1 | 1 | 50 | – | | [button](./button.md) | 91% | 23 | 20 | 2 | 0 | 0 | 1 | 106 | y | | [tree-view](./tree-view.md) | 92% | 28 | 24 | 1 | 0 | 1 | 2 | 46 | – | | [gradient-builder](./gradient-builder.md) | 93% | 60 | 52 | 0 | 1 | 3 | 4 | 72 | – | | [color-field](./color-field.md) | 93% | 15 | 14 | 0 | 1 | 0 | 0 | 26 | y | | [scroll-area](./scroll-area.md) | 94% | 17 | 15 | 0 | 0 | 1 | 1 | 13 | – | | [cropper](./cropper.md) | 94% | 20 | 17 | 0 | 1 | 0 | 2 | 17 | – | | [tree-grid](./tree-grid.md) | 95% | 42 | 37 | 1 | 0 | 1 | 3 | 47 | – | | [background](./background.md) | 95% | 23 | 19 | 1 | 0 | 0 | 3 | 37 | – | | [picker-shell](./picker-shell.md) | 95% | 21 | 20 | 0 | 1 | 0 | 0 | 31 | y | | [nav-tree](./nav-tree.md) | 96% | 24 | 22 | 0 | 0 | 1 | 1 | 18 | – | | [image](./image.md) | 96% | 23 | 22 | 1 | 0 | 0 | 0 | 23 | y | | [tabs](./tabs.md) | 96% | 78 | 74 | 0 | 2 | 1 | 1 | 79 | y | | [dropdown-menu](./dropdown-menu.md) | 96% | 30 | 27 | 0 | 1 | 0 | 2 | 28 | – | | [slider](./slider.md) | 97% | 33 | 31 | 0 | 0 | 1 | 1 | 39 | y | | [toast](./toast.md) | 98% | 46 | 45 | 0 | 0 | 1 | 0 | 85 | – | | [command](./command.md) | 98% | 52 | 49 | 0 | 0 | 1 | 2 | 57 | – | | [field](./field.md) | 98% | 64 | 58 | 1 | 0 | 0 | 5 | 68 | y | | [navigation-menu](./navigation-menu.md) | 100% | 37 | 33 | 0 | 0 | 0 | 4 | 44 | – | | [heading](./heading.md) | — | 36 | 0 | 0 | 0 | 0 | 36 | 0 | – | | [s-text](./s-text.md) | 100% | 30 | 2 | 0 | 0 | 0 | 28 | 3 | – | | [emoji-picker](./emoji-picker.md) | 100% | 26 | 22 | 0 | 0 | 0 | 4 | 21 | – | | [pagination](./pagination.md) | 100% | 26 | 24 | 0 | 0 | 0 | 2 | 34 | y | | [text](./text.md) | — | 24 | 0 | 0 | 0 | 0 | 24 | 0 | – | | [breadcrumb](./breadcrumb.md) | 100% | 23 | 20 | 0 | 0 | 0 | 3 | 28 | y | | [chat-list](./chat-list.md) | 100% | 18 | 18 | 0 | 0 | 0 | 0 | 18 | – | | [pin-input](./pin-input.md) | 100% | 18 | 17 | 0 | 0 | 0 | 1 | 22 | y | | [splitter](./splitter.md) | 100% | 18 | 17 | 0 | 0 | 0 | 1 | 15 | – | | [empty-state](./empty-state.md) | 100% | 17 | 17 | 0 | 0 | 0 | 0 | 26 | y | | [link-preview](./link-preview.md) | 100% | 17 | 14 | 0 | 0 | 0 | 3 | 35 | – | | [code](./code.md) | 100% | 13 | 7 | 0 | 0 | 0 | 6 | 6 | – | | [anchor-nav](./anchor-nav.md) | 100% | 12 | 11 | 0 | 0 | 0 | 1 | 12 | – | | [date-field](./date-field.md) | 100% | 11 | 11 | 0 | 0 | 0 | 0 | 21 | y | | [time-field](./time-field.md) | 100% | 11 | 11 | 0 | 0 | 0 | 0 | 21 | y | | [text-gradient](./text-gradient.md) | 100% | 10 | 10 | 0 | 0 | 0 | 0 | 7 | – | | [banner](./banner.md) | 100% | 9 | 9 | 0 | 0 | 0 | 0 | 53 | y | | [box](./box.md) | 100% | 9 | 9 | 0 | 0 | 0 | 0 | 43 | – | | [label](./label.md) | 100% | 8 | 2 | 0 | 0 | 0 | 6 | 2 | – | | [text-focus](./text-focus.md) | 100% | 8 | 8 | 0 | 0 | 0 | 0 | 8 | – | | [date-range-field](./date-range-field.md) | 100% | 7 | 6 | 0 | 0 | 0 | 1 | 7 | – | | [time-range-field](./time-range-field.md) | 100% | 7 | 6 | 0 | 0 | 0 | 1 | 7 | – | | [display](./display.md) | — | 6 | 0 | 0 | 0 | 0 | 6 | 0 | – | | [text-circular](./text-circular.md) | 100% | 6 | 6 | 0 | 0 | 0 | 0 | 6 | – | | [barcode](./barcode.md) | 100% | 5 | 5 | 0 | 0 | 0 | 0 | 7 | – | | [qr-code](./qr-code.md) | 100% | 3 | 3 | 0 | 0 | 0 | 0 | 10 | – | | [button-group](./button-group.md) | 100% | 2 | 2 | 0 | 0 | 0 | 0 | 1 | – | | [flex](./flex.md) | 100% | 2 | 2 | 0 | 0 | 0 | 0 | 7 | – | | [grid](./grid.md) | 100% | 2 | 2 | 0 | 0 | 0 | 0 | 13 | – | | [sticky](./sticky.md) | 100% | 1 | 1 | 0 | 0 | 0 | 0 | 1 | – | | [alert-dialog](./alert-dialog.md) | — | 0 | 0 | 0 | 0 | 0 | 0 | 0 | – | | [auto-grid](./auto-grid.md) | — | 0 | 0 | 0 | 0 | 0 | 0 | 0 | – | | [container](./container.md) | — | 0 | 0 | 0 | 0 | 0 | 0 | 1 | – | | [css-field](./css-field.md) | — | 0 | 0 | 0 | 0 | 0 | 0 | 0 | – | | [float](./float.md) | — | 0 | 0 | 0 | 0 | 0 | 0 | 1 | – | | [group](./group.md) | — | 0 | 0 | 0 | 0 | 0 | 0 | 1 | – | | [highlight](./highlight.md) | — | 0 | 0 | 0 | 0 | 0 | 0 | 0 | – | | [icon](./icon.md) | — | 0 | 0 | 0 | 0 | 0 | 0 | 2 | – | | [mask-field](./mask-field.md) | — | 0 | 0 | 0 | 0 | 0 | 0 | 0 | – | | [number-field](./number-field.md) | — | 0 | 0 | 0 | 0 | 0 | 0 | 0 | – | | [section](./section.md) | — | 0 | 0 | 0 | 0 | 0 | 0 | 4 | – | | [stack](./stack.md) | — | 0 | 0 | 0 | 0 | 0 | 0 | 0 | – | | [wrap](./wrap.md) | — | 0 | 0 | 0 | 0 | 0 | 0 | 0 | – | ## Veredicto y decisiones _(pendiente — lo escribe el autor; se conserva al regenerar)_