@tiptap/core 2.0.0-beta.14 → 2.0.0-beta.140

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.
Files changed (272) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +2 -2
  3. package/dist/packages/core/src/CommandManager.d.ts +12 -5
  4. package/dist/packages/core/src/Editor.d.ts +19 -20
  5. package/dist/packages/core/src/EventEmitter.d.ts +8 -4
  6. package/dist/packages/core/src/Extension.d.ts +102 -26
  7. package/dist/packages/core/src/ExtensionManager.d.ts +6 -11
  8. package/dist/packages/core/src/InputRule.d.ts +42 -0
  9. package/dist/packages/core/src/Mark.d.ts +134 -30
  10. package/dist/packages/core/src/Node.d.ts +151 -32
  11. package/dist/packages/core/src/NodeView.d.ts +5 -9
  12. package/dist/packages/core/src/PasteRule.d.ts +42 -0
  13. package/dist/packages/core/src/Tracker.d.ts +11 -0
  14. package/dist/packages/core/src/commands/blur.d.ts +3 -3
  15. package/dist/packages/core/src/commands/clearContent.d.ts +3 -3
  16. package/dist/packages/core/src/commands/clearNodes.d.ts +3 -3
  17. package/dist/packages/core/src/commands/command.d.ts +2 -2
  18. package/dist/packages/core/src/commands/createParagraphNear.d.ts +3 -3
  19. package/dist/packages/core/src/commands/deleteNode.d.ts +13 -0
  20. package/dist/packages/core/src/commands/deleteRange.d.ts +3 -3
  21. package/dist/packages/core/src/commands/deleteSelection.d.ts +3 -3
  22. package/dist/packages/core/src/commands/enter.d.ts +3 -3
  23. package/dist/packages/core/src/commands/exitCode.d.ts +3 -3
  24. package/dist/packages/core/src/commands/extendMarkRange.d.ts +3 -3
  25. package/dist/packages/core/src/commands/first.d.ts +3 -3
  26. package/dist/packages/core/src/commands/focus.d.ts +3 -3
  27. package/dist/packages/core/src/commands/forEach.d.ts +14 -0
  28. package/dist/packages/core/src/commands/insertContent.d.ts +16 -0
  29. package/dist/packages/core/src/commands/insertContentAt.d.ts +16 -0
  30. package/dist/packages/core/src/commands/joinBackward.d.ts +3 -3
  31. package/dist/packages/core/src/commands/joinForward.d.ts +3 -3
  32. package/dist/packages/core/src/commands/keyboardShortcut.d.ts +3 -3
  33. package/dist/packages/core/src/commands/lift.d.ts +3 -3
  34. package/dist/packages/core/src/commands/liftEmptyBlock.d.ts +3 -3
  35. package/dist/packages/core/src/commands/liftListItem.d.ts +3 -3
  36. package/dist/packages/core/src/commands/newlineInCode.d.ts +3 -3
  37. package/dist/packages/core/src/commands/resetAttributes.d.ts +13 -0
  38. package/dist/packages/core/src/commands/scrollIntoView.d.ts +3 -3
  39. package/dist/packages/core/src/commands/selectAll.d.ts +3 -3
  40. package/dist/packages/core/src/commands/selectNodeBackward.d.ts +3 -3
  41. package/dist/packages/core/src/commands/selectNodeForward.d.ts +3 -3
  42. package/dist/packages/core/src/commands/selectParentNode.d.ts +3 -3
  43. package/dist/packages/core/src/commands/setContent.d.ts +4 -3
  44. package/dist/packages/core/src/commands/setMark.d.ts +3 -3
  45. package/dist/packages/core/src/commands/setMeta.d.ts +12 -0
  46. package/dist/packages/core/src/commands/setNode.d.ts +3 -3
  47. package/dist/packages/core/src/commands/setNodeSelection.d.ts +12 -0
  48. package/dist/packages/core/src/commands/setTextSelection.d.ts +12 -0
  49. package/dist/packages/core/src/commands/sinkListItem.d.ts +3 -3
  50. package/dist/packages/core/src/commands/splitBlock.d.ts +3 -3
  51. package/dist/packages/core/src/commands/splitListItem.d.ts +3 -3
  52. package/dist/packages/core/src/commands/toggleList.d.ts +3 -3
  53. package/dist/packages/core/src/commands/toggleMark.d.ts +8 -3
  54. package/dist/packages/core/src/commands/toggleNode.d.ts +3 -3
  55. package/dist/packages/core/src/commands/toggleWrap.d.ts +3 -3
  56. package/dist/packages/core/src/commands/undoInputRule.d.ts +3 -3
  57. package/dist/packages/core/src/commands/unsetAllMarks.d.ts +3 -3
  58. package/dist/packages/core/src/commands/unsetMark.d.ts +8 -3
  59. package/dist/packages/core/src/commands/updateAttributes.d.ts +13 -0
  60. package/dist/packages/core/src/commands/wrapIn.d.ts +3 -3
  61. package/dist/packages/core/src/commands/wrapInList.d.ts +3 -3
  62. package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +1 -1
  63. package/dist/packages/core/src/extensions/commands.d.ts +19 -15
  64. package/dist/packages/core/src/extensions/editable.d.ts +1 -1
  65. package/dist/packages/core/src/extensions/focusEvents.d.ts +1 -1
  66. package/dist/packages/core/src/extensions/index.d.ts +1 -0
  67. package/dist/packages/core/src/extensions/keymap.d.ts +1 -1
  68. package/dist/packages/core/src/extensions/tabindex.d.ts +2 -0
  69. package/dist/packages/core/src/helpers/createChainableState.d.ts +5 -0
  70. package/dist/packages/core/src/helpers/createDocument.d.ts +3 -0
  71. package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +7 -0
  72. package/dist/packages/core/src/helpers/findChildren.d.ts +3 -0
  73. package/dist/packages/core/src/helpers/findChildrenInRange.d.ts +6 -0
  74. package/dist/packages/core/src/helpers/generateHTML.d.ts +2 -2
  75. package/dist/packages/core/src/helpers/generateJSON.d.ts +2 -0
  76. package/dist/packages/core/src/helpers/generateText.d.ts +5 -0
  77. package/dist/packages/core/src/helpers/getAttributes.d.ts +3 -0
  78. package/dist/packages/core/src/helpers/getDebugJSON.d.ts +8 -0
  79. package/dist/packages/core/src/helpers/getExtensionField.d.ts +2 -0
  80. package/dist/packages/core/src/helpers/getHTMLFromFragment.d.ts +2 -2
  81. package/dist/packages/core/src/helpers/getMarkAttributes.d.ts +1 -2
  82. package/dist/packages/core/src/helpers/getMarkRange.d.ts +1 -1
  83. package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +1 -2
  84. package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +2 -2
  85. package/dist/packages/core/src/helpers/getSchemaByResolvedExtensions.d.ts +3 -0
  86. package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +2 -2
  87. package/dist/packages/core/src/helpers/getText.d.ts +6 -0
  88. package/dist/packages/core/src/helpers/getTextBetween.d.ts +6 -0
  89. package/dist/packages/core/src/helpers/getTextSeralizersFromSchema.d.ts +3 -0
  90. package/dist/packages/core/src/helpers/isActive.d.ts +1 -2
  91. package/dist/packages/core/src/helpers/isExtensionRulesEnabled.d.ts +2 -0
  92. package/dist/packages/core/src/helpers/isMarkActive.d.ts +1 -2
  93. package/dist/packages/core/src/helpers/isNodeActive.d.ts +1 -2
  94. package/dist/packages/core/src/helpers/posToDOMRect.d.ts +2 -0
  95. package/dist/packages/core/src/helpers/splitExtensions.d.ts +3 -3
  96. package/dist/packages/core/src/index.d.ts +32 -5
  97. package/dist/packages/core/src/inputRules/markInputRule.d.ts +11 -2
  98. package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +11 -2
  99. package/dist/packages/core/src/inputRules/textInputRule.d.ts +9 -0
  100. package/dist/packages/core/src/inputRules/textblockTypeInputRule.d.ts +14 -0
  101. package/dist/packages/core/src/inputRules/wrappingInputRule.d.ts +23 -0
  102. package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +11 -2
  103. package/dist/packages/core/src/pasteRules/textPasteRule.d.ts +9 -0
  104. package/dist/packages/core/src/style.d.ts +1 -1
  105. package/dist/packages/core/src/types.d.ts +104 -51
  106. package/dist/packages/core/src/utilities/callOrReturn.d.ts +2 -1
  107. package/dist/packages/core/src/utilities/deleteProps.d.ts +1 -2
  108. package/dist/packages/core/src/utilities/findDuplicates.d.ts +1 -0
  109. package/dist/packages/core/src/utilities/isClass.d.ts +1 -1
  110. package/dist/packages/core/src/utilities/isEmptyObject.d.ts +1 -1
  111. package/dist/packages/core/src/utilities/isFunction.d.ts +1 -0
  112. package/dist/packages/core/src/utilities/isNumber.d.ts +1 -0
  113. package/dist/packages/core/src/utilities/isObject.d.ts +1 -1
  114. package/dist/packages/core/src/utilities/isPlainObject.d.ts +1 -1
  115. package/dist/packages/core/src/utilities/isRegExp.d.ts +1 -0
  116. package/dist/packages/core/src/utilities/isiOS.d.ts +1 -0
  117. package/dist/packages/core/src/utilities/mergeAttributes.d.ts +1 -2
  118. package/dist/packages/core/src/utilities/mergeDeep.d.ts +1 -2
  119. package/dist/packages/core/src/utilities/objectIncludes.d.ts +3 -2
  120. package/dist/tiptap-core.cjs.js +2695 -1451
  121. package/dist/tiptap-core.cjs.js.map +1 -1
  122. package/dist/tiptap-core.esm.js +3244 -2026
  123. package/dist/tiptap-core.esm.js.map +1 -1
  124. package/dist/tiptap-core.umd.js +3182 -1937
  125. package/dist/tiptap-core.umd.js.map +1 -1
  126. package/package.json +19 -16
  127. package/src/CommandManager.ts +59 -61
  128. package/src/Editor.ts +91 -95
  129. package/src/EventEmitter.ts +14 -4
  130. package/src/Extension.ts +202 -40
  131. package/src/ExtensionManager.ts +234 -70
  132. package/src/InputRule.ts +268 -0
  133. package/src/Mark.ts +248 -46
  134. package/src/Node.ts +275 -51
  135. package/src/NodeView.ts +105 -42
  136. package/src/PasteRule.ts +215 -0
  137. package/src/Tracker.ts +42 -0
  138. package/src/commands/blur.ts +9 -7
  139. package/src/commands/clearContent.ts +3 -3
  140. package/src/commands/clearNodes.ts +25 -19
  141. package/src/commands/command.ts +2 -2
  142. package/src/commands/createParagraphNear.ts +3 -3
  143. package/src/commands/deleteNode.ts +36 -0
  144. package/src/commands/deleteRange.ts +3 -3
  145. package/src/commands/deleteSelection.ts +3 -3
  146. package/src/commands/enter.ts +3 -3
  147. package/src/commands/exitCode.ts +3 -3
  148. package/src/commands/extendMarkRange.ts +8 -8
  149. package/src/commands/first.ts +3 -3
  150. package/src/commands/focus.ts +31 -9
  151. package/src/commands/forEach.ts +24 -0
  152. package/src/commands/insertContent.ts +23 -0
  153. package/src/commands/insertContentAt.ts +93 -0
  154. package/src/commands/joinBackward.ts +3 -3
  155. package/src/commands/joinForward.ts +3 -3
  156. package/src/commands/keyboardShortcut.ts +3 -3
  157. package/src/commands/lift.ts +3 -3
  158. package/src/commands/liftEmptyBlock.ts +3 -3
  159. package/src/commands/liftListItem.ts +3 -3
  160. package/src/commands/newlineInCode.ts +3 -3
  161. package/src/commands/resetAttributes.ts +61 -0
  162. package/src/commands/scrollIntoView.ts +3 -3
  163. package/src/commands/selectAll.ts +8 -6
  164. package/src/commands/selectNodeBackward.ts +3 -3
  165. package/src/commands/selectNodeForward.ts +3 -3
  166. package/src/commands/selectParentNode.ts +3 -3
  167. package/src/commands/setContent.ts +10 -5
  168. package/src/commands/setMark.ts +33 -10
  169. package/src/commands/setMeta.ts +18 -0
  170. package/src/commands/setNode.ts +3 -3
  171. package/src/commands/setNodeSelection.ts +28 -0
  172. package/src/commands/setTextSelection.ts +32 -0
  173. package/src/commands/sinkListItem.ts +3 -3
  174. package/src/commands/splitBlock.ts +13 -8
  175. package/src/commands/splitListItem.ts +39 -13
  176. package/src/commands/toggleList.ts +4 -4
  177. package/src/commands/toggleMark.ts +15 -5
  178. package/src/commands/toggleNode.ts +3 -3
  179. package/src/commands/toggleWrap.ts +3 -3
  180. package/src/commands/undoInputRule.ts +33 -5
  181. package/src/commands/unsetAllMarks.ts +3 -3
  182. package/src/commands/unsetMark.ts +32 -20
  183. package/src/commands/updateAttributes.ts +72 -0
  184. package/src/commands/wrapIn.ts +3 -3
  185. package/src/commands/wrapInList.ts +3 -3
  186. package/src/extensions/clipboardTextSerializer.ts +11 -35
  187. package/src/extensions/commands.ts +27 -21
  188. package/src/extensions/focusEvents.ts +0 -3
  189. package/src/extensions/index.ts +1 -0
  190. package/src/extensions/keymap.ts +6 -6
  191. package/src/extensions/tabindex.ts +19 -0
  192. package/src/helpers/createChainableState.ts +37 -0
  193. package/src/helpers/createDocument.ts +11 -0
  194. package/src/helpers/createNodeFromContent.ts +56 -0
  195. package/src/helpers/findChildren.ts +17 -0
  196. package/src/helpers/findChildrenInRange.ts +31 -0
  197. package/src/helpers/generateHTML.ts +3 -3
  198. package/src/helpers/generateJSON.ts +13 -0
  199. package/src/helpers/generateText.ts +29 -0
  200. package/src/helpers/getAttributes.ts +27 -0
  201. package/src/helpers/getAttributesFromExtensions.ts +26 -5
  202. package/src/helpers/getDebugJSON.ts +46 -0
  203. package/src/helpers/getExtensionField.ts +25 -0
  204. package/src/helpers/getHTMLFromFragment.ts +5 -5
  205. package/src/helpers/getMarkAttributes.ts +11 -8
  206. package/src/helpers/getMarkRange.ts +34 -6
  207. package/src/helpers/getMarkType.ts +4 -0
  208. package/src/helpers/getMarksBetween.ts +3 -3
  209. package/src/helpers/getNodeAttributes.ts +6 -7
  210. package/src/helpers/getNodeType.ts +4 -0
  211. package/src/helpers/getRenderedAttributes.ts +3 -5
  212. package/src/helpers/getSchema.ts +5 -132
  213. package/src/helpers/getSchemaByResolvedExtensions.ts +147 -0
  214. package/src/helpers/getSchemaTypeByName.ts +1 -9
  215. package/src/helpers/getSplittedAttributes.ts +3 -3
  216. package/src/helpers/getText.ts +18 -0
  217. package/src/helpers/getTextBetween.ts +45 -0
  218. package/src/helpers/getTextSeralizersFromSchema.ts +9 -0
  219. package/src/helpers/injectExtensionAttributesToParseRule.ts +12 -8
  220. package/src/helpers/isActive.ts +1 -2
  221. package/src/helpers/isExtensionRulesEnabled.ts +15 -0
  222. package/src/helpers/isList.ts +11 -4
  223. package/src/helpers/isMarkActive.ts +40 -16
  224. package/src/helpers/isNodeActive.ts +23 -31
  225. package/src/helpers/posToDOMRect.ts +34 -0
  226. package/src/index.ts +34 -5
  227. package/src/inputRules/markInputRule.ts +57 -38
  228. package/src/inputRules/nodeInputRule.ts +43 -11
  229. package/src/inputRules/textInputRule.ts +35 -0
  230. package/src/inputRules/textblockTypeInputRule.ts +37 -0
  231. package/src/inputRules/wrappingInputRule.ts +59 -0
  232. package/src/pasteRules/markPasteRule.ts +61 -53
  233. package/src/pasteRules/textPasteRule.ts +35 -0
  234. package/src/style.ts +14 -0
  235. package/src/types.ts +118 -36
  236. package/src/utilities/callOrReturn.ts +6 -3
  237. package/src/utilities/createStyleTag.ts +7 -0
  238. package/src/utilities/deleteProps.ts +2 -4
  239. package/src/utilities/elementFromString.ts +3 -4
  240. package/src/utilities/findDuplicates.ts +5 -0
  241. package/src/utilities/fromString.ts +1 -1
  242. package/src/utilities/isClass.ts +2 -2
  243. package/src/utilities/isEmptyObject.ts +2 -2
  244. package/src/utilities/isFunction.ts +3 -0
  245. package/src/utilities/isNumber.ts +3 -0
  246. package/src/utilities/isObject.ts +5 -5
  247. package/src/utilities/isPlainObject.ts +5 -5
  248. package/src/utilities/isRegExp.ts +3 -0
  249. package/src/utilities/isString.ts +3 -0
  250. package/src/utilities/isiOS.ts +12 -0
  251. package/src/utilities/mergeAttributes.ts +2 -3
  252. package/src/utilities/mergeDeep.ts +1 -2
  253. package/src/utilities/objectIncludes.ts +17 -5
  254. package/CHANGELOG.md +0 -294
  255. package/dist/packages/core/src/commands/insertHTML.d.ts +0 -12
  256. package/dist/packages/core/src/commands/insertNode.d.ts +0 -13
  257. package/dist/packages/core/src/commands/insertText.d.ts +0 -12
  258. package/dist/packages/core/src/commands/replace.d.ts +0 -13
  259. package/dist/packages/core/src/commands/replaceRange.d.ts +0 -13
  260. package/dist/packages/core/src/commands/resetNodeAttributes.d.ts +0 -13
  261. package/dist/packages/core/src/commands/updateNodeAttributes.d.ts +0 -13
  262. package/dist/packages/core/src/utilities/removeElement.d.ts +0 -1
  263. package/dist/tiptap-core.bundle.umd.min.js +0 -17
  264. package/dist/tiptap-core.bundle.umd.min.js.map +0 -1
  265. package/src/commands/insertHTML.ts +0 -28
  266. package/src/commands/insertNode.ts +0 -31
  267. package/src/commands/insertText.ts +0 -20
  268. package/src/commands/replace.ts +0 -20
  269. package/src/commands/replaceRange.ts +0 -36
  270. package/src/commands/resetNodeAttributes.ts +0 -31
  271. package/src/commands/updateNodeAttributes.ts +0 -33
  272. package/src/utilities/removeElement.ts +0 -5
