Commit Graph

2498 Commits

Author SHA1 Message Date
Nick the Sick
2c6590b3d4
fix: update docs and add tests for collaboration and priority docs 2024-08-12 11:14:41 +02:00
Nick the Sick
e11aa0de22
chore: initialize the collaboration cursor after the collaboration plugin 2024-08-12 11:02:32 +02:00
Nantris
222f2aca62
feat: update splitListItem to allow setting attrs (#4253) 2024-08-11 22:38:01 +02:00
Stepan Yurtsiv
08b4319215
fix(link): Do not convert link href to number or boolean (#5391) 2024-08-11 19:48:54 +02:00
Nick Perez
8ea34e405e
fix(react): event handlers called once per event type #5463 (#5465) 2024-08-10 11:54:49 +02:00
Bastian Rihm
da7b337c3b
feat(ordered-list): add type attribute (#5344) 2024-08-09 08:00:14 +02:00
Nick Perez
e31673d347
fix(react): resolves React NodeView performance issues (#5273) 2024-08-09 07:56:19 +02:00
David Newell
86a855355f
feat(core): add getContent to nodePasteRules (#4212) 2024-08-09 07:34:17 +02:00
Nick Perez
c7fd0f80af
fix(react): update the types to reflect true options #5459 (#5460) 2024-08-08 08:27:10 +02:00
Nick the Sick
7280e2931e
docs: onTransaction has an editor prop 2024-08-07 17:50:04 +02:00
Nick the Sick
597c78156a
docs: update types to reflect setting plugin and pluginkey for meta 2024-08-07 17:29:58 +02:00
Nick Perez
c0e631f875
fix: bump priority of text-style extension fixes #4742 (#5457) 2024-08-07 15:39:49 +02:00
wagich
be63e59050
fixes vue 3 custom node views when using class components (#5410) 2024-08-07 15:08:42 +02:00
github-actions[bot]
535dcccb40
chore(release): publish version v2.5.9 (#5451)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-06 17:03:26 +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
4b215f794e
fix(code-block): respect defaultLanguage on code-block-lowlight add option to code-block (#5406) 2024-08-06 12:25:01 +02:00
Nick Perez
174aefe0f1
fix(collaboration): update y-prosemirror, respect onFirstRender (#5411) 2024-08-06 11:23:20 +02:00
Nick Perez
ae0254db97
feat(core): add ignoreWhitespace option to isNodeEmpty (#5446) 2024-08-06 10:05:50 +02:00
Nick Perez
efb27faf54
fix(core): use correct position for getMarksBetween (#5412) 2024-08-05 20:46:23 +02:00
Nick Perez
c1ff1b0d4d
fix(placeholder): add back-compat to deprecated placeholder functionality (#5409) 2024-08-05 18:09:10 +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 Perez
84ebd511d2
fix(core): resolve isNodeEmpty criteria #5415 (#5419) 2024-08-01 09:02:34 +02:00
Ricardo Amaral
068559d0ac
chore: Use proper types for configure methods (Extension/Mark/Node) (#5421) 2024-08-01 00:28:51 +02:00
Yuichiro Yamashita
6543f059ff
fix: allow task items to be parsed when only having <li data-checked instead of only when <li data-checked="true" (re-fix of #5366) (#5426)
* fix

* changeset
2024-08-01 00:25:29 +02:00
Rob LaFeve
0ec0af67b1
fix: use Array.from when converting Set (#5428) 2024-08-01 00:00:26 +02:00
github-actions[bot]
7d6c9399c6
chore(release): publish a new version 2.5.8 (#5408)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-30 09:13:28 +02:00
Nick Perez
99d7820cbb
fix(react): always cleanup old editor instances (#5414) 2024-07-30 09:06:31 +02:00
Martin Bokša
ce141c2e69
chore(extension-table): remove unnecessary @ts-ignore, update view type (#5387) 2024-07-29 17:13:49 +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
Nick Perez
a08bf85cf0
fix: do not consider text content as atoms resolve #5405 (#5407) 2024-07-29 08:54:17 +02:00
bdbch
44e4eca47a
Shared rollup config (#5403)
* add one shared rollup config

* rename to baseConfig
2024-07-27 12:46:39 +02:00
Rirax
940f9d5266
fix(vue-3): copy missing provided parent values (#5396)
Co-authored-by: relchapt <reynald.lechapt@getmayday.co>
2024-07-26 15:43:18 +02:00
github-actions[bot]
a1c5120a4d
chore: publish a new release version (#5375)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-26 13:58:58 +02:00
Nick the Sick
d3e88e791d
fix: emit a contentError on inserting invalid content 2024-07-26 13:44:03 +02:00
Nick the Sick
42dc27aa4b
fix(react): if using a deps array, destroy the previous instance 2024-07-26 13:34:23 +02:00
Nick Perez
b012471755
fix(core): isNodeEmpty no longer considers attributes for it's checks (#5393) 2024-07-25 15:40:07 +02:00
Nick Perez
cc3497efd5
fix(core): address enableContentCheck insertion bug (#5390) 2024-07-24 17:43:30 +02:00
github-actions[bot]
52f717b3eb chore(release): publish a new release version 2024-07-24 16:58:54 +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
5283a51931
chore: widen the typing for GlobalAttributes 2024-07-24 13:59:10 +02:00
bdbch
fe1781fd63
Update prosemirror-view & prosemirror-tables to most recent version (#5385)
* upgrade prosemirror packages to latest versions

* added changeset

* update package-lock
2024-07-24 08:01:26 +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
c0e5398685
fix(link): do not open links twice when not editable #4877 (#5378) 2024-07-23 10:57:15 +02:00
Nick the Sick
35682d1322
fix(core): account for node attrs when checking if content is equal 2024-07-22 18:43:33 +02:00
hollykurt
4e5b2d89cd
fix(code-block): on arrow down move to next node (#4721) 2024-07-22 15:17:03 +02:00
Markus Greystone
618bca91e8
fix(core): adjust the splitBlock to return false when failed (#5371) 2024-07-22 15:10:29 +02:00
Lincoln Yan
2104f0fa70
fix: check that view is not destroyed before creating node views (#5334) 2024-07-22 14:38:25 +02:00
github-actions[bot]
22cb038997
chore: release version (#5368)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-22 13:24:28 +02:00
Nick Perez
ab8389a32c
fix(vue-3): reapply performance updates (#5373)
---------

Co-authored-by: relchapt <reynald.lechapt@getmayday.co>
Co-authored-by: Rirax <rlechapt@student.42.fr>
Co-authored-by: Segev Finer <segev@swimm.io>
2024-07-22 13:18:03 +02:00
Nick the Sick
3b67e8adc6
chore: update typings to not conflict with globals 2024-07-19 14:30:55 +02:00
Arturs Vonda
4cca382695
fix(core): take atom content entirely (#5321) 2024-07-19 13:49:15 +02:00
Yuichiro Yamashita
b47df57444
fix(extension-task-item): more flexible inputs for parsing 2024-07-18 12:37:55 +02:00
github-actions[bot]
46079c28a6
chore: publish version 2.5.4 (#5361)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-17 15:17:44 +02:00
Nick the Sick
dd7f9ac1c8
build: resolve default exports properly in cjs 2024-07-17 15:11:48 +02:00
github-actions[bot]
e1946c8623
chore(release): publish a new version (#5359)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-17 13:07:59 +02:00
Matic Zavadlal
70eebfdb0c
fix(react): useEditor hook now respects deps array and will re-initialize editor (#5353) 2024-07-17 13:04:39 +02:00
Nick the Sick
a2cce1f486
fix: backwards compat for whenNotEditable openOnClick option 2024-07-17 12:56:08 +02:00
github-actions[bot]
b97ce6a0e0
chore: publish 2.5.2 (#5358)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-17 09:30:36 +02:00
Nick Perez
07f4c03315
fix(core): configuring extensions should add to the parent's options not replace them (#5357)
* fix(core): configuring extensions should add to the parent's options not replace them

* fix: order of tests
2024-07-17 09:06:41 +02:00
github-actions[bot]
a21a122759 chore(release): publish a new pre-release version 2024-07-15 14:52:21 +02:00
Nick the Sick
8b586721b7
build: get tests going 2024-07-15 12:55:05 +02:00
Nick the Sick
ff04353b3e
revert: "fix(vue-3): faster component rendering (#5206)"
This reverts commit 31f3746491.
2024-07-15 12:32:42 +02:00
Nick the Sick
dbab8e42ea
revert: "fix(vue-3): fix editor.state updating too late during a transaction due to reactiveState fixes #4870 (#5252)"
This reverts commit 509676ed4a.
2024-07-15 12:21:12 +02:00
Nick the Sick
226a0dfe59
build: demos 2024-07-15 12:00:31 +02:00
Nick the Sick
e90ac35b0e
build: try to get demos working again 2024-07-15 11:46:15 +02:00
Nick the Sick
acf86b01d6
chore: update package version 2024-07-14 15:55:36 +02:00
Nick the Sick
9b566b9c35
chore: release version 2.5 2024-07-14 15:44:37 +02:00
Nick the Sick
fb4514946c
revert: "chore(release): publish a new pre-release version"
This reverts commit ff157042a3.
2024-07-14 15:04:56 +02:00
github-actions[bot]
ff157042a3 chore(release): publish a new pre-release version 2024-07-14 12:52:24 +02:00
github-actions[bot]
c15f89bb7e chore(release): publish a new pre-release version (pre) 2024-07-13 11:13:17 +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
github-actions[bot]
db0d007660
Publish a new pre-release version (pre) (#5328)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-11 11:53:34 +02:00
Alistair Smith
e902c12a88
refactor(react): flip order of useEditorState overloads
So that TypeScript will resolve the non-nullable one first, unless the editor is nullable, in which case the other one will resolve.
2024-07-11 10:07:13 +02:00
github-actions[bot]
91d8f5898a
Publish a new pre-release version (pre) (#5322)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-10 11:45:05 +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
github-actions[bot]
5c2f67f44d chore(release): publish a new pre-release version (pre) 2024-07-03 22:55:13 +02:00
Nick the Sick
6b7dacaedc
chore: make pm not rebuild everytime 2024-07-03 21:41:34 +02:00
github-actions[bot]
3f5be5ed7e chore(release): publish a new pre-release version (pre) 2024-07-03 21:30:07 +02:00
github-actions[bot]
1f87cd9411 chore(release): publish a new pre-release version (pre) 2024-07-03 20:56:00 +02:00
github-actions[bot]
a20b18cdf0 chore(release): publish a new pre-release version (pre) 2024-07-03 19:55:20 +02:00
github-actions[bot]
42af7a1b7b
chore: version packages (pre) (#5308)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-03 19:00:05 +02:00
Mathias Stang
d5e10dc4b0
fix: make blockquote shortcut work in starter-kit (#4995)
* fix: make blockquote shortcut work in starter-kit

Because blockquote uses Mod-Shift-b, and bold uses Mod-b,
the bold shortcut will override the blockquote shortcut if added
to the extensions later.

Fixes #4994

* chore: add changeset

---------

Co-authored-by: Nick Perez <nicholas.perez@tiptap.dev>
2024-07-03 18:43:35 +02:00
github-actions[bot]
4cbb09ef6d
chore: version packages
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-02 22:26:28 +02:00
Segev Finer
509676ed4a
fix(vue-3): fix editor.state updating too late during a transaction due to reactiveState fixes #4870 (#5252) 2024-07-02 21:58:46 +02:00
Nick the Sick
c96d332364
Merge branch 'main' into develop 2024-07-02 16:21:06 +02:00
github-actions[bot]
d1c5c97e95
chore: version Packages (pre) (#5280)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-02 05:31:09 +02:00
Nick Perez
89fefab9ac
fix: placeholders now check for empty content compared to their "true" empty state (#5278)
* fix: placeholders now check for empty content compared to their "true" empty state

* chore: add changeset
2024-06-28 09:05:43 +02:00
bdbch
10c537aac9 move CHANGELOG notice to correct file 2024-06-28 08:44:12 +02:00
bdbch
2a63d23ad3 switch from lerna to changesets for versioning and publishing (#5274)
* chore: get rid of lerna and install changesets

* chore: dont ignore demos in changesets

* chore: add deprecation notice for global CHANGELOG.md

* chore: remove commitlint from husky

* update package-lock

* join pre track for develop

* add new publish workflow with changesets

* update CONTRIBUTING guidelines

* fix typo in CONTRIBUTING

* update PR template

* rename release script to publish

* added pre actions

* use singular workflow for publishing
2024-06-28 08:28:59 +02:00
Nick the Sick
045d9871f1 chore: update package versions for prosemirror 2024-06-28 08:17:13 +02:00
bdbch
f3ff7cae3a move CHANGELOG notice to correct file 2024-06-27 18:19:22 +02:00
bdbch
58e43bb2ae
switch from lerna to changesets for versioning and publishing (#5274)
* chore: get rid of lerna and install changesets

* chore: dont ignore demos in changesets

* chore: add deprecation notice for global CHANGELOG.md

* chore: remove commitlint from husky

* update package-lock

* join pre track for develop

* add new publish workflow with changesets

* update CONTRIBUTING guidelines

* fix typo in CONTRIBUTING

* update PR template

* rename release script to publish

* added pre actions

* use singular workflow for publishing
2024-06-27 17:48:30 +02:00
Dominik Biedebach
6af368e703 chore: removed old rollup plugin sizes plugin 2024-06-27 16:15:04 +02:00
bdbch
8c017d88f6 chore: merged main branch into beta branch 2024-06-26 23:53:44 +02:00
Nick the Sick
45f58cae06
chore: update types 2024-06-26 22:47:07 +02:00
Nick the Sick
c121d53d19
refactor: fix types 2024-06-26 22:27:31 +02:00
Nick the Sick
05856fbe56
v2.5.0-beta.6 2024-06-26 11:14:55 +02:00
Nick the Sick
6f59052d79
chore: make prosemirrror-model a range 2024-06-26 09:22:57 +02:00
Nick the Sick
1cab33f26f
chore: update prosemirror-model dep to non-breaking version 2024-06-26 09:15:14 +02:00
Nick the Sick
0e96a2c35e
v2.5.0-beta.5 2024-06-25 17:00:21 +02:00
bdbch
81d3b8a671
feat(core): normalize setContent and insertContentAt (#4895)
When `parseOptions.whitespace === 'full' or parseOptions.whitespace === true` setting content will no longer strip whitespaces on setContent
2024-06-25 16:50:46 +02:00
Nick the Sick
2198991fda
fix: provide the error cause 2024-06-25 16:40:26 +02:00
Nick the Sick
1175b9c110
revert: reverts a52118c34b to fix centering extension issue #5254
https://github.com/ueberdosis/tiptap/issues/5254
2024-06-25 16:29:51 +02:00
Alec Larson
cd64e01ebd
chore(docs): fix @see links in Extension.ts (#5253) 2024-06-19 20:28:55 +02:00
Nick the Sick
08125c4000
v2.5.0-beta.4 2024-06-18 08:09:54 +02:00
Nick Perez
c540c7d2e8
fix: apply #5147 fix to marks and nodes resolves #4704 (#5156)
* fix: apply #5147 fix to marks and nodes

* fix: resolve Issue #4704 by reverting PR #4191

* test: more robust tests for nodes and marks too
2024-06-18 08:00:28 +02:00
Nick Perez
3556d5812b
fix(core): the whitespace value for a node was not being sent to prosemirror (#5245) 2024-06-18 06:54:06 +02:00
Nick Perez
2ef43e9251
fix(core): make exitable resolve it's value through inheritance (#5244) 2024-06-18 06:07:14 +02:00
Nazar
d122980cec
fix(core): update tabindex on state change (#5231) (#5232) 2024-06-14 05:35:50 +02:00
Daniel Pivovarov
33de6fef67
fix(horizontal-rule): fix insertion behavior (#4898) 2024-06-14 04:51:52 +02:00
Nick the Sick
d6dc1e0ccf
v2.5.0-beta.3 2024-06-12 09:17:13 +02:00
Yousef
fe78faab55
fix(core): mergeDeep now can merge nulls (#4088) 2024-06-12 08:36:44 +02:00
Nick Perez
171924ee49
revert: "fix: (vue-3) component rendering" (#5221)
This reverts commit 95a1d4b7de.
2024-06-12 07:39:57 +02:00
Rirax
31f3746491
fix(vue-3): faster component rendering (#5206) 2024-06-12 07:38:28 +02:00
Rirax
95a1d4b7de
fix(vue-3): faster component rendering (#5206) 2024-06-12 07:37:12 +02:00
Francisco Vergara
8d93070bbe
fix(suggestion): fixes re-rendering logic (#4380) 2024-06-12 07:30:55 +02:00
Nick the Sick
4e4c622e1b
refactor: rm circular dependency 2024-06-12 06:41:58 +02:00
Nick the Sick
747985b3a7
chore: update package versions for prosemirror 2024-06-11 23:03:14 +02:00
Nick the Sick
f4a7dbaf5c refactor: use the faster .eq method for determining equality 2024-06-08 10:42:45 +02:00
Nick the Sick
aee15c2874 fix: use a faster type check for determining if a fragment or not 2024-06-08 10:42:45 +02:00
Nick the Sick
3d3263911f feat: pass node & mark extensions as a contextual variable to addGlobalAttributes 2024-06-08 10:42:45 +02:00
Nick the Sick
4a01716408
v2.5.0-beta.2 2024-06-07 16:49:52 +02:00
Nick the Sick
65cef599bc
Merge branch 'main' into develop 2024-06-07 16:48:53 +02:00
moander
ea6dd09728
docs: define keepOnSplit and default optional (#4404) 2024-06-07 16:46:40 +02:00
Daniel Pivovarov
716c5ef53b
refactor: unnecessarily resolved positions (#4857) 2024-06-07 16:44:44 +02:00
Nick Perez
a95ba3fa6f
fix(extension-link): make links exitable resolving #3293 (#5181) 2024-06-07 16:38:54 +02:00
Henry Stelle
ff6e00a356
feat(extension-link): add support for default protocol (#5022) 2024-06-07 16:37:48 +02:00
Julien Cigar
a52118c34b
fix(core): updateAttributes command update only the current node(#5154) 2024-06-07 16:35:43 +02:00
Wilson Zhong
b45fb70fa8
fix(extension-table): update insertion position of new tables fix #5143
Typically when inserting a new table we want to select within the first cell of the newly inserted
table. This change should ensure that occurs even if original selection's head precedes the anchor.

fix #5143
2024-06-07 16:30:06 +02:00
Nick the Sick
e542330170
chore: upgrade y-prosemirror 2024-06-07 15:11:48 +02:00
Nick the Sick
52002feeed
v2.5.0-beta.1 2024-06-04 10:39:58 +02:00
Nick the Sick
65a06136ac
Merge branch 'main' into develop 2024-06-04 10:30:30 +02:00
Nick Perez
f635d7b4f5
fix: revert font-family escaping introduced by #4545 (#5164)
Using `CSS.escape` is the wrong tool for the job here:
 - it is meant for CSS selectors and does not handle CSS variables properly.
 - you can't use `var(--title)` as a font-family because it was getting escaped to `var\(--title\)`
2024-06-04 09:37:43 +02:00
Nick Perez
74bfdc5bef
feat: error handling of invalid content for a schema (#5178)
This change introduces two new top-level options to the editor: `enableContentCheck` & `onContentError` for dealing with content supplied that does not match the prose-mirror schema generated by the set of tiptap extensions.

`enableContentCheck` allows the app developer to opt into the behavior to check for invalid schemas (this change is otherwise backwards compatible).
When true, this will try to parse the document, and any content that does not match the schema will emit a `contentError` which can be listened to via the `onContentError` callback.
2024-06-04 09:32:54 +02:00
Stanislav Volar
8d1af5fbe5
fix: parse only available configured text-align values (#5169)
---------

Co-authored-by: volar <stanislav.volar@petitpress.sk>
Co-authored-by: Nick Perez <nicholas.perez@tiptap.dev>
2024-05-30 17:09:44 +02:00
Nick the Sick
d36a7ef1d9
v2.5.0-beta.0 2024-05-29 10:43:43 +02:00
Nick the Sick
69917881ce
chore: merge branch 'main' into develop 2024-05-29 10:17:05 +02:00
LoneRifle
326c993628
build(deps): bump prosemirror-trailing-node to 2.0.8 (#4949) 2024-05-27 14:48:33 +02:00
Benjamin Kroeger
ef635db6c0
revert: remove 'whenNotEditable' as option for openOnClick" (#5040)
This reverts commit 0f41e389b3.

Co-authored-by: Nick Perez <nicholas.perez@tiptap.dev>
2024-05-24 16:58:58 +02:00
Nantris
e95140c889
fix: validate pasted links (#5061) 2024-05-24 14:02:37 +02:00
Aaron HS
ae14557906
fix: whitespace being stripped from generateJSON (#5158) 2024-05-24 13:55:45 +02:00
AlphaX-Projects
c1e115c98c
Fix unexpected token in index.js (Rollup) (#4538) 2024-05-23 22:23:44 +02:00
REMY Matthieu
393d83e199
fix(suggestion): unused parameter oldState in apply. (#4771) 2024-05-23 22:20:39 +02:00
Mekhi
ec1752374e
fix: Allow emit to be accessed anywhere (#3848) 2024-05-23 22:14:17 +02:00
tomi-bigpi
32ed87b409
fix: don't init when editor is already destroyed (#4029) 2024-05-17 16:18:47 +02:00
Liao Jinyuan
daa5e52ba2
fix(extension-code-block): #3604 paste code from vscode (#3606)
* fix(extension-code-block): paste code from vscode

* fix: remove unused import

* fix: put cursor inside the created code block

---------

Co-authored-by: Nick the Sick <nicholas.perez@tiptap.dev>
2024-05-17 07:50:14 +02:00
Steven DeMartini
f55171fb43
fix: types for Suggestion command, allowing generic overrides (#4136)
* Fix typing for Suggestion `command` with new MentionAttrs generic

As of
7cae9673f0,
new generics were added for Suggestion options and props. However,
there is a subtle bug in the current typing: the object selected with
the suggestion `command` need not have the same types as the `items` in
the suggestion options. For instance, in Tiptap's official demo
https://tiptap.dev/api/nodes/mention, the suggestion `items` are all
`string`s, but the selected Mention is of type `{id: string}` (which are
the attributes of the Mention node, as the Mention extension requires):

```ts
  const selectItem = index => {
    const item = props.items[index]

    if (item) {
      props.command({ id: item })
    }
  }
```

i.e., there should be no restriction that when you select something with
the suggestion `command`, it must use the identical structure as the
suggested items. When using the suggestion plugin with the Mention
extension, for instance, the value passed to the SuggestionProps
`props.command()` function must be a `Record<string, any>`, as it's
directly/exclusively used to set the `attrs` of a `Node` via
`insertContentAt` (and you need not use that shape for suggestion
options, as in the Tiptap example above):
44996d60be/packages/extension-mention/src/mention.ts (L42)
f869507396/packages/core/src/types.ts (L79)

This fixes the typing so that suggestions can correctly refer separately
to their own items (of any type), while ensuring the `command`ed item be
of whatever type is necessary (and so in the Mention context, could be
restricted further).

* Add generics to override selected suggestion type

---------

Co-authored-by: Steven DeMartini <sjdemartini@users.noreply.github.com>
2024-05-17 05:12:04 +02:00
Nick the Sick
738c436a9f
fix: disable parsing javascript: links, add tests 2024-05-16 17:10:15 +02:00
Christofer Roth
980b54f62b fix(extension-link): use whitelist for allowed href values 2024-05-16 09:05:42 +02:00
Dominik Biedebach
80ba352941 Merge branch 'main' of github.com:ueberdosis/tiptap into develop 2024-05-14 15:20:07 +02:00