Expone los comandos mergeTableCells/splitTableCell del motor en el chrome, gateados a celda activa de tabla top-level. Desviación declarada respecto a "solo UI": los comandos resolvían la celda vía `state.selection`, que el chrome PIERDE al abrirse fuera del editor (el menú Editar / el panel). Ajuste mínimo del motor, consistente con mover/eliminar (que ya operan por `loc.path`): mergeTableCells/splitTableCell aceptan un `at` explícito `[block,row,cell]` (fallback a la selección). Test nuevo con `selection: null`. UI (eidos): - palabras-block-actions.ts: `tableCellActions(loc, activeEl)` deriva inCell + `at` (desde loc) + canMergeRight/Down/Split (geometría del <td> renderizado) + dispatch `mergeActiveCells`/`splitActiveCell`. - Menú Editar (barra): 3 items gateados (Combinar derecha `cols:2` / abajo `rows:2` / Dividir). - Panel: fila de acciones de celda PROPIA — el `blockFoot` (mover/insertar) se oculta para celdas structural, así que las celdas tienen su pie. Restringido a tablas top-level (el resolver del motor direcciona [block,row,cell]). Langs es/en de las 3 acciones DIFERIDOS (fichero de langs entangled con el merge pendiente; los `ts()` renderizan por fallback). Verificado: motor 37 tests (2 nuevos del `at`); check 0 errores palabras/table; Playwright headless en AMBAS superficies: barra Editar → Combinar derecha → celda colspan=2 (B1 absorbida) → Dividir la restaura; pie del panel acoplado igual. 0 errores de consola. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>alpha-0.1-sec-dom
parent
85d6a48589
commit
b4666336a1
Loading…
Reference in new issue