@@ -1,124 +1,187 @@
1
1
  import { DOMOutputSpec, NodeSpec, Node as ProseMirrorNode, NodeType } from 'prosemirror-model';
2
- import { Command as ProseMirrorCommand } from 'prosemirror-commands';
3
2
  import { Plugin, Transaction } from 'prosemirror-state';
4
- import { InputRule } from 'prosemirror-inputrules';
5
- import { Attributes, NodeViewRenderer, GlobalAttributes, RawCommands } from './types';
3
+ import { InputRule } from './InputRule';
4
+ import { PasteRule } from './PasteRule';
5
+ import { Extensions, Attributes, NodeViewRenderer, GlobalAttributes, RawCommands, ParentConfig, KeyboardShortcutCommand } from './types';
6
6
  import { NodeConfig } from '.';
7
7
  import { Editor } from './Editor';
8
8
  declare module '@tiptap/core' {
9
- interface NodeConfig<Options = any> {
9
+ interface NodeConfig<Options = any, Storage = any> {
10
10
  [key: string]: any;
11
11
  /**
12
12
  * Name
13
13
  */
14
14
  name: string;
15
+ /**
16
+ * Priority
17
+ */
18
+ priority?: number;
15
19
  /**
16
20
  * Default options
17
21
  */
18
22
  defaultOptions?: Options;
23
+ /**
24
+ * Default Options
25
+ */
26
+ addOptions?: (this: {
27
+ name: string;
28
+ parent: Exclude<ParentConfig<NodeConfig<Options, Storage>>['addOptions'], undefined>;
29
+ }) => Options;
30
+ /**
31
+ * Default Storage
32
+ */
33
+ addStorage?: (this: {
34
+ name: string;
35
+ options: Options;
36
+ parent: Exclude<ParentConfig<NodeConfig<Options, Storage>>['addStorage'], undefined>;
37
+ }) => Storage;
19
38
  /**
20
39
  * Global attributes
21
40
  */
22
41
  addGlobalAttributes?: (this: {
42
+ name: string;
23
43
  options: Options;
44
+ storage: Storage;
45
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addGlobalAttributes'];
24
46
  }) => GlobalAttributes | {};
25
47
  /**
26
48
  * Raw
27
49
  */
28
50
  addCommands?: (this: {
51
+ name: string;
29
52
  options: Options;
53
+ storage: Storage;
30
54
  editor: Editor;
31
55
  type: NodeType;
56
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addCommands'];
32
57
  }) => Partial<RawCommands>;
33
58
  /**
34
59
  * Keyboard shortcuts
35
60
  */
36
61
  addKeyboardShortcuts?: (this: {
62
+ name: string;
37
63
  options: Options;
64
+ storage: Storage;
38
65
  editor: Editor;
39
66
  type: NodeType;
67
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addKeyboardShortcuts'];
40
68
  }) => {
41
- [key: string]: ProseMirrorCommand;
69
+ [key: string]: KeyboardShortcutCommand;
42
70
  };
43
71
  /**
44
72
  * Input rules
45
73
  */
46
74
  addInputRules?: (this: {
75
+ name: string;
47
76
  options: Options;
77
+ storage: Storage;
48
78
  editor: Editor;
49
79
  type: NodeType;
80
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addInputRules'];
50
81
  }) => InputRule[];
51
82
  /**
52
83
  * Paste rules
53
84
  */
54
85
  addPasteRules?: (this: {
86
+ name: string;
55
87
  options: Options;
88
+ storage: Storage;
56
89
  editor: Editor;
57
90
  type: NodeType;
58
- }) => Plugin[];
91
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addPasteRules'];
92
+ }) => PasteRule[];
59
93
  /**
60
94
  * ProseMirror plugins
61
95
  */
62
96
  addProseMirrorPlugins?: (this: {
97
+ name: string;
63
98
  options: Options;
99
+ storage: Storage;
64
100
  editor: Editor;
65
101
  type: NodeType;
102
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addProseMirrorPlugins'];
66
103
  }) => Plugin[];
104
+ /**
105
+ * Extensions
106
+ */
107
+ addExtensions?: (this: {
108
+ name: string;
109
+ options: Options;
110
+ storage: Storage;
111
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addExtensions'];
112
+ }) => Extensions;
67
113
  /**
68
114
  * Extend Node Schema
69
115
  */
70
116
  extendNodeSchema?: ((this: {
117
+ name: string;
71
118
  options: Options;
72
- }, extension: Node) => {
73
- [key: string]: any;
74
- }) | null;
119
+ storage: Storage;
120
+ parent: ParentConfig<NodeConfig<Options, Storage>>['extendNodeSchema'];
121
+ }, extension: Node) => Record<string, any>) | null;
75
122
  /**
76
123
  * Extend Mark Schema
77
124
  */
