@tiptap/core 2.0.0-beta.18 → 2.0.0-beta.182

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/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 +24 -19
  5. package/dist/packages/core/src/EventEmitter.d.ts +8 -4
  6. package/dist/packages/core/src/Extension.d.ts +99 -27
  7. package/dist/packages/core/src/ExtensionManager.d.ts +7 -13
  8. package/dist/packages/core/src/InputRule.d.ts +42 -0
  9. package/dist/packages/core/src/Mark.d.ts +131 -31
  10. package/dist/packages/core/src/Node.d.ts +157 -33
  11. package/dist/packages/core/src/NodeView.d.ts +8 -12
  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/index.d.ts +50 -0
  29. package/dist/packages/core/src/commands/insertContent.d.ts +7 -3
  30. package/dist/packages/core/src/commands/insertContentAt.d.ts +16 -0
  31. package/dist/packages/core/src/commands/joinBackward.d.ts +3 -3
  32. package/dist/packages/core/src/commands/joinForward.d.ts +3 -3
  33. package/dist/packages/core/src/commands/keyboardShortcut.d.ts +3 -3
  34. package/dist/packages/core/src/commands/lift.d.ts +3 -3
  35. package/dist/packages/core/src/commands/liftEmptyBlock.d.ts +3 -3
  36. package/dist/packages/core/src/commands/liftListItem.d.ts +3 -3
  37. package/dist/packages/core/src/commands/newlineInCode.d.ts +3 -3
  38. package/dist/packages/core/src/commands/resetAttributes.d.ts +13 -0
  39. package/dist/packages/core/src/commands/scrollIntoView.d.ts +3 -3
  40. package/dist/packages/core/src/commands/selectAll.d.ts +3 -3
  41. package/dist/packages/core/src/commands/selectNodeBackward.d.ts +3 -3
  42. package/dist/packages/core/src/commands/selectNodeForward.d.ts +3 -3
  43. package/dist/packages/core/src/commands/selectParentNode.d.ts +3 -3
  44. package/dist/packages/core/src/commands/selectTextblockEnd.d.ts +12 -0
  45. package/dist/packages/core/src/commands/selectTextblockStart.d.ts +12 -0
  46. package/dist/packages/core/src/commands/setContent.d.ts +4 -3
  47. package/dist/packages/core/src/commands/setMark.d.ts +3 -3
  48. package/dist/packages/core/src/commands/setMeta.d.ts +12 -0
  49. package/dist/packages/core/src/commands/setNode.d.ts +3 -3
  50. package/dist/packages/core/src/commands/setNodeSelection.d.ts +12 -0
  51. package/dist/packages/core/src/commands/setTextSelection.d.ts +12 -0
  52. package/dist/packages/core/src/commands/sinkListItem.d.ts +3 -3
  53. package/dist/packages/core/src/commands/splitBlock.d.ts +3 -3
  54. package/dist/packages/core/src/commands/splitListItem.d.ts +3 -3
  55. package/dist/packages/core/src/commands/toggleList.d.ts +3 -3
  56. package/dist/packages/core/src/commands/toggleMark.d.ts +8 -3
  57. package/dist/packages/core/src/commands/toggleNode.d.ts +3 -3
  58. package/dist/packages/core/src/commands/toggleWrap.d.ts +3 -3
  59. package/dist/packages/core/src/commands/undoInputRule.d.ts +3 -3
  60. package/dist/packages/core/src/commands/unsetAllMarks.d.ts +3 -3
  61. package/dist/packages/core/src/commands/unsetMark.d.ts +8 -3
  62. package/dist/packages/core/src/commands/updateAttributes.d.ts +13 -0
  63. package/dist/packages/core/src/commands/wrapIn.d.ts +3 -3
  64. package/dist/packages/core/src/commands/wrapInList.d.ts +3 -3
  65. package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +1 -1
  66. package/dist/packages/core/src/extensions/commands.d.ts +2 -95
  67. package/dist/packages/core/src/extensions/editable.d.ts +1 -1
  68. package/dist/packages/core/src/extensions/focusEvents.d.ts +1 -1
  69. package/dist/packages/core/src/extensions/index.d.ts +1 -0
  70. package/dist/packages/core/src/extensions/keymap.d.ts +1 -1
  71. package/dist/packages/core/src/extensions/tabindex.d.ts +2 -0
  72. package/dist/packages/core/src/helpers/combineTransactionSteps.d.ts +7 -0
  73. package/dist/packages/core/src/helpers/createChainableState.d.ts +5 -0
  74. package/dist/packages/core/src/helpers/createDocument.d.ts +3 -4
  75. package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +4 -5
  76. package/dist/packages/core/src/helpers/defaultBlockAt.d.ts +2 -0
  77. package/dist/packages/core/src/helpers/findChildren.d.ts +3 -0
  78. package/dist/packages/core/src/helpers/findChildrenInRange.d.ts +6 -0
  79. package/dist/packages/core/src/helpers/findParentNode.d.ts +2 -3
  80. package/dist/packages/core/src/helpers/findParentNodeClosestToPos.d.ts +2 -2
  81. package/dist/packages/core/src/helpers/generateHTML.d.ts +2 -2
  82. package/dist/packages/core/src/helpers/generateJSON.d.ts +2 -0
  83. package/dist/packages/core/src/helpers/generateText.d.ts +5 -0
  84. package/dist/packages/core/src/helpers/getAttributes.d.ts +3 -0
  85. package/dist/packages/core/src/helpers/getAttributesFromExtensions.d.ts +2 -2
  86. package/dist/packages/core/src/helpers/getChangedRanges.d.ts +11 -0
  87. package/dist/packages/core/src/helpers/getDebugJSON.d.ts +8 -0
  88. package/dist/packages/core/src/helpers/getExtensionField.d.ts +2 -0
  89. package/dist/packages/core/src/helpers/getHTMLFromFragment.d.ts +2 -2
  90. package/dist/packages/core/src/helpers/getMarkAttributes.d.ts +2 -3
  91. package/dist/packages/core/src/helpers/getMarkRange.d.ts +1 -1
  92. package/dist/packages/core/src/helpers/getMarkType.d.ts +1 -1
  93. package/dist/packages/core/src/helpers/getMarksBetween.d.ts +2 -2
  94. package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +2 -3
  95. package/dist/packages/core/src/helpers/getNodeType.d.ts +1 -1
  96. package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +3 -3
  97. package/dist/packages/core/src/helpers/getSchema.d.ts +1 -1
  98. package/dist/packages/core/src/helpers/getSchemaByResolvedExtensions.d.ts +3 -0
  99. package/dist/packages/core/src/helpers/getSchemaTypeByName.d.ts +1 -1
  100. package/dist/packages/core/src/helpers/getSchemaTypeNameByName.d.ts +1 -1
  101. package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +2 -2
  102. package/dist/packages/core/src/helpers/getText.d.ts +6 -0
  103. package/dist/packages/core/src/helpers/getTextBetween.d.ts +6 -0
  104. package/dist/packages/core/src/helpers/getTextContentFromNodes.d.ts +2 -0
  105. package/dist/packages/core/src/helpers/getTextSerializersFromSchema.d.ts +3 -0
  106. package/dist/packages/core/src/helpers/index.d.ts +33 -0
  107. package/dist/packages/core/src/helpers/injectExtensionAttributesToParseRule.d.ts +1 -1
  108. package/dist/packages/core/src/helpers/isActive.d.ts +1 -2
  109. package/dist/packages/core/src/helpers/isExtensionRulesEnabled.d.ts +2 -0
  110. package/dist/packages/core/src/helpers/isList.d.ts +1 -1
  111. package/dist/packages/core/src/helpers/isMarkActive.d.ts +2 -3
  112. package/dist/packages/core/src/helpers/isNodeActive.d.ts +2 -3
  113. package/dist/packages/core/src/helpers/isNodeEmpty.d.ts +1 -1
  114. package/dist/packages/core/src/helpers/isNodeSelection.d.ts +1 -1
  115. package/dist/packages/core/src/helpers/isTextSelection.d.ts +1 -1
  116. package/dist/packages/core/src/helpers/posToDOMRect.d.ts +2 -0
  117. package/dist/packages/core/src/helpers/resolveFocusPosition.d.ts +4 -0
  118. package/dist/packages/core/src/helpers/selectionToInsertionEnd.d.ts +1 -1
  119. package/dist/packages/core/src/helpers/splitExtensions.d.ts +6 -6
  120. package/dist/packages/core/src/index.d.ts +14 -21
  121. package/dist/packages/core/src/inputRules/index.d.ts +5 -0
  122. package/dist/packages/core/src/inputRules/markInputRule.d.ts +11 -2
  123. package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +11 -2
  124. package/dist/packages/core/src/inputRules/textInputRule.d.ts +9 -0
  125. package/dist/packages/core/src/inputRules/textblockTypeInputRule.d.ts +14 -0
  126. package/dist/packages/core/src/inputRules/wrappingInputRule.d.ts +23 -0
  127. package/dist/packages/core/src/pasteRules/index.d.ts +3 -0
  128. package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +11 -2
  129. package/dist/packages/core/src/pasteRules/nodePasteRule.d.ts +12 -0
  130. package/dist/packages/core/src/pasteRules/textPasteRule.d.ts +9 -0
  131. package/dist/packages/core/src/style.d.ts +1 -2
  132. package/dist/packages/core/src/types.d.ts +112 -56
  133. package/dist/packages/core/src/utilities/callOrReturn.d.ts +2 -1
  134. package/dist/packages/core/src/utilities/createStyleTag.d.ts +1 -1
  135. package/dist/packages/core/src/utilities/deleteProps.d.ts +1 -2
  136. package/dist/packages/core/src/utilities/elementFromString.d.ts +1 -1
  137. package/dist/packages/core/src/utilities/escapeForRegEx.d.ts +1 -0
  138. package/dist/packages/core/src/utilities/findDuplicates.d.ts +1 -0
  139. package/dist/packages/core/src/utilities/fromString.d.ts +1 -1
  140. package/dist/packages/core/src/utilities/index.d.ts +3 -0
  141. package/dist/packages/core/src/utilities/isClass.d.ts +1 -1
  142. package/dist/packages/core/src/utilities/isEmptyObject.d.ts +1 -1
  143. package/dist/packages/core/src/utilities/isFunction.d.ts +1 -0
  144. package/dist/packages/core/src/utilities/isMacOS.d.ts +1 -0
  145. package/dist/packages/core/src/utilities/isNumber.d.ts +1 -0
  146. package/dist/packages/core/src/utilities/isObject.d.ts +1 -1
  147. package/dist/packages/core/src/utilities/isPlainObject.d.ts +1 -1
  148. package/dist/packages/core/src/utilities/isRegExp.d.ts +1 -0
  149. package/dist/packages/core/src/utilities/isiOS.d.ts +1 -0
  150. package/dist/packages/core/src/utilities/mergeAttributes.d.ts +1 -2
  151. package/dist/packages/core/src/utilities/mergeDeep.d.ts +1 -2
  152. package/dist/packages/core/src/utilities/minMax.d.ts +1 -1
  153. package/dist/packages/core/src/utilities/objectIncludes.d.ts +3 -2
  154. package/dist/packages/core/src/utilities/removeDuplicates.d.ts +8 -0
  155. package/dist/tiptap-core.cjs.js +2696 -1374
  156. package/dist/tiptap-core.cjs.js.map +1 -1
  157. package/dist/tiptap-core.esm.js +2630 -1342
  158. package/dist/tiptap-core.esm.js.map +1 -1
  159. package/dist/tiptap-core.umd.js +2648 -1325
  160. package/dist/tiptap-core.umd.js.map +1 -1
  161. package/package.json +17 -20
  162. package/src/CommandManager.ts +63 -64
  163. package/src/Editor.ts +115 -78
  164. package/src/EventEmitter.ts +14 -4
  165. package/src/Extension.ts +193 -43
  166. package/src/ExtensionManager.ts +232 -83
  167. package/src/InputRule.ts +265 -0
  168. package/src/Mark.ts +239 -49
  169. package/src/Node.ts +279 -57
  170. package/src/NodeView.ts +115 -47
  171. package/src/PasteRule.ts +247 -0
  172. package/src/Tracker.ts +42 -0
  173. package/src/commands/blur.ts +12 -6
  174. package/src/commands/clearContent.ts +3 -3
  175. package/src/commands/clearNodes.ts +30 -18
  176. package/src/commands/command.ts +2 -2
  177. package/src/commands/createParagraphNear.ts +4 -3
  178. package/src/commands/deleteNode.ts +37 -0
  179. package/src/commands/deleteRange.ts +3 -3
  180. package/src/commands/deleteSelection.ts +4 -3
  181. package/src/commands/enter.ts +3 -3
  182. package/src/commands/exitCode.ts +4 -3
  183. package/src/commands/extendMarkRange.ts +12 -11
  184. package/src/commands/first.ts +3 -3
  185. package/src/commands/focus.ts +47 -44
  186. package/src/commands/forEach.ts +24 -0
  187. package/src/commands/index.ts +50 -0
  188. package/src/commands/insertContent.ts +13 -24
  189. package/src/commands/insertContentAt.ts +108 -0
  190. package/src/commands/joinBackward.ts +4 -3
  191. package/src/commands/joinForward.ts +4 -3
  192. package/src/commands/keyboardShortcut.ts +6 -6
  193. package/src/commands/lift.ts +6 -5
  194. package/src/commands/liftEmptyBlock.ts +4 -3
  195. package/src/commands/liftListItem.ts +6 -5
  196. package/src/commands/newlineInCode.ts +4 -3
  197. package/src/commands/resetAttributes.ts +62 -0
  198. package/src/commands/scrollIntoView.ts +3 -3
  199. package/src/commands/selectAll.ts +8 -6
  200. package/src/commands/selectNodeBackward.ts +4 -3
  201. package/src/commands/selectNodeForward.ts +4 -3
  202. package/src/commands/selectParentNode.ts +4 -3
  203. package/src/commands/selectTextblockEnd.ts +20 -0
  204. package/src/commands/selectTextblockStart.ts +20 -0
  205. package/src/commands/setContent.ts +9 -15
  206. package/src/commands/setMark.ts +36 -12
  207. package/src/commands/setMeta.ts +18 -0
  208. package/src/commands/setNode.ts +29 -7
  209. package/src/commands/setNodeSelection.ts +29 -0
  210. package/src/commands/setTextSelection.ts +33 -0
  211. package/src/commands/sinkListItem.ts +6 -5
  212. package/src/commands/splitBlock.ts +16 -10
  213. package/src/commands/splitListItem.ts +45 -18
  214. package/src/commands/toggleList.ts +83 -18
  215. package/src/commands/toggleMark.ts +18 -7
  216. package/src/commands/toggleNode.ts +6 -5
  217. package/src/commands/toggleWrap.ts +9 -9
  218. package/src/commands/undoInputRule.ts +34 -5
  219. package/src/commands/unsetAllMarks.ts +7 -11
  220. package/src/commands/unsetMark.ts +35 -22
  221. package/src/commands/updateAttributes.ts +73 -0
  222. package/src/commands/wrapIn.ts +5 -10
  223. package/src/commands/wrapInList.ts +6 -5
  224. package/src/extensions/clipboardTextSerializer.ts +14 -35
  225. package/src/extensions/commands.ts +3 -141
  226. package/src/extensions/editable.ts +1 -0
  227. package/src/extensions/focusEvents.ts +3 -5
  228. package/src/extensions/index.ts +1 -0
  229. package/src/extensions/keymap.ts +110 -13
  230. package/src/extensions/tabindex.ts +18 -0
  231. package/src/helpers/combineTransactionSteps.ts +18 -0
  232. package/src/helpers/createChainableState.ts +38 -0
  233. package/src/helpers/createDocument.ts +5 -6
  234. package/src/helpers/createNodeFromContent.ts +17 -19
  235. package/src/helpers/defaultBlockAt.ts +13 -0
  236. package/src/helpers/findChildren.ts +18 -0
  237. package/src/helpers/findChildrenInRange.ts +32 -0
  238. package/src/helpers/findParentNode.ts +3 -2
  239. package/src/helpers/findParentNodeClosestToPos.ts +3 -2
  240. package/src/helpers/generateHTML.ts +6 -5
  241. package/src/helpers/generateJSON.ts +14 -0
  242. package/src/helpers/generateText.ts +30 -0
  243. package/src/helpers/getAttributes.ts +28 -0
  244. package/src/helpers/getAttributesFromExtensions.ts +42 -14
  245. package/src/helpers/getChangedRanges.ts +83 -0
  246. package/src/helpers/getDebugJSON.ts +54 -0
  247. package/src/helpers/getExtensionField.ts +25 -0
  248. package/src/helpers/getHTMLFromFragment.ts +6 -5
  249. package/src/helpers/getMarkAttributes.ts +14 -10
  250. package/src/helpers/getMarkRange.ts +41 -8
  251. package/src/helpers/getMarkType.ts +5 -1
  252. package/src/helpers/getMarksBetween.ts +32 -10
  253. package/src/helpers/getNodeAttributes.ts +9 -9
  254. package/src/helpers/getNodeType.ts +5 -1
  255. package/src/helpers/getRenderedAttributes.ts +6 -7
  256. package/src/helpers/getSchema.ts +7 -133
  257. package/src/helpers/getSchemaByResolvedExtensions.ts +148 -0
  258. package/src/helpers/getSchemaTypeByName.ts +2 -10
  259. package/src/helpers/getSchemaTypeNameByName.ts +1 -1
  260. package/src/helpers/getSplittedAttributes.ts +4 -4
  261. package/src/helpers/getText.ts +19 -0
  262. package/src/helpers/getTextBetween.ts +49 -0
  263. package/src/helpers/getTextContentFromNodes.ts +17 -0
  264. package/src/helpers/getTextSerializersFromSchema.ts +10 -0
  265. package/src/helpers/index.ts +33 -0
  266. package/src/helpers/injectExtensionAttributesToParseRule.ts +17 -19
  267. package/src/helpers/isActive.ts +5 -5
  268. package/src/helpers/isExtensionRulesEnabled.ts +15 -0
  269. package/src/helpers/isList.ts +14 -7
  270. package/src/helpers/isMarkActive.ts +45 -20
  271. package/src/helpers/isNodeActive.ts +28 -35
  272. package/src/helpers/isNodeEmpty.ts +1 -1
  273. package/src/helpers/isNodeSelection.ts +3 -2
  274. package/src/helpers/isTextSelection.ts +3 -2
  275. package/src/helpers/posToDOMRect.ts +35 -0
  276. package/src/helpers/resolveFocusPosition.ts +43 -0
  277. package/src/helpers/selectionToInsertionEnd.ts +2 -2
  278. package/src/helpers/splitExtensions.ts +3 -3
  279. package/src/index.ts +15 -24
  280. package/src/inputRules/index.ts +5 -0
  281. package/src/inputRules/markInputRule.ts +59 -39
  282. package/src/inputRules/nodeInputRule.ts +45 -11
  283. package/src/inputRules/textInputRule.ts +35 -0
  284. package/src/inputRules/textblockTypeInputRule.ts +38 -0
  285. package/src/inputRules/wrappingInputRule.ts +60 -0
  286. package/src/pasteRules/index.ts +3 -0
  287. package/src/pasteRules/markPasteRule.ts +62 -53
  288. package/src/pasteRules/nodePasteRule.ts +39 -0
  289. package/src/pasteRules/textPasteRule.ts +35 -0
  290. package/src/style.ts +16 -3
  291. package/src/types.ts +129 -43
  292. package/src/utilities/callOrReturn.ts +6 -3
  293. package/src/utilities/createStyleTag.ts +12 -1
  294. package/src/utilities/deleteProps.ts +2 -4
  295. package/src/utilities/elementFromString.ts +4 -5
  296. package/src/utilities/escapeForRegEx.ts +4 -0
  297. package/src/utilities/findDuplicates.ts +5 -0
  298. package/src/utilities/fromString.ts +2 -2
  299. package/src/utilities/index.ts +3 -0
  300. package/src/utilities/isClass.ts +2 -2
  301. package/src/utilities/isEmptyObject.ts +2 -2
  302. package/src/utilities/isFunction.ts +3 -0
  303. package/src/utilities/isMacOS.ts +5 -0
  304. package/src/utilities/isNumber.ts +3 -0
  305. package/src/utilities/isObject.ts +6 -6
  306. package/src/utilities/isPlainObject.ts +8 -5
  307. package/src/utilities/isRegExp.ts +3 -0
  308. package/src/utilities/isString.ts +3 -0
  309. package/src/utilities/isiOS.ts +12 -0
  310. package/src/utilities/mergeAttributes.ts +2 -3
  311. package/src/utilities/mergeDeep.ts +2 -3
  312. package/src/utilities/minMax.ts +1 -1
  313. package/src/utilities/objectIncludes.ts +17 -5
  314. package/src/utilities/removeDuplicates.ts +15 -0
  315. package/CHANGELOG.md +0 -335
  316. package/dist/packages/core/src/commands/insertHTML.d.ts +0 -12
  317. package/dist/packages/core/src/commands/insertNode.d.ts +0 -13
  318. package/dist/packages/core/src/commands/insertText.d.ts +0 -12
  319. package/dist/packages/core/src/commands/replace.d.ts +0 -13
  320. package/dist/packages/core/src/commands/replaceRange.d.ts +0 -13
  321. package/dist/packages/core/src/commands/resetNodeAttributes.d.ts +0 -13
  322. package/dist/packages/core/src/commands/updateNodeAttributes.d.ts +0 -13
  323. package/dist/packages/core/src/utilities/removeElement.d.ts +0 -1
  324. package/dist/tiptap-core.bundle.umd.min.js +0 -17
  325. package/dist/tiptap-core.bundle.umd.min.js.map +0 -1
  326. package/src/commands/insertHTML.ts +0 -30
  327. package/src/commands/insertNode.ts +0 -33
  328. package/src/commands/insertText.ts +0 -22
  329. package/src/commands/replace.ts +0 -20
  330. package/src/commands/replaceRange.ts +0 -36
  331. package/src/commands/resetNodeAttributes.ts +0 -31
  332. package/src/commands/updateNodeAttributes.ts +0 -33
  333. package/src/utilities/removeElement.ts +0 -5
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@tiptap/core",
3
3
  "description": "headless rich text editor",
