@tiptap/core 2.0.0-beta.17 → 2.0.0-beta.173

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 (318) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +2 -2
  3. package/dist/packages/core/src/CommandManager.d.ts +13 -6
  4. package/dist/packages/core/src/Editor.d.ts +23 -18
  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 +7 -12
  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 +160 -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 +5 -3
  27. package/dist/packages/core/src/commands/forEach.d.ts +14 -0
  28. package/dist/packages/core/src/commands/insertContent.d.ts +7 -3
  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/selectTextblockEnd.d.ts +12 -0
  44. package/dist/packages/core/src/commands/selectTextblockStart.d.ts +12 -0
  45. package/dist/packages/core/src/commands/setContent.d.ts +4 -3
  46. package/dist/packages/core/src/commands/setMark.d.ts +3 -3
  47. package/dist/packages/core/src/commands/setMeta.d.ts +12 -0
  48. package/dist/packages/core/src/commands/setNode.d.ts +3 -3
  49. package/dist/packages/core/src/commands/setNodeSelection.d.ts +12 -0
  50. package/dist/packages/core/src/commands/setTextSelection.d.ts +12 -0
  51. package/dist/packages/core/src/commands/sinkListItem.d.ts +3 -3
  52. package/dist/packages/core/src/commands/splitBlock.d.ts +3 -3
  53. package/dist/packages/core/src/commands/splitListItem.d.ts +3 -3
  54. package/dist/packages/core/src/commands/toggleList.d.ts +3 -3
  55. package/dist/packages/core/src/commands/toggleMark.d.ts +8 -3
  56. package/dist/packages/core/src/commands/toggleNode.d.ts +3 -3
  57. package/dist/packages/core/src/commands/toggleWrap.d.ts +3 -3
  58. package/dist/packages/core/src/commands/undoInputRule.d.ts +3 -3
  59. package/dist/packages/core/src/commands/unsetAllMarks.d.ts +3 -3
  60. package/dist/packages/core/src/commands/unsetMark.d.ts +8 -3
  61. package/dist/packages/core/src/commands/updateAttributes.d.ts +13 -0
  62. package/dist/packages/core/src/commands/wrapIn.d.ts +3 -3
  63. package/dist/packages/core/src/commands/wrapInList.d.ts +3 -3
  64. package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +1 -1
  65. package/dist/packages/core/src/extensions/commands.d.ts +21 -15
  66. package/dist/packages/core/src/extensions/editable.d.ts +1 -1
  67. package/dist/packages/core/src/extensions/focusEvents.d.ts +1 -1
  68. package/dist/packages/core/src/extensions/index.d.ts +1 -0
  69. package/dist/packages/core/src/extensions/keymap.d.ts +1 -1
  70. package/dist/packages/core/src/extensions/tabindex.d.ts +2 -0
  71. package/dist/packages/core/src/helpers/combineTransactionSteps.d.ts +7 -0
  72. package/dist/packages/core/src/helpers/createChainableState.d.ts +5 -0
  73. package/dist/packages/core/src/helpers/createDocument.d.ts +3 -4
  74. package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +4 -5
  75. package/dist/packages/core/src/helpers/defaultBlockAt.d.ts +2 -0
  76. package/dist/packages/core/src/helpers/findChildren.d.ts +3 -0
  77. package/dist/packages/core/src/helpers/findChildrenInRange.d.ts +6 -0
  78. package/dist/packages/core/src/helpers/findParentNode.d.ts +1 -1
  79. package/dist/packages/core/src/helpers/findParentNodeClosestToPos.d.ts +1 -1
  80. package/dist/packages/core/src/helpers/generateHTML.d.ts +2 -2
  81. package/dist/packages/core/src/helpers/generateJSON.d.ts +2 -0
  82. package/dist/packages/core/src/helpers/generateText.d.ts +5 -0
  83. package/dist/packages/core/src/helpers/getAttributes.d.ts +3 -0
  84. package/dist/packages/core/src/helpers/getAttributesFromExtensions.d.ts +1 -1
  85. package/dist/packages/core/src/helpers/getChangedRanges.d.ts +11 -0
  86. package/dist/packages/core/src/helpers/getDebugJSON.d.ts +8 -0
  87. package/dist/packages/core/src/helpers/getExtensionField.d.ts +2 -0
  88. package/dist/packages/core/src/helpers/getHTMLFromFragment.d.ts +2 -2
  89. package/dist/packages/core/src/helpers/getMarkAttributes.d.ts +1 -2
  90. package/dist/packages/core/src/helpers/getMarkRange.d.ts +1 -1
  91. package/dist/packages/core/src/helpers/getMarkType.d.ts +1 -1
  92. package/dist/packages/core/src/helpers/getMarksBetween.d.ts +2 -2
  93. package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +1 -2
  94. package/dist/packages/core/src/helpers/getNodeType.d.ts +1 -1
  95. package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +2 -2
  96. package/dist/packages/core/src/helpers/getSchema.d.ts +1 -1
  97. package/dist/packages/core/src/helpers/getSchemaByResolvedExtensions.d.ts +3 -0
  98. package/dist/packages/core/src/helpers/getSchemaTypeByName.d.ts +1 -1
  99. package/dist/packages/core/src/helpers/getSchemaTypeNameByName.d.ts +1 -1
  100. package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +2 -2
  101. package/dist/packages/core/src/helpers/getText.d.ts +6 -0
  102. package/dist/packages/core/src/helpers/getTextBetween.d.ts +6 -0
  103. package/dist/packages/core/src/helpers/getTextSeralizersFromSchema.d.ts +3 -0
  104. package/dist/packages/core/src/helpers/injectExtensionAttributesToParseRule.d.ts +1 -1
  105. package/dist/packages/core/src/helpers/isActive.d.ts +1 -2
  106. package/dist/packages/core/src/helpers/isExtensionRulesEnabled.d.ts +2 -0
  107. package/dist/packages/core/src/helpers/isList.d.ts +1 -1
  108. package/dist/packages/core/src/helpers/isMarkActive.d.ts +1 -2
  109. package/dist/packages/core/src/helpers/isNodeActive.d.ts +1 -2
  110. package/dist/packages/core/src/helpers/isNodeEmpty.d.ts +1 -1
  111. package/dist/packages/core/src/helpers/isNodeSelection.d.ts +1 -1
  112. package/dist/packages/core/src/helpers/isTextSelection.d.ts +1 -1
  113. package/dist/packages/core/src/helpers/posToDOMRect.d.ts +2 -0
  114. package/dist/packages/core/src/helpers/resolveFocusPosition.d.ts +4 -0
  115. package/dist/packages/core/src/helpers/selectionToInsertionEnd.d.ts +1 -1
  116. package/dist/packages/core/src/helpers/splitExtensions.d.ts +4 -4
  117. package/dist/packages/core/src/index.d.ts +51 -20
  118. package/dist/packages/core/src/inputRules/markInputRule.d.ts +11 -2
  119. package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +11 -2
  120. package/dist/packages/core/src/inputRules/textInputRule.d.ts +9 -0
  121. package/dist/packages/core/src/inputRules/textblockTypeInputRule.d.ts +14 -0
  122. package/dist/packages/core/src/inputRules/wrappingInputRule.d.ts +23 -0
  123. package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +11 -2
  124. package/dist/packages/core/src/pasteRules/textPasteRule.d.ts +9 -0
  125. package/dist/packages/core/src/style.d.ts +1 -2
  126. package/dist/packages/core/src/types.d.ts +105 -52
  127. package/dist/packages/core/src/utilities/callOrReturn.d.ts +2 -1
  128. package/dist/packages/core/src/utilities/createStyleTag.d.ts +1 -1
  129. package/dist/packages/core/src/utilities/deleteProps.d.ts +1 -2
  130. package/dist/packages/core/src/utilities/elementFromString.d.ts +1 -1
  131. package/dist/packages/core/src/utilities/escapeForRegEx.d.ts +1 -0
  132. package/dist/packages/core/src/utilities/findDuplicates.d.ts +1 -0
  133. package/dist/packages/core/src/utilities/fromString.d.ts +1 -1
  134. package/dist/packages/core/src/utilities/isClass.d.ts +1 -1
  135. package/dist/packages/core/src/utilities/isEmptyObject.d.ts +1 -1
  136. package/dist/packages/core/src/utilities/isFunction.d.ts +1 -0
  137. package/dist/packages/core/src/utilities/isMacOS.d.ts +1 -0
  138. package/dist/packages/core/src/utilities/isNumber.d.ts +1 -0
  139. package/dist/packages/core/src/utilities/isObject.d.ts +1 -1
  140. package/dist/packages/core/src/utilities/isPlainObject.d.ts +1 -1
  141. package/dist/packages/core/src/utilities/isRegExp.d.ts +1 -0
  142. package/dist/packages/core/src/utilities/isiOS.d.ts +1 -0
  143. package/dist/packages/core/src/utilities/mergeAttributes.d.ts +1 -2
  144. package/dist/packages/core/src/utilities/mergeDeep.d.ts +1 -2
  145. package/dist/packages/core/src/utilities/minMax.d.ts +1 -1
  146. package/dist/packages/core/src/utilities/objectIncludes.d.ts +3 -2
  147. package/dist/packages/core/src/utilities/removeDuplicates.d.ts +8 -0
  148. package/dist/tiptap-core.cjs.js +3576 -2041
  149. package/dist/tiptap-core.cjs.js.map +1 -1
  150. package/dist/tiptap-core.esm.js +3548 -2044
  151. package/dist/tiptap-core.esm.js.map +1 -1
  152. package/dist/tiptap-core.umd.js +3434 -1898
  153. package/dist/tiptap-core.umd.js.map +1 -1
  154. package/package.json +20 -16
  155. package/src/CommandManager.ts +60 -62
  156. package/src/Editor.ts +109 -74
  157. package/src/EventEmitter.ts +14 -4
  158. package/src/Extension.ts +196 -41
  159. package/src/ExtensionManager.ts +242 -78
  160. package/src/InputRule.ts +268 -0
  161. package/src/Mark.ts +242 -47
  162. package/src/Node.ts +279 -52
  163. package/src/NodeView.ts +105 -42
  164. package/src/PasteRule.ts +246 -0
  165. package/src/Tracker.ts +42 -0
  166. package/src/commands/blur.ts +12 -6
  167. package/src/commands/clearContent.ts +3 -3
  168. package/src/commands/clearNodes.ts +29 -18
  169. package/src/commands/command.ts +2 -2
  170. package/src/commands/createParagraphNear.ts +3 -3
  171. package/src/commands/deleteNode.ts +36 -0
  172. package/src/commands/deleteRange.ts +3 -3
  173. package/src/commands/deleteSelection.ts +3 -3
  174. package/src/commands/enter.ts +3 -3
  175. package/src/commands/exitCode.ts +3 -3
  176. package/src/commands/extendMarkRange.ts +10 -10
  177. package/src/commands/first.ts +3 -3
  178. package/src/commands/focus.ts +45 -44
  179. package/src/commands/forEach.ts +24 -0
  180. package/src/commands/insertContent.ts +12 -24
  181. package/src/commands/insertContentAt.ts +107 -0
  182. package/src/commands/joinBackward.ts +3 -3
  183. package/src/commands/joinForward.ts +3 -3
  184. package/src/commands/keyboardShortcut.ts +6 -6
  185. package/src/commands/lift.ts +5 -5
  186. package/src/commands/liftEmptyBlock.ts +3 -3
  187. package/src/commands/liftListItem.ts +4 -4
  188. package/src/commands/newlineInCode.ts +3 -3
  189. package/src/commands/resetAttributes.ts +61 -0
  190. package/src/commands/scrollIntoView.ts +3 -3
  191. package/src/commands/selectAll.ts +8 -6
  192. package/src/commands/selectNodeBackward.ts +3 -3
  193. package/src/commands/selectNodeForward.ts +3 -3
  194. package/src/commands/selectParentNode.ts +3 -3
  195. package/src/commands/selectTextblockEnd.ts +19 -0
  196. package/src/commands/selectTextblockStart.ts +19 -0
  197. package/src/commands/setContent.ts +7 -11
  198. package/src/commands/setMark.ts +35 -12
  199. package/src/commands/setMeta.ts +18 -0
  200. package/src/commands/setNode.ts +27 -6
  201. package/src/commands/setNodeSelection.ts +28 -0
  202. package/src/commands/setTextSelection.ts +32 -0
  203. package/src/commands/sinkListItem.ts +4 -4
  204. package/src/commands/splitBlock.ts +14 -9
  205. package/src/commands/splitListItem.ts +41 -15
  206. package/src/commands/toggleList.ts +82 -18
  207. package/src/commands/toggleMark.ts +17 -7
  208. package/src/commands/toggleNode.ts +5 -5
  209. package/src/commands/toggleWrap.ts +8 -9
  210. package/src/commands/undoInputRule.ts +34 -5
  211. package/src/commands/unsetAllMarks.ts +7 -11
  212. package/src/commands/unsetMark.ts +34 -22
  213. package/src/commands/updateAttributes.ts +72 -0
  214. package/src/commands/wrapIn.ts +4 -10
  215. package/src/commands/wrapInList.ts +4 -4
  216. package/src/extensions/clipboardTextSerializer.ts +13 -35
  217. package/src/extensions/commands.ts +30 -21
  218. package/src/extensions/focusEvents.ts +0 -3
  219. package/src/extensions/index.ts +1 -0
  220. package/src/extensions/keymap.ts +111 -13
  221. package/src/extensions/tabindex.ts +23 -0
  222. package/src/helpers/combineTransactionSteps.ts +18 -0
  223. package/src/helpers/createChainableState.ts +37 -0
  224. package/src/helpers/createDocument.ts +5 -7
  225. package/src/helpers/createNodeFromContent.ts +15 -18
  226. package/src/helpers/defaultBlockAt.ts +13 -0
  227. package/src/helpers/findChildren.ts +17 -0
  228. package/src/helpers/findChildrenInRange.ts +31 -0
  229. package/src/helpers/findParentNode.ts +2 -2
  230. package/src/helpers/findParentNodeClosestToPos.ts +1 -1
  231. package/src/helpers/generateHTML.ts +5 -5
  232. package/src/helpers/generateJSON.ts +13 -0
  233. package/src/helpers/generateText.ts +29 -0
  234. package/src/helpers/getAttributes.ts +27 -0
  235. package/src/helpers/getAttributesFromExtensions.ts +28 -7
  236. package/src/helpers/getChangedRanges.ts +82 -0
  237. package/src/helpers/getDebugJSON.ts +53 -0
  238. package/src/helpers/getExtensionField.ts +25 -0
  239. package/src/helpers/getHTMLFromFragment.ts +6 -5
  240. package/src/helpers/getMarkAttributes.ts +12 -9
  241. package/src/helpers/getMarkRange.ts +34 -6
  242. package/src/helpers/getMarkType.ts +5 -1
  243. package/src/helpers/getMarksBetween.ts +31 -10
  244. package/src/helpers/getNodeAttributes.ts +7 -8
  245. package/src/helpers/getNodeType.ts +5 -1
  246. package/src/helpers/getRenderedAttributes.ts +4 -6
  247. package/src/helpers/getSchema.ts +6 -133
  248. package/src/helpers/getSchemaByResolvedExtensions.ts +147 -0
  249. package/src/helpers/getSchemaTypeByName.ts +2 -10
  250. package/src/helpers/getSchemaTypeNameByName.ts +1 -1
  251. package/src/helpers/getSplittedAttributes.ts +4 -4
  252. package/src/helpers/getText.ts +18 -0
  253. package/src/helpers/getTextBetween.ts +45 -0
  254. package/src/helpers/getTextSeralizersFromSchema.ts +9 -0
  255. package/src/helpers/injectExtensionAttributesToParseRule.ts +14 -17
  256. package/src/helpers/isActive.ts +4 -5
  257. package/src/helpers/isExtensionRulesEnabled.ts +15 -0
  258. package/src/helpers/isList.ts +14 -7
  259. package/src/helpers/isMarkActive.ts +43 -19
  260. package/src/helpers/isNodeActive.ts +26 -34
  261. package/src/helpers/isNodeEmpty.ts +1 -1
  262. package/src/helpers/isNodeSelection.ts +2 -2
  263. package/src/helpers/isTextSelection.ts +2 -2
  264. package/src/helpers/posToDOMRect.ts +34 -0
  265. package/src/helpers/resolveFocusPosition.ts +34 -0
  266. package/src/helpers/selectionToInsertionEnd.ts +1 -1
  267. package/src/helpers/splitExtensions.ts +1 -1
  268. package/src/index.ts +53 -20
  269. package/src/inputRules/markInputRule.ts +58 -39
  270. package/src/inputRules/nodeInputRule.ts +44 -11
  271. package/src/inputRules/textInputRule.ts +35 -0
  272. package/src/inputRules/textblockTypeInputRule.ts +37 -0
  273. package/src/inputRules/wrappingInputRule.ts +59 -0
  274. package/src/pasteRules/markPasteRule.ts +61 -53
  275. package/src/pasteRules/textPasteRule.ts +35 -0
  276. package/src/style.ts +16 -3
  277. package/src/types.ts +119 -37
  278. package/src/utilities/callOrReturn.ts +6 -3
  279. package/src/utilities/createStyleTag.ts +8 -1
  280. package/src/utilities/deleteProps.ts +2 -4
  281. package/src/utilities/elementFromString.ts +4 -5
  282. package/src/utilities/escapeForRegEx.ts +4 -0
  283. package/src/utilities/findDuplicates.ts +5 -0
  284. package/src/utilities/fromString.ts +2 -2
  285. package/src/utilities/isClass.ts +2 -2
  286. package/src/utilities/isEmptyObject.ts +2 -2
  287. package/src/utilities/isFunction.ts +3 -0
  288. package/src/utilities/isMacOS.ts +5 -0
  289. package/src/utilities/isNumber.ts +3 -0
  290. package/src/utilities/isObject.ts +6 -6
  291. package/src/utilities/isPlainObject.ts +8 -5
  292. package/src/utilities/isRegExp.ts +3 -0
  293. package/src/utilities/isString.ts +3 -0
  294. package/src/utilities/isiOS.ts +12 -0
  295. package/src/utilities/mergeAttributes.ts +2 -3
  296. package/src/utilities/mergeDeep.ts +2 -3
  297. package/src/utilities/minMax.ts +1 -1
  298. package/src/utilities/objectIncludes.ts +17 -5
  299. package/src/utilities/removeDuplicates.ts +15 -0
  300. package/CHANGELOG.md +0 -324
  301. package/dist/packages/core/src/commands/insertHTML.d.ts +0 -12
  302. package/dist/packages/core/src/commands/insertNode.d.ts +0 -13
  303. package/dist/packages/core/src/commands/insertText.d.ts +0 -12
  304. package/dist/packages/core/src/commands/replace.d.ts +0 -13
  305. package/dist/packages/core/src/commands/replaceRange.d.ts +0 -13
  306. package/dist/packages/core/src/commands/resetNodeAttributes.d.ts +0 -13
  307. package/dist/packages/core/src/commands/updateNodeAttributes.d.ts +0 -13
  308. package/dist/packages/core/src/utilities/removeElement.d.ts +0 -1
  309. package/dist/tiptap-core.bundle.umd.min.js +0 -17
  310. package/dist/tiptap-core.bundle.umd.min.js.map +0 -1
  311. package/src/commands/insertHTML.ts +0 -30
  312. package/src/commands/insertNode.ts +0 -33
  313. package/src/commands/insertText.ts +0 -22
  314. package/src/commands/replace.ts +0 -20
  315. package/src/commands/replaceRange.ts +0 -36
  316. package/src/commands/resetNodeAttributes.ts +0 -31
  317. package/src/commands/updateNodeAttributes.ts +0 -33
  318. 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,157 @@ 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']);
