diff --git a/.changeset/chatty-monkeys-hear.md b/.changeset/chatty-monkeys-hear.md new file mode 100644 index 000000000..8f8d01daf --- /dev/null +++ b/.changeset/chatty-monkeys-hear.md @@ -0,0 +1,5 @@ +--- +"@tiptap/extension-list-keymap": patch +--- + +Fix backspace behavior when selection is not collapsed diff --git a/.changeset/five-flowers-eat.md b/.changeset/five-flowers-eat.md new file mode 100644 index 000000000..a44e7c58d --- /dev/null +++ b/.changeset/five-flowers-eat.md @@ -0,0 +1,5 @@ +--- +"@tiptap/vue-3": patch +--- + +Fix editor destruction before transition end if editor is nested diff --git a/.changeset/five-mice-turn.md b/.changeset/five-mice-turn.md new file mode 100644 index 000000000..a7f0aa1aa --- /dev/null +++ b/.changeset/five-mice-turn.md @@ -0,0 +1,5 @@ +--- +"@tiptap/extension-bubble-menu": patch +--- + +Add `element: HTMLElement` to `shouldShow` options within the BubbleMenu options. diff --git a/.changeset/lemon-berries-change.md b/.changeset/lemon-berries-change.md new file mode 100644 index 000000000..2748fe225 --- /dev/null +++ b/.changeset/lemon-berries-change.md @@ -0,0 +1,5 @@ +--- +"@tiptap/core": patch +--- + +feat: add `once` to EventEmitters diff --git a/.changeset/mean-moose-bow.md b/.changeset/mean-moose-bow.md new file mode 100644 index 000000000..6598c1e0e --- /dev/null +++ b/.changeset/mean-moose-bow.md @@ -0,0 +1,5 @@ +--- +"@tiptap/vue-2": patch +--- + +Pin vue-ts-types to a working version for vue-2 diff --git a/.changeset/polite-buttons-wash.md b/.changeset/polite-buttons-wash.md new file mode 100644 index 000000000..69aa677ea --- /dev/null +++ b/.changeset/polite-buttons-wash.md @@ -0,0 +1,5 @@ +--- +"@tiptap/react": patch +--- + +React 19 is now allowed as a peer dep, we did not have to make any changes for React 19 diff --git a/.changeset/shy-pigs-exercise.md b/.changeset/shy-pigs-exercise.md new file mode 100644 index 000000000..16e4d26ff --- /dev/null +++ b/.changeset/shy-pigs-exercise.md @@ -0,0 +1,6 @@ +--- +"@tiptap/core": patch +"@tiptap/extension-hard-break": patch +--- + +Add Node `linebreakReplacement` support and enable on hard-break nodes diff --git a/.changeset/swift-keys-collect.md b/.changeset/swift-keys-collect.md new file mode 100644 index 000000000..d9a6ebf45 --- /dev/null +++ b/.changeset/swift-keys-collect.md @@ -0,0 +1,5 @@ +--- +"@tiptap/core": patch +--- + +Improve handling of selections with `updateAttributes`. Should no longer modify parent nodes of the same type. diff --git a/.changeset/witty-olives-protect.md b/.changeset/witty-olives-protect.md new file mode 100644 index 000000000..0893a2fde --- /dev/null +++ b/.changeset/witty-olives-protect.md @@ -0,0 +1,6 @@ +--- +"@tiptap/extension-link": patch +"tiptap-demos": patch +--- + +The link extension's `validate` option now applies to both auto-linking and XSS mitigation. While, the new `shouldAutoLink` option is used to disable auto linking on an otherwise valid url. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5a7ab416a..e59b86f40 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -36,7 +36,7 @@ Before submitting a pull request: - Check the codebase to ensure that your feature doesn't already exist. - Check the pull requests to ensure that another person hasn't already submitted the feature or fix. -Before commiting: +Before committing: - Make sure to run the tests and linter before committing your changes. - If you are making changes to one of the packages, make sure to **always** include a [changeset](https://github.com/changesets/changesets) in your PR describing **what changed** with a **description** of the change. Those are responsible for changelog creation diff --git a/demos/src/Examples/Transition/Vue/Extension.js b/demos/src/Examples/Transition/Vue/Extension.js index 9dede7bb0..b83694ad7 100644 --- a/demos/src/Examples/Transition/Vue/Extension.js +++ b/demos/src/Examples/Transition/Vue/Extension.js @@ -1,7 +1,7 @@ import { mergeAttributes, Node } from '@tiptap/core' import { VueNodeViewRenderer } from '@tiptap/vue-3' -import Component from './Component.vue' +import Component from './VueComponent.vue' export default Node.create({ name: 'vueComponent', diff --git a/demos/src/Examples/Transition/Vue/ParentComponent.vue b/demos/src/Examples/Transition/Vue/ParentComponent.vue new file mode 100644 index 000000000..7cebbc9a9 --- /dev/null +++ b/demos/src/Examples/Transition/Vue/ParentComponent.vue @@ -0,0 +1,36 @@ + + + diff --git a/demos/src/Examples/Transition/Vue/Component.vue b/demos/src/Examples/Transition/Vue/VueComponent.vue similarity index 100% rename from demos/src/Examples/Transition/Vue/Component.vue rename to demos/src/Examples/Transition/Vue/VueComponent.vue diff --git a/demos/src/Examples/Transition/Vue/index.spec.js b/demos/src/Examples/Transition/Vue/index.spec.js index 5bceb87e1..39100317d 100644 --- a/demos/src/Examples/Transition/Vue/index.spec.js +++ b/demos/src/Examples/Transition/Vue/index.spec.js @@ -3,26 +3,30 @@ context('/src/Examples/Transition/Vue/', () => { cy.visit('/src/Examples/Transition/Vue/') }) - it('should not have an active tiptap instance but a button', () => { + it('should have two buttons and no active tiptap instance', () => { cy.get('.tiptap').should('not.exist') - cy.get('#toggle-editor').should('exist') + cy.get('#toggle-direct-editor').should('exist') + cy.get('#toggle-nested-editor').should('exist') }) - it('clicking the button should show the editor', () => { - cy.get('#toggle-editor').click() + it('clicking the buttons should show two editors', () => { + cy.get('#toggle-direct-editor').click() + cy.get('#toggle-nested-editor').click() cy.get('.tiptap').should('exist') cy.get('.tiptap').should('be.visible') }) - it('clicking the button again should hide the editor', () => { - cy.get('#toggle-editor').click() + it('clicking the buttons again should hide the editors', () => { + cy.get('#toggle-direct-editor').click() + cy.get('#toggle-nested-editor').click() cy.get('.tiptap').should('exist') cy.get('.tiptap').should('be.visible') - cy.get('#toggle-editor').click() + cy.get('#toggle-direct-editor').click() + cy.get('#toggle-nested-editor').click() cy.get('.tiptap').should('not.exist') }) diff --git a/demos/src/Examples/Transition/Vue/index.vue b/demos/src/Examples/Transition/Vue/index.vue index 46e65dc0c..6bd914949 100644 --- a/demos/src/Examples/Transition/Vue/index.vue +++ b/demos/src/Examples/Transition/Vue/index.vue @@ -1,12 +1,18 @@