Architectural cleanup: Trans, FormatDate, FormatNumber, RelativeTime no
son visuales — son behavior alrededor del runtime (`uix.langs.t/ts`,
`uix.format.*`). Estaban en `eidos/components/` solo porque ahi se
inventariaban los wrappers. Naturaleza real: Soma.
Beneficio principal: el invariante "Eidos no importa `getActiveUix()`"
recupera su pureza — los 4 service components ya no contaban como
violación del audit Codex (P1 #1 reducido en 4 archivos +
dependencias).
Movimientos (4 componentes, 31 archivos staged):
- src/uix/eidos/components/{kebab}/ → src/uix/soma/components/{kebab}/
- {kebab}.svelte → components/{kebab}.svelte (subdir convencion Soma)
- types.ts → types.ts
- README.md → README.md
- index.ts → exports.ts (Soma pattern: index re-exports from exports)
- + nuevo index.ts: `export * from './exports';`
- Eidos dirs eliminados (4 directories).
Morfos: scope `['eidos']` → scope `['soma']` (4 archivos):
- morfo/components/trans.ts
- morfo/components/format-date.ts
- morfo/components/format-number.ts
- morfo/components/relative-time.ts
Demos (4 +page.svelte) updated:
- import paths `$uix/eidos/components/{kebab}` → `$soma/components/{kebab}`
- meta-pill `scope: eidos` → `scope: soma`
Headers de los .svelte updated: "Eidos `<X>`" → "Soma `<X>` — service
component" + parrafo explicando por que vive en Soma (behavior, no
visual primitive).
Verificación:
- `npm run check`: 0 errors (mantenido).
- HTTP probes /uix/components/{trans,format-date,format-number,relative-time}:
todos 200.
Sin barrel re-exports a limpiar (no existían). Sin consumers fuera de
los 4 demos.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>