Skip to content

fix(deps): update superdoc - #90

Merged
renovate[bot] merged 1 commit into
mainfrom
renovate/superdoc
Aug 1, 2026
Merged

fix(deps): update superdoc#90
renovate[bot] merged 1 commit into
mainfrom
renovate/superdoc

Conversation

@renovate

@renovate renovate Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
@​superdoc-dev/cli 0.22.1-next.10.22.1-next.2 age confidence
@​superdoc-dev/sdk 1.21.2-next.11.21.2-next.2 age confidence
superdoc (source) 1.39.0-next.51.45.1-next.2 age confidence

Release Notes

superdoc/docx-editor (superdoc)

v1.45.1-next.2

Compare Source

v1.45.1-next.1

Compare Source

v1.45.0

Compare Source

Improvements
  • Release notes now package-scoped — Release notes are generated with awareness of SuperDoc's scope and architecture. The AI understands your use case (embedding the editor), your bundled internal packages, and writes release notes accordingly — giving you clearer context with each release.
  • GitHub Releases page focused on stable versions — Stable releases only appear as GitHub Releases. Prerelease versions continue through Git tags and npm distribution without creating public release entries, keeping your release history clean and relevant.

v1.44.2

Compare Source

Fixes
  • Comment selection feedback timing — Verify pending SELECTED events are properly deferred and cancelled instead of racing with rendered highlights; drop superseded events.
  • Metadata anchor validation — Reject overlapping anchored-metadata ranges (INVALID_TARGET) instead of silently creating duplicate content controls; normalize selection on remove to prevent stale carets.
  • Custom XML synchronization — Route metadata and customXml writes through the parts mutation layer so partChanged fires and part-sync publishes correctly across clients.
  • Custom XML tombstone handling — Record tombstones for deleted custom XML parts on remote deletes and late-join; clear stale tombstones when parts are recreated or hydrated from authoritative state.
  • Bibliography cache invalidation — Invalidate converter caches when custom XML paths are written or hydrated, preventing export from rebuilding parts with stale cached content.
  • Metadata payload validation — Validate payload serializability during attach preview (before document mutation) rather than inside the part-sync sandbox, preventing orphaned content controls on serialization failure.

v1.44.1

Compare Source

Based on my analysis of the code changes, here are the release notes for v1.44.1:


Fixes
  • Floating objects in table cells — Anchored images and shapes now position correctly when anchored to a specific paragraph within table cells. Previously, paragraph-relative anchors positioned objects at the cell's top edge; they now align relative to their anchor paragraph's actual location.

v1.44.0

Compare Source

Based on my analysis of the commits and codebase changes, here are the release notes:

What's New
  • Side-targeted tracked change decisions — Accept or reject only the inserted or deleted half of a paired replacement via trackChanges.decide() with the side parameter ('inserted'/'deleted'), leaving the other half as a standalone pending change.
  • Tracked paragraph property changes in review API — Tracked numbering and alignment changes (w:pPrChange) now surface in trackChanges.list() and can be accepted/rejected via trackChanges.decide().
  • List numbering metadatablocks.list returns computed numbering (marker, path, kind) for numbered list items and numbered headings, plus a paragraphNumbering reference field so agents can read legal clause numbers.
  • Paragraph indentation metadatablocks.list now exposes paragraph indentation (left, right, firstLine, hanging in twips) for layout-aware document analysis.
  • Visible text model for blocks.list — Text, length, preview, and ref now use the visible text model (tracked deletions excluded), matching how edit refs resolve and eliminating offset drift.
  • Tracked list attachlists.attach() now supports tracked mode for list property changes.
  • Citation hyperlinks round-trip — Tracked citation hyperlinks export and import correctly through DOCX with full revision history preserved.
  • LLM tools core preset — CLI and MCP expose the execute-code command for running JavaScript directly against documents in headless mode.
