@tiptap/core 2.0.0-beta.20 → 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 (333) 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 +24 -19
  4. package/dist/packages/core/src/EventEmitter.d.ts +8 -4
  5. package/dist/packages/core/src/Extension.d.ts +99 -27
  6. package/dist/packages/core/src/ExtensionManager.d.ts +7 -13
  7. package/dist/packages/core/src/InputRule.d.ts +42 -0
  8. package/dist/packages/core/src/Mark.d.ts +139 -31
  9. package/dist/packages/core/src/Node.d.ts +157 -33
  10. package/dist/packages/core/src/NodeView.d.ts +8 -12
  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 +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 +4 -4
  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 +4 -4
  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 -99
  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 +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 +1 -1
  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 +14 -21
  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 +112 -56
  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 +2755 -1460
  153. package/dist/tiptap-core.cjs.js.map +1 -1
  154. package/dist/tiptap-core.esm.js +2709 -1448
  155. package/dist/tiptap-core.esm.js.map +1 -1
  156. package/dist/tiptap-core.umd.js +2731 -1435
  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 +116 -78
  161. package/src/EventEmitter.ts +14 -4
  162. package/src/Extension.ts +193 -43
  163. package/src/ExtensionManager.ts +242 -84
  164. package/src/InputRule.ts +265 -0
  165. package/src/Mark.ts +277 -48
  166. package/src/Node.ts +279 -57
  167. package/src/NodeView.ts +115 -47
  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 +30 -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 +13 -24
  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 +9 -8
  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 +9 -15
  203. package/src/commands/setMark.ts +80 -14
  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 +14 -19
  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 +7 -11
  217. package/src/commands/unsetMark.ts +35 -22
  218. package/src/commands/updateAttributes.ts +16 -9
  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 -147
  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 +5 -6
  231. package/src/helpers/createNodeFromContent.ts +17 -19
  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 -133
  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 +1 -1
  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 +15 -24
  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 +129 -43
  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 -357
  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/insertNode.d.ts +0 -13
  314. package/dist/packages/core/src/commands/insertText.d.ts +0 -12
  315. package/dist/packages/core/src/commands/replace.d.ts +0 -13
  316. package/dist/packages/core/src/commands/replaceRange.d.ts +0 -13
  317. package/dist/packages/core/src/commands/resetNodeAttributes.d.ts +0 -13
  318. package/dist/packages/core/src/commands/updateNodeAttributes.d.ts +0 -13
  319. package/dist/packages/core/src/utilities/isClass.d.ts +0 -1
  320. package/dist/packages/core/src/utilities/isObject.d.ts +0 -1
  321. package/dist/packages/core/src/utilities/removeElement.d.ts +0 -1
  322. package/dist/tiptap-core.bundle.umd.min.js +0 -17
  323. package/dist/tiptap-core.bundle.umd.min.js.map +0 -1
  324. package/src/commands/insertHTML.ts +0 -30
  325. package/src/commands/insertNode.ts +0 -33
  326. package/src/commands/insertText.ts +0 -22
  327. package/src/commands/replace.ts +0 -20
  328. package/src/commands/replaceRange.ts +0 -36
  329. package/src/commands/resetNodeAttributes.ts +0 -33
  330. package/src/commands/updateNodeAttributes.ts +0 -35
  331. package/src/utilities/isClass.ts +0 -7
  332. package/src/utilities/isObject.ts +0 -10
  333. package/src/utilities/removeElement.ts +0 -5
@@ -1,12 +1,13 @@
1
- import { DOMOutputSpec, MarkSpec, Mark as ProseMirrorMark, MarkType } from 'prosemirror-model';
1
+ import { DOMOutputSpec, Mark as ProseMirrorMark, MarkSpec, MarkType } from 'prosemirror-model';
2
2
  import { Plugin, Transaction } from 'prosemirror-state';
3
- import { Command as ProseMirrorCommand } from 'prosemirror-commands';
4
- import { InputRule } from 'prosemirror-inputrules';
5
- import { Attributes, RawCommands, GlobalAttributes } from './types';
6
3
  import { MarkConfig } from '.';
7
4
  import { Editor } from './Editor';
