@doist/typist 1.0.18 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/factories/create-suggestion-extension.d.ts.map +1 -1
- package/dist/factories/create-suggestion-extension.js +5 -4
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/utilities/can-insert-node-at.d.ts +13 -0
- package/dist/utilities/can-insert-node-at.d.ts.map +1 -0
- package/dist/utilities/can-insert-node-at.js +11 -0
- package/dist/utilities/can-insert-suggestion.d.ts +13 -0
- package/dist/utilities/can-insert-suggestion.d.ts.map +1 -0
- package/dist/utilities/can-insert-suggestion.js +18 -0
- package/package.json +31 -32
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [1.1.0](https://github.com/Doist/typist/compare/v1.0.19...v1.1.0) (2023-03-02)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
- Disallow suggestions inside inline code marks and code blocks ([#154](https://github.com/Doist/typist/issues/154)) ([7d75314](https://github.com/Doist/typist/commit/7d75314b80ef66383c24b06022c47e25d01425f6))
|
|
6
|
+
|
|
7
|
+
## [1.0.19](https://github.com/Doist/typist/compare/v1.0.18...v1.0.19) (2023-02-23)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
- **deps:** update tiptap packages to v2.0.0-beta.218 ([#148](https://github.com/Doist/typist/issues/148)) ([0e9e179](https://github.com/Doist/typist/commit/0e9e179535c2339cc86137ebedf4d2d6cb79b324))
|
|
12
|
+
|
|
1
13
|
## [1.0.18](https://github.com/Doist/typist/compare/v1.0.17...v1.0.18) (2023-02-23)
|
|
2
14
|
|
|
3
15
|
### Bug Fixes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-suggestion-extension.d.ts","sourceRoot":"","sources":["../../src/factories/create-suggestion-extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,IAAI,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"create-suggestion-extension.d.ts","sourceRoot":"","sources":["../../src/factories/create-suggestion-extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ import { Suggestion as TiptapSuggestion } from '@tiptap/suggestion';
|
|
|
3
3
|
import { camelCase, kebabCase } from 'lodash-es';
|
|
4
4
|
import { PluginKey } from 'prosemirror-state';
|
|
5
5
|
import { SUGGESTION_EXTENSION_PRIORITY } from '../constants/extension-priorities';
|
|
6
|
+
import { canInsertNodeAt } from '../utilities/can-insert-node-at';
|
|
7
|
+
import { canInsertSuggestion } from '../utilities/can-insert-suggestion';
|
|
6
8
|
/**
|
|
7
9
|
* A factory function responsible for creating different types of suggestion extensions with
|
|
8
10
|
* flexibility and customizability in mind.
|
|
@@ -113,10 +115,9 @@ function createSuggestionExtension(type, items = [],
|
|
|
113
115
|
items({ query, editor }) {
|
|
114
116
|
return (onSearchChange?.(query, editor.storage[nodeType]) || []);
|
|
115
117
|
},
|
|
116
|
-
allow({ editor, range }) {
|
|
117
|
-
return
|
|
118
|
-
|
|
119
|
-
});
|
|
118
|
+
allow({ editor, range, state }) {
|
|
119
|
+
return (canInsertNodeAt({ editor, nodeType, range }) &&
|
|
120
|
+
canInsertSuggestion({ editor, state }));
|
|
120
121
|
},
|
|
121
122
|
command({ editor, range, props }) {
|
|
122
123
|
const nodeAfter = editor.view.state.selection.$to.nodeAfter;
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export { createSuggestionExtension } from './factories/create-suggestion-extensi
|
|
|
11
11
|
export { isMultilineDocument, isPlainTextDocument } from './helpers/schema';
|
|
12
12
|
export { createHTMLSerializer } from './serializers/html/html';
|
|
13
13
|
export { createMarkdownSerializer } from './serializers/markdown/markdown';
|
|
14
|
+
export { canInsertNodeAt } from './utilities/can-insert-node-at';
|
|
15
|
+
export { canInsertSuggestion } from './utilities/can-insert-suggestion';
|
|
14
16
|
export type { AnyConfig, Editor as CoreEditor, EditorEvents, MarkRange, Range } from '@tiptap/core';
|
|
15
17
|
export { combineTransactionSteps, defaultBlockAt, findChildren, findChildrenInRange, findParentNode, findParentNodeClosestToPos, generateHTML, generateJSON, generateText, getAttributes, getChangedRanges, getDebugJSON, getExtensionField, getHTMLFromFragment, getMarkAttributes, getMarkRange, getMarksBetween, getMarkType, getNodeAttributes, getNodeType, getSchema, getText, getTextBetween, isActive, isList, isMarkActive, isNodeActive, isNodeEmpty, isNodeSelection, isTextSelection, mergeAttributes, posToDOMRect, } from '@tiptap/core';
|
|
16
18
|
export { Extension, Mark } from '@tiptap/core';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,WAAW,GACd,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAA;AAChF,cAAc,oEAAoE,CAAA;AAClF,cAAc,0EAA0E,CAAA;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,YAAY,EACR,uBAAuB,EACvB,oBAAoB,GACvB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAClE,YAAY,EACR,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,GACpB,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAA;AACnF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,YAAY,EAAE,SAAS,EAAE,MAAM,IAAI,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACnG,OAAO,EACH,uBAAuB,EACvB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,OAAO,EACP,cAAc,EACd,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,GACf,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC9C,cAAc,mCAAmC,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC/E,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC9D,YAAY,EACR,sBAAsB,EACtB,iBAAiB,IAAI,uBAAuB,GAC/C,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,WAAW,GACd,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAA;AAChF,cAAc,oEAAoE,CAAA;AAClF,cAAc,0EAA0E,CAAA;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,YAAY,EACR,uBAAuB,EACvB,oBAAoB,GACvB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAClE,YAAY,EACR,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,GACpB,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAA;AACnF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,YAAY,EAAE,SAAS,EAAE,MAAM,IAAI,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACnG,OAAO,EACH,uBAAuB,EACvB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,OAAO,EACP,cAAc,EACd,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,GACf,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC9C,cAAc,mCAAmC,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC/E,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC9D,YAAY,EACR,sBAAsB,EACtB,iBAAiB,IAAI,uBAAuB,GAC/C,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,8 @@ export { createSuggestionExtension } from './factories/create-suggestion-extensi
|
|
|
8
8
|
export { isMultilineDocument, isPlainTextDocument } from './helpers/schema';
|
|
9
9
|
export { createHTMLSerializer } from './serializers/html/html';
|
|
10
10
|
export { createMarkdownSerializer } from './serializers/markdown/markdown';
|
|
11
|
+
export { canInsertNodeAt } from './utilities/can-insert-node-at';
|
|
12
|
+
export { canInsertSuggestion } from './utilities/can-insert-suggestion';
|
|
11
13
|
export { combineTransactionSteps, defaultBlockAt, findChildren, findChildrenInRange, findParentNode, findParentNodeClosestToPos, generateHTML, generateJSON, generateText, getAttributes, getChangedRanges, getDebugJSON, getExtensionField, getHTMLFromFragment, getMarkAttributes, getMarkRange, getMarksBetween, getMarkType, getNodeAttributes, getNodeType, getSchema, getText, getTextBetween, isActive, isList, isMarkActive, isNodeActive, isNodeEmpty, isNodeSelection, isTextSelection, mergeAttributes, posToDOMRect, } from '@tiptap/core';
|
|
12
14
|
export { Extension, Mark } from '@tiptap/core';
|
|
13
15
|
export * from '@tiptap/extension-character-count';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Editor, Range } from '@tiptap/core';
|
|
2
|
+
/**
|
|
3
|
+
* Check if a node of a specific type can be inserted at a specific position in the editor.
|
|
4
|
+
*
|
|
5
|
+
* @return True if the node can be inserted, false otherwise.
|
|
6
|
+
*/
|
|
7
|
+
declare function canInsertNodeAt({ editor, nodeType, range, }: {
|
|
8
|
+
editor: Editor;
|
|
9
|
+
nodeType: string;
|
|
10
|
+
range: Range;
|
|
11
|
+
}): boolean;
|
|
12
|
+
export { canInsertNodeAt };
|
|
13
|
+
//# sourceMappingURL=can-insert-node-at.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"can-insert-node-at.d.ts","sourceRoot":"","sources":["../../src/utilities/can-insert-node-at.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAE5C;;;;GAIG;AACH,iBAAS,eAAe,CAAC,EACrB,MAAM,EACN,QAAQ,EACR,KAAK,GACR,EAAE;IACC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,KAAK,CAAA;CACf,WAIA;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if a node of a specific type can be inserted at a specific position in the editor.
|
|
3
|
+
*
|
|
4
|
+
* @return True if the node can be inserted, false otherwise.
|
|
5
|
+
*/
|
|
6
|
+
function canInsertNodeAt({ editor, nodeType, range, }) {
|
|
7
|
+
return editor.can().insertContentAt(range, {
|
|
8
|
+
type: nodeType,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
export { canInsertNodeAt };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Editor } from '@tiptap/core';
|
|
2
|
+
import { EditorState } from '@tiptap/pm/state';
|
|
3
|
+
/**
|
|
4
|
+
* Check if a suggestion can be inserted within the current editor selection.
|
|
5
|
+
*
|
|
6
|
+
* @return True if the suggestion can be inserted, false otherwise.
|
|
7
|
+
*/
|
|
8
|
+
declare function canInsertSuggestion({ editor, state }: {
|
|
9
|
+
editor: Editor;
|
|
10
|
+
state: EditorState;
|
|
11
|
+
}): boolean;
|
|
12
|
+
export { canInsertSuggestion };
|
|
13
|
+
//# sourceMappingURL=can-insert-suggestion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"can-insert-suggestion.d.ts","sourceRoot":"","sources":["../../src/utilities/can-insert-suggestion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C;;;;GAIG;AACH,iBAAS,mBAAmB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,WAkBrF;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if a suggestion can be inserted within the current editor selection.
|
|
3
|
+
*
|
|
4
|
+
* @return True if the suggestion can be inserted, false otherwise.
|
|
5
|
+
*/
|
|
6
|
+
function canInsertSuggestion({ editor, state }) {
|
|
7
|
+
const { selection } = state;
|
|
8
|
+
const isInsideCodeMark = editor.isActive('code');
|
|
9
|
+
const isInsideCodeBlockNode = selection.$from.parent.type.name === 'codeBlock';
|
|
10
|
+
const hasCodeMarkBefore = state.doc
|
|
11
|
+
.nodeAt(selection.$from.parentOffset - 1)
|
|
12
|
+
?.marks.some((mark) => mark.type.name === 'code');
|
|
13
|
+
const isComposingInlineCode = selection.$from.nodeBefore?.text
|
|
14
|
+
?.split(' ')
|
|
15
|
+
.some((word) => word.startsWith('`'));
|
|
16
|
+
return (!isInsideCodeMark && !isInsideCodeBlockNode && !hasCodeMarkBefore && !isComposingInlineCode);
|
|
17
|
+
}
|
|
18
|
+
export { canInsertSuggestion };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@doist/typist",
|
|
3
3
|
"description": "The mighty Tiptap-based rich-text editor React component that powers Doist products.",
|
|
4
|
-
"version": "1.0
|
|
4
|
+
"version": "1.1.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://typist.doist.dev/",
|
|
7
7
|
"repository": "https://github.com/Doist/typist",
|
|
@@ -46,35 +46,35 @@
|
|
|
46
46
|
"validate:pre-push": "run-s test"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@tiptap/core": "2.0.0-beta.
|
|
50
|
-
"@tiptap/extension-blockquote": "2.0.0-beta.
|
|
51
|
-
"@tiptap/extension-bold": "2.0.0-beta.
|
|
52
|
-
"@tiptap/extension-bullet-list": "2.0.0-beta.
|
|
53
|
-
"@tiptap/extension-character-count": "2.0.0-beta.
|
|
54
|
-
"@tiptap/extension-code": "2.0.0-beta.
|
|
55
|
-
"@tiptap/extension-code-block": "2.0.0-beta.
|
|
56
|
-
"@tiptap/extension-document": "2.0.0-beta.
|
|
57
|
-
"@tiptap/extension-dropcursor": "2.0.0-beta.
|
|
58
|
-
"@tiptap/extension-gapcursor": "2.0.0-beta.
|
|
59
|
-
"@tiptap/extension-hard-break": "2.0.0-beta.
|
|
60
|
-
"@tiptap/extension-heading": "2.0.0-beta.
|
|
61
|
-
"@tiptap/extension-history": "2.0.0-beta.
|
|
62
|
-
"@tiptap/extension-horizontal-rule": "2.0.0-beta.
|
|
63
|
-
"@tiptap/extension-image": "2.0.0-beta.
|
|
64
|
-
"@tiptap/extension-italic": "2.0.0-beta.
|
|
65
|
-
"@tiptap/extension-link": "2.0.0-beta.
|
|
66
|
-
"@tiptap/extension-list-item": "2.0.0-beta.
|
|
67
|
-
"@tiptap/extension-ordered-list": "2.0.0-beta.
|
|
68
|
-
"@tiptap/extension-paragraph": "2.0.0-beta.
|
|
69
|
-
"@tiptap/extension-placeholder": "2.0.0-beta.
|
|
70
|
-
"@tiptap/extension-strike": "2.0.0-beta.
|
|
71
|
-
"@tiptap/extension-task-item": "2.0.0-beta.
|
|
72
|
-
"@tiptap/extension-task-list": "2.0.0-beta.
|
|
73
|
-
"@tiptap/extension-text": "2.0.0-beta.
|
|
74
|
-
"@tiptap/extension-typography": "2.0.0-beta.
|
|
75
|
-
"@tiptap/pm": "2.0.0-beta.
|
|
76
|
-
"@tiptap/react": "2.0.0-beta.
|
|
77
|
-
"@tiptap/suggestion": "2.0.0-beta.
|
|
49
|
+
"@tiptap/core": "2.0.0-beta.218",
|
|
50
|
+
"@tiptap/extension-blockquote": "2.0.0-beta.218",
|
|
51
|
+
"@tiptap/extension-bold": "2.0.0-beta.218",
|
|
52
|
+
"@tiptap/extension-bullet-list": "2.0.0-beta.218",
|
|
53
|
+
"@tiptap/extension-character-count": "2.0.0-beta.218",
|
|
54
|
+
"@tiptap/extension-code": "2.0.0-beta.218",
|
|
55
|
+
"@tiptap/extension-code-block": "2.0.0-beta.218",
|
|
56
|
+
"@tiptap/extension-document": "2.0.0-beta.218",
|
|
57
|
+
"@tiptap/extension-dropcursor": "2.0.0-beta.218",
|
|
58
|
+
"@tiptap/extension-gapcursor": "2.0.0-beta.218",
|
|
59
|
+
"@tiptap/extension-hard-break": "2.0.0-beta.218",
|
|
60
|
+
"@tiptap/extension-heading": "2.0.0-beta.218",
|
|
61
|
+
"@tiptap/extension-history": "2.0.0-beta.218",
|
|
62
|
+
"@tiptap/extension-horizontal-rule": "2.0.0-beta.218",
|
|
63
|
+
"@tiptap/extension-image": "2.0.0-beta.218",
|
|
64
|
+
"@tiptap/extension-italic": "2.0.0-beta.218",
|
|
65
|
+
"@tiptap/extension-link": "2.0.0-beta.218",
|
|
66
|
+
"@tiptap/extension-list-item": "2.0.0-beta.218",
|
|
67
|
+
"@tiptap/extension-ordered-list": "2.0.0-beta.218",
|
|
68
|
+
"@tiptap/extension-paragraph": "2.0.0-beta.218",
|
|
69
|
+
"@tiptap/extension-placeholder": "2.0.0-beta.218",
|
|
70
|
+
"@tiptap/extension-strike": "2.0.0-beta.218",
|
|
71
|
+
"@tiptap/extension-task-item": "2.0.0-beta.218",
|
|
72
|
+
"@tiptap/extension-task-list": "2.0.0-beta.218",
|
|
73
|
+
"@tiptap/extension-text": "2.0.0-beta.218",
|
|
74
|
+
"@tiptap/extension-typography": "2.0.0-beta.218",
|
|
75
|
+
"@tiptap/pm": "2.0.0-beta.218",
|
|
76
|
+
"@tiptap/react": "2.0.0-beta.218",
|
|
77
|
+
"@tiptap/suggestion": "2.0.0-beta.218",
|
|
78
78
|
"prosemirror-codemark": "0.4.2"
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
|
@@ -123,7 +123,6 @@
|
|
|
123
123
|
"react-icons": "4.7.1",
|
|
124
124
|
"react-markdown": "8.0.5",
|
|
125
125
|
"react-syntax-highlighter": "15.5.0",
|
|
126
|
-
"react-use-event-hook": "0.9.3",
|
|
127
126
|
"rehype-raw": "6.1.1",
|
|
128
127
|
"remark-gfm": "3.0.1",
|
|
129
128
|
"rimraf": "3.0.2",
|
|
@@ -133,7 +132,7 @@
|
|
|
133
132
|
"ts-node": "10.9.1",
|
|
134
133
|
"type-fest": "3.6.0",
|
|
135
134
|
"typescript": "4.9.5",
|
|
136
|
-
"typescript-plugin-css-modules": "4.
|
|
135
|
+
"typescript-plugin-css-modules": "4.2.2"
|
|
137
136
|
},
|
|
138
137
|
"peerDependencies": {
|
|
139
138
|
"@react-hookz/web": "^14.2.3 || >=15.x",
|