Commit Graph

210 Commits

Author SHA1 Message Date
Nick the Sick
65cef599bc
Merge branch 'main' into develop 2024-06-07 16:48:53 +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
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
Sven Adlung
96b6abcf6e
feat(core): apply input and paste rules when using insertContent methods (#5046) 2024-04-09 13:04:16 +02: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
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
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
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
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
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
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
Dominik
f387ad3dd4
feat(pm): new prosemirror package for dependency resolving
* chore:(core): migrate to tsup

* chore: migrate blockquote and bold to tsup

* chore: migrated bubble-menu and bullet-list to tsup

* chore: migrated more packages to tsup

* chore: migrate code and character extensions to tsup

* chore: update package.json to simplify build for all packages

* chore: move all packages to tsup as a build process

* chore: change ci build task

* feat(pm): add prosemirror meta package

* rfix: resolve issues with build paths & export mappings

* docs: update documentation to include notes for @tiptap/pm

* chore(pm): update tsconfig

* chore(packages): update packages

* fix(pm): add package export infos & fix dependencies

* chore(general): start moving to pm package as deps

* chore: move to tiptap pm package internally

* fix(demos): fix demos working with new pm package

* fix(tables): fix tables package

* fix(tables): fix tables package

* chore(demos): pinned typescript version

* chore: remove unnecessary tsconfig

* chore: fix netlify build

* fix(demos): fix package resolving for pm packages

* fix(tests): fix package resolving for pm packages

* fix(tests): fix package resolving for pm packages

* chore(tests): fix tests not running correctly after pm package

* chore(pm): add files to files array

* chore: update build workflow

* chore(tests): increase timeout time back to 12s

* chore(docs): update docs

* chore(docs): update installation guides & pm information to docs

* chore(docs): add link to prosemirror docs

* fix(vue-3): add missing build step

* chore(docs): comment out cdn link

* chore(docs): remove semicolons from docs

* chore(docs): remove unnecessary installation note

* chore(docs): remove unnecessary installation note
2023-02-02 17:37:33 +01:00
Dominik
343ce756a8
feat(commands): add joinUp and joinDown command (#3455) 2022-11-25 20:37:25 +01:00
Dominik
ef8a1a2f3d
fix(core): implement deleteCurrentNode command & fix node joining on Delete key (#3192)
* fix(core): 🐛 fix delete on empty nodes joining next node incorrectly

This PR implements a "deleteCurrentNode" action in combination with registering this command inside the keymap for the delete key. This way, we editor will check, if the current node is empty before joining - if the current node is empty, the node will be removed. Joining will still work if the current node is not empty and the selection is at the end of the current node

2924

* refactor(core): ♻️ remove unnecessary return on handleDelete keymap
2022-11-25 16:42:13 +01:00
Cameron Hessler
17a41da5a7
fix(core): Can() does not work for setting marks (#3223)
Previously, setting marks did no schema validation checks for dry runs
(like the `.can()` command). The `setMark` raw command will now properly
check if the mark is possible to be set given the editor node/mark
schema.

Co-authored-by: Cameron Hessler <cameron.hessler@buildertrend.com>
2022-09-26 14:56:25 +02:00
Asherah Connor
313b8b8d0a
fix(core): setNodeSelection should not clamp pos by Selection.atStart/atEnd (#3091)
Fixes #3090.
2022-08-22 14:22:44 +02:00
ahhshm
f4b9a46a0b
refactor: remove duplicated function (#2956) 2022-07-06 20:11:20 +02:00
Dominik
134a4bd1fb
fix(core): dont use selection for setContent replacement (#2934) 2022-07-06 12:59:16 +02:00
Dominik Biedebach
5b0b7d9102 fix(core): fix focus command passing through editor state instead of existing transaction
this fixes a bug introduced a few months ago that caused positions not resolving on the most recent transaction but the editor state that was existing before the last transactions beforehand existed causing the editor to crash
2022-06-26 09:53:45 +02:00
Dominik
fa8c4ca639
refactor: use index files for imports to simplify the export flow (#2870) 2022-06-11 07:11:14 +02:00
Dominik
8c6751f0c6
add precommit hook for linting and automatic eslint fixes + update eslint packages (#2862)
* chore: add precommit hook for eslint fixes, fix linting issues
* chore: add eslint import sort plugin
2022-06-08 14:10:25 +02:00
Philipp Kühn
bdab760cdb fix: revert changes to selectAll command, fix #2491 2022-02-07 10:19:46 +01:00
Philipp Kühn
70422dd107 fix: fix RangeError bug when selecting all text, fix #2490 2022-02-07 09:07:17 +01:00
Philipp Kühn
d899141a1a fix lint 2022-01-27 21:37:29 +01:00
Philipp Kühn
4be16fcd2e fix: set max textselection correctly, fix #2401 2022-01-27 09:44:53 +01:00
Philipp Kühn
75e5601767 fix: add correct windows and px keymap 2022-01-25 10:52:36 +01:00
Philipp Kühn
0aa39f93cb feat: add selectTextblockStart and selectTextblockEnd commands 2022-01-25 10:35:39 +01:00
Philipp Kühn
d2427064ff fix: insertContent keeps marks when using plain text, fix #2406 2022-01-20 22:15:12 +01:00
Philipp Kühn
9d317128a0 fix: fix removing the caret on blur in some situations when using safari, fix #2405 2022-01-20 21:37:31 +01:00
Philipp Kühn
66eb2f2a47 fix: prevent error in toggleList command, fix #2279 2021-12-15 10:51:23 +01:00
Philipp Kühn
9e6fbd6c88 refactoring 2021-12-13 14:17:52 +01:00
Philipp Kühn
f2ced6971d fix: improve setNode behavior for list items, fix #2261 2021-12-13 13:40:33 +01:00
Philipp Kühn
e09fd93e59 fix: check for invalid content in insertContentAt command 2021-12-13 13:33:13 +01:00
Philipp Kühn
170ec4be5b fix: don’t check for active node in wrapIn command, fix #1059 2021-12-13 13:32:19 +01:00
Philipp Kühn
126ad722c7
feat: join lists on toggleList (#2260), fix #1329
Co-authored-by: Philipp Kühn <philippkuehn@MacBook-Pro-von-Philipp.local>
2021-12-10 14:07:34 +01:00
Philipp Kühn
2995d00275 fix lint error 2021-12-06 12:34:14 +01:00
Philipp Kühn
f8ce8942f5 refactor: simplify unsetAllMarks 2021-12-06 12:25:00 +01:00
Philipp Kühn
e07a5b625d
refactor: Use named exports instead of default exports (#2238)
* use named exports instead of default exports

* fix tests

Co-authored-by: Philipp Kühn <philippkuehn@MacBook-Pro-von-Philipp.local>
2021-12-06 12:00:09 +01:00
BrianHung
de39853026
fix: initialize autofocus selection in createView (#2212)
* initialize autofocus selection in `createView`

* fix missing variable and null error

* remove unused imports
2021-12-03 10:35:17 +01:00
Philipp Kühn
40a9404c94 add newline-after-var rule to eslint config 2021-12-03 00:03:39 +01:00
Philipp Kühn
e0f64904b6 feat: add scrollIntoView option to focus command, fix #2172 2021-11-25 17:18:30 +01:00
Philipp Kühn
3c571c9a3f feat: add 'all' option to focus command, fix #2181 2021-11-22 10:17:06 +01:00
Philipp Kühn
53ffce5018 fix: prevent removing inline nodes when using insertContentAt, fix #2156 2021-11-10 21:16:02 +01:00
Philipp Kühn
8fc915cade
fix: Improve behavior when using insertContent (#2147)
* check if we can replace the wrapping node by the newly inserted content
    /

* we dont need this anymore

* set selection to inserted content instead of below

* improve hr cursor behavior
2021-11-08 20:37:12 +01:00
Philipp Kühn
4295c6bd21 fix: fix type for insertContent command 2021-10-14 12:30:16 +02:00
Philipp Kühn
9f2c36896b feat: add updateSelection option to insertContentAt command 2021-10-14 12:08:39 +02:00