@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
package/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2020, überdosis GbR
3
+ Copyright (c) 2021, überdosis GbR
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -7,8 +7,8 @@
7
7
  ## Introduction
8
8
  tiptap is a headless wrapper around [ProseMirror](https://ProseMirror.net) – a toolkit for building rich text WYSIWYG editors, which is already in use at many well-known companies such as *New York Times*, *The Guardian* or *Atlassian*.
9
9
 
10
- ## Offical Documentation
10
+ ## Official Documentation
11
11
  Documentation can be found on the [tiptap website](https://tiptap.dev).
12
12
 
13
13
  ## License
14
- tiptap is open-sourced software licensed under the [MIT license](https://github.com/ueberdosis/tiptap-next/blob/main/LICENSE.md).
14
+ tiptap is open sourced software licensed under the [MIT license](https://github.com/ueberdosis/tiptap/blob/main/LICENSE.md).
@@ -1,13 +1,20 @@
1
1
  import { EditorState, Transaction } from 'prosemirror-state';
2
2
  import { Editor } from './Editor';
3
- import { SingleCommands, ChainedCommands, CanCommands, RawCommands, CommandProps } from './types';
4
- export default class CommandManager {
3
+ import { SingleCommands, ChainedCommands, CanCommands, AnyCommands, CommandProps } from './types';
4
+ export declare class CommandManager {
5
5
  editor: Editor;
6
- commands: RawCommands;
7
- constructor(editor: Editor, commands: RawCommands);
8
- createCommands(): SingleCommands;
6
+ rawCommands: AnyCommands;
7
+ customState?: EditorState;
8
+ constructor(props: {
9
+ editor: Editor;
10
+ state?: EditorState;
11
+ });
12
+ get hasCustomState(): boolean;
13
+ get state(): EditorState;
14
+ get commands(): SingleCommands;
15
+ get chain(): () => ChainedCommands;
16
+ get can(): () => CanCommands;
9
17
  createChain(startTr?: Transaction, shouldDispatch?: boolean): ChainedCommands;
10
18
  createCan(startTr?: Transaction): CanCommands;
11
19
  buildProps(tr: Transaction, shouldDispatch?: boolean): CommandProps;
12
- chainableState(tr: Transaction, state: EditorState): EditorState;
13
20
  }
@@ -1,24 +1,28 @@
1
1
  import { EditorState, Plugin, PluginKey, Transaction } from 'prosemirror-state';
2
2
  import { EditorView } from 'prosemirror-view';
3
- import { Schema } from 'prosemirror-model';
4
- import ExtensionManager from './ExtensionManager';
5
- import EventEmitter from './EventEmitter';
6
- import { EditorOptions, CanCommands, ChainedCommands, SingleCommands, AnyObject } from './types';
3
+ import { Schema, MarkType, NodeType } from 'prosemirror-model';
4
+ import { ExtensionManager } from './ExtensionManager';
5
+ import { EventEmitter } from './EventEmitter';
6
+ import { EditorOptions, CanCommands, ChainedCommands, JSONContent, SingleCommands, TextSerializer, EditorEvents } from './types';
7
7
  import * as extensions from './extensions';
8
8
  export { extensions };
9
9
  export interface HTMLElement {
10
10
  editor?: Editor;
11
11
  }
12
- export declare class Editor extends EventEmitter {
12
+ export declare class Editor extends EventEmitter<EditorEvents> {
13
13
  private commandManager;
14
14
  extensionManager: ExtensionManager;
15
15
  private css;
16
16
  schema: Schema;
17
17
  view: EditorView;
18
18
  isFocused: boolean;
19
- private resizeObserver;
19
+ extensionStorage: Record<string, any>;
20
20
  options: EditorOptions;
21
21
  constructor(options?: Partial<EditorOptions>);
22
+ /**
23
+ * Returns the editor storage.
24
+ */
25
+ get storage(): Record<string, any>;
22
26
  /**
23
27
  * An object of all registered commands.
24
28
  */
@@ -63,7 +67,7 @@ export declare class Editor extends EventEmitter {
63
67
  /**
64
68
  * Unregister a ProseMirror plugin.
65
69
  *
66
- * @param name The plugins name
70
+ * @param nameOrPluginKey The plugins name
67
71
  */
68
72
  unregisterPlugin(nameOrPluginKey: string | PluginKey): void;
69
73
  /**
@@ -96,17 +100,9 @@ export declare class Editor extends EventEmitter {
96
100
  */
97
101
  private dispatchTransaction;
98
102
  /**
99
- * Get attributes of the currently selected node.
100
- *
101
- * @param name Name of the node
103
+ * Get attributes of the currently selected node or mark.
102
104
  */
103
- getNodeAttributes(name: string): AnyObject;
104
- /**
105
- * Get attributes of the currently selected mark.
106
- *
107
- * @param name Name of the mark
108
- */
109
- getMarkAttributes(name: string): AnyObject;
105
+ getAttributes(nameOrType: string | NodeType | MarkType): Record<string, any>;
110
106
  /**
111
107
  * Returns if the currently selected node or mark is active.
112
108
  *
@@ -118,17 +114,26 @@ export declare class Editor extends EventEmitter {
118
114
  /**
119
115
  * Get the document as JSON.
120
116
  */
121
- getJSON(): AnyObject;
117
+ getJSON(): JSONContent;
122
118
  /**
123
119
  * Get the document as HTML.
124
120
  */
125
121
  getHTML(): string;
122
+ /**
123
+ * Get the document as text.
124
+ */
125
+ getText(options?: {
126
+ blockSeparator?: string;
127
+ textSerializers?: Record<string, TextSerializer>;
128
+ }): string;
126
129
  /**
127
130
  * Check if there is no content.
128
131
  */
129
132
  get isEmpty(): boolean;
130
133
  /**
131
134
  * Get the number of characters for the current document.
135
+ *
136
+ * @deprecated
132
137
  */
133
138
  getCharacterCount(): number;
134
139
  /**
@@ -1,7 +1,11 @@
1
- export default class EventEmitter {
1
+ declare type StringKeyOf<T> = Extract<keyof T, string>;
2
+ declare type CallbackType<T extends Record<string, any>, EventName extends StringKeyOf<T>> = T[EventName] extends any[] ? T[EventName] : [T[EventName]];
3
+ declare type CallbackFunction<T extends Record<string, any>, EventName extends StringKeyOf<T>> = (...props: CallbackType<T, EventName>) => any;
4
+ export declare class EventEmitter<T extends Record<string, any>> {
2
5
  private callbacks;
3
- on(event: string, fn: Function): this;
4
- protected emit(event: string, ...args: any): this;
5
- off(event: string, fn?: Function): this;
6
+ on<EventName extends StringKeyOf<T>>(event: EventName, fn: CallbackFunction<T, EventName>): this;
7
+ protected emit<EventName extends StringKeyOf<T>>(event: EventName, ...args: CallbackType<T, EventName>): this;
8
+ off<EventName extends StringKeyOf<T>>(event: EventName, fn?: CallbackFunction<T, EventName>): this;
6
9
  protected removeAllListeners(): void;
7
10
  }
11
+ export {};
@@ -1,114 +1,178 @@
1
1
  import { Plugin, Transaction } from 'prosemirror-state';
2
- import { Command as ProseMirrorCommand } from 'prosemirror-commands';
3
- import { InputRule } from 'prosemirror-inputrules';
2
+ import { InputRule } from './InputRule';
3
+ import { PasteRule } from './PasteRule';
4
4
  import { Editor } from './Editor';
5
5
  import { Node } from './Node';
6
- import { GlobalAttributes, RawCommands } from './types';
6
+ import { Mark } from './Mark';
7
+ import { Extensions, GlobalAttributes, RawCommands, ParentConfig, KeyboardShortcutCommand } from './types';
7
8
  import { ExtensionConfig } from '.';
8
9
  declare module '@tiptap/core' {
9
- interface ExtensionConfig<Options = any> {
10
+ interface ExtensionConfig<Options = any, Storage = any> {
10
11
  [key: string]: any;
11
12
  /**
12
13
  * Name
13
14
  */
14
15
  name: string;
16
+ /**
17
+ * Priority
18
+ */
19
+ priority?: number;
15
20
  /**
16
21
  * Default options
17
22
  */
18
23
  defaultOptions?: Options;
24
+ /**
25
+ * Default Options
26
+ */
27
+ addOptions?: (this: {
28
+ name: string;
29
+ parent: Exclude<ParentConfig<ExtensionConfig<Options, Storage>>['addOptions'], undefined>;
30
+ }) => Options;
31
+ /**
32
+ * Default Storage
33
+ */
34
+ addStorage?: (this: {
35
+ name: string;
36
+ options: Options;
37
+ parent: Exclude<ParentConfig<ExtensionConfig<Options, Storage>>['addStorage'], undefined>;
38
+ }) => Storage;
19
39
  /**
20
40
  * Global attributes
21
41
  */
22
42
  addGlobalAttributes?: (this: {
43
+ name: string;
23
44
  options: Options;
45
+ storage: Storage;
46
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['addGlobalAttributes'];
24
47
  }) => GlobalAttributes | {};
25
48
  /**
26
49
  * Raw
27
50
  */
28
51
  addCommands?: (this: {
52
+ name: string;
29
53
  options: Options;
54
+ storage: Storage;
30
55
  editor: Editor;
56
+ parent: ParentConfig<ExtensionConfig<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;
66
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['addKeyboardShortcuts'];
38
67
  }) => {
39
- [key: string]: ProseMirrorCommand;
68
+ [key: string]: KeyboardShortcutCommand;
40
69
  };
41
70
  /**
42
71
  * Input rules
43
72
  */
44
73
  addInputRules?: (this: {
74
+ name: string;
45
75
  options: Options;
76
+ storage: Storage;
46
77
  editor: Editor;
78
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['addInputRules'];
47
79
  }) => InputRule[];
48
80
  /**
49
81
  * Paste rules
50
82
  */
51
83
  addPasteRules?: (this: {
84
+ name: string;
52
85
  options: Options;
86
+ storage: Storage;
53
87
  editor: Editor;
54
- }) => Plugin[];
88
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['addPasteRules'];
89
+ }) => PasteRule[];
55
90
  /**
56
91
  * ProseMirror plugins
57
92
  */
58
93
  addProseMirrorPlugins?: (this: {
94
+ name: string;
59
95
  options: Options;
96
+ storage: Storage;
60
97
  editor: Editor;
98
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['addProseMirrorPlugins'];
61
99
  }) => Plugin[];
100
+ /**
101
+ * Extensions
102
+ */
103
+ addExtensions?: (this: {
104
+ name: string;
105
+ options: Options;
106
+ storage: Storage;
107
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['addExtensions'];
108
+ }) => Extensions;
62
109
  /**
63
110
  * Extend Node Schema
64
111
  */
65
112
  extendNodeSchema?: ((this: {
113
+ name: string;
66
114
  options: Options;
67
- }, extension: Node) => {
68
- [key: string]: any;
69
- }) | null;
115
+ storage: Storage;
116
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['extendNodeSchema'];
117
+ }, extension: Node) => Record<string, any>) | null;
70
118
  /**
71
119
  * Extend Mark Schema
72
120
  */
73
121
  extendMarkSchema?: ((this: {
122
+ name: string;
74
123
  options: Options;
75
- }, extension: Node) => {
76
- [key: string]: any;
77
- }) | null;
124
+ storage: Storage;
125
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['extendMarkSchema'];
126
+ }, extension: Mark) => Record<string, any>) | null;
127
+ /**
128
+ * The editor is not ready yet.
129
+ */
130
+ onBeforeCreate?: ((this: {
131
+ name: string;
132
+ options: Options;
133
+ storage: Storage;
134
+ editor: Editor;
135
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['onBeforeCreate'];
136
+ }) => void) | null;
78
137
  /**
79
138
  * The editor is ready.
80
139
  */
