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) {