diff --git a/.changeset/pre.json b/.changeset/pre.json index e7317ad66d..d57f4ce6b9 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -62,7 +62,49 @@ "@tiptap/starter-kit": "3.30.3", "@tiptap/static-renderer": "3.30.3", "@tiptap/suggestion": "3.30.3", - "@tiptap/vue": "3.30.3" + "@tiptap/vue": "3.30.3", + "@tiptap/codemod-v3-to-v4": "0.1.0" }, - "changesets": [] + "changesets": [ + "2026-08-20-ordered-list-markdown-indent", + "2026-08-21-fix-hash-on-inline-nodes", + "2026-08-23-inline-math-lookbehind", + "2026-08-23-youtube-missing-src", + "2026-08-25-remove-deprecated-packages", + "2026-08-26-cross-editor-drop-destroyed-source", + "2026-08-26-fix-markdown-whitespace-only-marked-text", + "2026-08-26-markdown-attribute-redos", + "2026-08-26-validate-collaboration-caret-colors", + "2026-08-28-react-shared-node-view-selection", + "2026-08-31-bump-prosemirror-view", + "2026-08-31-react-nodeview-selection-state", + "2026-08-31-splitblock-stale-cansplit", + "2026-09-02-fix-code-span-backtick-fence", + "2026-09-02-table-cell-pipe-escape", + "2026-09-03-ordered-list-markdown-linear-scan", + "2026-09-04-react-editor-namespace-ts2694", + "2026-09-06-table-markdown-cell-separator", + "2026-09-07-preserve-table-cell-selection-context-menu", + "2026-09-08-core-get-changed-ranges-mapping", + "2026-09-08-validate-css-style-values", + "2026-09-10-space-ends-pasted-link", + "2026-09-14-react-mobile-enter", + "2026-09-16-atom-block-indentation", + "2026-09-20-decode-numeric-html-entities", + "2026-09-23-ordered-list-courtesy-titles", + "2026-09-25-static-renderer-audio-closing-tag", + "2026-09-25-static-renderer-stray-commas", + "2026-09-29-keep-textbox-role-on-set-options", + "2026-09-29-restore-input-rule-markers", + "2026-09-29-update-prosemirror", + "fix-ios-ignore-mutation-contentdom", + "fix-markdown-hook-extension-context", + "fix-merge-attributes-prototype", + "fix-split-list-item-checked-state", + "join-items-isolating", + "nodeview-leaf-selection-mutations", + "omit-default-span-attributes", + "pin-react-vue-menu-deps", + "remove-vue-2" + ] } diff --git a/CHANGELOG.md b/CHANGELOG.md index bdbd3d9e6c..cc49fef6b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,1445 @@ # Releases +## v4.0.0-next.0 + +### @tiptap/core + +#### Patch Changes + +- c402400: Nested lists exported to Markdown now keep their hierarchy when the file is read back by other Markdown tools. +- c402400: Fix a `TypeError` thrown when the source editor is destroyed right after dragging content into another editor. +- c402400: Fix a denial-of-service risk where crafted block or inline Markdown attributes could consume excessive CPU and block the browser or server event loop. +- c402400: `splitBlock` no longer throws `TransformError: Inserted content deeper than insertion position` when the selection spans block boundaries (for example from the start of one paragraph into another block, or across an isolating node). The command now returns `false` when the split is not possible. +- c402400: Large transactions (for example a big paste with Link autolink enabled) are processed faster. +- c402400: Prevent extra CSS declarations from being rendered from editor content. +- c402400: Atom block directives (`:::name {…} :::`) indented by up to 3 spaces are now tokenized, matching CommonMark indentation rules for block constructs. +- c402400: Numeric HTML entities (`'`, `'`) are now decoded when parsing markdown, instead of showing up as literal text in the editor. +- c402400: The editor element keeps `role="textbox"` after `setOptions()` when `editorProps.attributes` is set. Before, a re-render in React replaced the default role with the user attributes. Attributes passed as a function now get the default role as well. +- c402400: Undoing an input rule restores the Markdown characters that triggered it when using Collaboration. +- c402400: Fix freezes in framework-based node views on iOS and Android +- c402400: Bind `parseMarkdown` and `renderMarkdown` to the configured extension so hooks can read `this.options` and `this.name` without an Editor. +- c402400: Prevent untrusted HTML attributes from changing an object's prototype when merged with `mergeAttributes`. +- c402400: Pressing Enter before the text of a checked task item now leaves the new empty item unchecked and the item with the text checked. Attributes declared with `keepOnSplit: false` now reset on the new item, not on the one that keeps the text. +- c402400: Stop joinItemForward and joinItemBackward from joining across isolating nodes. +- c402400: Node views without a `contentDOM` no longer ignore selection mutations, so ProseMirror moves the caret back to a valid position when the browser places it inside the node view. +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/pm@4.0.0-next.0 + +### @tiptap/extension-list + +#### Patch Changes + +- c402400: Nested lists exported to Markdown now keep their hierarchy when the file is read back by other Markdown tools. +- c402400: Parsing large Markdown documents that contain ordered lists is much faster. A 578KB document went from about 19s to about 160ms. +- c402400: Courtesy titles such as "Ms." and "Dr." are no longer parsed as ordered-list markers. Numbered, lettered, and roman lists are unchanged. +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + - @tiptap/pm@4.0.0-next.0 + +### @tiptap/ai-toolkit + +#### Patch Changes + +- c402400: The Server AI Toolkit no longer adds `_hash` to inline nodes, including inline Image, Audio, YouTube and Twitch nodes. +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + - @tiptap/pm@4.0.0-next.0 + +### @tiptap/extension-mathematics + +#### Patch Changes + +- c402400: The mathematics extension no longer crashes the editor in older WebKit browsers and WKWebView. +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + - @tiptap/pm@4.0.0-next.0 + +### @tiptap/extension-youtube + +#### Patch Changes + +- c402400: Pasting a YouTube iframe without a `src` attribute no longer crashes the editor. The embed is kept without a source. +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + +### @tiptap/starter-kit + +#### Major Changes + +- c402400: StarterKit no longer installs the deprecated `@tiptap/extension-dropcursor`, `@tiptap/extension-gapcursor`, `@tiptap/extension-list-item`, and `@tiptap/extension-list-keymap` packages. We will not publish further updates to these packages. StarterKit still includes their extensions, so you do not need to change your configuration. + + If you import these extensions directly, switch to the new packages: `Dropcursor` and `Gapcursor` from `@tiptap/extensions`, and `ListItem` and `ListKeymap` from `@tiptap/extension-list`. + +#### Patch Changes + +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + - @tiptap/extension-list@4.0.0-next.0 + - @tiptap/pm@4.0.0-next.0 + - @tiptap/extension-code@4.0.0-next.0 + - @tiptap/extension-link@4.0.0-next.0 + - @tiptap/extension-blockquote@4.0.0-next.0 + - @tiptap/extension-bold@4.0.0-next.0 + - @tiptap/extension-code-block@4.0.0-next.0 + - @tiptap/extension-document@4.0.0-next.0 + - @tiptap/extension-hard-break@4.0.0-next.0 + - @tiptap/extension-heading@4.0.0-next.0 + - @tiptap/extension-horizontal-rule@4.0.0-next.0 + - @tiptap/extension-italic@4.0.0-next.0 + - @tiptap/extension-paragraph@4.0.0-next.0 + - @tiptap/extension-strike@4.0.0-next.0 + - @tiptap/extension-text@4.0.0-next.0 + - @tiptap/extension-underline@4.0.0-next.0 + - @tiptap/extensions@4.0.0-next.0 + - @tiptap/extension-bullet-list@4.0.0-next.0 + - @tiptap/extension-ordered-list@4.0.0-next.0 + +### @tiptap/markdown + +#### Patch Changes + +- c402400: Fix Markdown serialization of whitespace-only marked text. +- c402400: Fix Markdown serialization of inline code containing backticks +- c402400: Bind `parseMarkdown` and `renderMarkdown` to the configured extension so hooks can read `this.options` and `this.name` without an Editor. +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + - @tiptap/pm@4.0.0-next.0 + +### @tiptap/extension-mention + +#### Patch Changes + +- c402400: Fix a denial-of-service risk where crafted block or inline Markdown attributes could consume excessive CPU and block the browser or server event loop. +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + - @tiptap/pm@4.0.0-next.0 + - @tiptap/suggestion@4.0.0-next.0 + +### @tiptap/extension-collaboration-caret + +#### Patch Changes + +- c402400: Fixed a bug which allowed potentially unsafe color values being sent by other clients. Those unsafe colors received from collaboration users are now ignored. +- c402400: Prevent extra CSS declarations from being rendered from editor content. +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + - @tiptap/pm@4.0.0-next.0 + +### @tiptap/react + +#### Minor Changes + +- c402400: Align `selected` with ProseMirror node selections by default, expose text selections through `selectionInside`, and keep `selectedOnTextSelection` compatible. + +#### Patch Changes + +- c402400: Reduce overhead in React node views on documents with many nodes. +- c402400: Fix a TypeScript error (TS2694) in the shipped type declarations when `skipLibCheck` is turned off. +- c402400: Fix Enter and Shift-Enter inside React node views on iOS and Android. +- c402400: `@tiptap/react` and `@tiptap/vue` now pin their optional `@tiptap/extension-bubble-menu` and `@tiptap/extension-floating-menu` dependencies to the exact version they were released with, so installing a specific version gives you that version's menu extensions instead of the newest ones. +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + - @tiptap/pm@4.0.0-next.0 + +### @tiptap/pm + +#### Patch Changes + +- c402400: Bump `prosemirror-view` to `^1.42.3`, which fixes an XSS vulnerability where pasting crafted HTML could run arbitrary JavaScript (GHSA-c8x8-7fp4-3x9w). +- c402400: Update ProseMirror dependencies to their latest versions. + +### @tiptap/extension-code + +#### Patch Changes + +- c402400: Fix Markdown serialization of inline code containing backticks +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + +### @tiptap/extension-table + +#### Patch Changes + +- c402400: Table cells exported to Markdown now escape literal pipe characters, so the cell content survives when the output is read back. +- c402400: Multi-block table cells no longer leak a U+001F control character into Markdown. +- c402400: Right-clicking a cell inside a multi-cell table selection no longer collapses that selection. +- c402400: Prevent extra CSS declarations from being rendered from editor content. +- c402400: Table cells and headers no longer render the default `colspan="1"` and `rowspan="1"` attributes. Cells that actually span still render them, matching how prosemirror-tables serializes spans. +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + - @tiptap/pm@4.0.0-next.0 + +### @tiptap/extension-highlight + +#### Patch Changes + +- c402400: Prevent extra CSS declarations from being rendered from editor content. +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + +### @tiptap/extension-text-align + +#### Patch Changes + +- c402400: Prevent extra CSS declarations from being rendered from editor content. +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + +### @tiptap/extension-text-style + +#### Patch Changes + +- c402400: Prevent extra CSS declarations from being rendered from editor content. +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + +### @tiptap/extension-link + +#### Patch Changes + +- c402400: Typing spaces after a link no longer extends the link, including multiple spaces inserted in one transaction. Formatting changes and undo/redo preserve existing linked whitespace. +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] +- Updated dependencies [c402400] + - @tiptap/core@4.0.0-next.0 + - @tiptap/pm@4.0.0-next.0 + +### @tiptap/static-renderer + +#### Patch Changes + +- c402400: Render `