Commit Graph

343 Commits

Author SHA1 Message Date
bdbch
e3c5c7cf6f add support for react 19 ref props (#6405) (#6412)
* add support for react 19 ref props (#6405)

* add support for react 19 ref props

* added changeset

* Update packages/react/src/ReactRenderer.tsx

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

* use partial imports instead of importing the whole React library

* fix react renderer not passing ref prop

* upgrade dev dependencies for react

* updated lockfile

* upgrade dev dependencies

* update package.json

* remove optionalDependencies and move react deps to peerDependencies

* enhance ReactRenderer for React 19 compatibility and improve ref handling

* remove unused 'node' property from ReactNodeViewProps type definition

* fix: update ref type in ReactNodeView to be generic

* fix: replace FunctionComponent with NamedExoticComponent for better performance in ReactNodeView

* cloned react renderer element props to avoid side effects

---------

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

* fix: update ReactNodeViewProps to allow null ref values (#6415)

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-05 08:47:50 +02:00
Arnau Gómez Farell
783ff1ab58
fix: modify test body to reflect the test description 2025-05-05 12:14:58 +02:00
Arnau Gómez Farell
b0136eca8c
fix: failing test 2025-05-05 12:14:03 +02:00
Arnau Gómez Farell
fb4a16b61d
fix: failed test run 2025-05-05 12:06:36 +02:00
zzxming
ab7a2ae73c feat(text-align): add toggle command (#6101)
* feat(text-align): add toggle command

* docs: changeset

* Update .changeset/spotty-cobras-shake.md

---------

Co-authored-by: bdbch <6538827+bdbch@users.noreply.github.com>
2025-04-30 03:09:31 +02:00
teamclouday
81009d2160
Add option to set rel on youtube embed link (#6083)
* add option to set rel on youtube embed link

* rename parameter and add changeset

* change to patch

* fix lint and try to fix for tests

---------

Co-authored-by: bdbch <6538827+bdbch@users.noreply.github.com>
2025-03-27 23:32:02 +01:00
Nick Perez
839eb476e0
docs: add a custom shortcuts example (#5981)
Some checks failed
build / lint (20) (push) Has been cancelled
build / test (20, map[name:Demos/Examples spec:./demos/src/Examples/**/*.spec.{js,ts}]) (push) Has been cancelled
build / test (20, map[name:Demos/Experiments spec:./demos/src/Experiments/**/*.spec.{js,ts}]) (push) Has been cancelled
build / test (20, map[name:Demos/Extensions spec:./demos/src/Extensions/**/*.spec.{js,ts}]) (push) Has been cancelled
build / test (20, map[name:Demos/GuideContent spec:./demos/src/GuideContent/**/*.spec.{js,ts}]) (push) Has been cancelled
build / test (20, map[name:Demos/GuideGettingStarted spec:./demos/src/GuideGettingStarted/**/*.spec.{js,ts}]) (push) Has been cancelled
build / test (20, map[name:Demos/Marks spec:./demos/src/Marks/**/*.spec.{js,ts}]) (push) Has been cancelled
build / test (20, map[name:Demos/Nodes spec:./demos/src/Nodes/**/*.spec.{js,ts}]) (push) Has been cancelled
build / test (20, map[name:Integration spec:./tests/cypress/integration/**/*.spec.{js,ts}]) (push) Has been cancelled
Publish / Release (20) (push) Has been cancelled
build / build (20) (push) Has been cancelled
2025-01-14 08:33:11 +01:00
Nick the Sick
44cae5badc
chore: update eslint
Some checks are pending
build / lint (20) (push) Waiting to run
build / test (20, map[name:Demos/Examples spec:./demos/src/Examples/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Experiments spec:./demos/src/Experiments/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Extensions spec:./demos/src/Extensions/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/GuideContent spec:./demos/src/GuideContent/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/GuideGettingStarted spec:./demos/src/GuideGettingStarted/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Marks spec:./demos/src/Marks/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Nodes spec:./demos/src/Nodes/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Integration spec:./tests/cypress/integration/**/*.spec.{js,ts}]) (push) Waiting to run
build / build (20) (push) Blocked by required conditions
Publish / Release (20) (push) Waiting to run
2024-12-31 11:14:13 +01:00
Nick the Sick
c791254f40
Merge branch 'main' into develop 2024-12-30 16:53:34 +01:00
bdbch
1c2fefe3d6
Fixed Link extension's commands not respecting XSS prevention via unallowed protocols (#5945)
* fixed link commands not respecting allowed protocols

* added changesets

* refactor(link): don't use throw for invalid uri handling
2024-12-19 12:16:03 +01:00
Ayu Nakata
a0d2f28036
feat(text-style): add mergeNestedSpanStyles option to merge nested spans #5720 (#5897)
Some checks failed
build / lint (20) (push) Has been cancelled
build / test (20, map[name:Demos/Examples spec:./demos/src/Examples/**/*.spec.{js,ts}]) (push) Has been cancelled
build / test (20, map[name:Demos/Experiments spec:./demos/src/Experiments/**/*.spec.{js,ts}]) (push) Has been cancelled
build / test (20, map[name:Demos/Extensions spec:./demos/src/Extensions/**/*.spec.{js,ts}]) (push) Has been cancelled
build / test (20, map[name:Demos/GuideContent spec:./demos/src/GuideContent/**/*.spec.{js,ts}]) (push) Has been cancelled
build / test (20, map[name:Demos/GuideGettingStarted spec:./demos/src/GuideGettingStarted/**/*.spec.{js,ts}]) (push) Has been cancelled
build / test (20, map[name:Demos/Marks spec:./demos/src/Marks/**/*.spec.{js,ts}]) (push) Has been cancelled
build / test (20, map[name:Demos/Nodes spec:./demos/src/Nodes/**/*.spec.{js,ts}]) (push) Has been cancelled
build / test (20, map[name:Integration spec:./tests/cypress/integration/**/*.spec.{js,ts}]) (push) Has been cancelled
Publish / Release (20) (push) Has been cancelled
build / build (20) (push) Has been cancelled
2024-12-03 16:49:26 +01:00
bdbch
ce914528d3
Force add text align styles when a defaultAlignment is set (#5891)
Some checks are pending
build / lint (20) (push) Waiting to run
build / test (20, map[name:Demos/Examples spec:./demos/src/Examples/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Experiments spec:./demos/src/Experiments/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Extensions spec:./demos/src/Extensions/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/GuideContent spec:./demos/src/GuideContent/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/GuideGettingStarted spec:./demos/src/GuideGettingStarted/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Marks spec:./demos/src/Marks/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Nodes spec:./demos/src/Nodes/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Integration spec:./tests/cypress/integration/**/*.spec.{js,ts}]) (push) Waiting to run
build / build (20) (push) Blocked by required conditions
Publish / Release (20) (push) Waiting to run
* fix: make TextAlign defaultAlignment setting work as expected

* allow defaultAlignment to be nullable, dont add text align if defaultAlignment is null

* added changeset

* remove default alignment from demo

* refactor text-align logic

* adjust tests to expect the new behavior

* adjust vue tests to expect the new behavior

---------

Co-authored-by: Joe <joe@Joes-MBP.lan>
2024-12-02 10:54:06 +01:00
Dominik Biedebach
425332eea9 remove issue demo 2024-11-30 14:23:41 +01:00
bdbch
d9b6ef5ce2
fix emptyTextBlock detection to handle leaf nodes too (#5838)
* fix: #4327

* merge forked PR

---------

Co-authored-by: Tony Hallett <tonyhallett74@gmail.com>
2024-11-30 14:19:16 +01:00
bdbch
ca6269e928
feat: allow support for drag-and-drop between multiple editors (#5893)
* feat: drag and drop across multi editors

* feat: drag and drop across multi editors optimize

* feat: drag and drop across multi editors optimize

* added changeset

---------

Co-authored-by: songhandong <songhandong@baidu.com>
Co-authored-by: songispm <38745323+songispm@users.noreply.github.com>
Co-authored-by: songispm <songispm@gmail.com>
2024-11-30 13:16:45 +01:00
Alex Casillas
f49ef7cabb
fix: remove unused spec for font family extension (#5886)
Some checks are pending
build / lint (20) (push) Waiting to run
build / test (20, map[name:Demos/Examples spec:./demos/src/Examples/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Experiments spec:./demos/src/Experiments/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Extensions spec:./demos/src/Extensions/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/GuideContent spec:./demos/src/GuideContent/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/GuideGettingStarted spec:./demos/src/GuideGettingStarted/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Marks spec:./demos/src/Marks/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Nodes spec:./demos/src/Nodes/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Integration spec:./tests/cypress/integration/**/*.spec.{js,ts}]) (push) Waiting to run
build / build (20) (push) Blocked by required conditions
Publish / Release (20) (push) Waiting to run
* fix: add new spec to check for multiple font families and fix the demo

---------

Co-authored-by: Alex Casillas <alexvcasilas@gmail.com>
2024-11-28 11:23:33 +01:00
Alex Casillas
a8c8db60b6
fix: font family extesion demo (#5880)
Some checks are pending
build / lint (20) (push) Waiting to run
build / test (20, map[name:Demos/Examples spec:./demos/src/Examples/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Experiments spec:./demos/src/Experiments/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Extensions spec:./demos/src/Extensions/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/GuideContent spec:./demos/src/GuideContent/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/GuideGettingStarted spec:./demos/src/GuideGettingStarted/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Marks spec:./demos/src/Marks/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Demos/Nodes spec:./demos/src/Nodes/**/*.spec.{js,ts}]) (push) Waiting to run
build / test (20, map[name:Integration spec:./tests/cypress/integration/**/*.spec.{js,ts}]) (push) Waiting to run
build / build (20) (push) Blocked by required conditions
Publish / Release (20) (push) Waiting to run
Co-authored-by: Alex Casillas <alexvcasilas@gmail.com>
2024-11-27 17:22:45 +01:00
SanderLeenders
38abfdf9ea
fix(font-family): Prevent removal of quotes in parseHTML (#5828)
Removed the quote removal step in font-family parsing to support fonts that contain both spaces and numbers, such as "Exo 2", which require quotes for proper recognition.

---------

Co-authored-by: Sander <sander@blueberry.nl>
Co-authored-by: Nick Perez <nicholas.perez@tiptap.dev>
2024-11-17 14:56:26 +01:00
Nick Perez
62c6dddf80
fix(link): add backwards compat by deprecating validate and using isAllowedUri instead (#5812) 2024-11-07 13:18:01 +01:00
Éric Le Maître
94a8d258f8
fix(vue-3): on editor destruction, transition smoothly (#5772) 2024-11-07 09:19:46 +01:00
Armando Guarino
585f6ef77e test: improve url parsing logic 2024-11-06 15:08:30 +01:00
Armando Guarino
035862b698 refactor: update tests url checking logic and comments 2024-11-06 14:11:48 +01:00
Armando Guarino
444e6e5a11 refactor: adjust validate and add shouldAutoLink to improve URL handling 2024-11-06 13:43:54 +01:00
Héctor Chong
077c540cf9
docs: add drag handle demo for React (#5783) 2024-10-30 10:44:45 +01:00
Rägnar O'ock
152390130e
fix(table): set min-width for cols #5435 (#5464) 2024-10-30 10:31:25 +01:00
Armando Guarino
6b2df67219
fix: add zero-width space to resolve cursor selection issue (#5774) 2024-10-28 14:19:25 +01:00
Nick Perez
f95b13e93f
feat(core): allow nodes and fragments to be inserted into the editor using insertContentAt command #5764 (#5766) 2024-10-25 16:32:18 +02:00
Nick the Sick
f89a6d9f55
Merge branch 'main' into develop 2024-10-22 15:10:41 +02:00
Nick Perez
873a67c6e3
feat: in a collab setting, disable transactions that are trying to sync invalid content (#5207)
When collaborating on a document, a client may send changes which are invalid to the current client. This change makes it so that the client can be disabled from synchronizing any further changes to avoid the default behavior of stripping unknown content. This would allow the other client to continue editing on the document while still synchronizing any known changes.
2024-10-21 17:15:06 +02:00
Nick Perez
ffb51d3b7e
fix(core): respect the editor's parseOptions (#5742)
Co-authored-by: guarmo <armando.guarino@tiptap.dev>
2024-10-21 12:55:35 +02:00
trry
7ddc1af5e9
chore: delete duplicate name (#5732) 2024-10-20 22:33:20 +02:00
Nick the Sick
bfcf6d94e8
test: use id for tests 2024-10-18 16:36:11 +02:00
Éric Le Maître
364231a1bd
Fix editor destruction at the end of Vue transition (#5648)
* wip: destruction éditeur

* fix: replacing DOM nodes at unmount

* fix: event for useEditor destroy

* chore: Generating changeset

* chore: generating changeset

* chore: delete duplicate changeset

* revert: note tutorial

* feat: add Vue transition example

* fix: test for Vue transition

* fix: components within editor

* chore: remove useless ref
2024-10-14 10:26:12 +02:00
Jaap van Hoek
21df331b60
fix(table): respect resizeable columns colwidths (#4955) 2024-10-04 14:17:08 +02:00
Nick Perez
6834a7f7d6
build: type defs only emit for a single package's code (#5665) 2024-09-26 14:51:00 +02:00
Sven Adlung
cbe06d12db
fix(vue-3): late-registering plugins #5259 (#5616) 2024-09-18 14:46:45 +02:00
Nick the Sick
e0c4db9674
revert: "fix(core): handle macOS text expansion properly in InputRules (#5261)"
This reverts commit 88e310b144.
2024-09-16 06:19:37 +02:00
Ricardo Amaral
88e310b144
fix(core): handle macOS text expansion properly in InputRules (#5261) 2024-08-22 12:34:27 +02:00
Nick Perez
07fa49d026
fix: preserve attributes of toggled node #3644 (#5489)
I only feel comfortable copying the attributes of the current node if the selection is only within a single node (I don't know what is expected if you had a selection of multiple nodes, the intersection of the attributes maybe?)

---------

Co-authored-by: Dominik Biedebach <dominik.biedebach@tiptap.dev>
2024-08-21 14:03:57 +02:00
Nick Perez
6a0f4f30f8
fix(react): attempt to cleanup editor instances, on creation #5492 (#5496)
The core of the change ended up being quite simple, because we can create the editor within the first render, we need to already schedule it's destruction.
Scheduling a destruction, ensures that an instance that was created in that first render pass can be cleaned up.
Waiting one more tick than before ensures that we don't accidentally destroy an editor instance that could actually be valid in the next render pass.

In StrictMode, there will be two editor instances created, the first will be created & quickly destroyed in 2 ticks.
In Normal React, there will only ever be 1 instance created and destroyed only on unmount.
2024-08-15 08:55:42 +02:00
Nick the Sick
2c6590b3d4
fix: update docs and add tests for collaboration and priority docs 2024-08-12 11:14:41 +02:00
Nick Perez
d6e56c41e3
fix(extension-code-block-lowlight): use lowlight v3 and update demos (#5374) 2024-08-06 13:53:58 +02:00
Nick Perez
7c8889a2a6
fix(react): optimize useEditor and useEditorState to reduce number of instances created while being performant #5432 (#5445) 2024-08-05 17:46:19 +02:00
Nick the Sick
4b9d8a3346
chore: cleanup 2024-07-30 09:07:53 +02:00
Nick Perez
99d7820cbb
fix(react): always cleanup old editor instances (#5414) 2024-07-30 09:06:31 +02:00
Raman Paulau
f7f644f7b2
fix(vue-3): set editor's appContext.provide to forward inject chain (#5397)
Vue internally uses prototype chain to preserve injects across the entire component chain. Thus should avoid Object.assign or spread operator as it won't copy the prototype. All correct provides will be already present on `instance.provides`.
2024-07-29 17:02:15 +02:00
Moch. Irfan Rafif
c7f55500ee
fix(extension-table): correctly set min-width for table (#4684) 2024-07-24 14:16:48 +02:00
Nick the Sick
9e0e167885
fix(link): use the view's editable property as the indicator instead 2024-07-23 12:21:18 +02:00
Nick Perez
1110280b2b
fix(react): useEditor should not destroy still mounted instances (#5338)
This forces the editor to re-use the editor instance that existed prior to an unmount and remount of the same component.
This fixes a bug in `React.StrictMode` introduced with the latest performance updates by PR #5161
2024-07-13 10:59:33 +02:00
Nick Perez
df5609cdff
fix: default to rendering the editor immediately, while staying backward compatible (#5161)
* fix: default to rendering the editor immediately, while staying backward compatible

* feat: add `useEditorWithState` hook for extracting state and editor instance simultaneously

* feat(react): add `useEditorState` hook for subscribing to selected editor state

* docs: add an example to show the concept

* chore: add changeset
2024-07-10 11:41:43 +02:00