Commit fb15999
committed
chore(sdk): 1.6.0 [skip ci]
### What's New
**Math equation rendering** — Convert OMML to native MathML for accents, radicals, limits, equations arrays, matrix tables, group characters, phantoms, n-ary operators, and pre-subscripts.
**Odd/even header-footer support** — Enable alternating headers and footers per page via OOXML `w:evenAndOddHeaders` with correct margin calculation across sections.
**Toolbar headless API** — Query toolbar state and execute formatting commands programmatically via `state()` and `execute()` methods without visual rendering.
**Document extract API** — Export all document content as `doc.extract()` with stable IDs for RAG workflows — blocks with text, comments with anchored references, tracked changes with excerpts.
**Content control text range wrapping** — Wrap arbitrary text selections in content controls via `contentControls.create({ at })` without dropping to editor internals.
**Independent track changes mode** — Add `modules.trackChanges.replacements: 'independent'` to treat each insertion and deletion as separate revisions matching Word's ECMA-376 model (default: paired for Google Docs behavior).
**Column line separators** — Render column dividers (`w:sep`) per region on pages with multi-column sections and continuous breaks.
### Improvements
**Track changes configuration** — Consolidate track changes config under `modules.trackChanges` with automatic backward compatibility for legacy `config.trackChanges` and `config.layoutEngineOptions.trackedChanges` keys.
**Word-level text diffing** — Granular text change tracking for collaborative editing with accurate representation of what changed.
**Math in function-wrapped limits** — Preserve italic styling on variables inside limit expressions when wrapped in function names (e.g., `lim_(n→∞)`).
**Tab alignment for TOC styles** — Compute tab stops correctly on TOC1 paragraphs so leaders and page numbers align as authored.
**Justified text with hanging indents** — Fix character overlap and selection drift when first-line indent combines with paragraph justification.
**Collaboration WebSocket parameters** — Forward custom query parameters to y-websocket and Hocuspocus providers via `collaboration.params` field.
**Toolbar font option styling** — Auto-derive `fontFamily` from label or key so minimal `{ label, key }` font definitions render in their own typeface without explicit `props.style`.
**Export type safety** — Browser consumers now get `Promise<Blob>` by default from `exportDocx()`, Node headless consumers opt in with `exportDocx<Buffer>()`.
**CSS isolation** — Wrap all bundled SuperDoc CSS in `@layer superdoc` cascade layer so consumer styles always win regardless of import order.
### Fixes
**Footnote overflow on multi-page sections** — Fix footnote fragments rendering past page bottoms (150+ pixels into footers) when multiple footnotes compete for space with oscillating reserve vectors.
**Column separator regions** — Render per-region separators on pages with continuous breaks changing column layout mid-page instead of a single full-page overlay.
**Centered inline images in indented paragraphs** — Account for paragraph indents in centering math so `w:jc=center` on shapes inside indented text positions them correctly.
**Table cell selection in collaboration** — Fix table cell redraw and block cache invalidation when typing inside cells in SDTs during active editing.
**Image containment in cells** — Ensure images stay within table cell boundaries instead of overflowing.
**evenAndOddHeaders parsing** — Parse `w:evenAndOddHeaders ST_OnOff` values correctly and use document page number (not section-relative) for even/odd selection.
**Serif fallback fonts** — Apply serif fallback for serif-like fonts in font stacks.
**Comment bubble replacement text** — Display replacement text correctly in comment bubbles for tracked changes.
**Tracked changes sync on collab undo/redo** — Resync comment bubbles when peer undo/redo replays tracked change marks.
**Collaboration export data loss** — Persist `settings.xml`, custom XML parts, and endnotes after export in collab sessions.
**Math edge cases** — Handle surrogate pairs in math text (astral-plane alphanumerics), respect function-name italic suppression per ECMA-376, strip alignment markers from equation arrays, parse all ST_OnOff variants on phantom/nary/borderBox elements.
**Python async transport buffer** — Raise asyncio `StreamReader` buffer to 64 MiB so responses exceeding 64 KiB don't fail with `StreamReader limit exceeded` error.
**Async transport teardown** — Fix residual races in async reader cleanup and orphaned host processes on buffer overflow or connection failure.1 parent 82e1026 commit fb15999
14 files changed
Lines changed: 19 additions & 19 deletions
File tree
- packages/sdk
- langs
- node
- platforms
- sdk-darwin-arm64
- sdk-darwin-x64
- sdk-linux-arm64
- sdk-linux-x64
- sdk-windows-x64
- python
- platforms
- superdoc-sdk-cli-darwin-arm64
- superdoc-sdk-cli-darwin-x64
- superdoc-sdk-cli-linux-arm64
- superdoc-sdk-cli-linux-x64
- superdoc-sdk-cli-windows-x64
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
0 commit comments