@doist/typist 1.0.19 → 1.1.1
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 +15 -0
- package/package.json +2 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [1.1.1](https://github.com/Doist/typist/compare/v1.1.0...v1.1.1) (2023-03-03)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- Invalid `hasCodeMarkBefore` check in `canInsertSuggestion` utility function ([#156](https://github.com/Doist/typist/issues/156)) ([21826c5](https://github.com/Doist/typist/commit/21826c58f763d020d3810fe373ab2524e0f0448e))
|
|
6
|
+
|
|
7
|
+
## [1.1.0](https://github.com/Doist/typist/compare/v1.0.19...v1.1.0) (2023-03-02)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
- 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))
|
|
12
|
+
|
|
1
13
|
## [1.0.19](https://github.com/Doist/typist/compare/v1.0.18...v1.0.19) (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 type { 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,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEjD;;;;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 type { Editor } from '@tiptap/core';
|
|
2
|
+
import type { 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,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD;;;;GAIG;AACH,iBAAS,mBAAmB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,WAoBrF;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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 wordsBeforeSelection = (selection.$from.nodeBefore?.text ?? '').split(' ');
|
|
11
|
+
const hasCodeMarkBefore = (selection.$from.parent.cut(selection.$from.parentOffset - wordsBeforeSelection.slice(-1)[0].length - 1, selection.$from.parentOffset - 1).content.firstChild?.marks.length ?? 0) > 0;
|
|
12
|
+
const isComposingInlineCode = wordsBeforeSelection.some((word) => word.startsWith('`'));
|
|
13
|
+
return (!isInsideCodeMark && !isInsideCodeBlockNode && !hasCodeMarkBefore && !isComposingInlineCode);
|
|
14
|
+
}
|
|
15
|
+
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.
|
|
4
|
+
"version": "1.1.1",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://typist.doist.dev/",
|
|
7
7
|
"repository": "https://github.com/Doist/typist",
|
|
@@ -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",
|