@tiptap/core 2.0.0-beta.99 → 2.0.0-rc.1

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 (297) hide show
  1. package/README.md +3 -3
  2. package/dist/index.cjs +4360 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/{tiptap-core.esm.js → index.js} +2349 -1447
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.umd.js +4358 -0
  7. package/dist/index.umd.js.map +1 -0
  8. package/dist/packages/core/src/CommandManager.d.ts +14 -7
  9. package/dist/packages/core/src/Editor.d.ts +25 -11
  10. package/dist/packages/core/src/EventEmitter.d.ts +8 -4
  11. package/dist/packages/core/src/Extension.d.ts +63 -29
  12. package/dist/packages/core/src/ExtensionManager.d.ts +3 -4
  13. package/dist/packages/core/src/InputRule.d.ts +42 -0
  14. package/dist/packages/core/src/Mark.d.ts +94 -36
  15. package/dist/packages/core/src/Node.d.ts +104 -45
  16. package/dist/packages/core/src/NodeView.d.ts +8 -8
  17. package/dist/packages/core/src/PasteRule.d.ts +42 -0
  18. package/dist/packages/core/src/Tracker.d.ts +1 -1
  19. package/dist/packages/core/src/commands/deleteCurrentNode.d.ts +12 -0
  20. package/dist/packages/core/src/commands/deleteNode.d.ts +1 -1
  21. package/dist/packages/core/src/commands/deleteRange.d.ts +1 -1
  22. package/dist/packages/core/src/commands/extendMarkRange.d.ts +1 -1
  23. package/dist/packages/core/src/commands/focus.d.ts +4 -2
  24. package/dist/packages/core/src/commands/index.d.ts +50 -0
  25. package/dist/packages/core/src/commands/insertContent.d.ts +6 -3
  26. package/dist/packages/core/src/commands/insertContentAt.d.ts +6 -3
  27. package/dist/packages/core/src/commands/join.d.ts +33 -0
  28. package/dist/packages/core/src/commands/lift.d.ts +1 -1
  29. package/dist/packages/core/src/commands/liftListItem.d.ts +1 -1
  30. package/dist/packages/core/src/commands/resetAttributes.d.ts +1 -1
  31. package/dist/packages/core/src/commands/selectTextblockEnd.d.ts +12 -0
  32. package/dist/packages/core/src/commands/selectTextblockStart.d.ts +12 -0
  33. package/dist/packages/core/src/commands/setContent.d.ts +2 -2
  34. package/dist/packages/core/src/commands/setMark.d.ts +1 -1
  35. package/dist/packages/core/src/commands/setNode.d.ts +1 -1
  36. package/dist/packages/core/src/commands/setTextSelection.d.ts +1 -1
  37. package/dist/packages/core/src/commands/sinkListItem.d.ts +1 -1
  38. package/dist/packages/core/src/commands/splitListItem.d.ts +1 -1
  39. package/dist/packages/core/src/commands/toggleList.d.ts +2 -2
  40. package/dist/packages/core/src/commands/toggleMark.d.ts +7 -2
  41. package/dist/packages/core/src/commands/toggleNode.d.ts +1 -1
  42. package/dist/packages/core/src/commands/toggleWrap.d.ts +1 -1
  43. package/dist/packages/core/src/commands/unsetMark.d.ts +7 -2
  44. package/dist/packages/core/src/commands/updateAttributes.d.ts +1 -1
  45. package/dist/packages/core/src/commands/wrapIn.d.ts +1 -1
  46. package/dist/packages/core/src/commands/wrapInList.d.ts +1 -1
  47. package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +1 -1
  48. package/dist/packages/core/src/extensions/commands.d.ts +2 -97
  49. package/dist/packages/core/src/extensions/editable.d.ts +1 -1
  50. package/dist/packages/core/src/extensions/focusEvents.d.ts +1 -1
  51. package/dist/packages/core/src/extensions/index.d.ts +1 -0
  52. package/dist/packages/core/src/extensions/keymap.d.ts +1 -1
  53. package/dist/packages/core/src/extensions/tabindex.d.ts +2 -0
  54. package/dist/packages/core/src/helpers/combineTransactionSteps.d.ts +7 -0
  55. package/dist/packages/core/src/helpers/createChainableState.d.ts +5 -0
  56. package/dist/packages/core/src/helpers/createDocument.d.ts +2 -2
  57. package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +2 -2
  58. package/dist/packages/core/src/helpers/defaultBlockAt.d.ts +2 -0
  59. package/dist/packages/core/src/helpers/findChildren.d.ts +3 -3
  60. package/dist/packages/core/src/helpers/findChildrenInRange.d.ts +3 -3
  61. package/dist/packages/core/src/helpers/findParentNode.d.ts +3 -4
  62. package/dist/packages/core/src/helpers/findParentNodeClosestToPos.d.ts +3 -3
  63. package/dist/packages/core/src/helpers/generateHTML.d.ts +1 -1
  64. package/dist/packages/core/src/helpers/generateJSON.d.ts +1 -1
  65. package/dist/packages/core/src/helpers/generateText.d.ts +5 -0
  66. package/dist/packages/core/src/helpers/getAttributes.d.ts +3 -3
  67. package/dist/packages/core/src/helpers/getAttributesFromExtensions.d.ts +2 -2
  68. package/dist/packages/core/src/helpers/getChangedRanges.d.ts +11 -0
  69. package/dist/packages/core/src/helpers/getDebugJSON.d.ts +2 -5
  70. package/dist/packages/core/src/helpers/getExtensionField.d.ts +2 -2
  71. package/dist/packages/core/src/helpers/getHTMLFromFragment.d.ts +2 -2
  72. package/dist/packages/core/src/helpers/getMarkAttributes.d.ts +3 -3
  73. package/dist/packages/core/src/helpers/getMarkRange.d.ts +2 -2
  74. package/dist/packages/core/src/helpers/getMarkType.d.ts +2 -2
  75. package/dist/packages/core/src/helpers/getMarksBetween.d.ts +2 -2
  76. package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +3 -3
  77. package/dist/packages/core/src/helpers/getNodeType.d.ts +2 -2
  78. package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +2 -2
  79. package/dist/packages/core/src/helpers/getSchema.d.ts +2 -2
  80. package/dist/packages/core/src/helpers/getSchemaByResolvedExtensions.d.ts +2 -2
  81. package/dist/packages/core/src/helpers/getSchemaTypeByName.d.ts +2 -2
  82. package/dist/packages/core/src/helpers/getSchemaTypeNameByName.d.ts +2 -2
  83. package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +1 -1
  84. package/dist/packages/core/src/helpers/getText.d.ts +6 -0
  85. package/dist/packages/core/src/helpers/getTextBetween.d.ts +6 -0
  86. package/dist/packages/core/src/helpers/getTextContentFromNodes.d.ts +2 -0
  87. package/dist/packages/core/src/helpers/getTextSerializersFromSchema.d.ts +3 -0
  88. package/dist/packages/core/src/helpers/index.d.ts +47 -0
  89. package/dist/packages/core/src/helpers/injectExtensionAttributesToParseRule.d.ts +2 -2
  90. package/dist/packages/core/src/helpers/isActive.d.ts +2 -2
  91. package/dist/packages/core/src/helpers/isExtensionRulesEnabled.d.ts +2 -0
  92. package/dist/packages/core/src/helpers/isList.d.ts +1 -1
  93. package/dist/packages/core/src/helpers/isMarkActive.d.ts +3 -3
  94. package/dist/packages/core/src/helpers/isNodeActive.d.ts +3 -3
  95. package/dist/packages/core/src/helpers/isNodeEmpty.d.ts +2 -2
  96. package/dist/packages/core/src/helpers/isNodeSelection.d.ts +2 -2
  97. package/dist/packages/core/src/helpers/isTextSelection.d.ts +2 -2
  98. package/dist/packages/core/src/helpers/posToDOMRect.d.ts +2 -2
  99. package/dist/packages/core/src/helpers/resolveFocusPosition.d.ts +4 -0
  100. package/dist/packages/core/src/helpers/selectionToInsertionEnd.d.ts +2 -2
  101. package/dist/packages/core/src/helpers/splitExtensions.d.ts +6 -6
  102. package/dist/packages/core/src/index.d.ts +12 -34
  103. package/dist/packages/core/src/inputRules/index.d.ts +5 -0
  104. package/dist/packages/core/src/inputRules/markInputRule.d.ts +12 -3
  105. package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +12 -3
  106. package/dist/packages/core/src/inputRules/textInputRule.d.ts +9 -0
  107. package/dist/packages/core/src/inputRules/textblockTypeInputRule.d.ts +14 -0
  108. package/dist/packages/core/src/inputRules/wrappingInputRule.d.ts +27 -0
  109. package/dist/packages/core/src/pasteRules/index.d.ts +3 -0
  110. package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +12 -3
  111. package/dist/packages/core/src/pasteRules/nodePasteRule.d.ts +12 -0
  112. package/dist/packages/core/src/pasteRules/textPasteRule.d.ts +9 -0
  113. package/dist/packages/core/src/style.d.ts +1 -2
  114. package/dist/packages/core/src/types.d.ts +70 -40
  115. package/dist/packages/core/src/utilities/callOrReturn.d.ts +1 -1
  116. package/dist/packages/core/src/utilities/createStyleTag.d.ts +1 -1
  117. package/dist/packages/core/src/utilities/deleteProps.d.ts +1 -1
  118. package/dist/packages/core/src/utilities/elementFromString.d.ts +1 -1
  119. package/dist/packages/core/src/utilities/escapeForRegEx.d.ts +1 -0
  120. package/dist/packages/core/src/utilities/findDuplicates.d.ts +1 -0
  121. package/dist/packages/core/src/utilities/fromString.d.ts +1 -1
  122. package/dist/packages/core/src/utilities/index.d.ts +20 -0
  123. package/dist/packages/core/src/utilities/isEmptyObject.d.ts +1 -1
  124. package/dist/packages/core/src/utilities/isFunction.d.ts +1 -0
  125. package/dist/packages/core/src/utilities/isMacOS.d.ts +1 -0
  126. package/dist/packages/core/src/utilities/isNumber.d.ts +1 -0
  127. package/dist/packages/core/src/utilities/isPlainObject.d.ts +1 -1
  128. package/dist/packages/core/src/utilities/isRegExp.d.ts +1 -0
  129. package/dist/packages/core/src/utilities/isString.d.ts +1 -0
  130. package/dist/packages/core/src/utilities/isiOS.d.ts +1 -1
  131. package/dist/packages/core/src/utilities/mergeAttributes.d.ts +1 -1
  132. package/dist/packages/core/src/utilities/mergeDeep.d.ts +1 -1
  133. package/dist/packages/core/src/utilities/minMax.d.ts +1 -1
  134. package/dist/packages/core/src/utilities/objectIncludes.d.ts +3 -1
  135. package/dist/packages/core/src/utilities/removeDuplicates.d.ts +8 -0
  136. package/package.json +25 -24
  137. package/src/CommandManager.ts +73 -83
  138. package/src/Editor.ts +101 -53
  139. package/src/EventEmitter.ts +14 -4
  140. package/src/Extension.ts +244 -138
  141. package/src/ExtensionManager.ts +153 -152
  142. package/src/InputRule.ts +260 -0
  143. package/src/Mark.ts +365 -204
  144. package/src/Node.ts +406 -253
  145. package/src/NodeView.ts +59 -38
  146. package/src/PasteRule.ts +240 -0
  147. package/src/Tracker.ts +4 -8
  148. package/src/commands/blur.ts +4 -0
  149. package/src/commands/clearNodes.ts +15 -9
  150. package/src/commands/createParagraphNear.ts +3 -2
  151. package/src/commands/deleteCurrentNode.ts +41 -0
  152. package/src/commands/deleteNode.ts +3 -2
  153. package/src/commands/deleteRange.ts +1 -1
  154. package/src/commands/deleteSelection.ts +3 -2
  155. package/src/commands/exitCode.ts +3 -2
  156. package/src/commands/extendMarkRange.ts +9 -5
  157. package/src/commands/focus.ts +31 -42
  158. package/src/commands/index.ts +50 -0
  159. package/src/commands/insertContent.ts +15 -4
  160. package/src/commands/insertContentAt.ts +71 -14
  161. package/src/commands/join.ts +53 -0
  162. package/src/commands/keyboardShortcut.ts +3 -3
  163. package/src/commands/lift.ts +6 -5
  164. package/src/commands/liftEmptyBlock.ts +2 -1
  165. package/src/commands/liftListItem.ts +5 -4
  166. package/src/commands/newlineInCode.ts +3 -2
  167. package/src/commands/resetAttributes.ts +16 -10
  168. package/src/commands/selectAll.ts +5 -3
  169. package/src/commands/selectNodeBackward.ts +3 -2
  170. package/src/commands/selectNodeForward.ts +3 -2
  171. package/src/commands/selectParentNode.ts +3 -2
  172. package/src/commands/selectTextblockEnd.ts +20 -0
  173. package/src/commands/selectTextblockStart.ts +20 -0
  174. package/src/commands/setContent.ts +6 -9
  175. package/src/commands/setMark.ts +66 -13
  176. package/src/commands/setNode.ts +30 -6
  177. package/src/commands/setNodeSelection.ts +6 -7
  178. package/src/commands/setTextSelection.ts +8 -9
  179. package/src/commands/sinkListItem.ts +5 -4
  180. package/src/commands/splitBlock.ts +23 -38
  181. package/src/commands/splitListItem.ts +30 -27
  182. package/src/commands/toggleList.ts +108 -19
  183. package/src/commands/toggleMark.ts +17 -6
  184. package/src/commands/toggleNode.ts +9 -4
  185. package/src/commands/toggleWrap.ts +8 -8
  186. package/src/commands/undoInputRule.ts +31 -2
  187. package/src/commands/unsetAllMarks.ts +4 -8
  188. package/src/commands/unsetMark.ts +34 -21
  189. package/src/commands/updateAttributes.ts +18 -12
  190. package/src/commands/wrapIn.ts +5 -10
  191. package/src/commands/wrapInList.ts +5 -4
  192. package/src/extensions/clipboardTextSerializer.ts +15 -36
  193. package/src/extensions/commands.ts +3 -144
  194. package/src/extensions/editable.ts +2 -1
  195. package/src/extensions/focusEvents.ts +4 -6
  196. package/src/extensions/index.ts +1 -0
  197. package/src/extensions/keymap.ts +111 -13
  198. package/src/extensions/tabindex.ts +18 -0
  199. package/src/helpers/combineTransactionSteps.ts +21 -0
  200. package/src/helpers/createChainableState.ts +38 -0
  201. package/src/helpers/createDocument.ts +4 -3
  202. package/src/helpers/createNodeFromContent.ts +10 -15
  203. package/src/helpers/defaultBlockAt.ts +13 -0
  204. package/src/helpers/findChildren.ts +4 -3
  205. package/src/helpers/findChildrenInRange.ts +8 -3
  206. package/src/helpers/findParentNode.ts +4 -3
  207. package/src/helpers/findParentNodeClosestToPos.ts +13 -7
  208. package/src/helpers/generateHTML.ts +6 -5
  209. package/src/helpers/generateJSON.ts +6 -7
  210. package/src/helpers/generateText.ts +27 -0
  211. package/src/helpers/getAttributes.ts +8 -9
  212. package/src/helpers/getAttributesFromExtensions.ts +25 -12
  213. package/src/helpers/getChangedRanges.ts +83 -0
  214. package/src/helpers/getDebugJSON.ts +42 -38
  215. package/src/helpers/getExtensionField.ts +3 -3
  216. package/src/helpers/getHTMLFromFragment.ts +5 -6
  217. package/src/helpers/getMarkAttributes.ts +18 -10
  218. package/src/helpers/getMarkRange.ts +13 -8
  219. package/src/helpers/getMarkType.ts +5 -3
  220. package/src/helpers/getMarksBetween.ts +34 -10
  221. package/src/helpers/getNodeAttributes.ts +14 -12
  222. package/src/helpers/getNodeType.ts +5 -3
  223. package/src/helpers/getRenderedAttributes.ts +8 -6
  224. package/src/helpers/getSchema.ts +5 -4
  225. package/src/helpers/getSchemaByResolvedExtensions.ts +165 -111
  226. package/src/helpers/getSchemaTypeByName.ts +3 -11
  227. package/src/helpers/getSchemaTypeNameByName.ts +2 -2
  228. package/src/helpers/getSplittedAttributes.ts +1 -1
  229. package/src/helpers/getText.ts +19 -0
  230. package/src/helpers/getTextBetween.ts +46 -0
  231. package/src/helpers/getTextContentFromNodes.ts +26 -0
  232. package/src/helpers/getTextSerializersFromSchema.ts +11 -0
  233. package/src/helpers/index.ts +47 -0
  234. package/src/helpers/injectExtensionAttributesToParseRule.ts +22 -23
  235. package/src/helpers/isActive.ts +10 -5
  236. package/src/helpers/isExtensionRulesEnabled.ts +15 -0
  237. package/src/helpers/isList.ts +6 -5
  238. package/src/helpers/isMarkActive.ts +32 -35
  239. package/src/helpers/isNodeActive.ts +27 -37
  240. package/src/helpers/isNodeEmpty.ts +2 -2
  241. package/src/helpers/isNodeSelection.ts +3 -4
  242. package/src/helpers/isTextSelection.ts +3 -4
  243. package/src/helpers/posToDOMRect.ts +10 -4
  244. package/src/helpers/resolveFocusPosition.ts +42 -0
  245. package/src/helpers/selectionToInsertionEnd.ts +3 -3
  246. package/src/helpers/splitExtensions.ts +3 -3
  247. package/src/index.ts +12 -37
  248. package/src/inputRules/index.ts +5 -0
  249. package/src/inputRules/markInputRule.ts +59 -40
  250. package/src/inputRules/nodeInputRule.ts +45 -12
  251. package/src/inputRules/textInputRule.ts +35 -0
  252. package/src/inputRules/textblockTypeInputRule.ts +37 -0
  253. package/src/inputRules/wrappingInputRule.ts +84 -0
  254. package/src/pasteRules/index.ts +3 -0
  255. package/src/pasteRules/markPasteRule.ts +49 -56
  256. package/src/pasteRules/nodePasteRule.ts +37 -0
  257. package/src/pasteRules/textPasteRule.ts +35 -0
  258. package/src/style.ts +12 -3
  259. package/src/types.ts +140 -106
  260. package/src/utilities/callOrReturn.ts +3 -2
  261. package/src/utilities/createStyleTag.ts +8 -4
  262. package/src/utilities/deleteProps.ts +1 -1
  263. package/src/utilities/elementFromString.ts +1 -1
  264. package/src/utilities/escapeForRegEx.ts +4 -0
  265. package/src/utilities/findDuplicates.ts +5 -0
  266. package/src/utilities/fromString.ts +2 -2
  267. package/src/utilities/index.ts +20 -0
  268. package/src/utilities/isEmptyObject.ts +2 -2
  269. package/src/utilities/isFunction.ts +3 -0
  270. package/src/utilities/isMacOS.ts +5 -0
  271. package/src/utilities/isNumber.ts +3 -0
  272. package/src/utilities/isPlainObject.ts +8 -5
  273. package/src/utilities/isRegExp.ts +3 -0
  274. package/src/utilities/isString.ts +3 -0
  275. package/src/utilities/isiOS.ts +1 -1
  276. package/src/utilities/mergeAttributes.ts +2 -1
  277. package/src/utilities/mergeDeep.ts +2 -2
  278. package/src/utilities/minMax.ts +1 -1
  279. package/src/utilities/objectIncludes.ts +18 -4
  280. package/src/utilities/removeDuplicates.ts +15 -0
  281. package/CHANGELOG.md +0 -1190
  282. package/LICENSE.md +0 -21
  283. package/dist/packages/core/src/commands/joinBackward.d.ts +0 -12
  284. package/dist/packages/core/src/commands/joinForward.d.ts +0 -12
  285. package/dist/packages/core/src/utilities/isClass.d.ts +0 -1
  286. package/dist/packages/core/src/utilities/isObject.d.ts +0 -1
  287. package/dist/packages/core/src/utilities/removeElement.d.ts +0 -1
  288. package/dist/tiptap-core.cjs.js +0 -3408
  289. package/dist/tiptap-core.cjs.js.map +0 -1
  290. package/dist/tiptap-core.esm.js.map +0 -1
  291. package/dist/tiptap-core.umd.js +0 -3405
  292. package/dist/tiptap-core.umd.js.map +0 -1
  293. package/src/commands/joinBackward.ts +0 -17
  294. package/src/commands/joinForward.ts +0 -17
  295. package/src/utilities/isClass.ts +0 -7
  296. package/src/utilities/isObject.ts +0 -10
  297. package/src/utilities/removeElement.ts +0 -5
