Version bump main: 9.57.0 -> 9.58.0 - #3444
Merged
Merged
Conversation
* 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>
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.
fix image ribbon controls
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>
* 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.
|
Julia Roldi (juliaroldi)
marked this pull request as ready for review
August 21, 2026 18:27
Jiuqing Song (JiuqingSong)
approved these changes
Aug 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Merge the latest
masterchanges intoreleaseand bump the main RoosterJS package group from9.57.0to9.58.0.Also bump Legacy Adapter to
8.66.2and Rooster React9.0.6.Changes included
<label>in defaultProcessorMap to prevent spurious div injection on paste #3416 Register<label>indefaultProcessorMapto prevent spurious div injection on paste (Register<label>in defaultProcessorMap to prevent spurious div injection on paste #3416)How to test
yarn build.yarn test:fast.