312
+ /**
313
+ * Whitespace
314
+ */
315
+ whitespace?: NodeSpec['whitespace'] | ((this: {
316
+ name: string;
317
+ options: Options;
318
+ storage: Storage;
319
+ parent: ParentConfig<NodeConfig<Options, Storage>>['whitespace'];
320
+ }) => NodeSpec['whitespace']);
213
321
  /**
214
322
  * Defining
215
323
  */
216
324
  defining?: NodeSpec['defining'] | ((this: {
325
+ name: string;
217
326
  options: Options;
327
+ storage: Storage;
328
+ parent: ParentConfig<NodeConfig<Options, Storage>>['defining'];
218
329
  }) => NodeSpec['defining']);
219
330
  /**
220
331
  * Isolating
221
332
  */
222
333
  isolating?: NodeSpec['isolating'] | ((this: {
334
+ name: string;
223
335
  options: Options;
336
+ storage: Storage;
337
+ parent: ParentConfig<NodeConfig<Options, Storage>>['isolating'];
224
338
  }) => NodeSpec['isolating']);
225
339
  /**
226
340
  * Parse HTML
227
341
  */
228
342
  parseHTML?: (this: {
343
+ name: string;
229
344
  options: Options;
345
+ storage: Storage;
346
+ parent: ParentConfig<NodeConfig<Options, Storage>>['parseHTML'];
230
347
  }) => NodeSpec['parseDOM'];