78
125
  extendMarkSchema?: ((this: {
126
+ name: string;
79
127
  options: Options;
80
- }, extension: Node) => {
81
- [key: string]: any;
82
- }) | null;
128
+ storage: Storage;
129
+ parent: ParentConfig<NodeConfig<Options, Storage>>['extendMarkSchema'];
130
+ }, extension: Node) => Record<string, any>) | null;
83
131
  /**
84
- * The editor is ready.
132
+ * The editor is not ready yet.
85
133
  */
86
- onCreate?: ((this: {
134
+ onBeforeCreate?: ((this: {
135
+ name: string;
87
136
  options: Options;
137
+ storage: Storage;
88
138
  editor: Editor;
89
139
  type: NodeType;
140
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onBeforeCreate'];
90
141
  }) => void) | null;
91
142
  /**
92
- * The content has changed.
143
+ * The editor is ready.
93
144
  */
94
- onUpdate?: ((this: {
145
+ onCreate?: ((this: {
146
+ name: string;
95
147
  options: Options;
148
+ storage: Storage;
96
149
  editor: Editor;
97
150
  type: NodeType;
151
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onCreate'];
98
152
  }) => void) | null;
99
153
  /**
100
- * The selection has changed.
154
+ * The content has changed.
101
155
  */
102
- onSelectionUpdate?: ((this: {
156
+ onUpdate?: ((this: {
157
+ name: string;
103
158
  options: Options;
159
+ storage: Storage;
104
160
  editor: Editor;
105
161
  type: NodeType;
162
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onUpdate'];
106
163
  }) => void) | null;
107
164
  /**
108
- * The view has changed.
165
+ * The selection has changed.
109
166
  */
110
- onViewUpdate?: ((this: {
167
+ onSelectionUpdate?: ((this: {
168
+ name: string;
111
169
  options: Options;
170
+ storage: Storage;
112
171
  editor: Editor;
113
172
  type: NodeType;
173
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onSelectionUpdate'];
114
174
  }) => void) | null;
115
175
  /**
116
176
  * The editor state has changed.
117
177
  */
118
178
  onTransaction?: ((this: {
179
+ name: string;
119
180
  options: Options;
181
+ storage: Storage;
120
182
  editor: Editor;
121
183
  type: NodeType;
184
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onTransaction'];
122
185
  }, props: {
123
186
  transaction: Transaction;
124
187
  }) => void) | null;
@@ -126,9 +189,12 @@ declare module '@tiptap/core' {
126
189
  * The editor is focused.
127
190
  */
128
191
  onFocus?: ((this: {
192
+ name: string;
129
193
  options: Options;
194
+ storage: Storage;
130
195
  editor: Editor;
131
196
  type: NodeType;
197
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onFocus'];
132
198
  }, props: {
133
199
  event: FocusEvent;
134
200
  }) => void) | null;
@@ -136,9 +202,12 @@ declare module '@tiptap/core' {
136
202
  * The editor isn’t focused anymore.
137
203
  */
138
204
  onBlur?: ((this: {
205
+ name: string;
139
206
  options: Options;
207
+ storage: Storage;
140
208
  editor: Editor;
141
209
  type: NodeType;
210
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onBlur'];
142
211
  }, props: {
143
212
  event: FocusEvent;
144
213
  }) => void) | null;
@@ -146,17 +215,23 @@ declare module '@tiptap/core' {
146
215
  * The editor is destroyed.
147
216
  */
148
217
  onDestroy?: ((this: {
218
+ name: string;
149
219
  options: Options;
220
+ storage: Storage;
150
221
  editor: Editor;
151
222
  type: NodeType;
223
+ parent: ParentConfig<NodeConfig<Options, Storage>>['onDestroy'];
152
224
  }) => void) | null;
153
225
  /**
154
226
  * Node View
155
227
  */
156
228
  addNodeView?: ((this: {
229
+ name: string;
157
230
  options: Options;
231
+ storage: Storage;
158
232
  editor: Editor;
159
233
  type: NodeType;
234
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addNodeView'];
160
235
  }) => NodeViewRenderer) | null;
161
236
  /**
162
237
  * TopNode
@@ -166,104 +241,148 @@ declare module '@tiptap/core' {
166
241
  * Content
167
242
  */
168
243
  content?: NodeSpec['content'] | ((this: {
244
+ name: string;
169
245
  options: Options;
246
+ storage: Storage;
247
+ parent: ParentConfig<NodeConfig<Options, Storage>>['content'];
170
248
  }) => NodeSpec['content']);
171
249
  /**
172
250
  * Marks
173
251
  */
174
252
  marks?: NodeSpec['marks'] | ((this: {
253
+ name: string;
175
254
  options: Options;
255
+ storage: Storage;
256
+ parent: ParentConfig<NodeConfig<Options, Storage>>['marks'];
176
257
  }) => NodeSpec['marks']);
177
258
  /**
178
259
  * Group
179
260
  */
180
261
  group?: NodeSpec['group'] | ((this: {
262
+ name: string;
181
263
  options: Options;
264
+ storage: Storage;
265
+ parent: ParentConfig<NodeConfig<Options, Storage>>['group'];
182
266
  }) => NodeSpec['group']);
183
267
  /**
184
268
  * Inline
185
269
  */
186
270
  inline?: NodeSpec['inline'] | ((this: {
271
+ name: string;
187
272
  options: Options;
273
+ storage: Storage;
274
+ parent: ParentConfig<NodeConfig<Options, Storage>>['inline'];
188
275
  }) => NodeSpec['inline']);
189
276
  /**
190
277
  * Atom
191
278
  */
192
279
  atom?: NodeSpec['atom'] | ((this: {
280
+ name: string;
193
281
  options: Options;
282
+ storage: Storage;
283
+ parent: ParentConfig<NodeConfig<Options, Storage>>['atom'];
194
284
  }) => NodeSpec['atom']);
195
285
  /**
196
286
  * Selectable
197
287
  */
198
288
  selectable?: NodeSpec['selectable'] | ((this: {
289
+ name: string;
199
290
  options: Options;
291
+ storage: Storage;
292
+ parent: ParentConfig<NodeConfig<Options, Storage>>['selectable'];
200
293
  }) => NodeSpec['selectable']);
201
294
  /**
202
295
  * Draggable
203
296
  */
204
297
  draggable?: NodeSpec['draggable'] | ((this: {
298
+ name: string;
205
299
  options: Options;
300
+ storage: Storage;
301
+ parent: ParentConfig<NodeConfig<Options, Storage>>['draggable'];
206
302
  }) => NodeSpec['draggable']);
207
303
  /**
208
304
  * Code
209
305
  */
210
306
  code?: NodeSpec['code'] | ((this: {
307
+ name: string;
211
308
  options: Options;
309
+ storage: Storage;
310
+ parent: ParentConfig<NodeConfig<Options, Storage>>['code'];
212
311
  }) => NodeSpec['code']);
213
312
  /**
214
313
  * Defining
215
314
  */
216
315
  defining?: NodeSpec['defining'] | ((this: {
316
+ name: string;
217
317
  options: Options;
318
+ storage: Storage;
319
+ parent: ParentConfig<NodeConfig<Options, Storage>>['defining'];
218
320
  }) => NodeSpec['defining']);
219
321
  /**
220
322
  * Isolating
221
323
  */
222
324
  isolating?: NodeSpec['isolating'] | ((this: {
325
+ name: string;
223
326
  options: Options;
327
+ storage: Storage;
328
+ parent: ParentConfig<NodeConfig<Options, Storage>>['isolating'];
224
329
  }) => NodeSpec['isolating']);
225
330
  /**
226
331
  * Parse HTML
227
332
  */
228
333
  parseHTML?: (this: {
334
+ name: string;
229
335
  options: Options;
336
+ storage: Storage;
337
+ parent: ParentConfig<NodeConfig<Options, Storage>>['parseHTML'];
230
338
  }) => NodeSpec['parseDOM'];
231
339
  /**
232
340
  * Render HTML
233
341
  */
234
342
  renderHTML?: ((this: {
343
+ name: string;
235
344
  options: Options;
345
+ storage: Storage;
346
+ parent: ParentConfig<NodeConfig<Options, Storage>>['renderHTML'];
236
347
  }, props: {
237
348
  node: ProseMirrorNode;
238
- HTMLAttributes: {
239
- [key: string]: any;
240
- };
349
+ HTMLAttributes: Record<string, any>;
241
350
  }) => DOMOutputSpec) | null;
242
351
  /**
243
352
  * Render Text
244
353
  */
245
354
  renderText?: ((this: {
355
+ name: string;
246
356
  options: Options;
247
- editor: Editor;
248
- type: NodeType;
357
+ storage: Storage;
358
+ parent: ParentConfig<NodeConfig<Options, Storage>>['renderText'];
249
359
  }, props: {
250
360
  node: ProseMirrorNode;
361
+ pos: number;
362
+ parent: ProseMirrorNode;
363
+ index: number;
251
364
  }) => string) | null;
252
365
  /**
253
366
  * Add Attributes
254
367
  */
255
368
  addAttributes?: (this: {
369
+ name: string;
256
370
  options: Options;
371
+ storage: Storage;
372
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addAttributes'];
257
373
  }) => Attributes | {};
258
374
  }
259
375
  }
260
- export declare class Node<Options = any> {
261
- #private;
376
+ export declare class Node<Options = any, Storage = any> {
262
377
  type: string;
263
- config: NodeConfig;
378
+ name: string;
379
+ parent: Node | null;
380
+ child: Node | null;
264
381
  options: Options;
265
- constructor(config: NodeConfig<Options>);
266
- static create<O>(config: NodeConfig<O>): Node<O>;
267
- configure(options?: Partial<Options>): Node<Options>;
268
- extend<ExtendedOptions = Options>(extendedConfig: Partial<NodeConfig<ExtendedOptions>>): Node<ExtendedOptions>;
382
+ storage: Storage;
383
+ config: NodeConfig;
384
+ constructor(config?: Partial<NodeConfig<Options, Storage>>);
385
+ static create<O = any, S = any>(config?: Partial<NodeConfig<O, S>>): Node<O, S>;
386
+ configure(options?: Partial<Options>): Node<Options, Storage>;
387
+ extend<ExtendedOptions = Options, ExtendedStorage = Storage>(extendedConfig?: Partial<NodeConfig<ExtendedOptions, ExtendedStorage>>): Node<ExtendedOptions, ExtendedStorage>;
269
388
  }
@@ -2,21 +2,17 @@ import { Decoration, NodeView as ProseMirrorNodeView } from 'prosemirror-view';
2
2
  import { Node as ProseMirrorNode } from 'prosemirror-model';
3
3
  import { Editor as CoreEditor } from './Editor';
4
4
  import { Node } from './Node';
5
- import { NodeViewRendererProps } from './types';
6
- interface NodeViewRendererOptions {
7
- stopEvent: ((event: Event) => boolean) | null;
8
- update: ((node: ProseMirrorNode, decorations: Decoration[]) => boolean) | null;
9
- }
10
- export declare class NodeView<Component, Editor extends CoreEditor = CoreEditor> implements ProseMirrorNodeView {
5
+ import { NodeViewRendererProps, NodeViewRendererOptions } from './types';
6
+ export declare class NodeView<Component, Editor extends CoreEditor = CoreEditor, Options extends NodeViewRendererOptions = NodeViewRendererOptions> implements ProseMirrorNodeView {
11
7
  component: Component;
12
8
  editor: Editor;
9
+ options: Options;
13
10
  extension: Node;
14
11
  node: ProseMirrorNode;
15
12
  decorations: Decoration[];
16
13
  getPos: any;
17
14
  isDragging: boolean;
18
- options: NodeViewRendererOptions;
19
- constructor(component: Component, props: NodeViewRendererProps, options?: Partial<NodeViewRendererOptions>);
15
+ constructor(component: Component, props: NodeViewRendererProps, options?: Partial<Options>);
20
16
  mount(): void;
21
17
  get dom(): Element | null;
22
18
  get contentDOM(): Element | null;
@@ -27,5 +23,5 @@ export declare class NodeView<Component, Editor extends CoreEditor = CoreEditor>
27
23
  target: Element;
28
24
  }): boolean;
29
25
  updateAttributes(attributes: {}): void;
26
+ deleteNode(): void;
30
27
  }
31
- export {};
@@ -0,0 +1,42 @@
1
+ import { EditorState, Plugin } from 'prosemirror-state';
2
+ import { Editor } from './Editor';
3
+ import { Range, ExtendedRegExpMatchArray, SingleCommands, ChainedCommands, CanCommands } from './types';
4
+ export declare type PasteRuleMatch = {
5
+ index: number;
6
+ text: string;
7
+ replaceWith?: string;
8
+ match?: RegExpMatchArray;
9
+ data?: Record<string, any>;
10
+ };
11
+ export declare type PasteRuleFinder = RegExp | ((text: string) => PasteRuleMatch[] | null | undefined);
12
+ export declare class PasteRule {
13
+ find: PasteRuleFinder;
14
+ handler: (props: {
15
+ state: EditorState;
16
+ range: Range;
17
+ match: ExtendedRegExpMatchArray;
18
+ commands: SingleCommands;
19
+ chain: () => ChainedCommands;
20
+ can: () => CanCommands;
21
+ }) => void;
22
+ constructor(config: {
23
+ find: PasteRuleFinder;
24
+ handler: (props: {
25
+ state: EditorState;
26
+ range: Range;
27
+ match: ExtendedRegExpMatchArray;
28
+ commands: SingleCommands;
29
+ chain: () => ChainedCommands;
30
+ can: () => CanCommands;
31
+ }) => void;
32
+ });
33
+ }
34
+ /**
35
+ * Create an paste rules plugin. When enabled, it will cause pasted
36
+ * text that matches any of the given rules to trigger the rule’s
37
+ * action.
38
+ */
39
+ export declare function pasteRulesPlugin(props: {
40
+ editor: Editor;
41
+ rules: PasteRule[];
42
+ }): Plugin;
@@ -0,0 +1,11 @@
1
+ import { Transaction } from 'prosemirror-state';
2
+ export interface TrackerResult {
3
+ position: number;
4
+ deleted: boolean;
5
+ }
6
+ export declare class Tracker {
7
+ transaction: Transaction;
8
+ currentStep: number;
9
+ constructor(transaction: Transaction);
10
+ map(position: number): TrackerResult;
11
+ }
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands } from '../types';
1
+ import { RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  blur: {
5
5
  /**
6
6
  * Removes focus from the editor.
7
7
  */
8
- blur: () => Command;
8
+ blur: () => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands } from '../types';
1
+ import { RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  clearContent: {
5
5
  /**
6
6
  * Clear the whole document.
7
7
  */
8
- clearContent: (emitUpdate: Boolean) => Command;
8
+ clearContent: (emitUpdate?: boolean) => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands } from '../types';
1
+ import { RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  clearNodes: {
5
5
  /**
6
6
  * Normalize nodes to a simple paragraph.
7
7
  */
8
- clearNodes: () => Command;
8
+ clearNodes: () => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -1,11 +1,11 @@
1
1
  import { Command, RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  command: {
5
5
  /**
6
6
  * Define a command inline.
7
7
  */
8
- command: (fn: (props: Parameters<Command>[0]) => boolean) => Command;
8
+ command: (fn: (props: Parameters<Command>[0]) => boolean) => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands } from '../types';
1
+ import { RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  createParagraphNear: {
5
5
  /**
6
6
  * Create a paragraph nearby.
7
7
  */
8
- createParagraphNear: () => Command;
8
+ createParagraphNear: () => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -0,0 +1,13 @@
1
+ import { NodeType } from 'prosemirror-model';
2
+ import { RawCommands } from '../types';
3
+ declare module '@tiptap/core' {
4
+ interface Commands<ReturnType> {
5
+ deleteNode: {
6
+ /**
7
+ * Delete a node.
8
+ */
9
+ deleteNode: (typeOrName: string | NodeType) => ReturnType;
10
+ };
11
+ }
12
+ }
13
+ export declare const deleteNode: RawCommands['deleteNode'];
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands, Range } from '../types';
1
+ import { RawCommands, Range } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  deleteRange: {
5
5
  /**
6
6
  * Delete a given range.
7
7
  */
8
- deleteRange: (range: Range) => Command;
8
+ deleteRange: (range: Range) => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands } from '../types';
1
+ import { RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  deleteSelection: {
5
5
  /**
6
6
  * Delete the selection, if there is one.
7
7
  */
8
- deleteSelection: () => Command;
8
+ deleteSelection: () => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands } from '../types';
1
+ import { RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  enter: {
5
5
  /**
6
6
  * Trigger enter.
7
7
  */
8
- enter: () => Command;
8
+ enter: () => ReturnType;
9
9
  };
10
10
  }
11
11
  }
@@ -1,11 +1,11 @@
1
- import { Command, RawCommands } from '../types';
1
+ import { RawCommands } from '../types';
2
2
  declare module '@tiptap/core' {
3
- interface Commands {
3
+ interface Commands<ReturnType> {
4
4
  exitCode: {
5
5
  /**
6
6
  * Exit from a code block.
7
7
  */
8
- exitCode: () => Command;
8
+ exitCode: () => ReturnType;
9
9
  };
10
10
  }
11
11
  }