@tiptap/core 2.0.0-beta.2 → 2.0.0-beta.200

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