5
+ import { InputRule } from './InputRule';
6
+ import { Node } from './Node';
7
+ import { PasteRule } from './PasteRule';
8
+ import { Attributes, Extensions, GlobalAttributes, KeyboardShortcutCommand, ParentConfig, RawCommands } from './types';
8
9
  declare module '@tiptap/core' {
9
- interface MarkConfig<Options = any> {
10
+ interface MarkConfig<Options = any, Storage = any> {
10
11
  [key: string]: any;
11
12
  /**
12
13
  * Name
@@ -20,109 +21,168 @@ declare module '@tiptap/core' {
20
21
  * Default options
21
22
  */
22
23
  defaultOptions?: Options;
24
+ /**
25
+ * Default Options
26
+ */
27
+ addOptions?: (this: {
28
+ name: string;
29
+ parent: Exclude<ParentConfig<MarkConfig<Options, Storage>>['addOptions'], undefined>;
30
+ }) => Options;
31
+ /**
32
+ * Default Storage
33
+ */
34
+ addStorage?: (this: {
35
+ name: string;
36
+ options: Options;
37
+ parent: Exclude<ParentConfig<MarkConfig<Options, Storage>>['addStorage'], undefined>;
38
+ }) => Storage;
23
39
  /**
24
40
  * Global attributes
25
41
  */
26
42
  addGlobalAttributes?: (this: {
43
+ name: string;
27
44
  options: Options;
45
+ storage: Storage;
46
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addGlobalAttributes'];
28
47
  }) => GlobalAttributes | {};
29
48
  /**
30
49
  * Raw
31
50
  */
32
51
  addCommands?: (this: {
52
+ name: string;
33
53
  options: Options;
54
+ storage: Storage;
34
55
  editor: Editor;
35
56
  type: MarkType;
57
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addCommands'];
36
58
  }) => Partial<RawCommands>;
37
59
  /**
38
60
  * Keyboard shortcuts
39
61
  */
40
62
  addKeyboardShortcuts?: (this: {
63
+ name: string;
41
64
  options: Options;
65
+ storage: Storage;
42
66
  editor: Editor;
43
67
  type: MarkType;
68
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addKeyboardShortcuts'];
44
69
  }) => {
45
- [key: string]: ProseMirrorCommand;
70
+ [key: string]: KeyboardShortcutCommand;
46
71
  };
47
72
  /**
48
73
  * Input rules
49
74
  */
50
75
  addInputRules?: (this: {
76
+ name: string;
51
77
  options: Options;
78
+ storage: Storage;
52
79
  editor: Editor;
53
80
  type: MarkType;
81
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addInputRules'];
54
82
  }) => InputRule[];
55
83
  /**
56
84
  * Paste rules
57
85
  */
58
86
  addPasteRules?: (this: {
87
+ name: string;
59
88
  options: Options;
89
+ storage: Storage;
60
90
  editor: Editor;
61
91
  type: MarkType;
62
- }) => Plugin[];
92
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addPasteRules'];
93
+ }) => PasteRule[];
63
94
  /**
64
95
  * ProseMirror plugins
65
96
  */
66
97
  addProseMirrorPlugins?: (this: {
98
+ name: string;
67
99
  options: Options;
100
+ storage: Storage;
68
101
  editor: Editor;
69
102
  type: MarkType;
103
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addProseMirrorPlugins'];
70
104
  }) => Plugin[];
105
+ /**
106
+ * Extensions
107
+ */
108
+ addExtensions?: (this: {
109
+ name: string;
110
+ options: Options;
111
+ storage: Storage;
112
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addExtensions'];
113
+ }) => Extensions;
71
114
  /**
72
115
  * Extend Node Schema
73
116
  */
74
117
  extendNodeSchema?: ((this: {
118
+ name: string;
75
119
  options: Options;
76
- }, extension: Node) => {
77
- [key: string]: any;
78
- }) | null;
120
+ storage: Storage;
121
+ parent: ParentConfig<MarkConfig<Options, Storage>>['extendNodeSchema'];
122
+ }, extension: Node) => Record<string, any>) | null;
79
123
  /**
80
124
  * Extend Mark Schema
81
125
  */
