From 37c0485e97c163be58c24785f5402e56aa0b4708 Mon Sep 17 00:00:00 2001 From: Gabriel Chittolina Date: Tue, 20 Jan 2026 19:04:29 -0300 Subject: [PATCH] fix: table indent --- .../pm-adapter/src/converters/table.test.ts | 37 +++++++++++++++++++ .../pm-adapter/src/converters/table.ts | 4 ++ 2 files changed, 41 insertions(+) diff --git a/packages/layout-engine/pm-adapter/src/converters/table.test.ts b/packages/layout-engine/pm-adapter/src/converters/table.test.ts index bb3a3aff1..f833afcd0 100644 --- a/packages/layout-engine/pm-adapter/src/converters/table.test.ts +++ b/packages/layout-engine/pm-adapter/src/converters/table.test.ts @@ -1017,6 +1017,43 @@ describe('table converter', () => { expect(result.attrs?.cellSpacing).toBe(5); }); + it('forwards tableIndent to table block attrs', () => { + const tableIndent = { width: 96, type: 'dxa' }; + const node: PMNode = { + type: 'table', + attrs: { + tableIndent, + }, + content: [ + { + type: 'tableRow', + content: [ + { + type: 'tableCell', + content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Indented cell' }] }], + }, + ], + }, + ], + }; + + const result = tableNodeToBlock( + node, + mockBlockIdGenerator, + mockPositionMap, + 'Arial', + 16, + mockStyleContext, + undefined, + undefined, + undefined, + undefined, + mockParagraphConverter, + ) as TableBlock; + + expect(result.attrs?.tableIndent).toEqual(tableIndent); + }); + it('converts column widths from twips to pixels', () => { const node: PMNode = { type: 'table', diff --git a/packages/layout-engine/pm-adapter/src/converters/table.ts b/packages/layout-engine/pm-adapter/src/converters/table.ts index 07303adca..e54c44214 100644 --- a/packages/layout-engine/pm-adapter/src/converters/table.ts +++ b/packages/layout-engine/pm-adapter/src/converters/table.ts @@ -787,6 +787,10 @@ export function tableNodeToBlock( tableAttrs.tableWidth = hydratedTableStyle.tableWidth; } + if (node.attrs?.tableIndent && typeof node.attrs.tableIndent === 'object') { + tableAttrs.tableIndent = { ...node.attrs.tableIndent }; + } + // Pass tableLayout through (extracted by tblLayout-translator.js) const tableLayout = node.attrs?.tableLayout; if (tableLayout) {