Skip to content

v2.27.0

Latest

Choose a tag to compare

@chittolinag chittolinag released this 27 Oct 18:26
Immutable release. Only release title and notes can be modified.

What's New

  • getDocumentApi hook — access the full Document API from React components without reaching into editor internals.
  • Native equation operations — insert, replace, and delete OMML equations atomically with the rest of your editing.
  • Custom list numbering — capture and reapply OOXML custom formats on clean lists, with authoring support for approved formats.
  • Tracked change result text — decision receipts now report the text the change leaves behind.
  • Temporary comment operation results — comments can target the results of earlier insert operations in the same batch.
  • Bun Behavior Tests — new in-process testing suite with an editing runtime for fast, deterministic DOM-free verification.

Improvements

  • Scrolling performance — long documents scroll smoothly without stalling the main thread; prefetch window and viewport motion calculation now share a browser-worker clock.
  • Review work during typing — eliminated redundant review serialization, XML parsing, and pagination work; settled review reads no longer defer to browser idle.
  • Type safety — replaced ~100 LooseRecord casts with hostMethod calls that apply methods to their owning objects; JavaScript files in superdoc/src converted to TypeScript.
  • List operations — tracked list reversals restore numbering and formatting; custom formats survive carrier replacements under extension MCE wrappers.
  • Collaboration metadata — rooms now honor Tiptap Cloud attributes; joined rooms repair missing table ownership without writing to healthy state.
  • Image editing — rotation state now explicit on resize drag instead of inferred from transform string.

Fixes

  • Protected edits — guarded image, paragraph, and section mutations against unprotected modification.
  • Text insertion styles — declared insertion policies now apply only to created text, preserving neighboring formatting.
  • Tracked changes and comments — placed from their address in viewport.getRect, not from paragraph start.
  • Page-only search reveals — no longer retired before target page mounts.
  • Selection through wrapped references — clicks and caret motion preserved across REF glyph lines and bookmarked final-line offsets.
  • Click placement during remote typing — clicks no longer rejected when peers type in distant paragraphs; endpoints rebuild from current source when replay crosses remote changes.
  • Room creation — failed opens leave no partial room behind; subsequent creates on the same id can retry.
  • Comment duplicates — imported comments with duplicate w:id now get accurate paraId repairs that survive undo.
  • Equation placement — trailing caret position restored after clicks; native atomic boundaries enforced through shared source routing.
  • Large OOXML mutations — scaled insertion and refresh work to handle massive documents without worker stalls.