231
348
  /**
232
349
  * Render HTML
233
350
  */
234
351
  renderHTML?: ((this: {
352
+ name: string;
235
353
  options: Options;
354
+ storage: Storage;
355
+ parent: ParentConfig<NodeConfig<Options, Storage>>['renderHTML'];
236
356
  }, props: {
237
357
  node: ProseMirrorNode;
238
- HTMLAttributes: {
239
- [key: string]: any;
240
- };
358
+ HTMLAttributes: Record<string, any>;
241
359
  }) => DOMOutputSpec) | null;
242
360
  /**
243
361
  * Render Text
244
362
  */
245
363
  renderText?: ((this: {
364
+ name: string;
246
365
  options: Options;
247
- editor: Editor;
248
- type: NodeType;
366
+ storage: Storage;
367
+ parent: ParentConfig<NodeConfig<Options, Storage>>['renderText'];
249
368
  }, props: {
250
369
  node: ProseMirrorNode;
370
+ pos: number;
371
+ parent: ProseMirrorNode;
372
+ index: number;
251
373
  }) => string) | null;
252
374
  /**
253
375
  * Add Attributes
254
376
  */
255
377
  addAttributes?: (this: {
378
+ name: string;
256
379
  options: Options;
380
+ storage: Storage;
381
+ parent: ParentConfig<NodeConfig<Options, Storage>>['addAttributes'];
257
382
  }) => Attributes | {};
258
383
  }
259
384
  }
260
- export declare class Node<Options = any> {
261
- #private;
385
+ export declare class Node<Options = any, Storage = any> {
262
386
  type: string;
263
- config: NodeConfig;
387
+ name: string;
388
+ parent: Node | null;
389
+ child: Node | null;
264
390
  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>;
391
+ storage: Storage;
392
+ config: NodeConfig;
393
+ constructor(config?: Partial<NodeConfig<Options, Storage>>);
394
+ static create<O = any, S = any>(config?: Partial<NodeConfig<O, S>>): Node<O, S>;
395
+ configure(options?: Partial<Options>): Node<Options, Storage>;
396
+ extend<ExtendedOptions = Options, ExtendedStorage = Storage>(extendedConfig?: Partial<NodeConfig<ExtendedOptions, ExtendedStorage>>): Node<ExtendedOptions, ExtendedStorage>;
269
397
  }
@@ -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 | null;
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 | null;
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
  }