Skip to content

fix(deps): update superdoc#49

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

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

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented May 19, 2026

This PR contains the following updates:

Package Change Age Confidence
@​superdoc-dev/cli 0.11.0-next.190.12.0-next.1 age confidence
@​superdoc-dev/sdk 1.10.0-next.191.11.0-next.1 age confidence
superdoc (source) 1.34.0-next.181.35.0-next.1 age confidence

Release Notes

superdoc-dev/superdoc (superdoc)

v1.35.0-next.1

Compare Source

Bug Fixes
  • metadata: require payload entry to confirm resolve, gate ui.metadata.* (SD-3204) (46a4031)
  • types: keep public root facade source-checkable (d0a806a)
Features

v1.34.0

Compare Source

What's New

Content Controls as first-class viewport entities — Hit-test and retrieve rendered rects for SDTs without DOM attribute scraping. Enables custom UI overlays and smart field chips without duplicating position logic.

ContentControls handle with React hook — Read-only programmatic access to the active set, cached list, and individual control info. Mirrors the existing comments and tracked-changes surfaces.

Metadata API for anchored payloads — Document API operations on bookmarks, comments, tracked changes, and content controls now support anchored metadata: attach, remove, update with revision safety and dry-run preview.

Custom XML parts CRUD — Create, patch, remove, and list custom XML data storage parts through the Document API. Full OOXML package coordination with proper rels, properties, and content-type management. (Phase A; dry-run support tracked separately.)

RTL table support — Paragraph direction toolbar buttons (headless API). Visual direction context for tables with proper border/margin mirroring per ECMA-376. Logical cell-margin start/end mapping to physical padding.

TOC toolbar item — Add, update, and manage tables of contents from the editor UI. Respects schema constraints; sanitizes nested marks on rebuild.

Format painter UX improvements — Toolbar behavior now matches Microsoft Word: one-time mode by default, click state resets on use.

Large image upload in headers/footers — Image replacement and resizing now work in header/footer contexts, matching body editing capabilities.

Improvements

Metadata API error distinction preservedmetadata.attach now correctly surfaces TARGET_NOT_FOUND for missing nodes and INVALID_TARGET for malformed shapes, instead of collapsing both to INVALID_TARGET. Clients that branch on error code for retry logic now get the right signal.

Paragraph direction resolution per ECMA-376 — Paragraph inline direction now comes from the paragraph's own w:bidi property (or style cascade), not section bidi or run-count heuristics. Latin paragraphs in RTL sections now render left-aligned, matching Word.

Table cell margins round-trip faithful — Logical w:start/w:end attributes on cell margins now import and export correctly. Cell-level exceptions now properly override table-level defaults instead of silently dropping.

Theme fonts preserved on round-trip — Documents with w:*Theme rFont slots (per-script theme references) now round-trip without losing the theme linkage to font resolution. User font overrides correctly drop theme refs.

Hyperlink marks survive tracked-change field splits — Inserted hyperlinks that cross paragraph boundaries now export and re-import with the mark intact, instead of losing the link on the split portion.

EMF+ and raw-pixel image rendering — Embedded PNG/JPEG inside EMF+ payloads now render (extraction from GDI+ records). Raw-pixel EMF+ bitmaps decode and render as PNG with proper alpha handling.

SVG image MIME types corrected — Imported SVG images now export with correct content type instead of generic binary type.

Search match visibility improved — Matches now stay visible over source document highlight marks (run-level color) via !important CSS override. Find-and-navigation focus behavior corrected to keep focus on search input through repeated Enter/Shift+Enter.

Comments and tracked changes round-trip together — Comments anchored to tracked changes now resolve cascading when accepting/rejecting the TC, and properly thread as replies under the TC bubble on re-import (regardless of file origin).

Numbered list definitions preserved — Documents with tentative numbering (definitions not yet applied) now preserve those unused definitions on export instead of stripping them. Active numbering stays unchanged.

Type safety hardenedEditorTransactionEvent.transaction now typed as Transaction instead of any. Config.onAwarenessUpdate.states now properly typed as AwarenessState[]. Deep type audit strengthened via consumer matrix and package-shape verification.

Default paragraph properties no longer injectedw:bCs, w:iCs, and explicit highlight=none are no longer auto-generated on round-trip when absent from source, reducing export size and eliminating false-positive "intentional" toggles.

Paragraph margin twips normalized on export — Float-valued w:pgMar attributes (inherited from upstream pipelines) now export as integer twips per ECMA-376 §17.6.11, satisfying strict consumers.

Explicit inline bidi preservedw:bidiVisual w:val="0" (explicit false for table visual direction) now exports correctly instead of being conflated with absent bidi, restoring the cascade-override semantics.