82
126
  extendMarkSchema?: ((this: {
127
+ name: string;
83
128
  options: Options;
84
- }, extension: Node) => {
85
- [key: string]: any;
86
- }) | null;
129
+ storage: Storage;
130
+ parent: ParentConfig<MarkConfig<Options, Storage>>['extendMarkSchema'];
131
+ }, extension: Mark) => Record<string, any>) | null;
87
132
  /**
88
- * The editor is ready.
133
+ * The editor is not ready yet.
89
134
  */
90
- onCreate?: ((this: {
135
+ onBeforeCreate?: ((this: {
136
+ name: string;
91
137
  options: Options;
138
+ storage: Storage;
92
139
  editor: Editor;
93
140
  type: MarkType;
141
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onBeforeCreate'];
94
142
  }) => void) | null;
95
143
  /**
96
- * The content has changed.
144
+ * The editor is ready.
97
145
  */
98
- onUpdate?: ((this: {
146
+ onCreate?: ((this: {
147
+ name: string;
99
148
  options: Options;
149
+ storage: Storage;
100
150
  editor: Editor;
101
151
  type: MarkType;
152
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onCreate'];
102
153
  }) => void) | null;
103
154
  /**
104
- * The selection has changed.
155
+ * The content has changed.
105
156
  */
106
- onSelectionUpdate?: ((this: {
157
+ onUpdate?: ((this: {
158
+ name: string;
107
159
  options: Options;
160
+ storage: Storage;
108
161
  editor: Editor;
109
162
  type: MarkType;
163
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onUpdate'];
110
164
  }) => void) | null;
111
165
  /**
112
- * The view has changed.
166
+ * The selection has changed.
113
167
  */
114
- onViewUpdate?: ((this: {
168
+ onSelectionUpdate?: ((this: {
169
+ name: string;
115
170
  options: Options;
171
+ storage: Storage;
116
172
  editor: Editor;
117
173
  type: MarkType;
174
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onSelectionUpdate'];
118
175
  }) => void) | null;
119
176
  /**
120
177
  * The editor state has changed.
121
178
  */
122
179
  onTransaction?: ((this: {
180
+ name: string;
123
181
  options: Options;
182
+ storage: Storage;
124
183
  editor: Editor;
125
184
  type: MarkType;
185
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onTransaction'];
126
186
  }, props: {
127
187
  transaction: Transaction;
128
188
  }) => void) | null;
@@ -130,9 +190,12 @@ declare module '@tiptap/core' {
130
190
  * The editor is focused.
131
191
  */
132
192
  onFocus?: ((this: {
193
+ name: string;
133
194
  options: Options;
195
+ storage: Storage;
134
196
  editor: Editor;
135
197
  type: MarkType;
198
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onFocus'];
136
199
  }, props: {
137
200
  event: FocusEvent;
138
201
  }) => void) | null;
@@ -140,9 +203,12 @@ declare module '@tiptap/core' {
140
203
  * The editor isn’t focused anymore.
141
204
  */
142
205
  onBlur?: ((this: {
206
+ name: string;
143
207
  options: Options;
208
+ storage: Storage;
144
209
  editor: Editor;
145
210
  type: MarkType;
211
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onBlur'];
146
212
  }, props: {
147
213
  event: FocusEvent;
148
214
  }) => void) | null;
@@ -150,9 +216,12 @@ declare module '@tiptap/core' {
150
216
  * The editor is destroyed.
151
217
  */
152
218
  onDestroy?: ((this: {
219
+ name: string;
153
220
  options: Options;
221
+ storage: Storage;
154
222
  editor: Editor;
155
223
  type: MarkType;
224
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onDestroy'];
156
225
  }) => void) | null;
157
226
  /**
158
227
  * Keep mark after split node
@@ -162,58 +231,97 @@ declare module '@tiptap/core' {
162
231
  * Inclusive
163
232
  */
164
233
  inclusive?: MarkSpec['inclusive'] | ((this: {
234
+ name: string;
165
235
  options: Options;
236
+ storage: Storage;
237
+ parent: ParentConfig<MarkConfig<Options, Storage>>['inclusive'];
166
238
  }) => MarkSpec['inclusive']);
167
239
  /**
168
240
  * Excludes
169
241
  */
170
242
  excludes?: MarkSpec['excludes'] | ((this: {
243
+ name: string;
171
244
  options: Options;
245
+ storage: Storage;
246
+ parent: ParentConfig<MarkConfig<Options, Storage>>['excludes'];
172
247
  }) => MarkSpec['excludes']);
248
+ /**
249
+ * Marks this Mark as exitable
250
+ */
251
+ exitable?: boolean | (() => boolean);
173
252
  /**
174
253
  * Group
175
254
  */
176
255
  group?: MarkSpec['group'] | ((this: {
256
+ name: string;
177
257
  options: Options;
258
+ storage: Storage;
259
+ parent: ParentConfig<MarkConfig<Options, Storage>>['group'];
178
260
  }) => MarkSpec['group']);
179
261
  /**
180
262
  * Spanning
181
263
  */
182
264
  spanning?: MarkSpec['spanning'] | ((this: {
265
+ name: string;
183
266
  options: Options;
267
+ storage: Storage;
268
+ parent: ParentConfig<MarkConfig<Options, Storage>>['spanning'];
184
269
  }) => MarkSpec['spanning']);
270
+ /**
271
+ * Code
272
+ */
273
+ code?: boolean | ((this: {
274
+ name: string;
275
+ options: Options;
276
+ storage: Storage;
277
+ parent: ParentConfig<MarkConfig<Options, Storage>>['code'];
278
+ }) => boolean);
185
279
  /**
186
280
  * Parse HTML
187
281
  */
188
282
  parseHTML?: (this: {
283
+ name: string;
189
284
  options: Options;
285
+ storage: Storage;
286
+ parent: ParentConfig<MarkConfig<Options, Storage>>['parseHTML'];
190
287
  }) => MarkSpec['parseDOM'];
191
288
  /**
192
289
  * Render HTML
193
290
  */
194
291
  renderHTML?: ((this: {
292
+ name: string;
195
293
  options: Options;
294
+ storage: Storage;
295
+ parent: ParentConfig<MarkConfig<Options, Storage>>['renderHTML'];
196
296
  }, props: {
197
297
  mark: ProseMirrorMark;
198
- HTMLAttributes: {
199
- [key: string]: any;
200
- };
298
+ HTMLAttributes: Record<string, any>;
201
299
  }) => DOMOutputSpec) | null;
202
300
  /**
203
301
  * Attributes
204
302
  */
205
303
  addAttributes?: (this: {
304
+ name: string;
206
305
  options: Options;
306
+ storage: Storage;
307
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addAttributes'];
207
308
  }) => Attributes | {};
208
309
  }
209
310
  }
210
- export declare class Mark<Options = any> {
211
- #private;
311
+ export declare class Mark<Options = any, Storage = any> {
212
312
  type: string;
213
- config: MarkConfig;
313
+ name: string;
314
+ parent: Mark | null;
315
+ child: Mark | null;
214
316
  options: Options;
215
- constructor(config: MarkConfig<Options>);
216
- static create<O>(config: MarkConfig<O>): Mark<O>;
217
- configure(options?: Partial<Options>): Mark<Options>;
218
- extend<ExtendedOptions = Options>(extendedConfig: Partial<MarkConfig<ExtendedOptions>>): Mark<ExtendedOptions>;
317
+ storage: Storage;
318
+ config: MarkConfig;
319
+ constructor(config?: Partial<MarkConfig<Options, Storage>>);
320
+ static create<O = any, S = any>(config?: Partial<MarkConfig<O, S>>): Mark<O, S>;
321
+ configure(options?: Partial<Options>): Mark<Options, Storage>;
322
+ extend<ExtendedOptions = Options, ExtendedStorage = Storage>(extendedConfig?: Partial<MarkConfig<ExtendedOptions, ExtendedStorage>>): Mark<ExtendedOptions, ExtendedStorage>;
323
+ static handleExit({ editor, mark, }: {
324
+ editor: Editor;
325
+ mark: Mark;
326
+ }): boolean;
219
327
  }