You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/src/uix/words
dev 940e94bb64
Build TextArea component + fix locale propagation bug across soma providers
5 months ago
..
references Build TextArea component + fix locale propagation bug across soma providers 5 months ago
README.md Build TextArea component + fix locale propagation bug across soma providers 5 months ago

README.md

Words

Words es el componente rich-text/editor del ecosistema ActiveUIX.

Este directorio no sustituye a las capas UIX. Existe como carpeta de coordinacion porque el componente es mas complejo que un control normal: necesita un motor de documento, seleccion, comandos, history, serializacion, plugins y una superficie visual compuesta.

La implementacion publica debe seguir viviendo en las capas canonicas:

Capa Ruta prevista Ownership
Morfo src/uix/morfo/components/words.ts Contrato DOM, partes, estados, data attrs, ARIA, keyboard y eventos declarados.
Soma src/uix/soma/components/words/ Motor headless, documento, seleccion, comandos, history, clipboard, normalizacion y plugins.
Sema src/uix/sema/components/words.ts Proyeccion perceptiva de eventos semanticos de alto nivel.
Eidos src/uix/eidos/components/words/ Wrapper visual compound, recipe CSS y partes visuales.
Demo web/routes/uix/components/words/+page.svelte Demo auditada con Live, API, Morfo, Sema, Recipe y A11y.

Decision de arquitectura

No se unifica fisicamente el componente en una sola carpeta runtime. La separacion Morfo/Soma/Sema/Eidos es parte del contrato de ActiveUIX y permite auditar que el motor no se mezcle con la piel visual.

Si una carpeta unica fuera necesaria para investigacion, debe limitarse a docs o referencias como esta carpeta src/uix/words. El codigo ejecutable debe entrar por las capas.

Regla de dependencias

Words no puede depender en runtime de Tiptap, ProseMirror, Lexical, svelte-lexical, Slate ni paquetes equivalentes.

Las librerias externas se usan solo como referencia funcional y de arquitectura. El motor debe ser propio y apoyarse en capacidades nativas del navegador:

  • contenteditable
  • Selection API
  • Input Events / beforeinput
  • Clipboard API a traves de ActiveUIX cuando proceda
  • Drag and drop nativo cuando entre en alcance

Referencia local copiada

El snapshot de referencia esta en:

  • tmp/lexical/packages/svelte-lexical

No contiene el motor completo de Meta Lexical; contiene la integracion Svelte, plugins, nodos decoradores, toolbar y demos. El motor real aparece como dependencia lexical@0.40.0 y multiples @lexical/*.

El dossier filtrado esta en:

  • src/uix/words/references/svelte-lexical-dossier.md

Alcance recomendado

Estado 2026-05-24: alcance V1 firmado, motor puro Soma, Provider contenteditable, wrappers Eidos, receta visual, pack Sema y demo UIX de 6 tabs implementados.

V1

  • Documento JSON canonico.
  • Bloques: paragraph, heading, quote.
  • Inline marks: bold, italic, underline, strike, code.
  • Listas: unordered, ordered, checklist.
  • Links con sanitizacion.
  • Toolbar principal.
  • Undo/redo.
  • Clear formatting.
  • Readonly y disabled.
  • Placeholder.
  • Logger ActiveUIX para errores de configuracion, parsing, comandos invalidos, nodos desconocidos y HTML inseguro.

V1.1

  • Import/export HTML y Markdown como operaciones controladas, no como estado canonico.
  • Bubble toolbar y link popover.
  • Sincronizacion controlada de value externo sin remount.

V2

  • Imagenes y archivos via servicios ActiveApp/ActiveUIX.
  • Code block.
  • Tablas.
  • Slash command.
  • Drag handle.
  • Find/replace.
  • Comentarios o anotaciones.
  • Colaboracion, solo como pack posterior y no en core.

Pre-flight de componente

Antes de implementar:

  • Leer web/routes/uix/lib/COMPONENT_AUDIT_GUIDE.md.
  • Leer web/routes/uix/lib/DEMO_AUTHORING_GUIDE.md.
  • Leer src/uix/eidos/components/README.md.
  • Comparar con morfo-runtime/Air si existiera un equivalente.
  • Comparar contra referencias externas relevantes.
  • Presentar alcance cerrado al usuario antes de escribir codigo runtime.

Audit inicial de referencias

Esta tabla es una base de decision, no cierre de implementacion.

Referencia Que aporta Riesgo para ActiveUIX Decision
svelte-lexical Composer, ContentEditable, plugins, toolbar, nodos decoradores y demos Svelte. Depende de Lexical y mezcla UI/motor en plugins concretos. Usar como mapa, no como dependencia.
Lexical Comandos, editor state, nodos, selection, history, decorators. Runtime externo amplio; APIs internas no pertenecen a ActiveUIX. Recrear ideas, no importar.
Edra/Tiptap Cobertura UX rica y feature benchmark. Tiptap/ProseMirror viola la regla de 0 dependencias runtime. Benchmark visual/funcional solamente.
ProseMirror Modelo transaccional y schema de documento. Demasiado pesado y dependiente; no encaja como core. Referencia conceptual para schema/history.
Slate Modelo JSON y transforms. Arquitectura React-first y runtime externo. Referencia conceptual para operaciones.
WAI-ARIA/APG + HTML editing APIs Roles, textbox multiline, keyboard, input/selection nativos. El navegador tiene comportamiento desigual entre motores. Fuente obligatoria para A11y y edge cases.

Resultado a adjuntar

El resultado de analisis externo debe pegarse o guardarse como un fichero nuevo en src/uix/words/references/.

Si el resultado es de ChatGPT, usar esta convencion:

src/uix/words/references/chatgpt-analysis-YYYY-MM-DD.md

Ese fichero debe contener:

  • resumen ejecutivo;
  • riesgos detectados;
  • propuesta de motor;
  • correcciones frente a svelte-lexical;
  • decisiones para Morfo, Soma, Sema y Eidos;
  • alcance V1/V2.

Auditorias externas incorporadas

Fichero Resultado
references/analisis-kimi-1.md Bloqueo de Provider/Eidos hasta corregir paths profundos, rangos multi-nodo, listas e history.
references/analisis-glm51-1.md Coincide con Kimi y concreta Morfo/Soma/Sema/Eidos, manteniendo el avance visual bloqueado.
src/uix/soma/components/words/engine/engine.test.ts Barrera de motor puro: 19 tests de listas, rangos, Selection API, paste, IME y undo.
src/uix/soma/components/words/words-provider.svelte.test.ts Barrera Soma Provider: 4 tests de attrs, contenteditable, selection/input, commands, hidden input y logger.
src/uix/eidos/components/words/ Wrapper compound, receta CSS y README de auditoria Eidos.
src/uix/sema/components/words.ts Pack Sema para foco, commit, formato, history, clear e input invalido.
web/routes/uix/components/words/+page.svelte Demo UIX de 6 tabs con stage permanente, snippets y reproduccion Sema.

Powered by TurnKey Linux.