RTL date rendering matches Word — RTL date tokens now render with the same visual order Word produces (via per-run dir isolation and Unicode RLM markers around separators).

Content control defaults standardized — Newly created controls now default to richText type with explicit w:richText in SDTPR (matching Word) instead of the untyped unknown. Imported typeless Word controls properly resolve to richText per ECMA-376 §17.5.2.26.

Content control mutations respect locking — Programmatic updates to locked SDTs now use AttrSteps and inner-range writes instead of wrapper replacement, bypassing lock filters. Operations like text.setValue and replaceContent now succeed on sdtLocked controls as the spec permits.

Paragraph indentation respects style cascade — Increase/Decrease Indent now correctly read style-derived indent on cache miss instead of crashing before initial render.

Fixes

Slash menu dismissal restored — Context menu now closes correctly on Backspace/Delete/Escape/ArrowLeft with proper slash reinsertion logic (slash-triggered opens only). Pressing / immediately after dismissal no longer inserts a literal slash. Menu headers and empty states now visible during filter.

Toolbar dropdown keyboard focus — Dropdown can reopen via Enter after Escape restores focus to the trigger button. Split buttons unaffected.

Block SDT deletion — Delete key now removes block-level content controls when cursor is at the first position (matching Backspace behavior).

Mixed-bidi Backspace — Backspace at mixed-direction boundaries now routes through the canonical command chain instead of bypassing undo grouping, history boundaries, and tracked-change wrapping setup.

Hebrew/Arabic presentation forms recognized — Strong-RTL character detection now includes Hebrew and Arabic presentation-form blocks (FB1D-FB4F, FB50-FDFF, FE70-FEFF), fixing mixed-bidi-backspace boundary detection for runs using legacy fonts.

Native caret refinement gated — Browser native-selection caret fallback now only applies to the local user's caret, not arbitrary positions queried by remote-cursor manager or arrow-nav binary search.

Revision safety on metadata dry-runmetadata.attach and metadata.remove now check expectedRevision before returning early on dryRun: true, catching stale revisions instead of falsely reporting success.

Copy-slice metadata hidden — Slice metadata on copied content no longer surfaces in pasted result.

Hidden inline SDT visibilityw15:appearance="hidden" SDTs now truly transparent: chrome suppressed, alias label omitted from DOM, text excluded from copy-paste and screen readers.

SDT temporary property importedw:temporary flag now imports and surfaces through ContentControlProperties.temporary (previously always undefined even when source XML said true).

Find input focus restored — Pressing Enter in search input now re-focuses the input after navigation, allowing repeated Enter/Shift+Enter to advance through matches without focus stealing to the editor.

Cross-page search scroll stabilized — Match navigation now scrolls matches into view reliably by preventing focus-steal scroll conflicts, consuming selection-update flags, and re-asserting scroll position on the next frame to catch late displacement.

Section direction doesn't cascade to paragraphs — Body w:bidi on headers/footers no longer incorrectly applied to contained paragraphs (ECMA-376 §17.6.1 compliance).

Comment position readback aligned with write modeleditor.doc.bookmarks.list() now returns offsets matching the write-side flattened model instead of counting inline wrapper tokens, eliminating drift.

Duplicate Comment-TC anchor resolve — Accepting/rejecting a tracked change no longer incorrectly resolves unrelated comments in multi-document sessions (scoped by document ID).

Comment highlight specificity restored — Comment inline background-color no longer clobbered by lock-hover styles in viewing mode, and hidden inline SDTs excluded from lock-hover styling.

Paragraph font preservation — Runs imported with multiple theme slots (e.g., ascii/hAnsi/cs themed) now survive user font overrides correctly (primary slot comparison only, per-script extras ignored as non-intent signal).

Paragraph link round-tripw:commentRangeStart now folds into tracked-change wrapper as first child instead of sitting as sibling, preserving TC-comment linkage on re-import. Replies under TC bubbles now thread correctly on re-import regardless of file origin.

Custom XML schemaRefs distinction — Omitted vs. empty distinction for <schemaRefs> element now preserved on round-trip (ECMA-376 §22.5.2.3): omitted means "app infers," empty means "no schemas," populated means "use these."

Package declaration emit honest — Release pipeline now gates stable releases with same package-shape and deep-type-audit checks as @​next, preventing unverified publishes on latest tag.


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) May 19, 2026 18:54
@renovate renovate Bot merged commit ee06ee4 into main May 19, 2026
6 checks passed
@renovate renovate Bot deleted the renovate/superdoc branch May 19, 2026 22:43
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