Fixes
  • Synthetic tracked-change rows no longer leak as empty comments in comments.list() export.
  • Cell-scoped tablesClearShading() now removes the background attribute correctly.
  • Formatting samples from blocks.list skip deleted runs — no longer reports styling from pending deletions.
  • Redlined blocks with tracked deletions at the start no longer throw "offset out of range" when edited via ref.
  • Headless mode skips whole-document linked-style decorations for ~3x faster large-document load (38-page redline: 50s → 16s).
  • Merge conflict markers in painter-dom border-utils resolved; build no longer fails after main-into-stable merge.

v1.43.2

Compare Source

What's New
  • document-host — New headless document runtime package for programmatic document access without visual UI.
Fixes
  • Table rendering fidelity improvements — Compound borders (double, triple, thinThick variants) now render with correct band widths. Border conflict resolution follows ECMA-376 spec to prevent doubled or dropped lines on shared cell edges. Table style shading and conditional styling regions now render correctly. Auto tables content-size like Word; percent-width tables honor authored grid proportions.

  • Merged and overhanging cells — vMerge-only rows maintain minimum height instead of collapsing. Interior row boundaries paint as continuous lines across extended rows with no gaps.

  • Nested structured content (SDT) rendering — Content controls nested inside other controls now display correctly.

  • Image rendering in textboxes — Images inside shape containers now measure and render properly.

  • Toolbar font selection — Now shows blank when multiple fonts are selected, instead of falling back to Arial.

  • Tracked rewrite performance — Large single tracked mutations now use coarse-grained replacement path instead of granular word-level diffs, preventing anchor corruption in accepted text.

  • Tracked changes in editing mode — Direct edits during editing mode stay plain instead of being marked as tracked changes.

  • Font picker dropdown — Now opens correctly when clicking the input field.

  • CJK line breaking — Fixed wrapping after numeric runs in long-word text.

  • Heading style conflicts — Conflicting heading styles now resolve to inherit Word's built-in styles.

  • Document diffing — Now detects and applies header/footer differences as part of comparison flow.

Breaking Changes

Removed deprecated Document API operations that were unsupported:

  • blocks.split(), blocks.merge(), blocks.move()
  • lists.getState(), lists.apply(), lists.continueV2(), lists.restartV2(), lists.removeV2()
  • paragraphs.setMarkRunProps()
  • tables.moveRow()

v1.43.1

Compare Source

Fixes
  • Editing-mode direct inserts now stay plain inside tracked changes — When track changes are off, typing or pasting directly inside another user's tracked insertion or deletion no longer expands the suggestion or becomes a tracked change itself. The suggestion is split around the inserted text, preserving its original id and content.

  • Pasted review marks are preserved on paste-inside-suggestion — Pasting a SuperDoc slice that carries its own tracked-change metadata into another suggestion now keeps the pasted marks intact, instead of silently stripping them. Only the enclosing suggestion's inherited marks are removed from the new text.

v1.43.0

Compare Source

Based on my analysis of the commits and code changes, here are the release notes:

What's New
  • Outer shadow effects on vector shapes — Shape shadows render with full blur, distance, and direction control via SVG filters; shadow paint extent grows dynamically to accommodate blur spread.
  • Shape-group transforms — Groups now support rotation, flip-horizontal, and flip-vertical with proper composition for nested shapes and correct child-local orientation.
  • Images clipped to preset shape geometry — Pictures masked by a preset shape carry clip path and object-fit through the full pipeline, with support for cover and fill modes.
  • Enhanced anchoring for page-relative images — Anchored objects with page-relative positioning now participate in wrap calculations; pre-registered anchors resolve against the active section.
  • Section marker paragraph support — Anchored objects on section-marker paragraphs preserve their anchors at the marker origin with Word-compatible offsets.
  • Paragraph spacing in text boxes — Paragraph-level before/after spacing is now rendered in vector shape text, with proper distinction between paragraph breaks and inline line breaks.
