Commit 8aa68db
committed
chore(release): 1.27.0 [skip ci]
### What's New
**CDN Bundle Distribution**
- Distribute IIFE bundle as `superdoc.min.js` with `window.SuperDoc` global (replaces UMD format)
- Bundle size reduced 44%: 8.8 MB unminified → 4.9 MB minified (1.46 MB gzipped)
- Named exports attach as static properties on SuperDoc constructor (Quill pattern)
- Yjs and Hocuspocus inlined in IIFE; pdfjs-dist stays external for ESM-only use
**Math Equation Converters**
- Implement OMML-to-MathML converters for radical/sqrt, group character, phantom, n-ary operators, equation arrays, accents, pre-subscripts, and limit operators
- Word mathematical expressions now render as web-standard MathML
- Support all ST_OnOff value variants and spec-compliant defaults per ECMA-376 §22.1.2
**Document API Enhancements**
- `doc.extract()` returns all document content with stable IDs for RAG workflows — blocks with text, comments with anchored references, tracked changes with excerpts
- `contentControls.create()` now accepts `at` field to wrap arbitrary text ranges without dropping to editor internals
- Every extracted ID works with `scrollToElement()` for citation navigation
**Toolbar State and Execute**
- Unified toolbar API with `state()` and `execute()` methods for headless toolbar
- Toolbar automatically synchronizes with document-mode changes
### Improvements
**Text Layout and Selection**
- Fix overlapping text in justified paragraphs with first-line/hanging indents; availableWidth now calculated consistently across resolver, painter, selection, and hit-testing
- Fix centered and right-aligned inline images (wpg groups) in indented paragraphs — centering math now accounts for paragraph indents
- Fix hit-testing for multi-block table cells spanning pages with block-local first-line computation
- Fix list marker width adjustments to use consistent measured text width signal
**CSS Isolation**
- Wrap all bundled SuperDoc CSS in `@layer superdoc` cascade layer for consistent override behavior
- Consumer CSS (unlayered) always wins over SuperDoc styles regardless of import order
**Track Changes**
- Add word-level diffing for granular text change representation during editing
- Add `pairReplacements` config option (default: true) to group insertion+deletion as single paired change
**Editing Experience**
- Fix table cell redraw when typing inside table in SDT
- Improve table cell block cache invalidation alignment with renderer versioning
- Fix redline bubbles to resync on collaboration undo/redo
**Type Safety**
- Narrow `exportDocx()` default return type — browser consumers get `Promise<Blob>`, Node headless consumers opt in with `exportDocx<Buffer>()`
- Define `ContextMenuItem`, `ContextMenuSection`, `ContextMenuConfig` types for context menu API
- Allow context menu `menuProvider` callback to return null/undefined
### Fixes
**Collaboration**
- Fix documents opened in collaboration becoming corrupted after export
- Fix `settings.xml` and custom XML parts not persisting after export on collab sessions
- Sync tracked change comments on peer undo/redo replay
**Document Rendering**
- Fix endnotes handling in round-trip exports
- Fix watermark layout and imported comment metadata handling
- Fix comment bubble text replacement display in tracked changes
- Fix selection rectangles rendering in headers/footers
**Test Coverage**
- Add unit tests for cdn-entry namespace attachment with Function intrinsic collision handling
- Extend package coverage to 90%+ with new tests for PDF adapter, comments, AI writer, composables, and Whiteboard canvas interactions
- Add Codecov integration for automated coverage reporting1 parent 34ffb33 commit 8aa68db
1 file changed
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 | | |
7 | 7 | | |
| |||
0 commit comments