fix(uix): clear the catalog's clean functional-error flags + reframe C10 tiers

Cleared the error-severity flags that were mature components missing a
documented exception, not real gaps:
- 4 service components (format-date, format-number, relative-time, trans)
  get their E-2.2 exception: they render text via $format/$langs with no
  visual recipe — no {name}.css by design.
- alert-dialog gets its R-1.1 exception: it composes Dialog (soma reuses the
  Dialog runtime, data-dialog-* markers reach the DOM, dialog.css paints the
  chrome) — a [data-alert-dialog] root rule would style nothing.
- card gets its missing A-1.3 texts.label (+ langs entry, registered) —
  card had no label at all.

C10 (maturity tiers) reframed after the classification exercise showed the
audit VERDICT is the maturity oracle, and 'experimental' is nearly empty
once exceptions are documented: stable = PASS (82); preview = NEEDS-WORK on
docs/demo only (E-2.3/F-1.x/D-*) — functionally sound but underdocumented,
which includes mature components like button/table/listbox (a README gap is
not immaturity); experimental/WIP = a real FUNCTIONAL gap or foreign track.
C10 folds into C8 (document the tier + exceptions when writing READMEs).

Real gaps registered, NOT silenced: float-panel A-3.7 (28 mutating keyboard
actions, 6 events — a morfo-completeness question), card-group (no morfo),
natural-time-picker A-3.1; announce/clipboard R-1.5 (live-region /
composed-focus) await their READMEs in C8 to host the exception.

npm run check at the 59 baseline; alert-dialog -> PASS.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
menubar-v4-safe
dev 3 months ago
parent 3609eb2383
commit 730812c074

@ -46,7 +46,8 @@ Por dimensión:
| **C7** | **Size-bundle sweep HECHA 2026-07-03** — 366 refs de coordenada cruda (`--control-height-{k}` · `--font-size-{k}` · `--icon-size-{k}`) → coordenada del bundle (`--size-{k}-{coord}`) en base.ts; 34 recipes consumen el bundle (era 1, pilot toggle), 0 crudos restantes. El bundle = alias puro → CSS generado idéntico en VALOR computado (verificado en navegador: cadena `--accordion-trigger-min-height-md` = `--size-md-control-height` = `--control-height-md` = `calc(36px*1*1)`). Guard: test en recipe-css-contract prohíbe la coordenada cruda en recipes. `base`/`xxxl` sin bundle → siguen en el primitivo tipográfico | **HECHA** |
| **C8** | **READMEs** — 28 nuevos + F-1.x incompletos (~18). Baseline/Comparativa (≥3 refs reales)/Decisiones/Gaps; passive → justificación. El más pesado: requiere investigación por componente | pendiente |
| **C9** | **Motion eventful gap** — decidir qué interactivos deben expresar firma de evento (hoy 10) y cablearla; criterio: alta frecuencia = sobrio (doctrina D.5) | pendiente |
| **C10** | **Tiers de madurez** — `stable · preview · experimental` en índice de componentes + criterio (PASS+README = stable) | pendiente |
| **C10** | **Tiers de madurez — REFRAMEADO 2026-07-03**: el veredicto del audit ES el oráculo de madurez. Clasificación objetiva: **stable** = PASS (82); **preview** = NEEDS-WORK solo por docs/demo (E-2.3/F-1.x/D-*) — funcionalmente sano, subdocumentado (~35, incl. button/table/listbox — maduros con gap de README, NO inmaduros); **experimental/WIP** = gap FUNCIONAL real o foráneo (pocos: float-panel A-3.7, card-group sin morfo, natural-time-picker A-3.1, media-player+words/palabras/chronos foráneos). C10 se pliega en C8 (documentar tier + excepciones al escribir READMEs). Cerrados esta pasada los flags funcionales limpios: 4 service E-2.2 (format-date/number, relative-time, trans), alert-dialog R-1.1 (compone dialog), card A-1.3 (texts.label+langs) | **parcial (reframe + flags limpios)** |
| **Gaps reales tracked** | NO silenciados: **float-panel A-3.7** (28 teclas mutantes, 6 eventos — completitud de morfo); **card-group** sin morfo; **natural-time-picker A-3.1** (interactive sin eventos declarados) + R-2.1 (sky fixed-tone, excepción cuando tenga README); announce/clipboard R-1.5 (live-region/composed-focus, excepción cuando tengan README en C8) | pendiente |
## Tandas S — hallazgos del ejercicio Knob (STUMBLES.md, 2026-07-03)