Improvements
  • Anchored media in headers and footers — Page-level wrapNone media render as absolute overlays; non-page-relative overlays position from container origin; decoration stacking respects authored z-index order.
  • Arrow shape geometry — Arrow shapes regenerated with Word-compatible head proportions and vertex distribution.
  • Stroke width scaling — Large-coordinate shapes preserve stroke width via vector-effect: non-scaling-stroke.
  • Image mask dirty tracking — Inline image mask edits and drawing changes now repaint correctly through layout-bridge change detection.
  • Negative srcRect handling — Negative clip values (which Word treats as canvas growth) handled explicitly, distinguished from true crop.
Testing
  • Shape regression suite — 1,000+ line comprehensive test coverage for shadow effects, group transforms, shape-clipped images, anchoring, and preset geometry with 80+ specific assertions.

v1.42.0

Compare Source

What's New

Footnotes and endnotes — full editor integration — Double-click a reference marker to navigate to the note; delete from either side removes both marker and note; staged Backspace selects then removes; insert via editor.commands.insertFootnote(); caret and arrow navigation now track correctly in multi-paragraph notes; Font sizing respects document defaults.

Textbox selection, resize, and move — Click within 6px of a textbox border to select it (ProseMirror NodeSelection); resize via corner handles with live feedback; drag to move with margin-offset preservation; works in body, headers, and footers.

Document API — image manipulationimages.crop, images.rotate, images.scale, images.flip, images.replace-source; full control over alt text, captions, z-order, wrapping, and anchor; TIFF support added.

Document API — hyperlinkshyperlinks.insert, hyperlinks.wrap, hyperlinks.list, hyperlinks.patch, hyperlinks.remove; pasted URLs automatically convert to real DOCX link elements.

Document API — list operationslists.apply, lists.continue, lists.restart, lists.remove, lists.getState; level-specific formatting; control bullets, numbering, alignment, marker fonts, and indentation.

Document API — block operations (v2 sessions)blocks.merge preserves first paragraph properties; blocks.split; blocks.move; returns affected ranges and transaction IDs.

Document API — paragraph numberingformat.paragraph.setNumbering attaches numbering to paragraphs; blocks.list surfaces list state; format.paragraph.setMarkRunProps controls marker appearance.

Search in tracked deletions — Find & Replace now searches text within deleted tracked changes, not just insertions.

Cross-reference navigation — Double-click a REF or NOTEREF field pointing at a footnote/endnote to navigate to that note.

Mutations planningmutations.planExecute plans and executes mutations in a single operation with per-entry transactions and failure semantics.

HTML extraction — New getHtml operation to read document content as HTML.

V2 package and runtime — Unified v2 editor runtime with improved performance; v1 compatibility wiring for backward compatibility.

Improvements

List rendering fidelity — First-line indent lists now compute marker suffix tab width from actual rendered tab stops instead of stale targets; justified text width is now correct.

Footnote performance — Warm-start reserve convergence reduces keystroke cost on 25-footnote documents from 75ms to 12ms; ONE pagination per keystroke instead of nine.

Editor performance — Block-node metadata transactions no longer trigger full-document numbering diffs; saves ~16ms per keystroke on 776-paragraph documents.

Toolbar refresh — Coalesce headless toolbar snapshots per microtask; eliminates redundant rebuilds on transaction + selectionUpdate bursts.

IME composition — Defer layout rerender and track-changes rewriting during input method editing to prevent conflicts.

Font configuration robustness — Malformed fonts.bundled configuration no longer crashes; defaults to full bundled pack with warning.

Track changes — deletion handling — Cross-paragraph deletes no longer split paragraphs in suggesting mode; position mapping no longer crashes; accept/reject now reports which decision was taken.