4
- "version": "2.0.0-beta.18",
4
+ "version": "2.0.0-beta.182",
5
5
  "homepage": "https://tiptap.dev",
6
6
  "keywords": [
7
7
  "tiptap",
8
8
  "headless",
9
9
  "wysiwyg",
10
- "text editor"
10
+ "text editor",
11
+ "prosemirror"
11
12
  ],
12
13
  "license": "MIT",
13
14
  "funding": {
@@ -17,29 +18,25 @@
17
18
  "main": "dist/tiptap-core.cjs.js",
18
19
  "umd": "dist/tiptap-core.umd.js",
19
20
  "module": "dist/tiptap-core.esm.js",
20
- "unpkg": "dist/tiptap-core.bundle.umd.min.js",
21
21
  "types": "dist/packages/core/src/index.d.ts",
22
22
  "files": [
23
23
  "src",
24
24
  "dist"
25
25
  ],
26
26
  "dependencies": {
27
- "@types/prosemirror-commands": "^1.0.4",
28
- "@types/prosemirror-inputrules": "^1.0.4",
29
- "@types/prosemirror-keymap": "^1.0.4",
30
- "@types/prosemirror-model": "^1.13.0",
31
- "@types/prosemirror-schema-list": "^1.0.3",
32
- "@types/prosemirror-state": "^1.2.6",
33
- "@types/prosemirror-transform": "^1.1.2",
34
- "@types/prosemirror-view": "^1.17.1",
35
- "prosemirror-commands": "^1.1.7",
36
- "prosemirror-inputrules": "^1.1.3",
37
- "prosemirror-keymap": "^1.1.3",
38
- "prosemirror-model": "^1.14.0",
39
- "prosemirror-schema-list": "^1.1.4",
40
- "prosemirror-state": "^1.3.4",
41
- "prosemirror-transform": "^1.3.2",
42
- "prosemirror-view": "^1.18.2"
27
+ "prosemirror-commands": "1.3.0",
28
+ "prosemirror-keymap": "1.2.0",
29
+ "prosemirror-model": "1.18.1",
30
+ "prosemirror-schema-list": "1.2.0",
31
+ "prosemirror-state": "1.4.1",
32
+ "prosemirror-transform": "1.6.0",
33
+ "prosemirror-view": "1.26.2"
43
34
  },
44
- "gitHead": "ae2e496a7083186a9558dd0a4d337b9eb10d7a04"
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/ueberdosis/tiptap",
38
+ "directory": "packages/core"
39
+ },
40
+ "sideEffects": false,
41
+ "gitHead": "3e05093f00dd4f52ddefeb2451622d3661a25123"
45
42
  }
@@ -1,37 +1,53 @@
1
1
  import { EditorState, Transaction } from 'prosemirror-state'
2
+
2
3
  import { Editor } from './Editor'
4
+ import { createChainableState } from './helpers/createChainableState'
3
5
  import {
4
- SingleCommands,
5
- ChainedCommands,
6
+ AnyCommands,
6
7
  CanCommands,
7
- RawCommands,
8
+ ChainedCommands,
8
9
  CommandProps,
10
+ SingleCommands,
9
11
  } from './types'
10
12
 
11
- export default class CommandManager {
13
+ export class CommandManager {
12
14
 
13
15
  editor: Editor
14
16
 
15
- commands: RawCommands
17
+ rawCommands: AnyCommands
18
+
19
+ customState?: EditorState
16
20
 
17
- constructor(editor: Editor, commands: RawCommands) {
18
- this.editor = editor
19
- this.commands = commands
21
+ constructor(props: {
22
+ editor: Editor,
23
+ state?: EditorState,
24
+ }) {
25
+ this.editor = props.editor
26
+ this.rawCommands = this.editor.extensionManager.commands
27
+ this.customState = props.state
20
28
  }
21
29
 
22
- public createCommands(): SingleCommands {
23
- const { commands, editor } = this
24
- const { state, view } = editor
30
+ get hasCustomState(): boolean {
31
+ return !!this.customState
32
+ }
33
+
34
+ get state(): EditorState {
35
+ return this.customState || this.editor.state
36
+ }
37
+
38
+ get commands(): SingleCommands {
39
+ const { rawCommands, editor, state } = this
40
+ const { view } = editor
25
41
  const { tr } = state
26
42
  const props = this.buildProps(tr)
27
43
 
28
44
  return Object.fromEntries(Object
29
- .entries(commands)
45
+ .entries(rawCommands)
30
46
  .map(([name, command]) => {
31
- const method = (...args: any) => {
47
+ const method = (...args: any[]) => {
32
48
  const callback = command(...args)(props)
33
49
 
34
- if (!tr.getMeta('preventDispatch')) {
50
+ if (!tr.getMeta('preventDispatch') && !this.hasCustomState) {
35
51
  view.dispatch(tr)
36
52
  }
37
53
 
@@ -39,27 +55,40 @@ export default class CommandManager {
39
55
  }
40
56
 
41
57
  return [name, method]
42
- })) as SingleCommands
58
+ })) as unknown as SingleCommands
59
+ }
60
+
61
+ get chain(): () => ChainedCommands {
62
+ return () => this.createChain()
63
+ }
64
+
65
+ get can(): () => CanCommands {
66
+ return () => this.createCan()
43
67
  }
44
68
 
45
69
  public createChain(startTr?: Transaction, shouldDispatch = true): ChainedCommands {
46
- const { commands, editor } = this
47
- const { state, view } = editor
70
+ const { rawCommands, editor, state } = this
71
+ const { view } = editor
48
72
  const callbacks: boolean[] = []
49
73
  const hasStartTransaction = !!startTr
50
74
  const tr = startTr || state.tr
51
75
 
52
76
  const run = () => {
53
- if (!hasStartTransaction && shouldDispatch && !tr.getMeta('preventDispatch')) {
77
+ if (
78
+ !hasStartTransaction
79
+ && shouldDispatch
80
+ && !tr.getMeta('preventDispatch')
81
+ && !this.hasCustomState
82
+ ) {
54
83
  view.dispatch(tr)
55
84
  }
56
85
 
57
- return () => callbacks.every(callback => callback === true)
86
+ return callbacks.every(callback => callback === true)
58
87
  }
59
88
 
60
89
  const chain = {
61
- ...Object.fromEntries(Object.entries(commands).map(([name, command]) => {
62
- const chainedCommand = (...args: any[]) => {
90
+ ...Object.fromEntries(Object.entries(rawCommands).map(([name, command]) => {
91
+ const chainedCommand = (...args: never[]) => {
63
92
  const props = this.buildProps(tr, shouldDispatch)
64
93
  const callback = command(...args)(props)
65
94
 
@@ -77,16 +106,15 @@ export default class CommandManager {
77
106
  }
78
107
 
79
108
  public createCan(startTr?: Transaction): CanCommands {
80
- const { commands, editor } = this
81
- const { state } = editor
109
+ const { rawCommands, state } = this
82
110
  const dispatch = undefined
83
111
  const tr = startTr || state.tr
84
112
  const props = this.buildProps(tr, dispatch)
85
113
  const formattedCommands = Object.fromEntries(Object
86
- .entries(commands)
114
+ .entries(rawCommands)
87
115
  .map(([name, command]) => {
88
- return [name, (...args: any[]) => command(...args)({ ...props, dispatch })]
89
- })) as SingleCommands
116
+ return [name, (...args: never[]) => command(...args)({ ...props, dispatch })]
117
+ })) as unknown as SingleCommands
90
118
 
91
119
  return {
92
120
  ...formattedCommands,
@@ -95,8 +123,8 @@ export default class CommandManager {
95
123
  }
96
124
 
97
125
  public buildProps(tr: Transaction, shouldDispatch = true): CommandProps {
98
- const { editor, commands } = this
99
- const { state, view } = editor
126
+ const { rawCommands, editor, state } = this
127
+ const { view } = editor
100
128
 
101
129
  if (state.storedMarks) {
102
130
  tr.setStoredMarks(state.storedMarks)
@@ -106,7 +134,10 @@ export default class CommandManager {
106
134
  tr,
107
135
  editor,
108
136
  view,
109
- state: this.chainableState(tr, state),
137
+ state: createChainableState({
138
+ state,
139
+ transaction: tr,
140
+ }),
110
141
  dispatch: shouldDispatch
111
142
  ? () => undefined
112
143
  : undefined,
@@ -114,46 +145,14 @@ export default class CommandManager {
114
145
  can: () => this.createCan(tr),
115
146
  get commands() {
116
147
  return Object.fromEntries(Object
117
- .entries(commands)
148
+ .entries(rawCommands)
118
149
  .map(([name, command]) => {
119
- return [name, (...args: any[]) => command(...args)(props)]
120
- })) as SingleCommands
150
+ return [name, (...args: never[]) => command(...args)(props)]
151
+ })) as unknown as SingleCommands
121
152
  },
122
153
  }
123
154
 
124
155
  return props
125
156
  }
126
157
 
127
- public chainableState(tr: Transaction, state: EditorState): EditorState {
128
- let { selection } = tr
129
- let { doc } = tr
130
- let { storedMarks } = tr
131
-
132
- return {
133
- ...state,
134
- schema: state.schema,
135
- plugins: state.plugins,
136
- apply: state.apply.bind(state),
137
- applyTransaction: state.applyTransaction.bind(state),
138
- reconfigure: state.reconfigure.bind(state),
139
- toJSON: state.toJSON.bind(state),
140
- get storedMarks() {
141
- return storedMarks
142
- },
143
- get selection() {
144
- return selection
145
- },
146
- get doc() {
147
- return doc
148
- },
149
- get tr() {
150
- selection = tr.selection
151
- doc = tr.doc
152
- storedMarks = tr.storedMarks
153
-
154
- return tr
155
- },
156
- }
157
- }
158
-
159
158
  }
package/src/Editor.ts CHANGED
@@ -1,28 +1,36 @@
1
+ import { MarkType, NodeType, Schema } from 'prosemirror-model'
1
2
  import {
2
- EditorState, Plugin, PluginKey, Transaction,
3
+ EditorState,
4
+ Plugin,
5
+ PluginKey,
6
+ Transaction,
3
7
  } from 'prosemirror-state'
4
8
  import { EditorView } from 'prosemirror-view'
5
- import { Schema } from 'prosemirror-model'
6
- import getNodeAttributes from './helpers/getNodeAttributes'
7
- import getMarkAttributes from './helpers/getMarkAttributes'
8
- import isActive from './helpers/isActive'
9
- import removeElement from './utilities/removeElement'
10
- import createDocument from './helpers/createDocument'
11
- import getHTMLFromFragment from './helpers/getHTMLFromFragment'
12
- import isNodeEmpty from './helpers/isNodeEmpty'
13
- import createStyleTag from './utilities/createStyleTag'
14
- import CommandManager from './CommandManager'
15
- import ExtensionManager from './ExtensionManager'
16
- import EventEmitter from './EventEmitter'
9
+
10
+ import { CommandManager } from './CommandManager'
11
+ import { EventEmitter } from './EventEmitter'
12
+ import { ExtensionManager } from './ExtensionManager'
13
+ import * as extensions from './extensions'
14
+ import { createDocument } from './helpers/createDocument'
15
+ import { getAttributes } from './helpers/getAttributes'
16
+ import { getHTMLFromFragment } from './helpers/getHTMLFromFragment'
17
+ import { getText } from './helpers/getText'
18
+ import { getTextSerializersFromSchema } from './helpers/getTextSerializersFromSchema'
19
+ import { isActive } from './helpers/isActive'
20
+ import { isNodeEmpty } from './helpers/isNodeEmpty'
21
+ import { resolveFocusPosition } from './helpers/resolveFocusPosition'
22
+ import { style } from './style'
17
23
  import {
18
- EditorOptions,
19
24
  CanCommands,
20
25
  ChainedCommands,
26
+ EditorEvents,
27
+ EditorOptions,
28
+ JSONContent,
21
29
  SingleCommands,
22
- AnyObject,
30
+ TextSerializer,
23
31
  } from './types'
24
- import * as extensions from './extensions'
25
- import style from './style'
32
+ import { createStyleTag } from './utilities/createStyleTag'
33
+ import { isFunction } from './utilities/isFunction'
26
34
 
27
35
  export { extensions }
28
36
 
@@ -30,7 +38,7 @@ export interface HTMLElement {
30
38
  editor?: Editor
31
39
  }
32
40
 
33
- export class Editor extends EventEmitter {
41
+ export class Editor extends EventEmitter<EditorEvents> {
34
42
 
35
43
  private commandManager!: CommandManager
36
44
 
@@ -44,12 +52,13 @@ export class Editor extends EventEmitter {
44
52
 
45
53
  public isFocused = false
46
54
 
47
- private resizeObserver!: ResizeObserver
55
+ public extensionStorage: Record<string, any> = {}
48
56
 
49
57
  public options: EditorOptions = {
50
58
  element: document.createElement('div'),
51
59
  content: '',
52
60
  injectCSS: true,
61
+ injectNonce: undefined,
53
62
  extensions: [],
54
63
  autofocus: false,
55
64
  editable: true,
@@ -57,14 +66,14 @@ export class Editor extends EventEmitter {
57
66
  parseOptions: {},
58
67
  enableInputRules: true,
59
68
  enablePasteRules: true,
69
+ enableCoreExtensions: true,
70
+ onBeforeCreate: () => null,
60
71
  onCreate: () => null,
61
72
  onUpdate: () => null,
62
73
  onSelectionUpdate: () => null,
63
- onViewUpdate: () => null,
64
74
  onTransaction: () => null,
65
75
  onFocus: () => null,
66
76
  onBlur: () => null,
67
- onResize: () => null,
68
77
  onDestroy: () => null,
69
78
  }
70
79
 
@@ -74,50 +83,54 @@ export class Editor extends EventEmitter {
74
83
  this.createExtensionManager()
75
84
  this.createCommandManager()
76
85
  this.createSchema()
86
+ this.on('beforeCreate', this.options.onBeforeCreate)
87
+ this.emit('beforeCreate', { editor: this })
77
88
  this.createView()
78
89
  this.injectCSS()
79
90
  this.on('create', this.options.onCreate)
80
91
  this.on('update', this.options.onUpdate)
81
92
  this.on('selectionUpdate', this.options.onSelectionUpdate)
82
- this.on('viewUpdate', this.options.onViewUpdate)
83
93
  this.on('transaction', this.options.onTransaction)
84
94
  this.on('focus', this.options.onFocus)
85
95
  this.on('blur', this.options.onBlur)
86
96
  this.on('destroy', this.options.onDestroy)
87
97
 
88
98
  window.setTimeout(() => {
99
+ if (this.isDestroyed) {
100
+ return
101
+ }
102
+
89
103
  this.commands.focus(this.options.autofocus)
90
104
  this.emit('create', { editor: this })
91
-
92
- if (window.ResizeObserver) {
93
- this.resizeObserver = new ResizeObserver(() => {
94
- this.emit('resize', { editor: this })
95
- })
96
- this.resizeObserver.observe(this.view.dom)
97
- }
98
105
  }, 0)
106
+ }
99
107
 
108
+ /**
109
+ * Returns the editor storage.
110
+ */
111
+ public get storage(): Record<string, any> {
112
+ return this.extensionStorage
100
113
  }
101
114
 
102
115
  /**
103
116
  * An object of all registered commands.
104
117
  */
105
118
  public get commands(): SingleCommands {
106
- return this.commandManager.createCommands()
119
+ return this.commandManager.commands
107
120
  }
108
121
 
109
122
  /**
110
123
  * Create a command chain to call multiple commands at once.
111
124
  */
112
125
  public chain(): ChainedCommands {
113
- return this.commandManager.createChain()
126
+ return this.commandManager.chain()
114
127
  }
115
128
 
116
129
  /**
117
130
  * Check if a command or a command chain can be executed. Without executing it.
118
131
  */
119
132
  public can(): CanCommands {
120
- return this.commandManager.createCan()
133
+ return this.commandManager.can()
121
134
  }
122
135
 
123
136
  /**
@@ -125,7 +138,7 @@ export class Editor extends EventEmitter {
125
138
  */
126
139
  private injectCSS(): void {
127
140
  if (this.options.injectCSS && document) {
128
- this.css = createStyleTag(style)
141
+ this.css = createStyleTag(style, this.options.injectNonce)
129
142
  }
130
143
  }
131
144
 
@@ -135,7 +148,20 @@ export class Editor extends EventEmitter {
135
148
  * @param options A list of options
136
149
  */
137
150
  public setOptions(options: Partial<EditorOptions> = {}): void {
138
- this.options = { ...this.options, ...options }
151
+ this.options = {
152
+ ...this.options,
153
+ ...options,
154
+ }
155
+
156
+ if (!this.view || !this.state || this.isDestroyed) {
157
+ return
158
+ }
159
+
160
+ if (this.options.editorProps) {
161
+ this.view.setProps(this.options.editorProps)
162
+ }
163
+
164
+ this.view.updateState(this.state)
139
165
  }
140
166
 
141
167
  /**
@@ -143,17 +169,18 @@ export class Editor extends EventEmitter {
143
169
  */
144
170
  public setEditable(editable: boolean): void {
145
171
  this.setOptions({ editable })
146
-
147
- if (this.view && this.state && !this.isDestroyed) {
148
- this.view.updateState(this.state)
149
- }
150
172
  }
151
173
 
152
174
  /**
153
175
  * Returns whether the editor is editable.
154
176
  */
155
177
  public get isEditable(): boolean {
156
- return this.view && this.view.editable
178
+ // since plugins are applied after creating the view
179
+ // `editable` is always `true` for one tick.
180
+ // that’s why we also have to check for `options.editable`
181
+ return this.options.editable
182
+ && this.view
183
+ && this.view.editable
157
184
  }
158
185
 
159
186
  /**
@@ -170,8 +197,8 @@ export class Editor extends EventEmitter {
170
197
  * @param handlePlugins Control how to merge the plugin into the existing plugins.
171
198
  */
172
199
  public registerPlugin(plugin: Plugin, handlePlugins?: (newPlugin: Plugin, plugins: Plugin[]) => Plugin[]): void {
173
- const plugins = typeof handlePlugins === 'function'
174
- ? handlePlugins(plugin, this.state.plugins)
200
+ const plugins = isFunction(handlePlugins)
201
+ ? handlePlugins(plugin, [...this.state.plugins])
175
202
  : [...this.state.plugins, plugin]
176
203
 
177
204
  const state = this.state.reconfigure({ plugins })
@@ -182,7 +209,7 @@ export class Editor extends EventEmitter {
182
209
  /**
183
210
  * Unregister a ProseMirror plugin.
184
211
  *
185
- * @param name The plugins name
212
+ * @param nameOrPluginKey The plugins name
186
213
  */
187
214
  public unregisterPlugin(nameOrPluginKey: string | PluginKey): void {
188
215
  if (this.isDestroyed) {
@@ -206,7 +233,9 @@ export class Editor extends EventEmitter {
206
233
  * Creates an extension manager.
207
234
  */
208
235
  private createExtensionManager(): void {
209
- const coreExtensions = Object.entries(extensions).map(([, extension]) => extension)
236
+ const coreExtensions = this.options.enableCoreExtensions
237
+ ? Object.values(extensions)
238
+ : []
210
239
  const allExtensions = [...coreExtensions, ...this.options.extensions].filter(extension => {
211
240
  return ['extension', 'node', 'mark'].includes(extension?.type)
212
241
  })
@@ -218,7 +247,9 @@ export class Editor extends EventEmitter {
218
247
  * Creates an command manager.
219
248
  */
220
249
  private createCommandManager(): void {
221
- this.commandManager = new CommandManager(this, this.extensionManager.commands)
250
+ this.commandManager = new CommandManager({
251
+ editor: this,
252
+ })
222
253
  }
223
254
 
224
255
  /**
@@ -232,27 +263,22 @@ export class Editor extends EventEmitter {
232
263
  * Creates a ProseMirror view.
233
264
  */
234
265
  private createView(): void {
266
+ const doc = createDocument(this.options.content, this.schema, this.options.parseOptions)
267
+ const selection = resolveFocusPosition(doc, this.options.autofocus)
268
+
235
269
  this.view = new EditorView(this.options.element, {
236
270
  ...this.options.editorProps,
237
271
  dispatchTransaction: this.dispatchTransaction.bind(this),
238
272
  state: EditorState.create({
239
- doc: createDocument(this.options.content, this.schema, this.options.parseOptions),
273
+ doc,
274
+ selection: selection || undefined,
240
275
  }),
241
276
  })
242
277
 
243
278
  // `editor.view` is not yet available at this time.
244
279
  // Therefore we will add all plugins and node views directly afterwards.
245
280
  const newState = this.state.reconfigure({
246
- plugins: [
247
- new Plugin({
248
- view: () => ({
249
- update: () => this.emit('viewUpdate', {
250
- editor: this,
251
- }),
252
- }),
253
- }),
254
- ...this.extensionManager.plugins,
255
- ],
281
+ plugins: this.extensionManager.plugins,
256
282
  })
257
283
 
258
284
  this.view.updateState(newState)
@@ -262,6 +288,7 @@ export class Editor extends EventEmitter {
262
288
  // Let’s store the editor instance in the DOM element.
263
289
  // So we’ll have access to it for tests.
264
290
  const dom = this.view.dom as HTMLElement
291
+
265
292
  dom.editor = this
266
293
  }
267
294
 
@@ -296,10 +323,6 @@ export class Editor extends EventEmitter {
296
323
  * @param transaction An editor state transaction
297
324
  */
298
325
  private dispatchTransaction(transaction: Transaction): void {
299
- if (transaction.docChanged && !this.isEditable) {
300
- return
301
- }
302
-
303
326
  if (this.isCapturingTransaction) {
304
327
  if (!this.capturedTransaction) {
305
328
  this.capturedTransaction = transaction
@@ -324,6 +347,7 @@ export class Editor extends EventEmitter {
324
347
  if (selectionHasChanged) {
325
348
  this.emit('selectionUpdate', {
326
349
  editor: this,
350
+ transaction,
327
351
  })
328
352
  }
329
353
 
@@ -334,6 +358,7 @@ export class Editor extends EventEmitter {
334
358
  this.emit('focus', {
335
359
  editor: this,
336
360
  event: focus.event,
361
+ transaction,
337
362
  })
338
363
  }
339
364
 
@@ -341,6 +366,7 @@ export class Editor extends EventEmitter {
341
366
  this.emit('blur', {
342
367
  editor: this,
343
368
  event: blur.event,
369
+ transaction,
344
370
  })
345
371
  }
346
372
 
@@ -355,21 +381,10 @@ export class Editor extends EventEmitter {
355
381
  }
356
382
 
357
383
  /**
358
- * Get attributes of the currently selected node.
359
- *
360
- * @param name Name of the node
384
+ * Get attributes of the currently selected node or mark.
361
385
  */
362
- public getNodeAttributes(name: string): AnyObject {
363
- return getNodeAttributes(this.state, name)
364
- }
365
-
366
- /**
367
- * Get attributes of the currently selected mark.
368
- *
369
- * @param name Name of the mark
370
- */
371
- public getMarkAttributes(name: string): AnyObject {
372
- return getMarkAttributes(this.state, name)
386
+ public getAttributes(nameOrType: string | NodeType | MarkType): Record<string, any> {
387
+ return getAttributes(this.state, nameOrType)
373
388
  }
374
389
 
375
390
  /**
@@ -395,7 +410,7 @@ export class Editor extends EventEmitter {
395
410
  /**
396
411
  * Get the document as JSON.
397
412
  */
398
- public getJSON(): AnyObject {
413
+ public getJSON(): JSONContent {
399
414
  return this.state.doc.toJSON()
400
415
  }
401
416
 
@@ -403,7 +418,28 @@ export class Editor extends EventEmitter {
403
418
  * Get the document as HTML.
404
419
  */
405
420
  public getHTML(): string {
406
- return getHTMLFromFragment(this.state.doc, this.schema)
421
+ return getHTMLFromFragment(this.state.doc.content, this.schema)
422
+ }
423
+
424
+ /**
425
+ * Get the document as text.
426
+ */
427
+ public getText(options?: {
428
+ blockSeparator?: string,
429
+ textSerializers?: Record<string, TextSerializer>,
430
+ }): string {
431
+ const {
432
+ blockSeparator = '\n\n',
433
+ textSerializers = {},
434
+ } = options || {}
435
+
436
+ return getText(this.state.doc, {
437
+ blockSeparator,
438
+ textSerializers: {
439
+ ...textSerializers,
440
+ ...getTextSerializersFromSchema(this.schema),
441
+ },
442
+ })
407
443
  }
408
444
 
409
445
  /**
@@ -415,8 +451,12 @@ export class Editor extends EventEmitter {
415
451
 
416
452
  /**
417
453
  * Get the number of characters for the current document.
454
+ *
455
+ * @deprecated
418
456
  */
419
457
  public getCharacterCount(): number {
458
+ console.warn('[tiptap warn]: "editor.getCharacterCount()" is deprecated. Please use "editor.storage.characterCount.characters()" instead.')
459
+
420
460
  return this.state.doc.content.size - 2
421
461
  }
422
462
 
@@ -424,8 +464,6 @@ export class Editor extends EventEmitter {
424
464
  * Destroy the editor.
425
465
  */
426
466
  public destroy(): void {
427
- this.resizeObserver?.unobserve(this.view.dom)
428
-
429
467
  this.emit('destroy')
430
468
 
431
469
  if (this.view) {
@@ -433,7 +471,6 @@ export class Editor extends EventEmitter {
433
471
  }
434
472
 
435
473
  this.removeAllListeners()
436
- removeElement(this.css)
437
474
  }
438
475
 
439
476
  /**