Skip to content

Releases: superdoc-dev/superdoc

v1.28.0

22 Apr 03:20

Choose a tag to compare

What's New

  • Tab character handling — Insert tab characters (\t) as schema-based tab nodes during text insertion, preserving formatting across tab boundaries.
  • Independent replacements mode — Track insertions and deletions as separate revisions (Word/ECMA-376 compliant) via modules.trackChanges.replacements: 'independent'; paired mode (Google Docs style) remains default.
  • Odd/even header-footer support — Documents with w:evenAndOddHeaders now render the correct header variant per document page number.
  • Column line separators — Render 1px vertical separators between columns in multi-column sections via withSeparator flag.
  • Math equation converters — Implement m:box (grouping) and m:borderBox (bordered expressions) with MathML <menclose> and CSS polyfill for notation rendering.
  • Tab character support in tab nodes — Enhanced text insertion to check parent content restrictions and preserve raw tab characters when tab nodes aren't allowed.

Improvements

  • Tab alignment in TOC styles — Seed default 0.5" tab grid and bind trailing tab stops to right-aligned position for correct dot-leader rendering.
  • Font auto-derivation in toolbar — Automatically populate props.style.fontFamily from label or key in font dropdown options.
  • Math text tokenization — Split multi-character OMML runs per character (matching Word's OMML2MML.XSL) and preserve surrogate pairs via code-point iteration.
  • Track changes configuration — Consolidate config under modules.trackChanges (canonical path) with backward-compatible aliases for config.trackChanges and config.layoutEngineOptions.trackedChanges.
  • Footnote placement — Cap footnote layout to per-page reserved band (not max reserve) and monotonically merge reserves across passes to prevent overflow past page margins.
  • Multi-column text overlap — Track deepest Y across columns and start next section below all column content when heights are unequal.
  • Math function limits — Group consecutive non-digit, non-operator characters in function names and preserve nested limit/subscript/superscript styling.
  • Tab stop measurement — Use actual font size for tab runs instead of hardcoded 12pt default; eliminate CSS strut misalignment in tab-segmented lines.

Fixes

  • Restore published config typings in superdoc build output.
  • Parse w:evenAndOddHeaders ST_OnOff values correctly in importer.
  • Place cursor at clicked position inside tracked change marks.
  • Allow cursor placement after inline SDT (content control) fields.
  • Respect explicit column widths when drawing column separators.
  • Add serif font fallback for serif-like font families.
  • Fix table cell selection in collaborative editing with context menu.
  • Prevent image overflow within table cells via max-width: 100%.
  • Preserve italic styling on variables inside function-wrapped limits.
  • Split independent replacement sidebar updates to handle unpaired revisions correctly.
  • Remove toolbar window resize/keydown listeners on component unmount.
  • Suppress deprecation warning re-triggers on normalized config objects.
  • Validate surrogate pair boundaries in mathematical alphanumerics.

v1.28.0-next.8

22 Apr 22:30
84b5fbc

Choose a tag to compare

v1.28.0-next.8 Pre-release
Pre-release

1.28.0-next.8 (2026-04-22)

Bug Fixes

Features

v1.28.0-next.7

22 Apr 21:30
84aa0e4

Choose a tag to compare

v1.28.0-next.7 Pre-release
Pre-release

1.28.0-next.7 (2026-04-22)

Bug Fixes

  • prevent corrupt docx export for legacy w:pict vml rect content (#2905) (84aa0e4)

v1.28.0-next.6

22 Apr 20:10
75c8f51

Choose a tag to compare

v1.28.0-next.6 Pre-release
Pre-release

1.28.0-next.6 (2026-04-22)

Bug Fixes

v1.28.0-next.5

22 Apr 19:15
3a53eb3

Choose a tag to compare

v1.28.0-next.5 Pre-release
Pre-release

1.28.0-next.5 (2026-04-22)

Bug Fixes

v1.28.0-next.4

22 Apr 15:13
9adf23e

Choose a tag to compare

v1.28.0-next.4 Pre-release
Pre-release

1.28.0-next.4 (2026-04-22)

Features

  • add w:pPrChange translator for paragraph property tracked changes (SD-2417) (#2705) (9adf23e)

v1.28.0-next.3

22 Apr 00:55
bc6e5bf

Choose a tag to compare

v1.28.0-next.3 Pre-release
Pre-release

1.28.0-next.3 (2026-04-22)

Features

  • executor: add tab character to tab node conversion in text insert (#2832) (bc6e5bf)

v1.28.0-next.2

22 Apr 00:48
bbb7e94

Choose a tag to compare

v1.28.0-next.2 Pre-release
Pre-release

1.28.0-next.2 (2026-04-22)

Bug Fixes

  • place cursor at clicked pos inside tracked change (#2855) (bbb7e94)

v1.28.0-next.1

22 Apr 00:40

Choose a tag to compare

v1.28.0-next.1 Pre-release
Pre-release

1.28.0-next.1 (2026-04-22)

Bug Fixes

  • allow putting cursor after inline sdt field (#2763) (bc809f8)
  • image not being contained within cell (#2775) (344be7a)
  • importer: parse evenAndOddHeaders ST_OnOff values correctly (5f98b58)
  • layout-bridge: keep footnote fragments within the reserved band (SD-1680) (#2881) (adf4ea6)
  • layout: respect explicit column widths when drawing separators (c4c4ad1)
  • math: preserve italic on variables inside function-wrapped limits (SD-2538) (#2871) (df44933)
  • math: split multi-char m:r text per character to match Word (SD-2632) (#2875) (7142f4e)
  • prevent text overlap when multi-column sections span pages (SD-1869) (#2676) (41722f5)
  • remove toolbar window listeners on unmount (#2783) (fc840db)
  • serif fallback for serif-like fonts (#2870) (781b8cd)
  • table cell selection with context menu in collab (#2822) (43bb2e6)
  • track-changes: split independent replacement sidebar updates (#2886) (865eaf3)

Features

v1.26.0-next.38

22 Apr 00:12

Choose a tag to compare

v1.26.0-next.38 Pre-release
Pre-release

1.26.0-next.38 (2026-04-22)

Bug Fixes

  • importer: parse evenAndOddHeaders ST_OnOff values correctly (5f98b58)
  • layout: respect explicit column widths when drawing separators (c4c4ad1)