URL paste intent detection — Auto-linking now requires explicit URL intent (www., http(s)://, mailto:, tel:, sms:) to prevent plain text or relative paths from being mistakenly linked.

Passthrough nodes — Inline passthrough nodes no longer attach content; instruction text lives in attrs.originalXml to fix MERGEFIELD export.

Fixes

Footnotes rendering — Terminal-page reserve bump now ensures footnotes render when body fills last page (was silently dropping 0 of 6).

Note caret and selection — Multi-paragraph notes now track caret and selection correctly; arrow navigation no longer skips lines; goal-column preserved across presses; resolves against stale painted ranges via block identity.

Note paragraph styles — FootnoteText style now preserved on Enter, paste, and every paragraph-creation path; appendTransaction guard stamps missing styles after async mutations.

Header/footer activation — Double-click resolves note references only in body fragments; header/footer with behindDoc textboxes no longer break.

Tracked-change review navigation — Navigation no longer jumps and leaves the UI in inconsistent states.

Comment behavior regressions — Repaired regression in comment behavior after recent refactors.

Format persistencew:caps now persists on export via text transform.

List export — Sync document XML before numbering pruning to preserve list definitions on export.

Image resize handles — Alignment with actual image position corrected.

Link popover rendering — Mount external popovers outside overflow:hidden containers to prevent clipping.

Orphan references — Removed orphan function calls that left the codebase in an inconsistent state.

Security findings — Remediated critical and high penetration test findings.

v1.41.0

Compare Source

What's New

@​superdoc-dev/fonts package — Optional package containing 6 MB of .woff2 font binaries for reviewed metric-compatible substitutes, published to npm under the org scope so the core stays small for apps that skip the pack.

Config-gated bundled font availability — Font availability is now explicit: without a configured pack, SuperDoc shows a conservative baseline (Arial, Times New Roman, Courier New), and documents render their original font names with system fonts; configuring the pack lights up the full reviewed set, so toolbar and rendering show the curated families you enable.

Font curation APIcreateSuperDocFonts({ include / exclude }) validates family names against the pack and curates availability at setup time, so typos fail fast and a no-pack or curated document never reuses another document's full-pack measures.

Improvements

Better baseline behavior — Unconfigured SuperDoc now shows one safe Word font per CSS generic instead of fetching missing substitutes from nowhere, and a one-time warning surfaces if the pack fails to load instead of silently degrading.

Document-scoped font resolution — Availability and curation are per-document in the resolver and offerings, keeping each editor's toolbar and rendering independent when multiple documents share a page.

CDN-ready fonts — The @superdoc-dev/fonts browser build exports a global SuperDocFonts with the same API, so <script> tag pages load the reviewed pack from jsDelivr, unpkg, or self-hosted servers with no bundler and no path config.

Updated examples and docs — Getting-started guides for Angular, Laravel, Next.js, Nuxt, React, Solid, Vanilla, and Vue now import and use @superdoc-dev/fonts.

v1.40.1

Compare Source

Fixes
  • Toolbar font dropdown reverted to a conservative baseline (Arial, Courier New, Georgia, Times New Roman) while the optional font-pack selection UI is finalized. Full font resolution through documents remains unchanged.

v1.40.0

Compare Source

Now I have enough context. Let me write the release notes based on the actual changes:

What's New
  • Textbox content editing — Click, type, and edit text inside VML and DrawingML textboxes. Selection, caret rendering, and text updates work across body, header/footer, and table cell contexts.
  • Zoom modes and fit-width — Set zoom as manual or fit-width (auto-fit to container). ui.zoom exposes mode, value, calculated fit-zoom, bounds, and viewport metrics; PDF documents measure at their rendered scale.
  • Viewport metrics and responsive layout eventsviewport-change event fires on container resize with measurements (document width, available width, fit-zoom). Consume viewport metrics from getViewportMetrics() to implement responsive zoom without polling.
  • Font family combobox — Typeahead-enabled font picker in toolbar with per-document font options and substitution evidence (metric-safe vs. visual-only); dropdown stays in viewport.
  • Comments API expansionui.comments.setActive() highlights a comment without scrolling; pendingSelection on pending comment events gives consumers the captured selection to pass to comment creation APIs.
  • Text range viewport targetsui.viewport.getRect() now accepts Document API text targets (addresses and segments), resolving to painted DOM rects for custom overlay and floating-UI anchoring.
  • Scroll container exposureui.viewport.getScrollContainer() returns the actual scrollable ancestor (or null for document/window scroll), letting overlay consumers attach scroll listeners to the right element.
  • Sidebar geometry signalsui.viewport.observe fires when the comments rail opens/closes, invalidating cached viewport geometry.
  • TOC interactions — Hover highlighting and section-link navigation for table of contents.
Improvements
  • Column balancing at continuous breaks — Multi-column sections now balance correctly at continuous section breaks, matching Word's layout. Explicit column widths (equal or unequal) and per-column spacing extract accurately.
  • Tracked change granularity — Inline cell changes within a whole-table tracked change consolidate into one logical change in the review API (groupTrackedChanges), mirroring the comments containment rule.
  • Line break handling in mutations — Generated newlines in text-mode mutations serialize as Word-native <w:br/> elements; read model treats lineBreak nodes as \n so search/query/rewrite stay consistent.
  • Caret geometry for tabs and soft breaks — Tab carets anchor to line top; soft-break continuation carets position at line start with alignment-aware offset instead of the page right edge.
  • Page break suppression — Style-driven pageBreakBefore directly after an explicit page break no longer renders a redundant blank page, matching Word's structural rule.
  • Textbox table content rendering — Tables inside textboxes render with correct alignment and text flow.
  • Plan-engine block identity repair — Runtime self-healing of duplicate block identities on compile, preventing stale cross-document references.
  • Font substitution evidence — Font reports carry per-face evidence (metric-safe, visual-only, glyph exceptions) from the docfonts registry, giving consumers the fidelity detail behind each substitution.
Fixes
  • Table cell selection collapse — Dragging a body selection into an empty table cell no longer collapses the selection; prosemirror-tables normalization guard keeps the extended range.
  • Multiline selection rendering — Interior lines of multi-line selections now render the full width highlight instead of slivers; per-line rect computation handles absolutely-positioned .superdoc-line elements across browsers.
  • Empty cell geometry — Empty table cell paragraphs (no runs) resolve to their PM start instead of null, preventing frozen selections during active drags.
  • Image alpha export — Process alphaModFix for images on export, preserving transparency properties.
  • Text selection in generated lineBreak contexts — Search and offset resolution now treat lineBreak nodes as \n, so a match spanning text+lineBreak+text coalesces to one contiguous range.
  • Font toolbar updates — Document font toolbar rebuilds and layout re-renders on fonts-changed events; dropdown state persists through editor handoff.
  • UV-deprecated legacy visual testing infrastructure — Removed /devtools/visual-testing; layout validation now runs in the standard test suite.

v1.39.0

What's New

Fonts API for custom registration and per-document mapping

  • superdoc.fonts.add({ family, weight, style }, url) registers custom fonts and awaits them before layout
  • superdoc.fonts.map({ 'Calibri': 'Carlito', ... }) maps logical families per editor — custom substitutes override bundled defaults
  • superdoc.fonts.preload(['Georgia', ...]) loads families before measurement
  • superdoc.fonts.getReport(), getMissingFonts(), getDocumentFonts() surface font diagnostics
  • Font changes emit fonts-changed events with load status and resolution reasons

Bundled font substitutes for common Word families

  • Calibri, Cambria, Arial, Times New Roman, Courier New load metric-compatible open substitutes (Carlito, Liberation Sans, Liberation Serif, Liberation Mono) — no configuration required
  • Helvetica aliases to bundled Liberation Sans
  • All substitutes load before measurement — rendering is deterministic, no late-load reflow

Structural tracked changes for tables

  • Import whole-table insert/delete as single tracked-change item (not per-row)
  • Render visually — inserted tables green, deleted tables struck-through with red rows
  • Cell text inside tracked table subsumed into structural change — one review bubble, one decision
  • Accept cascades: accepting inserted table accepts contained cell text; rejecting removes whole table
  • Right-rail bubble labels "Added table" / "Deleted table"

PAGEREF field resolution to live target page numbers

  • Resolve PAGEREF instructions to display number, format (numeric picture, general format), and relative position (\p → "on page N", "above", "below")
  • Preserve instruction tokens and CHARFORMAT properties for export round-trip
  • Render in document body with live re-resolution on pagination change

SEQ sequence field support

  • Import and export SEQ field instructions with numbering, restart, and hidden-field state
  • Resolve in layout using shared evaluator: counter tracking, heading-level serials, explicit restart precedence
  • Field discovery reads resolvedNumber; export emits current evaluated results
  • Preserve raw instructions for lossless round-trip

NUMPAGES field formatting with numeric pictures and ordinal

  • Parse \# "0" (numeric picture) and \* Ordinal format switches on insert and import
  • Format total page count as "1", "I", "1st" per field switch
  • Applied to both inserted and refreshed fields
  • Preserve instructions on import for export parity

PAGE field formatting with numeric pictures

  • Parse \# "0" (numeric pictures) and \* general-format switches (Arabic, Roman, Alphabetic, ArabicDash)
  • Format page numbers per field — "1", "i", "A", "1-" — independent of section numbering format
  • Preserve instructions on import; export round-trips back to same field code

SECTIONPAGES field support

  • Resolve SECTIONPAGES field to section-aware page count with section-level numbering awareness

Document background

  • Import and render document-level background image positioned behind all body content

Nested content controls

  • Import nested block SDTs (SDT inside paragraph) and nested inline SDTs (SDT inside run)
  • Preserve structure through export

Templates can be applied to documents

  • doc.template.apply(templateDoc) applies formatting, styles, and structure from template to active document

Author colors for tracked changes

  • Per-author tracked change highlights in track-changes UI
Improvements

Multi-column sections now render with explicit per-column widths and gaps

  • Authored column widths preserved — no scaling to fit content area
  • Per-column gaps (w:col/@​w:space) drive separator positions, not uniform section gap
  • Footnote assignment and positioning use per-column geometry
  • Column hit-testing honors per-column boundaries, not uniform stride
  • Separators position at resolved geometry

Footnote pagination matches Word's behavior

  • Ordered-cluster rule — first N-1 anchors on a page render fully, only Nth may split across pages
  • Body paginator reserves minStart (first-line height) for each new anchor, allowing tight packing
  • Continuation pages reserve only remaining space after cluster obligation
  • One-line widows absorbed by bumping reserve when eliminates a split
  • Footnote numbering honors per-section w:footnotePr/@​numFmt, @​numStart, and eachSect restart
  • Custom-mark footnotes (customMarkFollows) no longer consume an ordinal
  • Marker is plain superscript with space gap before body text

Tracked change rendering

  • Inserted table rows paint green, deleted rows paint struck-through red
  • Right-rail bubble for structural table changes
  • Inline changes inside tracked table suppressed (structural bubble only)

Table border and shading fidelity

  • Collapsed shared edges resolve per ECMA-376 §17.4.66 — greater weight wins, style precedence breaks ties
  • Explicit nil borders suppress dividers (both adjacent cells nil = no line)
  • Cell shading — pct/auto patterns resolve to Word-matching blend colors
  • Row-level tblPrEx borders merged and rendered once per edge
  • rowspan continuation rows no longer double interior lines
  • Keep-next paragraphs before tables reserve only first row height (table splits normally)

Header/footer refs inherit across multiple sections

  • Walk back to nearest prior section defining first/even/default variant (not just immediately prior)
  • first and even no longer fall back to default per OOXML §17.10.1
  • Preserve section fallback refs in section resolver

Field-annotation pills resolve fonts per document

  • Pills measure and paint through document's font resolver
  • Custom substitutes and bundled clones apply to field content
  • Underline rendering matches adjacent text

Anchored tables reposition with per-wrap padding

  • Apply correct offset based on wrap value (square, tight, through)
Fixes
  • Image resize in suggesting mode no longer duplicates (uses AttrStep, preserves track-changes state)
  • Tracked deletion coalescing in suggesting mode — adjacent Backspace batches into single change
  • Multi-column sections with explicit equal widths now balance correctly (only skip genuinely-unequal widths)
  • Per-column w:space honored for unequal columns per ECMA-376 §17.6.4
  • Hit-testing resolves mid-page column region — column boundaries correct when section breaks change columns mid-page
  • Explicit column layout idempotence — per-column gaps preserved through resolveColumnLayout
  • Table hit-testing uses region column count, not page-start count

v1.39.0-next.30

Compare Source

Bug Fixes
  • super-editor: keep caret after replacing break-only list content (SD-3278) (480ea20)
  • super-editor: preserve generated line breaks in DOCX export (SD-3278) (a58352c)
  • super-editor: require PM-contiguity when coalescing search ranges (SD-3278) (f9a7b8e)
  • superdoc: blocker round for zoom modes from review (SD-3294) (d643fb9)
  • superdoc: key viewport-change dedup on fit, not raw available width (SD-3294) (96ab4f8)
  • superdoc: land the always-latest metrics store the prior message described (SD-3294) (f260c69)
  • superdoc: wait for layout ready before capturing base document width (f168de5)
  • ui: zoom hygiene for mode-only emissions (SD-3294) (34077b0)
Features
  • superdoc: add layout-change event for responsive fit-to-container zoom (7bad8f0)
  • superdoc: observable zoom-mode transitions and format-aware viewport metrics (SD-3294) (6472895)
  • superdoc: zoom modes with viewport metrics and fit-width (SD-3294) (f174110)
  • ui: zoom domain, useSuperDocZoom, and zoom-fit-width command (SD-3294) (74d41d5)

v1.39.0-next.29

Compare Source

Bug Fixes
  • templates.apply (a72d8ce)
  • track-changes: project structural table revisions to legacy public types (45b4e26)

v1.39.0-next.28

Compare Source

Bug Fixes
Features
  • fonts: apply embedded document fonts in the PresentationEditor lifecycle (7998edc)
  • fonts: document-owned registerOwnedFace with handle release (771ceaa), closes #facesByKey #managedFaces
  • fonts: extract embedded DOCX fonts as structured deobfuscated faces (054fbcc)
  • fonts: parse embedding policy from the font OS/2 table (38ed918)
  • fonts: register embedded DOCX fonts on the document controller (620cbfc)
  • fonts: render-isolate embedded fonts via a document-unique physical family (1641f36)

v1.39.0-next.27

Compare Source

Features
  • columns: render explicit columns at authored widths with per-column gaps (SD-2629) (#​3635) (36715c5)
  • font-system: derive default toolbar fonts from a font-offering registry (f9ff3f4)

v1.39.0-next.26

Compare Source

Features

v1.39.0-next.25

Compare Source

Features
  • font-system: Calibri Light category_fallback, derived from the evidence registry (18be689)

v1.39.0-next.24

Compare Source

Features
  • font-system: alias Helvetica to the bundled Liberation Sans (16aea67)

v1.39.0-next.23

Compare Source

Bug Fixes
Features
  • fonts: prefer a registered real face over the bundled substitute (provider precedence) (0bc7dc4)

v1.39.0-next.22

Compare Source

Bug Fixes
  • fonts: a fallback_face_absent face is deterministically missing + realistic test (d785dd3)
  • fonts: collision-safe effectiveSignature + quote-normalized primary family (c575e8a)
  • fonts: install bundled pack without a font set so hasFace stays correct (d376162)
  • fonts: label editing face-set changes 'render-change', not 'late-load' (3c20e4e)
Features
  • fonts: face-scoped font substitution so single-face clones are safe (SD-3372) (c531d46), closes #​3626 #​3631

v1.39.0-next.21

Compare Source

Bug Fixes
Features
  • fonts: add fonts.add and fonts.preload on the controller (ce82301)
  • fonts: add fonts.map to override font resolution per document (274d30e), closes #requestFontReflow
  • fonts: apply document font config at startup (a2ad409)
  • fonts: resolve field-annotation pills through the document resolver (5f85e44), closes #fontResolver
  • fonts: route font writes through a DocumentFontController (68cefd2)

v1.39.0-next.20

Compare Source

Features
  • fonts: key measure caches by the per-document resolver signature (e8d8ea6)
  • fonts: paint each document through its own resolver (69be0f6)
  • fonts: per-document FontResolver (foundation for runtime mapping) (39f90e6)
  • fonts: resolver reset on document swap; correct signature-vs-version docs (2dcb0eb)
  • fonts: thread the document resolver through measure (buildFontString) (5f58b64)
  • fonts: thread the per-document resolver through planner, gate, and report (1fbc870)

v1.39.0-next.19

Compare Source

Bug Fixes
  • mcp: resolve word-layout from source (cfbc66b)

v1.39.0-next.18

Compare Source

Features
  • document-api: template.apply (40a9129)

v1.39.0-next.17

Compare Source

Features
  • fields: add SECTIONPAGES field support with section-aware numbering (SD-3349 and SD-3027) (#​3605) (4cf6d78)

v1.39.0-next.16

Compare Source

Bug Fixes
Features

v1.39.0-next.15

Compare Source

Features

v1.39.0-next.14

Compare Source

Bug Fixes
  • layout-engine: gate underline overlay to left-origin text/tab lines (SD-3330) (ba2955f)
  • layout-engine: keep native underlines on RTL tab lines (SD-3330) (a79ffde)
  • layout-engine: measure tab-only line metrics from the tab font (SD-3330) (d237d77)
  • layout-engine: paint underlined tabs + text as one measured overlay (SD-3330) (19bdc4a)

v1.39.0-next.13

Compare Source

Bug Fixes
  • layout-engine: render underlined tabs flush with text underline (SD-3330) (#​3611) (c18caea)

v1.39.0-next.12

Compare Source

Bug Fixes

v1.39.0-next.11

Compare Source

Bug Fixes
Features
  • fonts: bounded late-load reflow scheduler (6fe87a9)

v1.39.0-next.10

Compare Source

Bug Fixes
Features
  • fonts: face-aware font-load planner (load used faces, not declared families) (fd58a97)

v1.39.0-next.9

Compare Source

Bug Fixes
  • header-footer: use section-aware page numbering for odd/even parity (SD-2991) (#​3236) (59c6da1)
  • super-editor: support nested content controls (97de1e3)

v1.39.0-next.8

Compare Source

Bug Fixes
  • fonts: configurable asset base + CDN script-relative resolution (c15118a)
  • fonts: gate cached font-report replay + handle dev font stream errors (1f70789), closes #fontReportSurfaces
  • fonts: harden public font contract from #​3608 review (d85468e)
  • fonts: honor per-document config conflicts + tighten missing semantics (9554c1a)
  • fonts: resolve cdn-entry font-system import in tests + physical placeholder font (a06758a)
  • superdoc: relay fonts-changed only from the active editor (6b2c1ef)
Features
  • fonts: add bundled font substitutes and readiness reporting (28470dc)

v1.39.0-next.7

Compare Source

Bug Fixes

v1.39.0-next.6

Compare Source

Features

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot enabled auto-merge (squash) August 1, 2026 00:34
@renovate
renovate Bot merged commit 7f9b08e into main Aug 1, 2026
6 checks passed
@renovate
renovate Bot deleted the renovate/superdoc branch August 1, 2026 08:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants