@tiptap/core 2.0.0-beta.19 → 2.0.0-beta.193

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 (283) hide show
  1. package/README.md +2 -2
  2. package/package.json +16 -20
  3. package/src/CommandManager.ts +64 -65
  4. package/src/Editor.ts +116 -78
  5. package/src/EventEmitter.ts +14 -4
  6. package/src/Extension.ts +193 -43
  7. package/src/ExtensionManager.ts +242 -84
  8. package/src/InputRule.ts +265 -0
  9. package/src/Mark.ts +277 -48
  10. package/src/Node.ts +279 -57
  11. package/src/NodeView.ts +115 -47
  12. package/src/PasteRule.ts +247 -0
  13. package/src/Tracker.ts +42 -0
  14. package/src/commands/blur.ts +12 -6
  15. package/src/commands/clearContent.ts +3 -3
  16. package/src/commands/clearNodes.ts +30 -18
  17. package/src/commands/command.ts +2 -2
  18. package/src/commands/createParagraphNear.ts +4 -3
  19. package/src/commands/deleteNode.ts +37 -0
  20. package/src/commands/deleteRange.ts +3 -3
  21. package/src/commands/deleteSelection.ts +4 -3
  22. package/src/commands/enter.ts +3 -3
  23. package/src/commands/exitCode.ts +4 -3
  24. package/src/commands/extendMarkRange.ts +12 -11
  25. package/src/commands/first.ts +3 -3
  26. package/src/commands/focus.ts +47 -44
  27. package/src/commands/forEach.ts +24 -0
  28. package/src/commands/index.ts +50 -0
  29. package/src/commands/insertContent.ts +13 -24
  30. package/src/commands/insertContentAt.ts +108 -0
  31. package/src/commands/joinBackward.ts +4 -3
  32. package/src/commands/joinForward.ts +4 -3
  33. package/src/commands/keyboardShortcut.ts +6 -6
  34. package/src/commands/lift.ts +6 -5
  35. package/src/commands/liftEmptyBlock.ts +4 -3
  36. package/src/commands/liftListItem.ts +6 -5
  37. package/src/commands/newlineInCode.ts +4 -3
  38. package/src/commands/resetAttributes.ts +62 -0
  39. package/src/commands/scrollIntoView.ts +3 -3
  40. package/src/commands/selectAll.ts +8 -6
  41. package/src/commands/selectNodeBackward.ts +4 -3
  42. package/src/commands/selectNodeForward.ts +4 -3
  43. package/src/commands/selectParentNode.ts +4 -3
  44. package/src/commands/selectTextblockEnd.ts +20 -0
  45. package/src/commands/selectTextblockStart.ts +20 -0
  46. package/src/commands/setContent.ts +9 -15
  47. package/src/commands/setMark.ts +36 -12
  48. package/src/commands/setMeta.ts +18 -0
  49. package/src/commands/setNode.ts +29 -7
  50. package/src/commands/setNodeSelection.ts +27 -0
  51. package/src/commands/setTextSelection.ts +33 -0
  52. package/src/commands/sinkListItem.ts +6 -5
  53. package/src/commands/splitBlock.ts +14 -19
  54. package/src/commands/splitListItem.ts +45 -18
  55. package/src/commands/toggleList.ts +83 -18
  56. package/src/commands/toggleMark.ts +18 -7
  57. package/src/commands/toggleNode.ts +6 -5
  58. package/src/commands/toggleWrap.ts +9 -9
  59. package/src/commands/undoInputRule.ts +34 -5
  60. package/src/commands/unsetAllMarks.ts +7 -11
  61. package/src/commands/unsetMark.ts +35 -22
  62. package/src/commands/updateAttributes.ts +16 -9
  63. package/src/commands/wrapIn.ts +5 -10
  64. package/src/commands/wrapInList.ts +6 -5
  65. package/src/extensions/clipboardTextSerializer.ts +14 -35
  66. package/src/extensions/commands.ts +3 -144
  67. package/src/extensions/editable.ts +1 -0
  68. package/src/extensions/focusEvents.ts +3 -5
  69. package/src/extensions/index.ts +1 -0
  70. package/src/extensions/keymap.ts +110 -13
  71. package/src/extensions/tabindex.ts +18 -0
  72. package/src/helpers/combineTransactionSteps.ts +18 -0
  73. package/src/helpers/createChainableState.ts +38 -0
  74. package/src/helpers/createDocument.ts +5 -6
  75. package/src/helpers/createNodeFromContent.ts +17 -19
  76. package/src/helpers/defaultBlockAt.ts +13 -0
  77. package/src/helpers/findChildren.ts +18 -0
  78. package/src/helpers/findChildrenInRange.ts +32 -0
  79. package/src/helpers/findParentNode.ts +3 -2
  80. package/src/helpers/findParentNodeClosestToPos.ts +3 -2
  81. package/src/helpers/generateHTML.ts +6 -5
  82. package/src/helpers/generateJSON.ts +14 -0
  83. package/src/helpers/generateText.ts +30 -0
  84. package/src/helpers/getAttributes.ts +28 -0
  85. package/src/helpers/getAttributesFromExtensions.ts +42 -14
  86. package/src/helpers/getChangedRanges.ts +83 -0
  87. package/src/helpers/getDebugJSON.ts +54 -0
  88. package/src/helpers/getExtensionField.ts +25 -0
  89. package/src/helpers/getHTMLFromFragment.ts +6 -5
  90. package/src/helpers/getMarkAttributes.ts +14 -10
  91. package/src/helpers/getMarkRange.ts +41 -8
  92. package/src/helpers/getMarkType.ts +5 -1
  93. package/src/helpers/getMarksBetween.ts +32 -10
  94. package/src/helpers/getNodeAttributes.ts +9 -9
  95. package/src/helpers/getNodeType.ts +5 -1
  96. package/src/helpers/getRenderedAttributes.ts +6 -7
  97. package/src/helpers/getSchema.ts +7 -133
  98. package/src/helpers/getSchemaByResolvedExtensions.ts +148 -0
  99. package/src/helpers/getSchemaTypeByName.ts +2 -10
  100. package/src/helpers/getSchemaTypeNameByName.ts +1 -1
  101. package/src/helpers/getSplittedAttributes.ts +4 -4
  102. package/src/helpers/getText.ts +19 -0
  103. package/src/helpers/getTextBetween.ts +49 -0
  104. package/src/helpers/getTextContentFromNodes.ts +17 -0
  105. package/src/helpers/getTextSerializersFromSchema.ts +10 -0
  106. package/src/helpers/index.ts +33 -0
  107. package/src/helpers/injectExtensionAttributesToParseRule.ts +17 -19
  108. package/src/helpers/isActive.ts +5 -5
  109. package/src/helpers/isExtensionRulesEnabled.ts +15 -0
  110. package/src/helpers/isList.ts +14 -7
  111. package/src/helpers/isMarkActive.ts +45 -20
  112. package/src/helpers/isNodeActive.ts +28 -35
  113. package/src/helpers/isNodeEmpty.ts +1 -1
  114. package/src/helpers/isNodeSelection.ts +2 -3
  115. package/src/helpers/isTextSelection.ts +2 -3
  116. package/src/helpers/posToDOMRect.ts +35 -0
  117. package/src/helpers/resolveFocusPosition.ts +43 -0
  118. package/src/helpers/selectionToInsertionEnd.ts +2 -2
  119. package/src/helpers/splitExtensions.ts +3 -3
  120. package/src/index.ts +15 -24
  121. package/src/inputRules/index.ts +5 -0
  122. package/src/inputRules/markInputRule.ts +59 -39
  123. package/src/inputRules/nodeInputRule.ts +45 -11
  124. package/src/inputRules/textInputRule.ts +35 -0
  125. package/src/inputRules/textblockTypeInputRule.ts +38 -0
  126. package/src/inputRules/wrappingInputRule.ts +60 -0
  127. package/src/pasteRules/index.ts +3 -0
  128. package/src/pasteRules/markPasteRule.ts +62 -53
  129. package/src/pasteRules/nodePasteRule.ts +39 -0
  130. package/src/pasteRules/textPasteRule.ts +35 -0
  131. package/src/style.ts +16 -3
  132. package/src/types.ts +129 -43
  133. package/src/utilities/callOrReturn.ts +6 -3
  134. package/src/utilities/createStyleTag.ts +12 -1
  135. package/src/utilities/deleteProps.ts +2 -4
  136. package/src/utilities/elementFromString.ts +4 -5
  137. package/src/utilities/escapeForRegEx.ts +4 -0
  138. package/src/utilities/findDuplicates.ts +5 -0
  139. package/src/utilities/fromString.ts +2 -2
  140. package/src/utilities/index.ts +3 -0
  141. package/src/utilities/isEmptyObject.ts +2 -2
  142. package/src/utilities/isFunction.ts +3 -0
  143. package/src/utilities/isMacOS.ts +5 -0
  144. package/src/utilities/isNumber.ts +3 -0
  145. package/src/utilities/isPlainObject.ts +8 -5
  146. package/src/utilities/isRegExp.ts +3 -0
  147. package/src/utilities/isString.ts +3 -0
  148. package/src/utilities/isiOS.ts +12 -0
  149. package/src/utilities/mergeAttributes.ts +2 -3
  150. package/src/utilities/mergeDeep.ts +2 -3
  151. package/src/utilities/minMax.ts +1 -1
  152. package/src/utilities/objectIncludes.ts +17 -5
  153. package/src/utilities/removeDuplicates.ts +15 -0
  154. package/CHANGELOG.md +0 -346
  155. package/LICENSE.md +0 -21
  156. package/dist/packages/core/src/CommandManager.d.ts +0 -13
  157. package/dist/packages/core/src/Editor.d.ts +0 -142
  158. package/dist/packages/core/src/EventEmitter.d.ts +0 -7
  159. package/dist/packages/core/src/Extension.d.ts +0 -155
  160. package/dist/packages/core/src/ExtensionManager.d.ts +0 -24
  161. package/dist/packages/core/src/Mark.d.ts +0 -219
  162. package/dist/packages/core/src/Node.d.ts +0 -273
  163. package/dist/packages/core/src/NodeView.d.ts +0 -31
  164. package/dist/packages/core/src/commands/blur.d.ts +0 -12
  165. package/dist/packages/core/src/commands/clearContent.d.ts +0 -12
  166. package/dist/packages/core/src/commands/clearNodes.d.ts +0 -12
  167. package/dist/packages/core/src/commands/command.d.ts +0 -12
  168. package/dist/packages/core/src/commands/createParagraphNear.d.ts +0 -12
  169. package/dist/packages/core/src/commands/deleteRange.d.ts +0 -12
  170. package/dist/packages/core/src/commands/deleteSelection.d.ts +0 -12
  171. package/dist/packages/core/src/commands/enter.d.ts +0 -12
  172. package/dist/packages/core/src/commands/exitCode.d.ts +0 -12
  173. package/dist/packages/core/src/commands/extendMarkRange.d.ts +0 -13
  174. package/dist/packages/core/src/commands/first.d.ts +0 -12
  175. package/dist/packages/core/src/commands/focus.d.ts +0 -12
  176. package/dist/packages/core/src/commands/insertContent.d.ts +0 -12
  177. package/dist/packages/core/src/commands/insertHTML.d.ts +0 -12
  178. package/dist/packages/core/src/commands/insertNode.d.ts +0 -13
  179. package/dist/packages/core/src/commands/insertText.d.ts +0 -12
  180. package/dist/packages/core/src/commands/joinBackward.d.ts +0 -12
  181. package/dist/packages/core/src/commands/joinForward.d.ts +0 -12
  182. package/dist/packages/core/src/commands/keyboardShortcut.d.ts +0 -12
  183. package/dist/packages/core/src/commands/lift.d.ts +0 -13
  184. package/dist/packages/core/src/commands/liftEmptyBlock.d.ts +0 -12
  185. package/dist/packages/core/src/commands/liftListItem.d.ts +0 -13
  186. package/dist/packages/core/src/commands/newlineInCode.d.ts +0 -12
  187. package/dist/packages/core/src/commands/replace.d.ts +0 -13
  188. package/dist/packages/core/src/commands/replaceRange.d.ts +0 -13
  189. package/dist/packages/core/src/commands/resetNodeAttributes.d.ts +0 -13
  190. package/dist/packages/core/src/commands/scrollIntoView.d.ts +0 -12
  191. package/dist/packages/core/src/commands/selectAll.d.ts +0 -12
  192. package/dist/packages/core/src/commands/selectNodeBackward.d.ts +0 -12
  193. package/dist/packages/core/src/commands/selectNodeForward.d.ts +0 -12
  194. package/dist/packages/core/src/commands/selectParentNode.d.ts +0 -12
  195. package/dist/packages/core/src/commands/setContent.d.ts +0 -12
  196. package/dist/packages/core/src/commands/setMark.d.ts +0 -13
  197. package/dist/packages/core/src/commands/setNode.d.ts +0 -13
  198. package/dist/packages/core/src/commands/sinkListItem.d.ts +0 -13
  199. package/dist/packages/core/src/commands/splitBlock.d.ts +0 -14
  200. package/dist/packages/core/src/commands/splitListItem.d.ts +0 -13
  201. package/dist/packages/core/src/commands/toggleList.d.ts +0 -13
  202. package/dist/packages/core/src/commands/toggleMark.d.ts +0 -13
  203. package/dist/packages/core/src/commands/toggleNode.d.ts +0 -13
  204. package/dist/packages/core/src/commands/toggleWrap.d.ts +0 -13
  205. package/dist/packages/core/src/commands/undoInputRule.d.ts +0 -12
  206. package/dist/packages/core/src/commands/unsetAllMarks.d.ts +0 -12
  207. package/dist/packages/core/src/commands/unsetMark.d.ts +0 -13
  208. package/dist/packages/core/src/commands/updateAttributes.d.ts +0 -13
  209. package/dist/packages/core/src/commands/updateNodeAttributes.d.ts +0 -13
  210. package/dist/packages/core/src/commands/wrapIn.d.ts +0 -13
  211. package/dist/packages/core/src/commands/wrapInList.d.ts +0 -13
  212. package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +0 -2
  213. package/dist/packages/core/src/extensions/commands.d.ts +0 -98
  214. package/dist/packages/core/src/extensions/editable.d.ts +0 -2
  215. package/dist/packages/core/src/extensions/focusEvents.d.ts +0 -2
  216. package/dist/packages/core/src/extensions/index.d.ts +0 -5
  217. package/dist/packages/core/src/extensions/keymap.d.ts +0 -2
  218. package/dist/packages/core/src/helpers/createDocument.d.ts +0 -4
  219. package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +0 -8
  220. package/dist/packages/core/src/helpers/findParentNode.d.ts +0 -9
  221. package/dist/packages/core/src/helpers/findParentNodeClosestToPos.d.ts +0 -8
  222. package/dist/packages/core/src/helpers/generateHTML.d.ts +0 -2
  223. package/dist/packages/core/src/helpers/getAttributesFromExtensions.d.ts +0 -6
  224. package/dist/packages/core/src/helpers/getHTMLFromFragment.d.ts +0 -2
  225. package/dist/packages/core/src/helpers/getMarkAttributes.d.ts +0 -4
  226. package/dist/packages/core/src/helpers/getMarkRange.d.ts +0 -3
  227. package/dist/packages/core/src/helpers/getMarkType.d.ts +0 -2
  228. package/dist/packages/core/src/helpers/getMarksBetween.d.ts +0 -3
  229. package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +0 -4
  230. package/dist/packages/core/src/helpers/getNodeType.d.ts +0 -2
  231. package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +0 -3
  232. package/dist/packages/core/src/helpers/getSchema.d.ts +0 -3
  233. package/dist/packages/core/src/helpers/getSchemaTypeByName.d.ts +0 -2
  234. package/dist/packages/core/src/helpers/getSchemaTypeNameByName.d.ts +0 -2
  235. package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +0 -2
  236. package/dist/packages/core/src/helpers/injectExtensionAttributesToParseRule.d.ts +0 -9
  237. package/dist/packages/core/src/helpers/isActive.d.ts +0 -3
  238. package/dist/packages/core/src/helpers/isList.d.ts +0 -2
  239. package/dist/packages/core/src/helpers/isMarkActive.d.ts +0 -4
  240. package/dist/packages/core/src/helpers/isNodeActive.d.ts +0 -4
  241. package/dist/packages/core/src/helpers/isNodeEmpty.d.ts +0 -2
  242. package/dist/packages/core/src/helpers/isNodeSelection.d.ts +0 -2
  243. package/dist/packages/core/src/helpers/isTextSelection.d.ts +0 -2
  244. package/dist/packages/core/src/helpers/selectionToInsertionEnd.d.ts +0 -2
  245. package/dist/packages/core/src/helpers/splitExtensions.d.ts +0 -9
  246. package/dist/packages/core/src/index.d.ts +0 -30
  247. package/dist/packages/core/src/inputRules/markInputRule.d.ts +0 -3
  248. package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +0 -3
  249. package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +0 -3
  250. package/dist/packages/core/src/style.d.ts +0 -2
  251. package/dist/packages/core/src/types.d.ts +0 -157
  252. package/dist/packages/core/src/utilities/callOrReturn.d.ts +0 -8
  253. package/dist/packages/core/src/utilities/createStyleTag.d.ts +0 -1
  254. package/dist/packages/core/src/utilities/deleteProps.d.ts +0 -7
  255. package/dist/packages/core/src/utilities/elementFromString.d.ts +0 -1
  256. package/dist/packages/core/src/utilities/fromString.d.ts +0 -1
  257. package/dist/packages/core/src/utilities/isClass.d.ts +0 -1
  258. package/dist/packages/core/src/utilities/isEmptyObject.d.ts +0 -1
  259. package/dist/packages/core/src/utilities/isObject.d.ts +0 -1
  260. package/dist/packages/core/src/utilities/isPlainObject.d.ts +0 -1
  261. package/dist/packages/core/src/utilities/mergeAttributes.d.ts +0 -2
  262. package/dist/packages/core/src/utilities/mergeDeep.d.ts +0 -2
  263. package/dist/packages/core/src/utilities/minMax.d.ts +0 -1
  264. package/dist/packages/core/src/utilities/objectIncludes.d.ts +0 -7
  265. package/dist/packages/core/src/utilities/removeElement.d.ts +0 -1
  266. package/dist/tiptap-core.bundle.umd.min.js +0 -17
  267. package/dist/tiptap-core.bundle.umd.min.js.map +0 -1
  268. package/dist/tiptap-core.cjs.js +0 -3000
  269. package/dist/tiptap-core.cjs.js.map +0 -1
  270. package/dist/tiptap-core.esm.js +0 -2975
  271. package/dist/tiptap-core.esm.js.map +0 -1
  272. package/dist/tiptap-core.umd.js +0 -2997
  273. package/dist/tiptap-core.umd.js.map +0 -1
  274. package/src/commands/insertHTML.ts +0 -30
  275. package/src/commands/insertNode.ts +0 -33
  276. package/src/commands/insertText.ts +0 -22
  277. package/src/commands/replace.ts +0 -20
  278. package/src/commands/replaceRange.ts +0 -36
  279. package/src/commands/resetNodeAttributes.ts +0 -31
  280. package/src/commands/updateNodeAttributes.ts +0 -35
  281. package/src/utilities/isClass.ts +0 -7
  282. package/src/utilities/isObject.ts +0 -10
  283. package/src/utilities/removeElement.ts +0 -5