@@ -1,12 +1,13 @@
1
- import { DOMOutputSpec, MarkSpec, Mark as ProseMirrorMark, MarkType } from 'prosemirror-model';
2
- import { Plugin, Transaction } from 'prosemirror-state';
3
- import { InputRule } from 'prosemirror-inputrules';
4
- import { Extensions, Attributes, RawCommands, GlobalAttributes, ParentConfig, KeyboardShortcutCommand } from './types';
5
- import { Node } from './Node';
1
+ import { DOMOutputSpec, Mark as ProseMirrorMark, MarkSpec, MarkType } from '@tiptap/pm/model';
2
+ import { Plugin, Transaction } from '@tiptap/pm/state';
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,13 +21,29 @@ 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: {
27
43
  name: string;
28
44
  options: Options;
29
- parent: ParentConfig<MarkConfig<Options>>['addGlobalAttributes'];
45
+ storage: Storage;
46
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addGlobalAttributes'];
30
47
  }) => GlobalAttributes | {};
31
48
  /**
32
49
  * Raw
@@ -34,9 +51,10 @@ declare module '@tiptap/core' {
34
51
  addCommands?: (this: {
35
52
  name: string;
36
53
  options: Options;
54
+ storage: Storage;
37
55
  editor: Editor;
38
56
  type: MarkType;
39
- parent: ParentConfig<MarkConfig<Options>>['addCommands'];
57
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addCommands'];
40
58
  }) => Partial<RawCommands>;
41
59
  /**
42
60
  * Keyboard shortcuts
@@ -44,9 +62,10 @@ declare module '@tiptap/core' {
44
62
  addKeyboardShortcuts?: (this: {
45
63
  name: string;
46
64
  options: Options;
65
+ storage: Storage;
47
66
  editor: Editor;
48
67
  type: MarkType;
49
- parent: ParentConfig<MarkConfig<Options>>['addKeyboardShortcuts'];
68
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addKeyboardShortcuts'];
50
69
  }) => {
51
70
  [key: string]: KeyboardShortcutCommand;
52
71
  };
@@ -56,9 +75,10 @@ declare module '@tiptap/core' {
56
75
  addInputRules?: (this: {
57
76
  name: string;
58
77
  options: Options;
78
+ storage: Storage;
59
79
  editor: Editor;
60
80
  type: MarkType;
61
- parent: ParentConfig<MarkConfig<Options>>['addInputRules'];
81
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addInputRules'];
62
82
  }) => InputRule[];
63
83
  /**
64
84
  * Paste rules
@@ -66,19 +86,21 @@ declare module '@tiptap/core' {
66
86
  addPasteRules?: (this: {
67
87
  name: string;
68
88
  options: Options;
89
+ storage: Storage;
69
90
  editor: Editor;
70
91
  type: MarkType;
71
- parent: ParentConfig<MarkConfig<Options>>['addPasteRules'];
72
- }) => Plugin[];
92
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addPasteRules'];
93
+ }) => PasteRule[];
73
94
  /**
74
95
  * ProseMirror plugins
75
96
  */