@ -141,3 +141,7 @@ behavioural locking.
- Chakra v3: <https://chakra-ui.com/docs/components/dialog>
- Radix Themes: <https://www.radix-ui.com/themes/docs/components/alert-dialog>
- shadcn/ui: <https://ui.shadcn.com/docs/components/alert-dialog>
## Audit exceptions
- `R-1.1 exception:` AlertDialog composes Dialog — soma reuses the Dialog runtime, so `data-dialog-*` markers reach the DOM and `dialog.css` paints the chrome. This recipe owns only the Action/Cancel button row; a `[data-alert-dialog]` root rule would style nothing (see the recipe header).

@ -99,3 +99,7 @@ Si quieres mostrar timezone label (`timeZoneName`), usa per-axis:
- Engine wiring: `src/arts/format/dates/engine-dates.ts`
- Active runtime: `src/arts/format/dates/active-dates.svelte.ts`
- Conflict tests: `src/arts/format/dates/test/engine-dates.test.ts`
## Audit exceptions
- `E-2.2 exception:` `<FormatDate>` is a service component — it renders locale-formatted text via `$format`, with no visual recipe of its own. No `{name}.css` by design.

@ -76,3 +76,7 @@ Familia con `<Trans>`, `<FormatDate>`, `<RelativeTime>`.
- Intl.NumberFormat: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat
- Engine: `src/arts/format/numbers/engine-numbers.ts`
- Active runtime: `src/arts/format/numbers/active-numbers.svelte.ts`
## Audit exceptions
- `E-2.2 exception:` `<FormatNumber>` is a service component — it renders locale/currency/unit-formatted text via `$format`, with no visual recipe of its own. No `{name}.css` by design.

@ -72,3 +72,7 @@ Familia con `<Trans>`, `<FormatDate>`, `<FormatNumber>`.
- Intl.RelativeTimeFormat: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat
- Dates engine: `src/arts/format/dates/engine-dates.ts` (de donde lee el locale activo)
## Audit exceptions
- `E-2.2 exception:` `<RelativeTime>` is a service component — it renders a live relative-time string via `$format` + a timer, with no visual recipe of its own. No `{name}.css` by design.

@ -80,3 +80,7 @@ sitio que toca el catalogo con `grep "<Trans"`.
- formatjs: https://formatjs.io/docs/react-intl/components#formattedmessage
- Active langs: `src/arts/langs/`
- Sistema idlangref: `src/uix/langs/`
## Audit exceptions
- `E-2.2 exception:` `<Trans>` is a service component — it renders a translated idlangref via `$langs`, with no visual recipe of its own. No `{name}.css` by design.

@ -0,0 +1,8 @@
import type { LangNode } from '$libs/langs';
export const cardLangs = {
label: {
es: 'Tarjeta',
en: 'Card'
}
} satisfies LangNode;

@ -8,6 +8,7 @@ import { breadcrumbLangs } from './breadcrumb';
import { buttonLangs } from './button';
import { buttonGroupLangs } from './button-group';
import { calendarLangs } from './calendar';
import { cardLangs } from './card';
import { carouselLangs } from './carousel';
import { cascadeLangs } from './cascade';
import { chartLangs } from './chart';
@ -110,6 +111,7 @@ export const componentLangs = {
button: buttonLangs,
'button-group': buttonGroupLangs,
calendar: calendarLangs,
card: cardLangs,
carousel: carouselLangs,
cascade: cascadeLangs,
chart: chartLangs,

@ -29,6 +29,9 @@ export const cardMorfo = {
kebab: 'card',
scope: ['sema', 'eidos'],
expression: "family-default",
texts: {
label: '#?components.card.label|Card'
},
events: [
{
name: 'commit-select',

Loading…
Cancel
Save

Powered by TurnKey Linux.