81
140
  onCreate?: ((this: {
141
+ name: string;
82
142
  options: Options;
143
+ storage: Storage;
83
144
  editor: Editor;
145
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['onCreate'];
84
146
  }) => void) | null;
85
147
  /**
86
148
  * The content has changed.
87
149
  */
88
150
  onUpdate?: ((this: {
151
+ name: string;
89
152
  options: Options;
153
+ storage: Storage;
90
154
  editor: Editor;
155
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['onUpdate'];
91
156
  }) => void) | null;
92
157
  /**
93
158
  * The selection has changed.
94
159
  */
95
160
  onSelectionUpdate?: ((this: {
161
+ name: string;
96
162
  options: Options;
163
+ storage: Storage;
97
164
  editor: Editor;
98
- }) => void) | null;
99
- /**
100
- * The view has changed.
101
- */
102
- onViewUpdate?: ((this: {
103
- options: Options;
104
- editor: Editor;
165
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['onSelectionUpdate'];
105
166
  }) => void) | null;
106
167
  /**
107
168
  * The editor state has changed.
108
169
  */
109
170
  onTransaction?: ((this: {
171
+ name: string;
110
172
  options: Options;
173
+ storage: Storage;
111
174
  editor: Editor;
175
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['onTransaction'];
112
176
  }, props: {
113
177
  transaction: Transaction;
114
178
  }) => void) | null;