76
97
  addProseMirrorPlugins?: (this: {
77
98
  name: string;
78
99
  options: Options;
100
+ storage: Storage;
79
101
  editor: Editor;
80
102
  type: MarkType;
81
- parent: ParentConfig<MarkConfig<Options>>['addProseMirrorPlugins'];
103
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addProseMirrorPlugins'];
82
104
  }) => Plugin[];
83
105
  /**
84
106
  * Extensions
@@ -86,7 +108,8 @@ declare module '@tiptap/core' {
86
108
  addExtensions?: (this: {
87
109
  name: string;
88
110
  options: Options;
89
- parent: ParentConfig<MarkConfig<Options>>['addExtensions'];
111
+ storage: Storage;
112
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addExtensions'];
90
113
  }) => Extensions;
91
114
  /**
92
115
  * Extend Node Schema
@@ -94,7 +117,8 @@ declare module '@tiptap/core' {
94
117
  extendNodeSchema?: ((this: {
95
118
  name: string;
96
119
  options: Options;
97
- parent: ParentConfig<MarkConfig<Options>>['extendNodeSchema'];
120
+ storage: Storage;
121
+ parent: ParentConfig<MarkConfig<Options, Storage>>['extendNodeSchema'];
98
122
  }, extension: Node) => Record<string, any>) | null;
99
123
  /**
100
124
  * Extend Mark Schema
@@ -102,7 +126,8 @@ declare module '@tiptap/core' {
102
126
  extendMarkSchema?: ((this: {
103
127
  name: string;
104
128
  options: Options;
105
- parent: ParentConfig<MarkConfig<Options>>['extendMarkSchema'];
129
+ storage: Storage;
130
+ parent: ParentConfig<MarkConfig<Options, Storage>>['extendMarkSchema'];
106
131
  }, extension: Mark) => Record<string, any>) | null;
107
132
  /**
108
133
  * The editor is not ready yet.
@@ -110,9 +135,10 @@ declare module '@tiptap/core' {
110
135
  onBeforeCreate?: ((this: {
111
136
  name: string;
112
137
  options: Options;
138
+ storage: Storage;
113
139
  editor: Editor;
114
140
  type: MarkType;
115
- parent: ParentConfig<MarkConfig<Options>>['onBeforeCreate'];
141
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onBeforeCreate'];
116
142
  }) => void) | null;
117
143
  /**
118
144
  * The editor is ready.
@@ -120,9 +146,10 @@ declare module '@tiptap/core' {
120
146
  onCreate?: ((this: {
121
147
  name: string;
122
148
  options: Options;
149
+ storage: Storage;
123
150
  editor: Editor;
124
151
  type: MarkType;
125
- parent: ParentConfig<MarkConfig<Options>>['onCreate'];
152
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onCreate'];
126
153
  }) => void) | null;
127
154
  /**
128
155
  * The content has changed.
@@ -130,9 +157,10 @@ declare module '@tiptap/core' {
130
157
  onUpdate?: ((this: {
131
158
  name: string;
132
159
  options: Options;
160
+ storage: Storage;
133
161
  editor: Editor;
134
162
  type: MarkType;
135
- parent: ParentConfig<MarkConfig<Options>>['onUpdate'];
163
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onUpdate'];
136
164
  }) => void) | null;
137
165
  /**
138
166
  * The selection has changed.
@@ -140,9 +168,10 @@ declare module '@tiptap/core' {
140
168
  onSelectionUpdate?: ((this: {
141
169
  name: string;
142
170
  options: Options;
171
+ storage: Storage;
143
172
  editor: Editor;
144
173
  type: MarkType;
145
- parent: ParentConfig<MarkConfig<Options>>['onSelectionUpdate'];
174
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onSelectionUpdate'];
146
175
  }) => void) | null;
147
176
  /**
148
177
  * The editor state has changed.
@@ -150,9 +179,10 @@ declare module '@tiptap/core' {
150
179
  onTransaction?: ((this: {
151
180
  name: string;
152
181
  options: Options;
182
+ storage: Storage;
153
183
  editor: Editor;
154
184
  type: MarkType;
155
- parent: ParentConfig<MarkConfig<Options>>['onTransaction'];
185
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onTransaction'];
156
186
  }, props: {
157
187
  transaction: Transaction;
158
188
  }) => void) | null;
@@ -162,9 +192,10 @@ declare module '@tiptap/core' {
162
192
  onFocus?: ((this: {
163
193
  name: string;
164
194
  options: Options;
195
+ storage: Storage;
165
196
  editor: Editor;
166
197
  type: MarkType;
167
- parent: ParentConfig<MarkConfig<Options>>['onFocus'];
198
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onFocus'];
168
199
  }, props: {
169
200
  event: FocusEvent;
170
201
  }) => void) | null;
@@ -174,9 +205,10 @@ declare module '@tiptap/core' {
174
205
  onBlur?: ((this: {
175
206
  name: string;
176
207
  options: Options;
208
+ storage: Storage;
177
209
  editor: Editor;
178
210
  type: MarkType;
179
- parent: ParentConfig<MarkConfig<Options>>['onBlur'];
211
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onBlur'];
180
212
  }, props: {
181
213
  event: FocusEvent;
182
214
  }) => void) | null;
@@ -186,9 +218,10 @@ declare module '@tiptap/core' {
186
218
  onDestroy?: ((this: {
187
219
  name: string;
188
220
  options: Options;
221
+ storage: Storage;
189
222
  editor: Editor;
190
223
  type: MarkType;
191
- parent: ParentConfig<MarkConfig<Options>>['onDestroy'];
224
+ parent: ParentConfig<MarkConfig<Options, Storage>>['onDestroy'];
192
225
  }) => void) | null;
193
226
  /**
194
227
  * Keep mark after split node
@@ -200,7 +233,8 @@ declare module '@tiptap/core' {
200
233
  inclusive?: MarkSpec['inclusive'] | ((this: {
201
234
  name: string;
202
235
  options: Options;
203
- parent: ParentConfig<MarkConfig<Options>>['inclusive'];
236
+ storage: Storage;
237
+ parent: ParentConfig<MarkConfig<Options, Storage>>['inclusive'];
204
238
  }) => MarkSpec['inclusive']);
205
239
  /**
206
240
  * Excludes
@@ -208,15 +242,21 @@ declare module '@tiptap/core' {
208
242
  excludes?: MarkSpec['excludes'] | ((this: {
209
243
  name: string;
210
244
  options: Options;
211
- parent: ParentConfig<MarkConfig<Options>>['excludes'];
245
+ storage: Storage;
246
+ parent: ParentConfig<MarkConfig<Options, Storage>>['excludes'];
212
247
  }) => MarkSpec['excludes']);
248
+ /**
249
+ * Marks this Mark as exitable
250
+ */
251
+ exitable?: boolean | (() => boolean);
213
252
  /**
214
253
  * Group
215
254
  */
