Commit Graph

872 Commits

Author SHA1 Message Date
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
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
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
bdbch
8c017d88f6 chore: merged main branch into beta branch 2024-06-26 23:53:44 +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 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
Yousef
fe78faab55
fix(core): mergeDeep now can merge nulls (#4088) 2024-06-12 08:36:44 +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
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
Julien Cigar
a52118c34b
fix(core): updateAttributes command update only the current node(#5154) 2024-06-07 16:35:43 +02:00
Nick the Sick
65a06136ac
Merge branch 'main' into develop 2024-06-04 10:30:30 +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
AlphaX-Projects
c1e115c98c
Fix unexpected token in index.js (Rollup) (#4538) 2024-05-23 22:23:44 +02:00
Mekhi
ec1752374e
fix: Allow emit to be accessed anywhere (#3848) 2024-05-23 22:14:17 +02:00
Dominik Biedebach
80ba352941 Merge branch 'main' of github.com:ueberdosis/tiptap into develop 2024-05-14 15:20:07 +02:00
Nick Perez
4db463c6bb
fix(core): configure should use the parent of the current instance, to avoid duplication (#5147) 2024-05-14 14:45:03 +02:00
bdbch
6049985c04
refactor(core): clean up constructor & extension setup in extension manager (#5035)
* refactor(core): refactor extension manager

* refactor(core): update comment for setupExtensions function
2024-05-14 14:43:53 +02:00
bdbch
d70e8a70b6
refactor(core): add jsdocs for utility functions (#5141)
* refactor(core): add jsdocs to utilitiy functions

* refactor(core): add jsdocs to more utility functions
2024-05-13 18:28:53 +02:00
bdbch
bc6d081fa1
refactor(core): add jsdoc comments for ExtensionManager (#5140) 2024-05-13 18:19:46 +02:00
bdbch
5ae2de2e21 chore: merge main into develop 2024-05-13 11:29:50 +02:00
bdbch
b941eea6da
feat: added jsdocs (#4356)
* added JSDocs for almost all extensions

* start adding commands jsdocs

* add jsdocs for rest of extensions

* add jsdocs for Extensions

* add js docs for all extensions

* add more jsdocs

* add js docs for node spec definitions
2024-05-11 14:30:44 +02:00
Illia Sakovich
edceec4898
Fix getTextBetween (#5055) 2024-05-10 02:51:22 +02:00
Nantris
c52a6026fc
Prevent history checkpoints during backspace in empty editor (#5063)
* Prevent history checkpoints during backspace in empty editor

* Remove errant comment/lint problem
2024-05-09 15:49:59 +02:00
PHillemans
fb2b1c0b02
fix: only start at block with removing if not an inline node (#4791)
Co-authored-by: Pepijn Hillemans <pepijn.hillemans@cm.com>
2024-05-09 15:47:13 +02:00
Dalius C
4900a27c53
fix: NodePos querySelectorAll function (#5094)
* fix nodepos queryselector

* fix NodePos querySelectorAll function

* tests

* remove test variable

* test fix
2024-05-08 12:22:13 +02:00
bdbch
22ced31872
fix(core): fix nodepos child lookup (#5038) 2024-04-09 13:12:28 +02:00
Sven Adlung
96b6abcf6e
feat(core): apply input and paste rules when using insertContent methods (#5046) 2024-04-09 13:04:16 +02:00
Illia Sakovich
b7107832c0
Add blockSeparator option to clipboardTextSerializer core extension (#5019)
* Update clipboardTextSerializer.ts

* Update clipboardTextSerializer.ts

* feat(core): add core extension options to editor options

---------

Co-authored-by: Dominik Biedebach <dominik.biedebach@ueber.io>
2024-04-08 13:12:40 +02:00
Solomon Astley
1439a91624
check if (pos - 1) >= 0 before resolving in handleBackspace keymap helper (#4835)
Co-authored-by: bdbch <6538827+bdbch@users.noreply.github.com>
2024-04-06 01:30:39 +02:00
Myles J
d6c71a838d
fix: unexpected renderText() for contentful nodes (#3410) 2024-04-06 01:29:46 +02:00
Dominik Biedebach
bbee9a3c30 fix: typecheck drag and clipboard events for testing environments 2024-02-23 12:19:20 +01:00
bdbch
56c228a4f4
Refactor NodePos class to support block nodes (#4841)
Co-authored-by: bdbch <dominik@bdbch.com>
2024-01-31 09:04:24 +01:00
svenadlung
8e36d65b6f Merge branch 'main' into develop 2024-01-29 13:16:04 +01:00
bdbch
8954007b2b
fix: fix newline stripping via insertContent
* fix(core): fix whitespace handling in elementFromString function

* demos: add button to insert HTML content with span tags

* Move tests and demo to insertContent demo

---------

Co-authored-by: bdbch <dominik@bdbch.com>
2024-01-29 13:15:39 +01:00
Sven Adlung
681aa577bf
fix: fix imports, fix demos, unpin y-prosemirror
* use @tiptap/pm

* unpin y-prosemirror

* fix lock file

* fix IsolatingClear demo

* fix OnUpdateRenderer demo

* fix YouTube demo video

* update demos

* remove unneeded function call
2024-01-29 13:03:52 +01:00
stevobm
f3cba1e0b0
fix: fix bug #4785 (#4836)
https://github.com/ueberdosis/tiptap/issues/4785
2024-01-29 09:19:34 +01:00
bdbch
2235908c28 fix(core): fix new lines being added via elementFromString (#4767)
Co-authored-by: bdbch <dominik@bdbch.com>
2024-01-10 13:44:56 +01:00
bdbch
b7a2504f16
fix(core): fix new lines being added via elementFromString (#4767)
Co-authored-by: bdbch <dominik@bdbch.com>
2024-01-10 13:43:48 +01:00
bdbch
46e391aa9d merge main 2024-01-08 22:30:06 +01:00
bdbch
135a12f7aa
fix(core): fix insertContentAt keeping new lines in html content (#4465)
* fix(core): fix insertContentAt keeping new lines in html content

* test(core): add tests

* chore: remove stray console.log

* chore: remove buttons from demo

* fix(core): fix replacement on multiple breaks
2024-01-08 20:21:45 +01:00
bdbch
57eba08f46
feature: nodepos (#4701)
* start writing docs for nodepos
* added nodepos docs
* added to links

---------

Co-authored-by: bdbch <dominik@bdbch.com>
2024-01-08 20:21:23 +01:00
Dominik Biedebach
8c99685545 sync with main 2024-01-08 12:54:37 +01:00
bdbch
eaee9c7177
Fix/link pasting (#4700)
* revert link paste handling to behavior before

* fix(link): fix linking while typing

* add validate support for autolinking back

* revert autolink behaviour

* fix autolinking on pasting text

* remove broken link

* fix react link test

* fix savvy test

---------

Co-authored-by: bdbch <dominik@bdbch.com>
2024-01-08 12:48:14 +01:00
bdbch
894c732d29
chore(pm): update all prosemirror package dependencies (#4714)
* chore(pm): update all prosemirror package dependencies

* rchore(core): remove filterTransaction from state

* fix(demo): fix typings in vue demo

* feat(core): add missing prosemirror commands for joining textblocks

* adoc: added documentation for missing commands

---------

Co-authored-by: bdbch <dominik@bdbch.com>
2024-01-02 13:38:28 +01:00
Dominik Biedebach
fc67cb1b71 fix(core): fix options now being empty 2023-11-30 17:54:06 +01:00
Dominik Biedebach
448b433ee7 fix(core): set defaultOptions to undefined by default 2023-11-27 14:13:29 +01:00
Thibault Leruitte
fda6310e74
Fix: configured/extended extensions should keep their original config (#4191) 2023-10-10 04:24:27 +02:00
bdbch
b5cb36058b merge main into develop 2023-09-20 17:36:56 +02:00
bdbch
361a821245
feature(core): pass through paste event to pasteHandler getAttributes (#4354)
* add pass through of paste event for paste handlers

* remove unused pasteHandler.ts

* remove link extension from youtube demo

* added missing prop for handler
2023-09-20 17:23:43 +02:00
Dominik Biedebach
f99c4f64dd merge main 2023-08-18 11:53:44 -07:00
Dominik Biedebach
4227f324a5 fix(core): fix broken export 2023-08-18 11:06:50 -07:00
Nik Graf
fa121d665c
feature: allow to customize the tag of the contentDOMElement (#3984) 2023-08-18 10:51:46 -07:00
bdbch
ffeefe21ff
fix: replace the whole node in nodeInputRule (#4341)
Co-authored-by: Nicolas Gryman <ngryman@gmail.com>
2023-08-18 08:32:06 -07:00
bdbch
a251946858
fix(core): fix error when merging class attributes (#4340)
* fix(core): fix error when merging class attributes
* added test
2023-08-17 09:05:48 -07:00
bdbch
0d7daedfa4
hotfix(core): Fix input rules not working if at last position of a block (#4337)
* chore(core): remove log

* fix(core): fix inputRules breaking if last item in hierarchy

* fix(core): use default doc node if no parent default node is found

* chore: update .eslintrc

* chore: fix linting

* chore: fix linting
2023-08-16 11:40:47 -07:00
bdbch
dd6d3d39d1
HorizontalRule: fix setHorizontalRule putting cursor at non-text positions (#4319)
* fix setHorizontalRule putting cursor at non-text positions

* improve selections after inserting horizontalRules
2023-08-15 17:49:38 -07:00
bdbch
0e65d9519d
Core: Fix classes being duplicated on mergeAttributes function (#4320)
* fix classes being duplicated on mergeAttributes function
* use array split and joining to check individual classes
2023-08-15 17:49:09 -07:00
bdbch
a922f09a5c
added new options for nodeInputRules for block replacements (#4289) 2023-08-10 16:45:13 -07:00
bdbch
7e7057ea43
chore(lists): move list keymap to extra extension (#4290)
* move list keymap to extra extension

* update docs and readme

* move list helpers out of core
2023-08-10 16:44:46 -07:00
bdbch
d1e879dfab
Fix List issues & add support for Mod keys (#4210)
* add support for mod-delete and mod-backspace

* fix backspace not working right behind a list

* move list helpers to core, add support for task lists

* add option to check for node in isAtEndOfNode

---------

Co-authored-by: bdbch <dominik@bdbch.com>
2023-08-03 10:19:32 +02:00
svenadlung
bdc51d12b5 Merge branch 'main' into develop
# Conflicts:
#	CHANGELOG.md
#	demos/CHANGELOG.md
#	demos/package-lock.json
#	demos/package.json
#	demos/src/Examples/CollaborativeEditing/React/index.jsx
#	lerna.json
#	package-lock.json
#	packages/core/CHANGELOG.md
#	packages/core/package.json
#	packages/extension-blockquote/CHANGELOG.md
#	packages/extension-blockquote/package.json
#	packages/extension-bold/CHANGELOG.md
#	packages/extension-bold/package.json
#	packages/extension-bubble-menu/CHANGELOG.md
#	packages/extension-bubble-menu/package.json
#	packages/extension-bullet-list/CHANGELOG.md
#	packages/extension-bullet-list/package.json
#	packages/extension-character-count/CHANGELOG.md
#	packages/extension-character-count/package.json
#	packages/extension-code-block-lowlight/CHANGELOG.md
#	packages/extension-code-block-lowlight/package.json
#	packages/extension-code-block/CHANGELOG.md
#	packages/extension-code-block/package.json
#	packages/extension-code/CHANGELOG.md
#	packages/extension-code/package.json
#	packages/extension-collaboration-cursor/CHANGELOG.md
#	packages/extension-collaboration-cursor/package.json
#	packages/extension-collaboration/CHANGELOG.md
#	packages/extension-collaboration/package.json
#	packages/extension-color/CHANGELOG.md
#	packages/extension-color/package.json
#	packages/extension-document/CHANGELOG.md
#	packages/extension-document/package.json
#	packages/extension-dropcursor/CHANGELOG.md
#	packages/extension-dropcursor/package.json
#	packages/extension-floating-menu/CHANGELOG.md
#	packages/extension-floating-menu/package.json
#	packages/extension-focus/CHANGELOG.md
#	packages/extension-focus/package.json
#	packages/extension-font-family/CHANGELOG.md
#	packages/extension-font-family/package.json
#	packages/extension-gapcursor/CHANGELOG.md
#	packages/extension-gapcursor/package.json
#	packages/extension-hard-break/CHANGELOG.md
#	packages/extension-hard-break/package.json
#	packages/extension-heading/CHANGELOG.md
#	packages/extension-heading/package.json
#	packages/extension-highlight/CHANGELOG.md
#	packages/extension-highlight/package.json
#	packages/extension-history/CHANGELOG.md
#	packages/extension-history/package.json
#	packages/extension-horizontal-rule/CHANGELOG.md
#	packages/extension-horizontal-rule/package.json
#	packages/extension-image/CHANGELOG.md
#	packages/extension-image/package.json
#	packages/extension-italic/CHANGELOG.md
#	packages/extension-italic/package.json
#	packages/extension-link/CHANGELOG.md
#	packages/extension-link/package.json
#	packages/extension-list-item/CHANGELOG.md
#	packages/extension-list-item/package.json
#	packages/extension-mention/CHANGELOG.md
#	packages/extension-mention/package.json
#	packages/extension-ordered-list/CHANGELOG.md
#	packages/extension-ordered-list/package.json
#	packages/extension-paragraph/CHANGELOG.md
#	packages/extension-paragraph/package.json
#	packages/extension-placeholder/CHANGELOG.md
#	packages/extension-placeholder/package.json
#	packages/extension-strike/CHANGELOG.md
#	packages/extension-strike/package.json
#	packages/extension-subscript/CHANGELOG.md
#	packages/extension-subscript/package.json
#	packages/extension-superscript/CHANGELOG.md
#	packages/extension-superscript/package.json
#	packages/extension-table-cell/CHANGELOG.md
#	packages/extension-table-cell/package.json
#	packages/extension-table-header/CHANGELOG.md
#	packages/extension-table-header/package.json
#	packages/extension-table-row/CHANGELOG.md
#	packages/extension-table-row/package.json
#	packages/extension-table/CHANGELOG.md
#	packages/extension-table/package.json
#	packages/extension-task-item/CHANGELOG.md
#	packages/extension-task-item/package.json
#	packages/extension-task-list/CHANGELOG.md
#	packages/extension-task-list/package.json
#	packages/extension-text-align/CHANGELOG.md
#	packages/extension-text-align/package.json
#	packages/extension-text-style/CHANGELOG.md
#	packages/extension-text-style/package.json
#	packages/extension-text/CHANGELOG.md
#	packages/extension-text/package.json
#	packages/extension-typography/CHANGELOG.md
#	packages/extension-typography/package.json
#	packages/extension-underline/CHANGELOG.md
#	packages/extension-underline/package.json
#	packages/extension-youtube/CHANGELOG.md
#	packages/extension-youtube/package.json
#	packages/html/CHANGELOG.md
#	packages/html/package.json
#	packages/pm/CHANGELOG.md
#	packages/pm/package.json
#	packages/react/CHANGELOG.md
#	packages/react/package.json
#	packages/starter-kit/CHANGELOG.md
#	packages/starter-kit/package.json
#	packages/suggestion/CHANGELOG.md
#	packages/suggestion/package.json
#	packages/vue-2/CHANGELOG.md
#	packages/vue-2/package.json
#	packages/vue-3/CHANGELOG.md
#	packages/vue-3/package.json
2023-07-17 13:03:44 +02:00
Sven Adlung
7f2c6194fd
feat(core): add the ability to register CSS via extension 2023-07-17 09:32:58 +02:00
Dominik
6b65af8fc3
fix(core): fix cut and insertContentAt functions (#4187) 2023-07-07 16:21:58 +02:00
Dominik
7e38c0fa0a
New Cut Command & Position Mapping for insertContentAt (#4141)
* feature(core): add cut commandd and map positions for insertContent

* docs(core): added docs for cut command

* chore(demos): added demo for cut command

---------

Co-authored-by: bdbch <dominik@bdbch.com>
2023-07-07 13:17:13 +02:00
Cameron Hessler
7b4c792034
fix(core) Allow text style to be clearable on new lines (#4151)
* Fix text style not clearing on new line

Fixes #3702

* Fix preserving marks when wrapping/setting nodes

* Uncomment tests

* Revert "Uncomment tests"

This reverts commit 8979bbda81.

* Revert "Fix preserving marks when wrapping/setting nodes"

This reverts commit fe3613b587.
2023-07-07 11:21:28 +02:00
Cameron Hessler
26610cdff3
fix(core) Nested chain not preserving dispatch state (#4152)
* Fix nested chain not preserving dispatch state

* Change test to read as sentence
2023-07-07 11:20:29 +02:00
Brent McSharry
18946b1e35
remove unused let in mark input rules (#4162)
trivial change - the markEnd variable was assigned outside the block and then reassigned within the block without ever using the initial value. Using const assignment just above the first use of the variable improves readability.
2023-07-07 11:01:20 +02:00
Ben Asher
e97630c639
Require file extensions for imports and exports (#4001)
* Require .js endings

* add extension alias for cypress to resolve ts files with js endings
2023-06-30 21:03:49 +02:00
Cameron Hessler
b7dc5d4712
Fix 'enter' behavior on android custom node views (#4153) 2023-06-25 02:33:48 +02:00
Dominik Biedebach
d6c6dd8596 Merge branch 'develop' of github.com:ueberdosis/tiptap into bdbch/list-editing-improvements 2023-06-13 11:34:52 +02:00
Patrick Baber
614fc8082c
feat: add tiptap class
* update docs
* update demos
2023-05-25 13:45:06 +02:00
Dominik Biedebach
4af54da3e0 fix(core): remove configure from extend functionality 2023-04-26 16:05:43 +02:00
Nick Holden
0dcc68412f
Retain existing config when calling configure() on Marks and Extensions (#3822) 2023-04-21 10:10:42 +02:00
Dominik
7278ee2b05
fix: clear nodes when cursor at start of empty isolating parent (#3943)
* fix: clear nodes when cursor at start of empty isolating parent

* fix: dont break backspace behavior when childCount is over 1

* fix: check if parent is textblock

* fix: add strict pos check for parent isolating pos

* demo: add isolation clear demo
2023-04-05 14:59:58 +02:00
Dominik Biedebach
b9ba227f86 Merge branch 'develop' of github.com:ueberdosis/tiptap into bdbch/list-editing-improvements 2023-03-30 15:18:36 +02:00
Dominik
020fd0ed79
feat(core): add editor to this context in schema functions (#3909) 2023-03-29 15:16:43 +02:00
Sven Adlung
fdf6301a61
Collaboration: Fix history after late-registering plugins (#3901)
* fix(extension-collaboration): fix history after late-registering plugins

* fix(extension-collaboration): fix history after late-registering plugins
2023-03-28 16:00:16 +02:00
Dominik Biedebach
684e48a4a7 fix(lists): improve list behaviour 2023-03-28 14:21:16 +02:00
Dominik
00aad1fd9a
style(core): fix linting issues (#3884) 2023-03-27 12:26:34 +02:00
Myles J
aa3068b1cd
feat(attributes): dynamic default (#3379) 2023-03-27 11:57:11 +02:00
svenadlung
928bd36f5f fix inconsistent tiptap spelling 2023-03-13 19:07:22 +01:00
René Eschke
b2ec51374d
Adds attributes to toggleList (#3776)
* Adds attributes to toggleList

When dealing with different variants of bullet lists, I wanted to adopt the same technique I used for different paragraph variants. Since `wrapInList` is capable of receiving attributes, just like `setNode` is, I don't see any reason why `toggleList` should not be capable of the same. 

Here's my bullet list extension in action that is in need of attributes support.

```js
export const CustomBulletList = BulletList.extend({
  content: 'listItem*',

  addAttributes() {
    return {
      variant: {
        default: DEFAULT_LIST,

        renderHTML: attributes => {
          return {
            class: `list-${attributes.variant}`,
          };
        },
      },
    };
  },

  addCommands() {
    return {
      toggleBulletList: attributes => (c) => {
        return c.commands.toggleListCustom(this.name, this.options.itemTypeName, attributes);
      },
    };
  },
});
```

* Update toggle-list.md

* Update toggle-list.md
2023-03-03 09:59:45 +01:00
Dominik Biedebach
10a4a46584 fix(core): fix linting issues 2023-03-03 09:57:49 +01:00
Abdullah Atta
dd6547da42
core: only check doc.textBetween if other checks pass (#3778) 2023-03-02 17:01:36 +01:00
Dominik
3c07ca0b9c
fix(core): fix destroyed view causing errors on dispatchTransaction (#3799) 2023-02-28 10:50:43 +01:00
Dominik
f869507396
fix: update typings for node view decorations (#3783)
* fix: update typings for node view decorations

* fix(core): update types for NodeView

* fix(core): declare props.decorations as decorationWithType
2023-02-27 21:23:30 +01:00
Dominik
0300630a5b
fix(core): allow insertContentAt and insertContent text node arrays (#3790)
* fix(core): allow insertContentAt and insertContent to handle array of text nodes

* fix(core): allow insertContent via json including a text content
2023-02-27 19:26:14 +01:00
Hari Haran
89cc59a837
fix: #3773 - Array for content breaks editor (#3786)
* fix: #3773 - Array for content breaks editor

* fix: lint warning
2023-02-24 15:03:20 +01:00
Hari Haran
36bb1e1041
feat: #3540 Ability to preserve marks on lists (#3541)
* feat: #3540 Ability to preserve marks on lists

* feat: preserveAttrs in list items

* `keepMarks` is working, but need help with `keepAttrs`

* fix: conflict

* avoid casting
2023-02-22 10:13:28 +01:00