@@ -116,8 +180,11 @@ declare module '@tiptap/core' {
116
180
  * The editor is focused.
117
181
  */
118
182
  onFocus?: ((this: {
183
+ name: string;
119
184
  options: Options;
185
+ storage: Storage;
120
186
  editor: Editor;
187
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['onFocus'];
121
188
  }, props: {
122
189
  event: FocusEvent;
123
190
  }) => void) | null;
@@ -125,8 +192,11 @@ declare module '@tiptap/core' {
125
192
  * The editor isn’t focused anymore.
126
193
  */
127
194
  onBlur?: ((this: {
195
+ name: string;
128
196
  options: Options;
197
+ storage: Storage;
129
198
  editor: Editor;
199
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['onBlur'];
130
200
  }, props: {
131
201
  event: FocusEvent;
132
202
  }) => void) | null;
@@ -134,18 +204,24 @@ declare module '@tiptap/core' {
134
204
  * The editor is destroyed.
135
205
  */
136
206
  onDestroy?: ((this: {
207
+ name: string;
137
208
  options: Options;
209
+ storage: Storage;
138
210
  editor: Editor;
211
+ parent: ParentConfig<ExtensionConfig<Options, Storage>>['onDestroy'];
139
212
  }) => void) | null;
140
213
  }
141
214
  }
142
- export declare class Extension<Options = any> {
143
- #private;
215
+ export declare class Extension<Options = any, Storage = any> {
144
216
  type: string;
145
- config: ExtensionConfig;
217
+ name: string;
218
+ parent: Extension | null;
219
+ child: Extension | null;
146
220
  options: Options;
147
- constructor(config: ExtensionConfig<Options>);
148
- static create<O>(config: ExtensionConfig<O>): Extension<O>;
149
- configure(options?: Partial<Options>): Extension<Options>;
150
- extend<ExtendedOptions = Options>(extendedConfig: Partial<ExtensionConfig<ExtendedOptions>>): Extension<ExtendedOptions>;
221
+ storage: Storage;
222
+ config: ExtensionConfig;
223
+ constructor(config?: Partial<ExtensionConfig<Options, Storage>>);
224
+ static create<O = any, S = any>(config?: Partial<ExtensionConfig<O, S>>): Extension<O, S>;
225
+ configure(options?: Partial<Options>): Extension<Options, Storage>;
226
+ extend<ExtendedOptions = Options, ExtendedStorage = Storage>(extendedConfig?: Partial<ExtensionConfig<ExtendedOptions, ExtendedStorage>>): Extension<ExtendedOptions, ExtendedStorage>;
151
227
  }
@@ -1,23 +1,18 @@
1
- import { Schema, Node as ProsemirrorNode } from 'prosemirror-model';
2
- import { EditorView, Decoration } from 'prosemirror-view';
1
+ import { Schema } from 'prosemirror-model';
3
2
  import { Plugin } from 'prosemirror-state';
4
3
  import { Editor } from './Editor';
5
4
  import { Extensions, RawCommands } from './types';
6
- export default class ExtensionManager {
5
+ export declare class ExtensionManager {
7
6
  editor: Editor;
8
7
  schema: Schema;
9
8
  extensions: Extensions;
10
9
  splittableMarks: string[];
11
10
  constructor(extensions: Extensions, editor: Editor);
11
+ static resolve(extensions: Extensions): Extensions;
12
+ static flatten(extensions: Extensions): Extensions;
13
+ static sort(extensions: Extensions): Extensions;
12
14
  get commands(): RawCommands;
13
15
  get plugins(): Plugin[];
14
- get attributes(): import("./types").ExtensionAttribute[];
15
- get nodeViews(): {
16
- [k: string]: (node: ProsemirrorNode, view: EditorView, getPos: (() => number) | boolean, decorations: Decoration[]) => {} | import("prosemirror-view").NodeView<any>;
17
- };
18
- get textSerializers(): {
19
- [k: string]: (props: {
20
- node: ProsemirrorNode;
21
- }) => string | undefined;
22
- };
16
+ get attributes(): import("@tiptap/core").ExtensionAttribute[];
17
+ get nodeViews(): any;
23
18
  }
@@ -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 InputRuleMatch = {
5
+ index: number;
6
+ text: string;
7
+ replaceWith?: string;
8
+ match?: RegExpMatchArray;
9
+ data?: Record<string, any>;
10
+ };
11
+ export declare type InputRuleFinder = RegExp | ((text: string) => InputRuleMatch | null);
12
+ export declare class InputRule {
13
+ find: InputRuleFinder;
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: InputRuleFinder;
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 input rules plugin. When enabled, it will cause text
36
+ * input that matches any of the given rules to trigger the rule’s
37
+ * action.
38
+ */
39
+ export declare function inputRulesPlugin(props: {
40
+ editor: Editor;
41
+ rules: InputRule[];
42
+ }): Plugin;