216
255
  group?: MarkSpec['group'] | ((this: {
217
256
  name: string;
218
257
  options: Options;
219
- parent: ParentConfig<MarkConfig<Options>>['group'];
258
+ storage: Storage;
259
+ parent: ParentConfig<MarkConfig<Options, Storage>>['group'];
220
260
  }) => MarkSpec['group']);
221
261
  /**
222
262
  * Spanning
@@ -224,15 +264,26 @@ declare module '@tiptap/core' {
224
264
  spanning?: MarkSpec['spanning'] | ((this: {
225
265
  name: string;
226
266
  options: Options;
227
- parent: ParentConfig<MarkConfig<Options>>['spanning'];
267
+ storage: Storage;
268
+ parent: ParentConfig<MarkConfig<Options, Storage>>['spanning'];
228
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);
229
279
  /**
230
280
  * Parse HTML
231
281
  */
232
282
  parseHTML?: (this: {
233
283
  name: string;
234
284
  options: Options;
235
- parent: ParentConfig<MarkConfig<Options>>['parseHTML'];
285
+ storage: Storage;
286
+ parent: ParentConfig<MarkConfig<Options, Storage>>['parseHTML'];
236
287
  }) => MarkSpec['parseDOM'];
237
288
  /**
238
289
  * Render HTML
@@ -240,7 +291,8 @@ declare module '@tiptap/core' {
240
291
  renderHTML?: ((this: {
241
292
  name: string;
242
293
  options: Options;
243
- parent: ParentConfig<MarkConfig<Options>>['renderHTML'];
294
+ storage: Storage;
295
+ parent: ParentConfig<MarkConfig<Options, Storage>>['renderHTML'];
244
296
  }, props: {
245
297
  mark: ProseMirrorMark;
246
298
  HTMLAttributes: Record<string, any>;
@@ -251,19 +303,25 @@ declare module '@tiptap/core' {
251
303
  addAttributes?: (this: {
252
304
  name: string;
253
305
  options: Options;
254
- parent: ParentConfig<MarkConfig<Options>>['addAttributes'];
306
+ storage: Storage;
307
+ parent: ParentConfig<MarkConfig<Options, Storage>>['addAttributes'];
255
308
  }) => Attributes | {};
256
309
  }
257
310
  }
258
- export declare class Mark<Options = any> {
311
+ export declare class Mark<Options = any, Storage = any> {
259
312
  type: string;
260
313
  name: string;
261
314
  parent: Mark | null;
262
315
  child: Mark | null;
263
316
  options: Options;
317
+ storage: Storage;
264
318
  config: MarkConfig;
265
- constructor(config?: Partial<MarkConfig<Options>>);
266
- static create<O>(config?: Partial<MarkConfig<O>>): Mark<O>;
267
- configure(options?: Partial<Options>): Mark<Options>;
268
- extend<ExtendedOptions = Options>(extendedConfig?: Partial<MarkConfig<ExtendedOptions>>): Mark<ExtendedOptions>;
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;
269
327
  }