From 97c40d3256fbeb500ca23af25420eca62124cc53 Mon Sep 17 00:00:00 2001 From: dev Date: Sun, 7 Jun 2026 03:01:38 +0200 Subject: [PATCH] palabras: revertir el piloto del wrapper de bloques (base limpia) El piloto envolvia cada parrafo en

, pero el unico beneficio neto (drag vertical de raiz) ya esta cubierto por el `dropZone` del sink, y el borde activo punteado funciona igual sobre el elemento pelado. paragraphSpec.render vuelve a emitir un

plano. Tests del render del motor en verde otra vez (engine de words 430/430). palabras verificado en navegador: render, grip, drag y borrado intactos. Co-Authored-By: Claude Opus 4.8 --- .../eidos/components/palabras/palabras.css | 5 ++--- .../words/engine/blocks/built-ins.ts | 19 ++----------------- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/src/uix/eidos/components/palabras/palabras.css b/src/uix/eidos/components/palabras/palabras.css index 820de629d..57908874e 100644 --- a/src/uix/eidos/components/palabras/palabras.css +++ b/src/uix/eidos/components/palabras/palabras.css @@ -108,9 +108,8 @@ margin-block: 0 0.6em; } /* Selection marker for the active/selected block — dotted (NOT the solid focus - ring, which is suppressed above). Stamped by WordsActivate. With the block - shell, `data-words-active` now lands on the wrapper div (a real container) - instead of the bare element — SAME dashed marker as before, cleaner anchor. */ + ring, which is suppressed above). Stamped by WordsActivate on the active + block element. */ [data-palabras-doc] [data-words-active] { outline: 1.5px dashed var(--color-primary-border); outline-offset: 6px; diff --git a/src/uix/soma/components/words/engine/blocks/built-ins.ts b/src/uix/soma/components/words/engine/blocks/built-ins.ts index ee5bd08c6..c9a91033a 100644 --- a/src/uix/soma/components/words/engine/blocks/built-ins.ts +++ b/src/uix/soma/components/words/engine/blocks/built-ins.ts @@ -94,31 +94,16 @@ const paragraphSpec: WordsBlockSpec = { }, render(block, ctx) { const b = block as ParagraphBlock; - // Block SHELL: the block is a `

` wrapping a - // bare presentational `

`. The shell carries the block - // identity (node / id / path / type) + visual styles; the inner `

` only - // holds the editable inlines. This mirrors how callout / columns already - // render (div shells) and gives the active-block marker + the gutter grip a - // real container — instead of an outline floating around the bare `

`. - // The caret is unaffected: selection anchors to the `[data-words-node=text]` - // spans by absolute path, so an extra wrapper above them is transparent. return { kind: 'element', - tag: 'div', + tag: 'p', attrs: ctx.composeBlockAttrs( b, 'paragraph', ctx.path, b.align ? { 'data-words-align': b.align } : {} ), - children: [ - { - kind: 'element', - tag: 'p', - attrs: { 'data-words-inner': '' }, - children: ctx.renderInlines(b.children, ctx.path) - } - ] + children: ctx.renderInlines(b.children, ctx.path) }; } };