Skip to content

Version bump main: 9.57.0 -> 9.58.0 - #3444

Merged
Julia Roldi (juliaroldi) merged 46 commits into
releasefrom
u/juliaroldi/version-b
Aug 21, 2026
Merged

Version bump main: 9.57.0 -> 9.58.0#3444
Julia Roldi (juliaroldi) merged 46 commits into
releasefrom
u/juliaroldi/version-b

Conversation

@juliaroldi

@juliaroldi Julia Roldi (juliaroldi) commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Merge the latest master changes into release and bump the main RoosterJS package group from 9.57.0 to 9.58.0.
Also bump Legacy Adapter to 8.66.2 and Rooster React 9.0.6.

Changes included

How to test

  1. Run yarn build.
  2. Run yarn test:fast.

Haowen Chen (haven2world) and others added 30 commits July 2, 2026 10:10
* Add auto markdown conversion callback

* Use auto markdown conversion source

---------

Co-authored-by: Jiuqing Song <jisong@microsoft.com>
generateDataURL sizes the output canvas by window.devicePixelRatio, but the expected newSrc images were captured at 100% scale, so the IHDR dimension assertions failed on hosts at other scales. Pin devicePixelRatio to 1 for these tests so canvas output is deterministic regardless of screen scale.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ties (#3390)

* Update Content Model demo view with missing types, formats and properties

Add renderers and wiring for Content Model format parts and node properties
that were missing from the debug/demo Content Model view: Aria, Role,
LegacyTableBorder, BoxShadow, ImageState and Undeletable renderers, plus block
Id, table/cell/list/link/image format coverage and image alt/title and entity
isFakeEntity properties.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* support ContentModelData

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…type (#3397)

* Enhance PasteTypeGetter to allow calling getDocumentSource for paste type

Expand the PasteTypeGetter signature to also receive the editor environment and the pasted content metadata (HTML attributes), so callers can invoke getDocumentSource inside the getter to detect the paste source and set the correct paste type.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Reset plugins test and add paste unit test asserting getter params are defined

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix retrieveHtmlInfo global CSS test to allow border-image initial or none

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
)

Co-authored-by: Liang Meng <liangmeng@microsoft.com>
Co-authored-by: Bryan Valverde U <bvalverde@microsoft.com>
Bumps [websocket-driver](https://github.com/faye/websocket-driver-node) from 0.7.3 to 0.7.5.
- [Changelog](https://github.com/faye/websocket-driver-node/blob/main/CHANGELOG.md)
- [Commits](faye/websocket-driver-node@0.7.3...0.7.5)

---
updated-dependencies:
- dependency-name: websocket-driver
  dependency-version: 0.7.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Fix ordered-list numbering when converting markdown to the Content Model. createListFromMarkdown / createBlockGroupFromMarkdown now receive the current list context (lastList) from markdownProcessor, and when a new ordered list starts (no preceding list item), the leading marker number is parsed and applied as startNumberOverride on the list level. Previously a new ordered list that followed a paragraph did not restart its numbering from the markdown marker; now it does, while continuation items within the same list keep flowing without an override.
Pasting large images can cause the editor to jump far into view, which forces the user to scroll back to where the cursor was. When images are pasted, the caret should not be scrolled into view.
#3401)

Forward the editor's experimental features into createDomToModelContextForSanitizing so that the TransformTableBorderColors experimental feature is honored while sanitizing pasted content. Previously experimentalFeatures was hard-coded to an empty array in the sanitizing context, so table border color transformation never ran during paste. `mergePasteContent now passes all editor experimental features.
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.16.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](juliangruber/brace-expansion@1.1.11...v1.1.16)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.16
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jiuqing Song <jisong@microsoft.com>
…ump (#3404)

* [Image Edit] Skip DOM selection during image edit to prevent editor jump

Add a skipDOMSelection option to FormatContentModelOptions and honor it in
formatContentModel so callers can avoid resetting the DOM selection after
writing the DOM tree. ImageEditPlugin passes skipDOMSelection: true when
entering edit mode, replacing the previous approach of pinning the shadow
host width/height to the original image footprint.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 02ace9a1-26cc-4655-9ecc-a56c32a2bbf0

* fixes

* fixes

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 02ace9a1-26cc-4655-9ecc-a56c32a2bbf0
* Fix PowerPoint paste bug with list markers in table cells

Skip list-item processing for table elements and clear the list marker
font size so it does not overflow the table cell.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add unit tests and scope list marker font size removal to tables

Only remove the list marker font size when the list is inside a table
cell, and add unit tests covering table detection and marker font size.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…e on paste (#3399)

When pasting cells that came from a horizontal split next to a vertically
split cell, the pasted cells were being vertically merged. Reset spanAbove
on all incoming source table cells during a table-into-table merge so pasted
cells become standalone cells instead of continuations of a vertical merge.

Repro:
OS: Win 11
Monarch: 1.2026.226.200 Ring - Dogfood
OWA: 20260227032
- New mail
- Insert a table
- Split a cell horizontally > Split another cell vertically in the same row
- Input some content in the horizontal split cells
- Copy the horizontal split cells and then paste
- Observe

Actual: The pasted cells were vertically merged.
Expect: Pasting should not cause cells to merge.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4f27a803-6207-4fd0-a540-4ab839bbe28a
The id and styles on image wrapper were causing it to persist on the editor after quit image editing, adding multiples div on the editor.
Bumps [immutable](https://github.com/immutable-js/immutable-js) from 4.3.8 to 4.3.9.
- [Release notes](https://github.com/immutable-js/immutable-js/releases)
- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md)
- [Commits](immutable-js/immutable-js@v4.3.8...v4.3.9)

---
updated-dependencies:
- dependency-name: immutable
  dependency-version: 4.3.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jiuqing Song <jisong@microsoft.com>
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.2 to 3.1.4.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](fastify/fast-uri@v3.1.2...v3.1.4)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jiuqing Song <jisong@microsoft.com>
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.4.11 to 3.4.12.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](cure53/DOMPurify@3.4.11...3.4.12)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.4.12
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jiuqing Song <jisong@microsoft.com>
When a user starts editing an image (rotate/resize handles), the editor no longer forces a DOM image selection on the edited image. The setDOMSelection function will reselect the image due the isEditingImage hidden property, causing the same image to be selected again as new image, then we should skip DOM Selection for this scenario.
#3412)

Adds support for dropping content within the same editor (internal drag-and-drop), gated behind the new HandleDropInternalContent experimental feature.
When a range selection contains a single image, pressing Shift+F10 (the keyboard shortcut that opens the context menu) now promotes the selection to an image selection before the menu opens. This ensures the context menu operates on the image rather than the surrounding text range. Implemented in SelectionPlugin.ts by detecting Shift+F10 on a range selection and, when isSingleImageInSelection returns an image, calling setDOMSelection with an image selection.
)

Adds support for dragging content out of a selected table cell range. When the user presses down inside an existing table selection with a single click, the selection is converted into a native range selection so the highlighted content can be dragged and dropped elsewhere, gated behind the HandleDropInternalContent experimental feature.
Bumps [socket.io-parser](https://github.com/socketio/socket.io) from 4.2.4 to 4.2.7.
- [Release notes](https://github.com/socketio/socket.io/releases)
- [Changelog](https://github.com/socketio/socket.io/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io/compare/socket.io-parser@4.2.4...socket.io-parser@4.2.7)

---
updated-dependencies:
- dependency-name: socket.io-parser
  dependency-version: 4.2.7
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.4 to 3.1.5.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](fastify/fast-uri@v3.1.4...v3.1.5)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Update handleDroppedInternalContent so holding Ctrl during an internal drag-and-drop copies the selected content instead of deleting the original selection. Preserve the existing move behavior when Ctrl is not pressed, with regression coverage for both paths.
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.4.12 to 3.4.13.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](cure53/DOMPurify@3.4.12...3.4.13)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.4.13
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Announce new lines inserted with Enter

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0b3e8c6f-5223-4b6e-b959-5f8b209e5b10

* Fix content changed test fixture

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0b3e8c6f-5223-4b6e-b959-5f8b209e5b10

---------

Copilot-Session: 0b3e8c6f-5223-4b6e-b959-5f8b209e5b10
…ection on paste (#3416)

* Initial plan

* Fix label element processing to avoid extra div on paste

Add `label: knownElementProcessor` to the `defaultProcessorMap` so that
`<label>` HTML elements are treated as known elements (like `span`)
instead of falling through to the `generalProcessor`. This prevents an
extra `<div>` wrapper from being inserted inside `<label>` elements
when pasting HTML content, fixing issue #2447.

* Fix test: label is inline, expect one implicit paragraph not two blocks

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Jiuqing Song <jisong@microsoft.com>
Co-authored-by: Bryan Valverde U <bvalverde@microsoft.com>
Copilot AI and others added 14 commits August 13, 2026 14:32
* Initial plan

* Fix text color becoming black after pasting an image

Co-authored-by: JiuqingSong <23065085+JiuqingSong@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JiuqingSong <23065085+JiuqingSong@users.noreply.github.com>
Update isContentMarkdown to recognize only exactly three dashes as a Markdown horizontal rule. This prevents four or more dashes from being classified as Markdown content and adds a regression test for the behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Preserve list structure when moving internal content by removing the moved paragraph and following blocks from their original list item. Share list-item lookup logic with the existing delete-list step and remove list margins when applying numbering from the ribbon.
Support dropping external plain text and single image files while preserving existing HTML drop behavior and forbidden-element cleanup. Move clipboard fragment creation into roosterjs-content-model-dom and share textToFragment between paste and drag-and-drop so whitespace, tabs, and multiline text are handled consistently.
Co-authored-by: Jiuqing Song <jisong@microsoft.com>
Update DragAndDropPlugin to handle the browser's deleteByDrag beforeinput event after an internal drag. The plugin now prevents the native deletion and removes the selection through the Content Model with the DragOutOfEditor change source, so drag-out deletions participate in the editor's normal change and undo flow.
Update the npm registry to use the Microsoft package feed proxy, pin dependency resolutions needed for consistent installation, and regenerate yarn.lock against the new feed. Pin Sass to the Node 18-compatible 1.49.8 release and Socket.IO to 4.7.5 to avoid pulling incompatible WebSocket typings, while updating the demo SCSS theme imports and color functions to the modern Sass module APIs.
* Add Safari test runner

* Fix test name filtering

* Connect editable test elements to document

* Make image size tests browser independent

* Normalize Safari positions in empty blocks

---------

Co-authored-by: Jiuqing Song <jisong@microsoft.com>
Bumps the github-actions group with 4 updates: [actions/checkout](https://github.com/actions/checkout), [actions/setup-node](https://github.com/actions/setup-node), [GabrielBB/xvfb-action](https://github.com/gabrielbb/xvfb-action) and [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action).


Updates `actions/checkout` from 2.3.1 to 7.0.1
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v2.3.1...3d3c42e)

Updates `actions/setup-node` from 2.5.2 to 7.0.0
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v2.5.2...8207627)

Updates `GabrielBB/xvfb-action` from 1.6 to 1.7
- [Release notes](https://github.com/gabrielbb/xvfb-action/releases)
- [Commits](GabrielBB/xvfb-action@86d97bd...b706e4e)

Updates `JamesIves/github-pages-deploy-action` from 3.6.2 to 4.9.0
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](JamesIves/github-pages-deploy-action@e80c869...fa24774)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/setup-node
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: GabrielBB/xvfb-action
  dependency-version: '1.7'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-version: 4.9.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jiuqing Song <jisong@microsoft.com>
Update MarkdownPastePlugin to merge converted Markdown with preferTarget, preserving the destination font family, size, and color while still applying Markdown formatting such as heading boldness. Add a regression test covering Markdown pasted into preformatted content.
Improve drag-and-drop handling so internal and external content dropped into an empty paragraph after a list is merged as a new list item instead of remaining outside the list.
@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-08-21 20:45 UTC

@juliaroldi Julia Roldi (juliaroldi) changed the title U/juliaroldi/version b Version bump main: 9.57.0 -> 9.58.0 Aug 21, 2026
@juliaroldi
Julia Roldi (juliaroldi) marked this pull request as ready for review August 21, 2026 18:27
@juliaroldi
Julia Roldi (juliaroldi) merged commit 8cd9a8a into release Aug 21, 2026
8 checks passed
@juliaroldi
Julia Roldi (juliaroldi) deleted the u/juliaroldi/version-b branch August 21, 2026 20:46
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.

8 participants