SIGN IN SIGN UP

fix(utils): assemble every Word line by one rule

Text with no paragraph ancestor was still scanned flat and emitted one node per
line, which reintroduced the split-token bug this fixes, destroyed xml:space
spacing, and moved that text out of document order.

Every text node now belongs to exactly one line, assembled identically:
concatenate its runs with no separator, strip once. A line is the closest
paragraph ancestor -- paragraphs nest, so closest, never every ancestor -- else
the nearest non-run container. Lines emit in document order.

mc:AlternateContent carries a text box twice, under mc:Choice and mc:Fallback.
The first Choice wins; when there is no Choice the Fallback is kept, so a
document that has only a Fallback does not lose its text.

w:tab and w:br inside a run yield \t and \n rather than fusing tokens. Tab stop
definitions under w:pPr/w:tabs are not content.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
G
Gregory R. Warnes committed
8bb6862fa6c9c37cdb53b3cb2f0c7f30385acf4a
Parent: 6b6887c