@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 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":"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"}
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 editor.can().insertContentAt(range, {
118
- type: nodeType,
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';
@@ -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.18",
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.217",
50
- "@tiptap/extension-blockquote": "2.0.0-beta.217",
51
- "@tiptap/extension-bold": "2.0.0-beta.217",
52
- "@tiptap/extension-bullet-list": "2.0.0-beta.217",
53
- "@tiptap/extension-character-count": "2.0.0-beta.217",
54
- "@tiptap/extension-code": "2.0.0-beta.217",
55
- "@tiptap/extension-code-block": "2.0.0-beta.217",
56
- "@tiptap/extension-document": "2.0.0-beta.217",
57
- "@tiptap/extension-dropcursor": "2.0.0-beta.217",
58
- "@tiptap/extension-gapcursor": "2.0.0-beta.217",
59
- "@tiptap/extension-hard-break": "2.0.0-beta.217",
60
- "@tiptap/extension-heading": "2.0.0-beta.217",
61
- "@tiptap/extension-history": "2.0.0-beta.217",
62
- "@tiptap/extension-horizontal-rule": "2.0.0-beta.217",
63
- "@tiptap/extension-image": "2.0.0-beta.217",
64
- "@tiptap/extension-italic": "2.0.0-beta.217",
65
- "@tiptap/extension-link": "2.0.0-beta.217",
66
- "@tiptap/extension-list-item": "2.0.0-beta.217",
67
- "@tiptap/extension-ordered-list": "2.0.0-beta.217",
68
- "@tiptap/extension-paragraph": "2.0.0-beta.217",
69
- "@tiptap/extension-placeholder": "2.0.0-beta.217",
70
- "@tiptap/extension-strike": "2.0.0-beta.217",
71
- "@tiptap/extension-task-item": "2.0.0-beta.217",
72
- "@tiptap/extension-task-list": "2.0.0-beta.217",
73
- "@tiptap/extension-text": "2.0.0-beta.217",
74
- "@tiptap/extension-typography": "2.0.0-beta.217",
75
- "@tiptap/pm": "2.0.0-beta.217",
76
- "@tiptap/react": "2.0.0-beta.217",
77
- "@tiptap/suggestion": "2.0.0-beta.217",
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.1.1"
135
+ "typescript-plugin-css-modules": "4.2.2"
137
136
  },
138
137
  "peerDependencies": {
139
138
  "@react-hookz/web": "^14.2.3 || >=15.x",