@@ -1,7 +0,0 @@
1
- export default class EventEmitter {
2
- 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
- protected removeAllListeners(): void;
7
- }
@@ -1,155 +0,0 @@
1
- import { Plugin, Transaction } from 'prosemirror-state';
2
- import { Command as ProseMirrorCommand } from 'prosemirror-commands';
3
- import { InputRule } from 'prosemirror-inputrules';
4
- import { Editor } from './Editor';
5
- import { Node } from './Node';
6
- import { GlobalAttributes, RawCommands } from './types';
7
- import { ExtensionConfig } from '.';
8
- declare module '@tiptap/core' {
9
- interface ExtensionConfig<Options = any> {
10
- [key: string]: any;
11
- /**
12
- * Name
13
- */
14
- name: string;
15
- /**
16
- * Priority
17
- */
18
- priority?: number;
19
- /**
20
- * Default options
21
- */
22
- defaultOptions?: Options;
23
- /**
24
- * Global attributes
25
- */
26
- addGlobalAttributes?: (this: {
27
- options: Options;
28
- }) => GlobalAttributes | {};
29
- /**
30
- * Raw
31
- */
32
- addCommands?: (this: {
33
- options: Options;
34
- editor: Editor;
35
- }) => Partial<RawCommands>;
36
- /**
37
- * Keyboard shortcuts
38
- */
39
- addKeyboardShortcuts?: (this: {
40
- options: Options;
41
- editor: Editor;
42
- }) => {
43
- [key: string]: ProseMirrorCommand;
44
- };
45
- /**
46
- * Input rules
47
- */
48
- addInputRules?: (this: {
49
- options: Options;
50
- editor: Editor;
51
- }) => InputRule[];
52
- /**
53
- * Paste rules
54
- */
55
- addPasteRules?: (this: {
56
- options: Options;
57
- editor: Editor;
58
- }) => Plugin[];
59
- /**
60
- * ProseMirror plugins
61
- */
62
- addProseMirrorPlugins?: (this: {
63
- options: Options;
64
- editor: Editor;
65
- }) => Plugin[];
66
- /**
67
- * Extend Node Schema
68
- */
69
- extendNodeSchema?: ((this: {
70
- options: Options;
71
- }, extension: Node) => {
72
- [key: string]: any;
73
- }) | null;
74
- /**
75
- * Extend Mark Schema
76
- */
77
- extendMarkSchema?: ((this: {
78
- options: Options;
79
- }, extension: Node) => {
80
- [key: string]: any;
81
- }) | null;
82
- /**
83
- * The editor is ready.
84
- */
85
- onCreate?: ((this: {
86
- options: Options;
87
- editor: Editor;
88
- }) => void) | null;
89
- /**
90
- * The content has changed.
91
- */
92
- onUpdate?: ((this: {
93
- options: Options;
94
- editor: Editor;
95
- }) => void) | null;
96
- /**
97
- * The selection has changed.
98
- */
99
- onSelectionUpdate?: ((this: {
100
- options: Options;
101
- editor: Editor;
102
- }) => void) | null;
103
- /**
104
- * The view has changed.
105
- */
106
- onViewUpdate?: ((this: {
107
- options: Options;
108
- editor: Editor;
109
- }) => void) | null;
110
- /**
111
- * The editor state has changed.
112
- */
113
- onTransaction?: ((this: {
114
- options: Options;
115
- editor: Editor;
116
- }, props: {
117
- transaction: Transaction;
118
- }) => void) | null;
119
- /**
120
- * The editor is focused.
121
- */
122
- onFocus?: ((this: {
123
- options: Options;
124
- editor: Editor;
125
- }, props: {
126
- event: FocusEvent;
127
- }) => void) | null;
128
- /**
129
- * The editor isn’t focused anymore.
130
- */
131
- onBlur?: ((this: {
132
- options: Options;
133
- editor: Editor;
134
- }, props: {
135
- event: FocusEvent;
136
- }) => void) | null;
137
- /**
138
- * The editor is destroyed.
139
- */
140
- onDestroy?: ((this: {
141
- options: Options;
142
- editor: Editor;
143
- }) => void) | null;
144
- }
145
- }
146
- export declare class Extension<Options = any> {
147
- #private;
148
- type: string;
149
- config: ExtensionConfig;
150
- options: Options;
151
- constructor(config: ExtensionConfig<Options>);
152
- static create<O>(config: ExtensionConfig<O>): Extension<O>;
153
- configure(options?: Partial<Options>): Extension<Options>;
154
- extend<ExtendedOptions = Options>(extendedConfig: Partial<ExtensionConfig<ExtendedOptions>>): Extension<ExtendedOptions>;
155
- }
@@ -1,24 +0,0 @@
1
- import { Schema, Node as ProsemirrorNode } from 'prosemirror-model';
2
- import { EditorView, Decoration } from 'prosemirror-view';
3
- import { Plugin } from 'prosemirror-state';
4
- import { Editor } from './Editor';
5
- import { Extensions, RawCommands } from './types';
6
- export default class ExtensionManager {
7
- editor: Editor;
8
- schema: Schema;
9
- extensions: Extensions;
10
- splittableMarks: string[];
11
- constructor(extensions: Extensions, editor: Editor);
12
- private sort;
13
- get commands(): RawCommands;
14
- get plugins(): Plugin[];
15
- get attributes(): import("./types").ExtensionAttribute[];
16
- get nodeViews(): {
17
- [k: string]: (node: ProsemirrorNode, view: EditorView, getPos: (() => number) | boolean, decorations: Decoration[]) => {} | import("prosemirror-view").NodeView<any>;
18
- };
19
- get textSerializers(): {
20
- [k: string]: (props: {
21
- node: ProsemirrorNode;
22
- }) => string | undefined;
23
- };
24
- }
@@ -1,219 +0,0 @@
1
- import { DOMOutputSpec, MarkSpec, Mark as ProseMirrorMark, MarkType } from 'prosemirror-model';
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
- import { MarkConfig } from '.';
7
- import { Editor } from './Editor';
8
- declare module '@tiptap/core' {
9
- interface MarkConfig<Options = any> {
10
- [key: string]: any;
11
- /**
12
- * Name
13
- */
14
- name: string;
15
- /**
16
- * Priority
17
- */
18
- priority?: number;
19
- /**
20
- * Default options
21
- */
22
- defaultOptions?: Options;
23
- /**
24
- * Global attributes
25
- */
26
- addGlobalAttributes?: (this: {
27
- options: Options;
28
- }) => GlobalAttributes | {};
29
- /**
30
- * Raw
31
- */
32
- addCommands?: (this: {
33
- options: Options;
34
- editor: Editor;
35
- type: MarkType;
36
- }) => Partial<RawCommands>;
37
- /**
38
- * Keyboard shortcuts
39
- */
40
- addKeyboardShortcuts?: (this: {
41
- options: Options;
42
- editor: Editor;
43
- type: MarkType;
44
- }) => {
45
- [key: string]: ProseMirrorCommand;
46
- };
47
- /**
48
- * Input rules
49
- */
50
- addInputRules?: (this: {
51
- options: Options;
52
- editor: Editor;
53
- type: MarkType;
54
- }) => InputRule[];
55
- /**
56
- * Paste rules
57
- */
58
- addPasteRules?: (this: {
59
- options: Options;
60
- editor: Editor;
61
- type: MarkType;
62
- }) => Plugin[];
63
- /**
64
- * ProseMirror plugins
65
- */
66
- addProseMirrorPlugins?: (this: {
67
- options: Options;
68
- editor: Editor;
69
- type: MarkType;
70
- }) => Plugin[];
71
- /**
72
- * Extend Node Schema
73
- */
74
- extendNodeSchema?: ((this: {
75
- options: Options;
76
- }, extension: Node) => {
77
- [key: string]: any;
78
- }) | null;
79
- /**
80
- * Extend Mark Schema
81
- */
82
- extendMarkSchema?: ((this: {
83
- options: Options;
84
- }, extension: Node) => {
85
- [key: string]: any;
86
- }) | null;
87
- /**
88
- * The editor is ready.
89
- */
90
- onCreate?: ((this: {
91
- options: Options;
92
- editor: Editor;
93
- type: MarkType;
94
- }) => void) | null;
95
- /**
96
- * The content has changed.
97
- */
98
- onUpdate?: ((this: {
99
- options: Options;
100
- editor: Editor;
101
- type: MarkType;
102
- }) => void) | null;
103
- /**
104
- * The selection has changed.
105
- */
106
- onSelectionUpdate?: ((this: {
107
- options: Options;
108
- editor: Editor;
109
- type: MarkType;
110
- }) => void) | null;
111
- /**
112
- * The view has changed.
113
- */
114
- onViewUpdate?: ((this: {
115
- options: Options;
116
- editor: Editor;
117
- type: MarkType;
118
- }) => void) | null;
119
- /**
120
- * The editor state has changed.
121
- */
122
- onTransaction?: ((this: {
123
- options: Options;
124
- editor: Editor;
125
- type: MarkType;
126
- }, props: {
127
- transaction: Transaction;
128
- }) => void) | null;
129
- /**
130
- * The editor is focused.
131
- */
132
- onFocus?: ((this: {
133
- options: Options;
134
- editor: Editor;
135
- type: MarkType;
136
- }, props: {
137
- event: FocusEvent;
138
- }) => void) | null;
139
- /**
140
- * The editor isn’t focused anymore.
141
- */
142
- onBlur?: ((this: {
143
- options: Options;
144
- editor: Editor;
145
- type: MarkType;
146
- }, props: {
147
- event: FocusEvent;
148
- }) => void) | null;
149
- /**
150
- * The editor is destroyed.
151
- */
152
- onDestroy?: ((this: {
153
- options: Options;
154
- editor: Editor;
155
- type: MarkType;
156
- }) => void) | null;
157
- /**
158
- * Keep mark after split node
159
- */
160
- keepOnSplit?: boolean | (() => boolean);
161
- /**
162
- * Inclusive
163
- */
164
- inclusive?: MarkSpec['inclusive'] | ((this: {
165
- options: Options;
166
- }) => MarkSpec['inclusive']);
167
- /**
168
- * Excludes
169
- */
170
- excludes?: MarkSpec['excludes'] | ((this: {
171
- options: Options;
172
- }) => MarkSpec['excludes']);
173
- /**
174
- * Group
175
- */
176
- group?: MarkSpec['group'] | ((this: {
177
- options: Options;
178
- }) => MarkSpec['group']);
179
- /**
180
- * Spanning
181
- */
182
- spanning?: MarkSpec['spanning'] | ((this: {
183
- options: Options;
184
- }) => MarkSpec['spanning']);
185
- /**
186
- * Parse HTML
187
- */
188
- parseHTML?: (this: {
189
- options: Options;
190
- }) => MarkSpec['parseDOM'];
191
- /**
192
- * Render HTML
193
- */
194
- renderHTML?: ((this: {
195
- options: Options;
196
- }, props: {
197
- mark: ProseMirrorMark;
198
- HTMLAttributes: {
199
- [key: string]: any;
200
- };
201
- }) => DOMOutputSpec) | null;
202
- /**
203
- * Attributes
204
- */
205
- addAttributes?: (this: {
206
- options: Options;
207
- }) => Attributes | {};
208
- }
209
- }
210
- export declare class Mark<Options = any> {
211
- #private;
212
- type: string;
213
- config: MarkConfig;
214
- 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>;
219
- }
@@ -1,273 +0,0 @@
1
- import { DOMOutputSpec, NodeSpec, Node as ProseMirrorNode, NodeType } from 'prosemirror-model';
2
- import { Command as ProseMirrorCommand } from 'prosemirror-commands';
3
- import { Plugin, Transaction } from 'prosemirror-state';
4
- import { InputRule } from 'prosemirror-inputrules';
5
- import { Attributes, NodeViewRenderer, GlobalAttributes, RawCommands } from './types';
6
- import { NodeConfig } from '.';
7
- import { Editor } from './Editor';
8
- declare module '@tiptap/core' {
9
- interface NodeConfig<Options = any> {
10
- [key: string]: any;
11
- /**
12
- * Name
13
- */
14
- name: string;
15
- /**
16
- * Priority
17
- */
18
- priority?: number;
19
- /**
20
- * Default options
21
- */
22
- defaultOptions?: Options;
23
- /**
24
- * Global attributes
25
- */
26
- addGlobalAttributes?: (this: {
27
- options: Options;
28
- }) => GlobalAttributes | {};
29
- /**
30
- * Raw
31
- */
32
- addCommands?: (this: {
33
- options: Options;
34
- editor: Editor;
35
- type: NodeType;
36
- }) => Partial<RawCommands>;
37
- /**
38
- * Keyboard shortcuts
39
- */
40
- addKeyboardShortcuts?: (this: {
41
- options: Options;
42
- editor: Editor;
43
- type: NodeType;
44
- }) => {
45
- [key: string]: ProseMirrorCommand;
46
- };
47
- /**
48
- * Input rules
49
- */
50
- addInputRules?: (this: {
51
- options: Options;
52
- editor: Editor;
53
- type: NodeType;
54
- }) => InputRule[];
55
- /**
56
- * Paste rules
57
- */
58
- addPasteRules?: (this: {
59
- options: Options;
60
- editor: Editor;
61
- type: NodeType;
62
- }) => Plugin[];
63
- /**
64
- * ProseMirror plugins
65
- */
66
- addProseMirrorPlugins?: (this: {
67
- options: Options;
68
- editor: Editor;
69
- type: NodeType;
70
- }) => Plugin[];
71
- /**
72
- * Extend Node Schema
73
- */
74
- extendNodeSchema?: ((this: {
75
- options: Options;
76
- }, extension: Node) => {
77
- [key: string]: any;
78
- }) | null;
79
- /**
80
- * Extend Mark Schema
81
- */
82
- extendMarkSchema?: ((this: {
83
- options: Options;
84
- }, extension: Node) => {
85
- [key: string]: any;
86
- }) | null;
87
- /**
88
- * The editor is ready.
89
- */
90
- onCreate?: ((this: {
91
- options: Options;
92
- editor: Editor;
93
- type: NodeType;
94
- }) => void) | null;
95
- /**
96
- * The content has changed.
97
- */
98
- onUpdate?: ((this: {
99
- options: Options;
100
- editor: Editor;
101
- type: NodeType;
102
- }) => void) | null;
103
- /**
104
- * The selection has changed.
105
- */
106
- onSelectionUpdate?: ((this: {
107
- options: Options;
108
- editor: Editor;
109
- type: NodeType;
110
- }) => void) | null;
111
- /**
112
- * The view has changed.
113
- */
114
- onViewUpdate?: ((this: {
115
- options: Options;
116
- editor: Editor;
117
- type: NodeType;
118
- }) => void) | null;
119
- /**
120
- * The editor state has changed.
121
- */
122
- onTransaction?: ((this: {
123
- options: Options;
124
- editor: Editor;
125
- type: NodeType;
126
- }, props: {
127
- transaction: Transaction;
128
- }) => void) | null;
129
- /**
130
- * The editor is focused.
131
- */
132
- onFocus?: ((this: {
133
- options: Options;
134
- editor: Editor;
135
- type: NodeType;
136
- }, props: {
137
- event: FocusEvent;
138
- }) => void) | null;
139
- /**
140
- * The editor isn’t focused anymore.
141
- */
142
- onBlur?: ((this: {
143
- options: Options;
144
- editor: Editor;
145
- type: NodeType;
146
- }, props: {
147
- event: FocusEvent;
148
- }) => void) | null;
149
- /**
150
- * The editor is destroyed.
151
- */
152
- onDestroy?: ((this: {
153
- options: Options;
154
- editor: Editor;
155
- type: NodeType;
156
- }) => void) | null;
157
- /**
158
- * Node View
159
- */
160
- addNodeView?: ((this: {
161
- options: Options;
162
- editor: Editor;
163
- type: NodeType;
164
- }) => NodeViewRenderer) | null;
165
- /**
166
- * TopNode
167
- */
168
- topNode?: boolean;
169
- /**
170
- * Content
171
- */
172
- content?: NodeSpec['content'] | ((this: {
173
- options: Options;
174
- }) => NodeSpec['content']);
175
- /**
176
- * Marks
177
- */
178
- marks?: NodeSpec['marks'] | ((this: {
179
- options: Options;
180
- }) => NodeSpec['marks']);
181
- /**
182
- * Group
183
- */
184
- group?: NodeSpec['group'] | ((this: {
185
- options: Options;
186
- }) => NodeSpec['group']);
187
- /**
188
- * Inline
189
- */
190
- inline?: NodeSpec['inline'] | ((this: {
191
- options: Options;
192
- }) => NodeSpec['inline']);
193
- /**
194
- * Atom
195
- */
196
- atom?: NodeSpec['atom'] | ((this: {
197
- options: Options;
198
- }) => NodeSpec['atom']);
199
- /**
200
- * Selectable
201
- */
202
- selectable?: NodeSpec['selectable'] | ((this: {
203
- options: Options;
204
- }) => NodeSpec['selectable']);
205
- /**
206
- * Draggable
207
- */
208
- draggable?: NodeSpec['draggable'] | ((this: {
209
- options: Options;
210
- }) => NodeSpec['draggable']);
211
- /**
212
- * Code
213
- */
214
- code?: NodeSpec['code'] | ((this: {
215
- options: Options;
216
- }) => NodeSpec['code']);
217
- /**
218
- * Defining
219
- */
220
- defining?: NodeSpec['defining'] | ((this: {
221
- options: Options;
222
- }) => NodeSpec['defining']);
223
- /**
224
- * Isolating
225
- */
226
- isolating?: NodeSpec['isolating'] | ((this: {
227
- options: Options;
228
- }) => NodeSpec['isolating']);
229
- /**
230
- * Parse HTML
231
- */
232
- parseHTML?: (this: {
233
- options: Options;
234
- }) => NodeSpec['parseDOM'];
235
- /**
236
- * Render HTML
237
- */
238
- renderHTML?: ((this: {
239
- options: Options;
240
- }, props: {
241
- node: ProseMirrorNode;
242
- HTMLAttributes: {
243
- [key: string]: any;
244
- };
245
- }) => DOMOutputSpec) | null;
246
- /**
247
- * Render Text
248
- */
249
- renderText?: ((this: {
250
- options: Options;
251
- editor: Editor;
252
- type: NodeType;
253
- }, props: {
254
- node: ProseMirrorNode;
255
- }) => string) | null;
256
- /**
257
- * Add Attributes
258
- */
259
- addAttributes?: (this: {
260
- options: Options;
261
- }) => Attributes | {};
262
- }
263
- }
264
- export declare class Node<Options = any> {
265
- #private;
266
- type: string;
267
- config: NodeConfig;
268
- options: Options;
269
- constructor(config: NodeConfig<Options>);
270
- static create<O>(config: NodeConfig<O>): Node<O>;
271
- configure(options?: Partial<Options>): Node<Options>;
272
- extend<ExtendedOptions = Options>(extendedConfig: Partial<NodeConfig<ExtendedOptions>>): Node<ExtendedOptions>;
273
- }
@@ -1,31 +0,0 @@
1
- import { Decoration, NodeView as ProseMirrorNodeView } from 'prosemirror-view';
2
- import { Node as ProseMirrorNode } from 'prosemirror-model';
3
- import { Editor as CoreEditor } from './Editor';
4
- import { Node } from './Node';
5
- import { NodeViewRendererProps } from './types';
6
- interface NodeViewRendererOptions {
7
- stopEvent: ((event: Event) => boolean) | null;
8
- update: ((node: ProseMirrorNode, decorations: Decoration[]) => boolean) | null;
9
- }
10
- export declare class NodeView<Component, Editor extends CoreEditor = CoreEditor> implements ProseMirrorNodeView {
11
- component: Component;
12
- editor: Editor;
13
- extension: Node;
14
- node: ProseMirrorNode;
15
- decorations: Decoration[];
16
- getPos: any;
17
- isDragging: boolean;
18
- options: NodeViewRendererOptions;
19
- constructor(component: Component, props: NodeViewRendererProps, options?: Partial<NodeViewRendererOptions>);
20
- mount(): void;
21
- get dom(): Element | null;
22
- get contentDOM(): Element | null;
23
- onDragStart(event: DragEvent): void;
24
- stopEvent(event: Event): boolean;
25
- ignoreMutation(mutation: MutationRecord | {
26
- type: 'selection';
27
- target: Element;
28
- }): boolean;
29
- updateAttributes(attributes: {}): void;
30
- }
31
- export {};