From 41115b852c0557a3465699deb74fe3a22b01e673 Mon Sep 17 00:00:00 2001 From: dev Date: Sun, 14 Jun 2026 16:00:41 +0200 Subject: [PATCH] docs(sium): correct stale 'pending svelte adapter' claims There is no sium-specific Svelte adapter by design: forms (createForm / Form.Provider) consume any schema via ~standard, Form.AutoFields renders via ~sium introspection, and langs/logger inject through createEngineSium(). sium is page-scoped and not an ActiveUix service. Fixes README (Estado, dep rules, Integracion Svelte, troubleshooting) + core/types.ts comments. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/arts/sium/README.md | 20 +++++++------------- src/arts/sium/core/types.ts | 13 +++++++------ 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/src/arts/sium/README.md b/src/arts/sium/README.md index b0adc0f5d..92aba26e6 100644 --- a/src/arts/sium/README.md +++ b/src/arts/sium/README.md @@ -28,7 +28,7 @@ el bus de logs con la app. Core, tipos de dominio, lenguajes, Standard Schema e introspeccion estan activos. -El adapter `svelte/` todavia no esta portado en este arbol. Por eso la suite recomendada para Sium omite la integracion Svelte hasta que esa capa se migre. +Sium no tiene adapter Svelte propio, por diseno: la integracion con UI es agnostica al validador. Los formularios (`createForm` / `Form.Provider`) consumen cualquier schema via `~standard`, `Form.AutoFields` auto-renderiza via la introspeccion `~sium`, y langs/logger se inyectan por `createEngineSium({ langs, logger })`. El core sigue siendo TypeScript puro. ## Novedades 2.0 @@ -142,7 +142,6 @@ Reglas de dependencia: - `core/` no importa Svelte, UI, `days`, `color` ni `langs`. - `types/` puede importar `core/`, `$libs/color` y `$libs/days`. - `langs/` define el catalogo `siumLangs` y un fallback minimo de interpolacion. -- `svelte/` es adapter opcional y no debe contaminar el core. - `engine-sium.ts` compone la fachada publica. ## Guia Rapida @@ -736,14 +735,13 @@ export const UniqueUsername = pipe( ## Integracion Svelte -La futura carpeta `svelte/` representara el adapter para conectar Sium con providers, formularios y resolucion reactiva de errores. +Sium no tiene adapter Svelte propio: la integracion es agnostica al validador y vive en la capa de formularios, no en sium. -Estado actual: - -- El core puede usarse sin Svelte. -- Los schemas exponen `~standard`, asi que pueden conectarse a consumidores Standard Schema. -- El adapter `svelte/` no esta presente en este arbol porque depende de piezas UI pendientes de port. -- Hasta completar esa migracion, las pruebas y auditorias de Sium deben omitir `src/arts/sium/svelte`. +- El core es TypeScript puro y se usa sin Svelte. +- Los schemas exponen `~standard` (Standard Schema v1), asi que `createForm` / `Form.Provider` los validan reactivamente igual que a Zod/Valibot/ArkType. Los schemas sincronos resuelven de forma sincrona. +- `Form.AutoFields` auto-renderiza los campos leyendo la introspeccion `~sium` (`kind`, `wrappers`, `meta.widget`, …). +- Los issues idlangref (`#?sium.errors.*`) los traduce el servicio `langs` compartido, reactivo al locale activo. +- langs/logger se inyectan en sium por `createEngineSium({ langs, logger })`. sium es page-scoped: lo declara la app, no el runtime UIX. ## Recetas Rapidas @@ -840,10 +838,6 @@ refine((value) => Promise.resolve(Boolean(value)), { code: 'custom' }, { async: Los errores emitidos dentro de schemas hijos deben usar `ctx.path`. Sium pasa paths absolutos a hijos de object y array. -### `npm run check` falla en `sium/svelte` - -Es esperado mientras el provider UI no este portado. El core de Sium se valida con la suite sin Svelte. - ## Verificacion Recomendada ```bash diff --git a/src/arts/sium/core/types.ts b/src/arts/sium/core/types.ts index f09d45955..6dbfe018b 100644 --- a/src/arts/sium/core/types.ts +++ b/src/arts/sium/core/types.ts @@ -2,9 +2,10 @@ * # sium — core types * * Pure TypeScript — no Svelte runtime, no runes, no DOM. Runnable in Node, - * Bun, Deno, Cloudflare Workers, or a browser. The Svelte adapter - * (`$sium/svelte/`, pending port) and the UI renderer (`Form.AutoFields`) - * live in the framework UI form package. + * Bun, Deno, Cloudflare Workers, or a browser. Svelte integration is + * framework-agnostic and lives in the form layer (`createForm` / `Form.*`), + * not in a sium-specific adapter: any Standard Schema consumer drives sium + * schemas via `~standard` / `~sium`. * * Contract and design rules are frozen in the module README. Key invariants: * @@ -198,9 +199,9 @@ export type Result = * by the caller or adapter, but the core does not assign decoded root values * automatically. Cross-field validation over decoded data should live in an * object-level refine and use the decoded object value passed to that refine. - * - `locale` — set by adapters (`sium/svelte` injects it from - * the active language engine). Used by refinements that need locale-aware - * validation (date parsing, collation, etc.). + * - `locale` — set by the caller or the engine layer (`createEngineSium` + * resolves the active locale from the injected langs). Used by refinements + * that need locale-aware validation (date parsing, collation, etc.). * - `meta` — adapter-specific extras. */ export interface Ctx {