@tiptap/core 2.11.7 → 3.0.0-beta.0

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 (499) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +5 -1
  3. package/dist/index.cjs +5046 -5070
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.d.cts +3326 -0
  6. package/dist/index.d.ts +3326 -25
  7. package/dist/index.js +4930 -4976
  8. package/dist/index.js.map +1 -1
  9. package/dist/jsx-runtime/jsx-runtime.cjs +56 -0
  10. package/dist/jsx-runtime/jsx-runtime.cjs.map +1 -0
  11. package/dist/jsx-runtime/jsx-runtime.d.cts +22 -0
  12. package/dist/jsx-runtime/jsx-runtime.d.ts +22 -0
  13. package/dist/jsx-runtime/jsx-runtime.js +26 -0
  14. package/dist/jsx-runtime/jsx-runtime.js.map +1 -0
  15. package/jsx-runtime/index.cjs +1 -0
  16. package/jsx-runtime/index.d.cts +1 -0
  17. package/jsx-runtime/index.d.ts +1 -0
  18. package/jsx-runtime/index.js +1 -0
  19. package/package.json +28 -9
  20. package/src/CommandManager.ts +4 -11
  21. package/src/Editor.ts +219 -103
  22. package/src/EventEmitter.ts +7 -10
  23. package/src/Extendable.ts +484 -0
  24. package/src/Extension.ts +17 -492
  25. package/src/ExtensionManager.ts +88 -140
  26. package/src/InputRule.ts +40 -51
  27. package/src/Mark.ts +146 -623
  28. package/src/MarkView.ts +66 -0
  29. package/src/Node.ts +332 -825
  30. package/src/NodePos.ts +3 -5
  31. package/src/NodeView.ts +14 -26
  32. package/src/PasteRule.ts +46 -56
  33. package/src/Tracker.ts +8 -10
  34. package/src/commands/blur.ts +15 -13
  35. package/src/commands/clearContent.ts +13 -6
  36. package/src/commands/clearNodes.ts +33 -31
  37. package/src/commands/command.ts +2 -2
  38. package/src/commands/createParagraphNear.ts +6 -4
  39. package/src/commands/cut.ts +13 -11
  40. package/src/commands/deleteCurrentNode.ts +24 -22
  41. package/src/commands/deleteNode.ts +20 -18
  42. package/src/commands/deleteRange.ts +11 -9
  43. package/src/commands/deleteSelection.ts +6 -4
  44. package/src/commands/enter.ts +7 -5
  45. package/src/commands/exitCode.ts +6 -4
  46. package/src/commands/extendMarkRange.ts +16 -14
  47. package/src/commands/first.ts +3 -5
  48. package/src/commands/focus.ts +50 -53
  49. package/src/commands/forEach.ts +3 -3
  50. package/src/commands/insertContent.ts +14 -16
  51. package/src/commands/insertContentAt.ts +111 -95
  52. package/src/commands/join.ts +21 -13
  53. package/src/commands/joinItemBackward.ts +17 -19
  54. package/src/commands/joinItemForward.ts +17 -19
  55. package/src/commands/joinTextblockBackward.ts +6 -4
  56. package/src/commands/joinTextblockForward.ts +6 -4
  57. package/src/commands/keyboardShortcut.ts +30 -35
  58. package/src/commands/lift.ts +12 -10
  59. package/src/commands/liftEmptyBlock.ts +7 -5
  60. package/src/commands/liftListItem.ts +8 -6
  61. package/src/commands/newlineInCode.ts +6 -4
  62. package/src/commands/resetAttributes.ts +38 -43
  63. package/src/commands/scrollIntoView.ts +10 -8
  64. package/src/commands/selectAll.ts +11 -9
  65. package/src/commands/selectNodeBackward.ts +6 -4
  66. package/src/commands/selectNodeForward.ts +6 -4
  67. package/src/commands/selectParentNode.ts +6 -4
  68. package/src/commands/selectTextblockEnd.ts +6 -4
  69. package/src/commands/selectTextblockStart.ts +6 -4
  70. package/src/commands/setContent.ts +39 -38
  71. package/src/commands/setMark.ts +58 -60
  72. package/src/commands/setMeta.ts +8 -6
  73. package/src/commands/setNode.ts +34 -32
  74. package/src/commands/setNodeSelection.ts +12 -10
  75. package/src/commands/setTextSelection.ts +16 -14
  76. package/src/commands/sinkListItem.ts +8 -6
  77. package/src/commands/splitBlock.ts +70 -78
  78. package/src/commands/splitListItem.ts +95 -107
  79. package/src/commands/toggleList.ts +76 -74
  80. package/src/commands/toggleMark.ts +13 -11
  81. package/src/commands/toggleNode.ts +20 -18
  82. package/src/commands/toggleWrap.ts +12 -10
  83. package/src/commands/undoInputRule.ts +32 -30
  84. package/src/commands/unsetAllMarks.ts +17 -15
  85. package/src/commands/unsetMark.ts +29 -27
  86. package/src/commands/updateAttributes.ts +94 -102
  87. package/src/commands/wrapIn.ts +8 -6
  88. package/src/commands/wrapInList.ts +8 -6
  89. package/src/extensions/clipboardTextSerializer.ts +2 -4
  90. package/src/extensions/delete.ts +89 -0
  91. package/src/extensions/focusEvents.ts +2 -6
  92. package/src/extensions/index.ts +1 -0
  93. package/src/extensions/keymap.ts +54 -50
  94. package/src/extensions/paste.ts +0 -1
  95. package/src/extensions/tabindex.ts +1 -1
  96. package/src/helpers/combineTransactionSteps.ts +3 -6
  97. package/src/helpers/createChainableState.ts +2 -5
  98. package/src/helpers/createDocument.ts +2 -4
  99. package/src/helpers/createNodeFromContent.ts +7 -12
  100. package/src/helpers/defaultBlockAt.ts +1 -1
  101. package/src/helpers/findChildren.ts +2 -2
  102. package/src/helpers/findChildrenInRange.ts +3 -7
  103. package/src/helpers/findParentNode.ts +5 -3
  104. package/src/helpers/findParentNodeClosestToPos.ts +2 -2
  105. package/src/helpers/flattenExtensions.ts +30 -0
  106. package/src/helpers/generateHTML.ts +1 -1
  107. package/src/helpers/generateJSON.ts +1 -1
  108. package/src/helpers/generateText.ts +1 -1
  109. package/src/helpers/getAttributes.ts +3 -6
  110. package/src/helpers/getAttributesFromExtensions.ts +29 -38
  111. package/src/helpers/getChangedRanges.ts +15 -13
  112. package/src/helpers/getDebugJSON.ts +2 -2
  113. package/src/helpers/getExtensionField.ts +12 -12
  114. package/src/helpers/getHTMLFromFragment.ts +2 -1
  115. package/src/helpers/getMarkAttributes.ts +3 -6
  116. package/src/helpers/getMarkRange.ts +7 -17
  117. package/src/helpers/getMarkType.ts +2 -4
  118. package/src/helpers/getMarksBetween.ts +2 -2
  119. package/src/helpers/getNodeAtPosition.ts +2 -2
  120. package/src/helpers/getNodeAttributes.ts +3 -6
  121. package/src/helpers/getNodeType.ts +2 -4
  122. package/src/helpers/getRenderedAttributes.ts +3 -5
  123. package/src/helpers/getSchema.ts +5 -5
  124. package/src/helpers/getSchemaByResolvedExtensions.ts +47 -78
  125. package/src/helpers/getSchemaTypeByName.ts +1 -1
  126. package/src/helpers/getSchemaTypeNameByName.ts +1 -1
  127. package/src/helpers/getSplittedAttributes.ts +5 -5
  128. package/src/helpers/getText.ts +2 -2
  129. package/src/helpers/getTextBetween.ts +2 -2
  130. package/src/helpers/getTextContentFromNodes.ts +9 -12
  131. package/src/helpers/getTextSerializersFromSchema.ts +2 -2
  132. package/src/helpers/index.ts +3 -0
  133. package/src/helpers/injectExtensionAttributesToParseRule.ts +3 -3
  134. package/src/helpers/isActive.ts +2 -6
  135. package/src/helpers/isAtEndOfNode.ts +1 -1
  136. package/src/helpers/isAtStartOfNode.ts +1 -1
  137. package/src/helpers/isExtensionRulesEnabled.ts +2 -4
  138. package/src/helpers/isList.ts +2 -2
  139. package/src/helpers/isMarkActive.ts +3 -3
  140. package/src/helpers/isNodeActive.ts +3 -3
  141. package/src/helpers/isNodeEmpty.ts +3 -3
  142. package/src/helpers/posToDOMRect.ts +1 -1
  143. package/src/helpers/resolveExtensions.ts +25 -0
  144. package/src/helpers/resolveFocusPosition.ts +5 -16
  145. package/src/helpers/rewriteUnknownContent.ts +25 -24
  146. package/src/helpers/selectionToInsertionEnd.ts +2 -1
  147. package/src/helpers/sortExtensions.ts +26 -0
  148. package/src/helpers/splitExtensions.ts +4 -4
  149. package/src/index.ts +3 -7
  150. package/src/inputRules/markInputRule.ts +5 -8
  151. package/src/inputRules/nodeInputRule.ts +6 -12
  152. package/src/inputRules/textInputRule.ts +3 -5
  153. package/src/inputRules/textblockTypeInputRule.ts +6 -11
  154. package/src/inputRules/wrappingInputRule.ts +18 -23
  155. package/src/jsx-runtime.ts +64 -0
  156. package/src/pasteRules/markPasteRule.ts +5 -6
  157. package/src/pasteRules/nodePasteRule.ts +6 -11
  158. package/src/pasteRules/textPasteRule.ts +3 -5
  159. package/src/style.ts +0 -4
  160. package/src/types.ts +534 -179
  161. package/src/utilities/callOrReturn.ts +1 -1
  162. package/src/utilities/createStyleTag.ts +3 -1
  163. package/src/utilities/deleteProps.ts +7 -11
  164. package/src/utilities/elementFromString.ts +3 -0
  165. package/src/utilities/findDuplicates.ts +4 -1
  166. package/src/utilities/index.ts +1 -0
  167. package/src/utilities/isMacOS.ts +1 -3
  168. package/src/utilities/isiOS.ts +5 -10
  169. package/src/utilities/mergeAttributes.ts +16 -6
  170. package/src/utilities/removeDuplicates.ts +1 -3
  171. package/dist/CommandManager.d.ts +0 -21
  172. package/dist/CommandManager.d.ts.map +0 -1
  173. package/dist/Editor.d.ts +0 -166
  174. package/dist/Editor.d.ts.map +0 -1
  175. package/dist/EventEmitter.d.ts +0 -13
  176. package/dist/EventEmitter.d.ts.map +0 -1
  177. package/dist/Extension.d.ts +0 -345
  178. package/dist/Extension.d.ts.map +0 -1
  179. package/dist/ExtensionManager.d.ts +0 -57
  180. package/dist/ExtensionManager.d.ts.map +0 -1
  181. package/dist/InputRule.d.ts +0 -43
  182. package/dist/InputRule.d.ts.map +0 -1
  183. package/dist/Mark.d.ts +0 -453
  184. package/dist/Mark.d.ts.map +0 -1
  185. package/dist/Node.d.ts +0 -629
  186. package/dist/Node.d.ts.map +0 -1
  187. package/dist/NodePos.d.ts +0 -45
  188. package/dist/NodePos.d.ts.map +0 -1
  189. package/dist/NodeView.d.ts +0 -41
  190. package/dist/NodeView.d.ts.map +0 -1
  191. package/dist/PasteRule.d.ts +0 -51
  192. package/dist/PasteRule.d.ts.map +0 -1
  193. package/dist/Tracker.d.ts +0 -12
  194. package/dist/Tracker.d.ts.map +0 -1
  195. package/dist/commands/blur.d.ts +0 -14
  196. package/dist/commands/blur.d.ts.map +0 -1
  197. package/dist/commands/clearContent.d.ts +0 -15
  198. package/dist/commands/clearContent.d.ts.map +0 -1
  199. package/dist/commands/clearNodes.d.ts +0 -14
  200. package/dist/commands/clearNodes.d.ts.map +0 -1
  201. package/dist/commands/command.d.ts +0 -19
  202. package/dist/commands/command.d.ts.map +0 -1
  203. package/dist/commands/createParagraphNear.d.ts +0 -14
  204. package/dist/commands/createParagraphNear.d.ts.map +0 -1
  205. package/dist/commands/cut.d.ts +0 -21
  206. package/dist/commands/cut.d.ts.map +0 -1
  207. package/dist/commands/deleteCurrentNode.d.ts +0 -14
  208. package/dist/commands/deleteCurrentNode.d.ts.map +0 -1
  209. package/dist/commands/deleteNode.d.ts +0 -16
  210. package/dist/commands/deleteNode.d.ts.map +0 -1
  211. package/dist/commands/deleteRange.d.ts +0 -15
  212. package/dist/commands/deleteRange.d.ts.map +0 -1
  213. package/dist/commands/deleteSelection.d.ts +0 -14
  214. package/dist/commands/deleteSelection.d.ts.map +0 -1
  215. package/dist/commands/enter.d.ts +0 -14
  216. package/dist/commands/enter.d.ts.map +0 -1
  217. package/dist/commands/exitCode.d.ts +0 -14
  218. package/dist/commands/exitCode.d.ts.map +0 -1
  219. package/dist/commands/extendMarkRange.d.ts +0 -26
  220. package/dist/commands/extendMarkRange.d.ts.map +0 -1
  221. package/dist/commands/first.d.ts +0 -15
  222. package/dist/commands/first.d.ts.map +0 -1
  223. package/dist/commands/focus.d.ts +0 -28
  224. package/dist/commands/focus.d.ts.map +0 -1
  225. package/dist/commands/forEach.d.ts +0 -15
  226. package/dist/commands/forEach.d.ts.map +0 -1
  227. package/dist/commands/index.d.ts +0 -56
  228. package/dist/commands/index.d.ts.map +0 -1
  229. package/dist/commands/insertContent.d.ts +0 -35
  230. package/dist/commands/insertContent.d.ts.map +0 -1
  231. package/dist/commands/insertContentAt.d.ts +0 -48
  232. package/dist/commands/insertContentAt.d.ts.map +0 -1
  233. package/dist/commands/join.d.ts +0 -42
  234. package/dist/commands/join.d.ts.map +0 -1
  235. package/dist/commands/joinItemBackward.d.ts +0 -14
  236. package/dist/commands/joinItemBackward.d.ts.map +0 -1
  237. package/dist/commands/joinItemForward.d.ts +0 -14
  238. package/dist/commands/joinItemForward.d.ts.map +0 -1
  239. package/dist/commands/joinTextblockBackward.d.ts +0 -13
  240. package/dist/commands/joinTextblockBackward.d.ts.map +0 -1
  241. package/dist/commands/joinTextblockForward.d.ts +0 -13
  242. package/dist/commands/joinTextblockForward.d.ts.map +0 -1
  243. package/dist/commands/keyboardShortcut.d.ts +0 -15
  244. package/dist/commands/keyboardShortcut.d.ts.map +0 -1
  245. package/dist/commands/lift.d.ts +0 -18
  246. package/dist/commands/lift.d.ts.map +0 -1
  247. package/dist/commands/liftEmptyBlock.d.ts +0 -14
  248. package/dist/commands/liftEmptyBlock.d.ts.map +0 -1
  249. package/dist/commands/liftListItem.d.ts +0 -16
  250. package/dist/commands/liftListItem.d.ts.map +0 -1
  251. package/dist/commands/newlineInCode.d.ts +0 -14
  252. package/dist/commands/newlineInCode.d.ts.map +0 -1
  253. package/dist/commands/resetAttributes.d.ts +0 -17
  254. package/dist/commands/resetAttributes.d.ts.map +0 -1
  255. package/dist/commands/scrollIntoView.d.ts +0 -14
  256. package/dist/commands/scrollIntoView.d.ts.map +0 -1
  257. package/dist/commands/selectAll.d.ts +0 -14
  258. package/dist/commands/selectAll.d.ts.map +0 -1
  259. package/dist/commands/selectNodeBackward.d.ts +0 -14
  260. package/dist/commands/selectNodeBackward.d.ts.map +0 -1
  261. package/dist/commands/selectNodeForward.d.ts +0 -14
  262. package/dist/commands/selectNodeForward.d.ts.map +0 -1
  263. package/dist/commands/selectParentNode.d.ts +0 -14
  264. package/dist/commands/selectParentNode.d.ts.map +0 -1
  265. package/dist/commands/selectTextblockEnd.d.ts +0 -14
  266. package/dist/commands/selectTextblockEnd.d.ts.map +0 -1
  267. package/dist/commands/selectTextblockStart.d.ts +0 -14
  268. package/dist/commands/selectTextblockStart.d.ts.map +0 -1
  269. package/dist/commands/setContent.d.ts +0 -41
  270. package/dist/commands/setContent.d.ts.map +0 -1
  271. package/dist/commands/setMark.d.ts +0 -16
  272. package/dist/commands/setMark.d.ts.map +0 -1
  273. package/dist/commands/setMeta.d.ts +0 -17
  274. package/dist/commands/setMeta.d.ts.map +0 -1
  275. package/dist/commands/setNode.d.ts +0 -17
  276. package/dist/commands/setNode.d.ts.map +0 -1
  277. package/dist/commands/setNodeSelection.d.ts +0 -15
  278. package/dist/commands/setNodeSelection.d.ts.map +0 -1
  279. package/dist/commands/setTextSelection.d.ts +0 -15
  280. package/dist/commands/setTextSelection.d.ts.map +0 -1
  281. package/dist/commands/sinkListItem.d.ts +0 -16
  282. package/dist/commands/sinkListItem.d.ts.map +0 -1
  283. package/dist/commands/splitBlock.d.ts +0 -18
  284. package/dist/commands/splitBlock.d.ts.map +0 -1
  285. package/dist/commands/splitListItem.d.ts +0 -17
  286. package/dist/commands/splitListItem.d.ts.map +0 -1
  287. package/dist/commands/toggleList.d.ts +0 -19
  288. package/dist/commands/toggleList.d.ts.map +0 -1
  289. package/dist/commands/toggleMark.d.ts +0 -31
  290. package/dist/commands/toggleMark.d.ts.map +0 -1
  291. package/dist/commands/toggleNode.d.ts +0 -18
  292. package/dist/commands/toggleNode.d.ts.map +0 -1
  293. package/dist/commands/toggleWrap.d.ts +0 -17
  294. package/dist/commands/toggleWrap.d.ts.map +0 -1
  295. package/dist/commands/undoInputRule.d.ts +0 -14
  296. package/dist/commands/undoInputRule.d.ts.map +0 -1
  297. package/dist/commands/unsetAllMarks.d.ts +0 -14
  298. package/dist/commands/unsetAllMarks.d.ts.map +0 -1
  299. package/dist/commands/unsetMark.d.ts +0 -26
  300. package/dist/commands/unsetMark.d.ts.map +0 -1
  301. package/dist/commands/updateAttributes.d.ts +0 -25
  302. package/dist/commands/updateAttributes.d.ts.map +0 -1
  303. package/dist/commands/wrapIn.d.ts +0 -17
  304. package/dist/commands/wrapIn.d.ts.map +0 -1
  305. package/dist/commands/wrapInList.d.ts +0 -17
  306. package/dist/commands/wrapInList.d.ts.map +0 -1
  307. package/dist/extensions/clipboardTextSerializer.d.ts +0 -6
  308. package/dist/extensions/clipboardTextSerializer.d.ts.map +0 -1
  309. package/dist/extensions/commands.d.ts +0 -4
  310. package/dist/extensions/commands.d.ts.map +0 -1
  311. package/dist/extensions/drop.d.ts +0 -3
  312. package/dist/extensions/drop.d.ts.map +0 -1
  313. package/dist/extensions/editable.d.ts +0 -3
  314. package/dist/extensions/editable.d.ts.map +0 -1
  315. package/dist/extensions/focusEvents.d.ts +0 -5
  316. package/dist/extensions/focusEvents.d.ts.map +0 -1
  317. package/dist/extensions/index.d.ts +0 -9
  318. package/dist/extensions/index.d.ts.map +0 -1
  319. package/dist/extensions/keymap.d.ts +0 -3
  320. package/dist/extensions/keymap.d.ts.map +0 -1
  321. package/dist/extensions/paste.d.ts +0 -3
  322. package/dist/extensions/paste.d.ts.map +0 -1
  323. package/dist/extensions/tabindex.d.ts +0 -3
  324. package/dist/extensions/tabindex.d.ts.map +0 -1
  325. package/dist/helpers/combineTransactionSteps.d.ts +0 -11
  326. package/dist/helpers/combineTransactionSteps.d.ts.map +0 -1
  327. package/dist/helpers/createChainableState.d.ts +0 -11
  328. package/dist/helpers/createChainableState.d.ts.map +0 -1
  329. package/dist/helpers/createDocument.d.ts +0 -13
  330. package/dist/helpers/createDocument.d.ts.map +0 -1
  331. package/dist/helpers/createNodeFromContent.d.ts +0 -16
  332. package/dist/helpers/createNodeFromContent.d.ts.map +0 -1
  333. package/dist/helpers/defaultBlockAt.d.ts +0 -8
  334. package/dist/helpers/defaultBlockAt.d.ts.map +0 -1
  335. package/dist/helpers/findChildren.d.ts +0 -10
  336. package/dist/helpers/findChildren.d.ts.map +0 -1
  337. package/dist/helpers/findChildrenInRange.d.ts +0 -11
  338. package/dist/helpers/findChildrenInRange.d.ts.map +0 -1
  339. package/dist/helpers/findParentNode.d.ts +0 -17
  340. package/dist/helpers/findParentNode.d.ts.map +0 -1
  341. package/dist/helpers/findParentNodeClosestToPos.d.ts +0 -18
  342. package/dist/helpers/findParentNodeClosestToPos.d.ts.map +0 -1
  343. package/dist/helpers/generateHTML.d.ts +0 -9
  344. package/dist/helpers/generateHTML.d.ts.map +0 -1
  345. package/dist/helpers/generateJSON.d.ts +0 -9
  346. package/dist/helpers/generateJSON.d.ts.map +0 -1
  347. package/dist/helpers/generateText.d.ts +0 -13
  348. package/dist/helpers/generateText.d.ts.map +0 -1
  349. package/dist/helpers/getAttributes.d.ts +0 -10
  350. package/dist/helpers/getAttributes.d.ts.map +0 -1
  351. package/dist/helpers/getAttributesFromExtensions.d.ts +0 -7
  352. package/dist/helpers/getAttributesFromExtensions.d.ts.map +0 -1
  353. package/dist/helpers/getChangedRanges.d.ts +0 -12
  354. package/dist/helpers/getChangedRanges.d.ts.map +0 -1
  355. package/dist/helpers/getDebugJSON.d.ts +0 -9
  356. package/dist/helpers/getDebugJSON.d.ts.map +0 -1
  357. package/dist/helpers/getExtensionField.d.ts +0 -10
  358. package/dist/helpers/getExtensionField.d.ts.map +0 -1
  359. package/dist/helpers/getHTMLFromFragment.d.ts +0 -3
  360. package/dist/helpers/getHTMLFromFragment.d.ts.map +0 -1
  361. package/dist/helpers/getMarkAttributes.d.ts +0 -4
  362. package/dist/helpers/getMarkAttributes.d.ts.map +0 -1
  363. package/dist/helpers/getMarkRange.d.ts +0 -20
  364. package/dist/helpers/getMarkRange.d.ts.map +0 -1
  365. package/dist/helpers/getMarkType.d.ts +0 -3
  366. package/dist/helpers/getMarkType.d.ts.map +0 -1
  367. package/dist/helpers/getMarksBetween.d.ts +0 -4
  368. package/dist/helpers/getMarksBetween.d.ts.map +0 -1
  369. package/dist/helpers/getNodeAtPosition.d.ts +0 -12
  370. package/dist/helpers/getNodeAtPosition.d.ts.map +0 -1
  371. package/dist/helpers/getNodeAttributes.d.ts +0 -4
  372. package/dist/helpers/getNodeAttributes.d.ts.map +0 -1
  373. package/dist/helpers/getNodeType.d.ts +0 -3
  374. package/dist/helpers/getNodeType.d.ts.map +0 -1
  375. package/dist/helpers/getRenderedAttributes.d.ts +0 -4
  376. package/dist/helpers/getRenderedAttributes.d.ts.map +0 -1
  377. package/dist/helpers/getSchema.d.ts +0 -5
  378. package/dist/helpers/getSchema.d.ts.map +0 -1
  379. package/dist/helpers/getSchemaByResolvedExtensions.d.ts +0 -11
  380. package/dist/helpers/getSchemaByResolvedExtensions.d.ts.map +0 -1
  381. package/dist/helpers/getSchemaTypeByName.d.ts +0 -9
  382. package/dist/helpers/getSchemaTypeByName.d.ts.map +0 -1
  383. package/dist/helpers/getSchemaTypeNameByName.d.ts +0 -9
  384. package/dist/helpers/getSchemaTypeNameByName.d.ts.map +0 -1
  385. package/dist/helpers/getSplittedAttributes.d.ts +0 -10
  386. package/dist/helpers/getSplittedAttributes.d.ts.map +0 -1
  387. package/dist/helpers/getText.d.ts +0 -16
  388. package/dist/helpers/getText.d.ts.map +0 -1
  389. package/dist/helpers/getTextBetween.d.ts +0 -15
  390. package/dist/helpers/getTextBetween.d.ts.map +0 -1
  391. package/dist/helpers/getTextContentFromNodes.d.ts +0 -9
  392. package/dist/helpers/getTextContentFromNodes.d.ts.map +0 -1
  393. package/dist/helpers/getTextSerializersFromSchema.d.ts +0 -9
  394. package/dist/helpers/getTextSerializersFromSchema.d.ts.map +0 -1
  395. package/dist/helpers/index.d.ts +0 -52
  396. package/dist/helpers/index.d.ts.map +0 -1
  397. package/dist/helpers/injectExtensionAttributesToParseRule.d.ts +0 -10
  398. package/dist/helpers/injectExtensionAttributesToParseRule.d.ts.map +0 -1
  399. package/dist/helpers/isActive.d.ts +0 -3
  400. package/dist/helpers/isActive.d.ts.map +0 -1
  401. package/dist/helpers/isAtEndOfNode.d.ts +0 -3
  402. package/dist/helpers/isAtEndOfNode.d.ts.map +0 -1
  403. package/dist/helpers/isAtStartOfNode.d.ts +0 -3
  404. package/dist/helpers/isAtStartOfNode.d.ts.map +0 -1
  405. package/dist/helpers/isExtensionRulesEnabled.d.ts +0 -3
  406. package/dist/helpers/isExtensionRulesEnabled.d.ts.map +0 -1
  407. package/dist/helpers/isList.d.ts +0 -3
  408. package/dist/helpers/isList.d.ts.map +0 -1
  409. package/dist/helpers/isMarkActive.d.ts +0 -4
  410. package/dist/helpers/isMarkActive.d.ts.map +0 -1
  411. package/dist/helpers/isNodeActive.d.ts +0 -4
  412. package/dist/helpers/isNodeActive.d.ts.map +0 -1
  413. package/dist/helpers/isNodeEmpty.d.ts +0 -15
  414. package/dist/helpers/isNodeEmpty.d.ts.map +0 -1
  415. package/dist/helpers/isNodeSelection.d.ts +0 -3
  416. package/dist/helpers/isNodeSelection.d.ts.map +0 -1
  417. package/dist/helpers/isTextSelection.d.ts +0 -3
  418. package/dist/helpers/isTextSelection.d.ts.map +0 -1
  419. package/dist/helpers/posToDOMRect.d.ts +0 -3
  420. package/dist/helpers/posToDOMRect.d.ts.map +0 -1
  421. package/dist/helpers/resolveFocusPosition.d.ts +0 -5
  422. package/dist/helpers/resolveFocusPosition.d.ts.map +0 -1
  423. package/dist/helpers/rewriteUnknownContent.d.ts +0 -46
  424. package/dist/helpers/rewriteUnknownContent.d.ts.map +0 -1
  425. package/dist/helpers/selectionToInsertionEnd.d.ts +0 -3
  426. package/dist/helpers/selectionToInsertionEnd.d.ts.map +0 -1
  427. package/dist/helpers/splitExtensions.d.ts +0 -10
  428. package/dist/helpers/splitExtensions.d.ts.map +0 -1
  429. package/dist/index.d.ts.map +0 -1
  430. package/dist/index.umd.js +0 -5525
  431. package/dist/index.umd.js.map +0 -1
  432. package/dist/inputRules/index.d.ts +0 -6
  433. package/dist/inputRules/index.d.ts.map +0 -1
  434. package/dist/inputRules/markInputRule.d.ts +0 -14
  435. package/dist/inputRules/markInputRule.d.ts.map +0 -1
  436. package/dist/inputRules/nodeInputRule.d.ts +0 -24
  437. package/dist/inputRules/nodeInputRule.d.ts.map +0 -1
  438. package/dist/inputRules/textInputRule.d.ts +0 -11
  439. package/dist/inputRules/textInputRule.d.ts.map +0 -1
  440. package/dist/inputRules/textblockTypeInputRule.d.ts +0 -16
  441. package/dist/inputRules/textblockTypeInputRule.d.ts.map +0 -1
  442. package/dist/inputRules/wrappingInputRule.d.ts +0 -29
  443. package/dist/inputRules/wrappingInputRule.d.ts.map +0 -1
  444. package/dist/pasteRules/index.d.ts +0 -4
  445. package/dist/pasteRules/index.d.ts.map +0 -1
  446. package/dist/pasteRules/markPasteRule.d.ts +0 -14
  447. package/dist/pasteRules/markPasteRule.d.ts.map +0 -1
  448. package/dist/pasteRules/nodePasteRule.d.ts +0 -15
  449. package/dist/pasteRules/nodePasteRule.d.ts.map +0 -1
  450. package/dist/pasteRules/textPasteRule.d.ts +0 -11
  451. package/dist/pasteRules/textPasteRule.d.ts.map +0 -1
  452. package/dist/style.d.ts +0 -2
  453. package/dist/style.d.ts.map +0 -1
  454. package/dist/types.d.ts +0 -323
  455. package/dist/types.d.ts.map +0 -1
  456. package/dist/utilities/callOrReturn.d.ts +0 -10
  457. package/dist/utilities/callOrReturn.d.ts.map +0 -1
  458. package/dist/utilities/createStyleTag.d.ts +0 -2
  459. package/dist/utilities/createStyleTag.d.ts.map +0 -1
  460. package/dist/utilities/deleteProps.d.ts +0 -7
  461. package/dist/utilities/deleteProps.d.ts.map +0 -1
  462. package/dist/utilities/elementFromString.d.ts +0 -2
  463. package/dist/utilities/elementFromString.d.ts.map +0 -1
  464. package/dist/utilities/escapeForRegEx.d.ts +0 -2
  465. package/dist/utilities/escapeForRegEx.d.ts.map +0 -1
  466. package/dist/utilities/findDuplicates.d.ts +0 -2
  467. package/dist/utilities/findDuplicates.d.ts.map +0 -1
  468. package/dist/utilities/fromString.d.ts +0 -2
  469. package/dist/utilities/fromString.d.ts.map +0 -1
  470. package/dist/utilities/index.d.ts +0 -21
  471. package/dist/utilities/index.d.ts.map +0 -1
  472. package/dist/utilities/isAndroid.d.ts +0 -2
  473. package/dist/utilities/isAndroid.d.ts.map +0 -1
  474. package/dist/utilities/isEmptyObject.d.ts +0 -2
  475. package/dist/utilities/isEmptyObject.d.ts.map +0 -1
  476. package/dist/utilities/isFunction.d.ts +0 -2
  477. package/dist/utilities/isFunction.d.ts.map +0 -1
  478. package/dist/utilities/isMacOS.d.ts +0 -2
  479. package/dist/utilities/isMacOS.d.ts.map +0 -1
  480. package/dist/utilities/isNumber.d.ts +0 -2
  481. package/dist/utilities/isNumber.d.ts.map +0 -1
  482. package/dist/utilities/isPlainObject.d.ts +0 -2
  483. package/dist/utilities/isPlainObject.d.ts.map +0 -1
  484. package/dist/utilities/isRegExp.d.ts +0 -2
  485. package/dist/utilities/isRegExp.d.ts.map +0 -1
  486. package/dist/utilities/isString.d.ts +0 -2
  487. package/dist/utilities/isString.d.ts.map +0 -1
  488. package/dist/utilities/isiOS.d.ts +0 -2
  489. package/dist/utilities/isiOS.d.ts.map +0 -1
  490. package/dist/utilities/mergeAttributes.d.ts +0 -2
  491. package/dist/utilities/mergeAttributes.d.ts.map +0 -1
  492. package/dist/utilities/mergeDeep.d.ts +0 -2
  493. package/dist/utilities/mergeDeep.d.ts.map +0 -1
  494. package/dist/utilities/minMax.d.ts +0 -2
  495. package/dist/utilities/minMax.d.ts.map +0 -1
  496. package/dist/utilities/objectIncludes.d.ts +0 -9
  497. package/dist/utilities/objectIncludes.d.ts.map +0 -1
  498. package/dist/utilities/removeDuplicates.d.ts +0 -9
  499. package/dist/utilities/removeDuplicates.d.ts.map +0 -1
@@ -1,12 +1,11 @@
1
- import {
2
- Fragment, Node as ProseMirrorNode, NodeType, Slice,
3
- } from '@tiptap/pm/model'
1
+ import type { Node as ProseMirrorNode, NodeType } from '@tiptap/pm/model'
2
+ import { Fragment, Slice } from '@tiptap/pm/model'
4
3
  import { TextSelection } from '@tiptap/pm/state'
5
4
  import { canSplit } from '@tiptap/pm/transform'
6
5
 
7
6
  import { getNodeType } from '../helpers/getNodeType.js'
8
7
  import { getSplittedAttributes } from '../helpers/getSplittedAttributes.js'
9
- import { RawCommands } from '../types.js'
8
+ import type { RawCommands } from '../types.js'
10
9
 
11
10
  declare module '@tiptap/core' {
12
11
  interface Commands<ReturnType> {
@@ -22,140 +21,129 @@ declare module '@tiptap/core' {
22
21
  }
23
22
  }
24
23
 
25
- export const splitListItem: RawCommands['splitListItem'] = (typeOrName, overrideAttrs = {}) => ({
26
- tr, state, dispatch, editor,
27
- }) => {
28
- const type = getNodeType(typeOrName, state.schema)
29
- const { $from, $to } = state.selection
24
+ export const splitListItem: RawCommands['splitListItem'] =
25
+ (typeOrName, overrideAttrs = {}) =>
26
+ ({ tr, state, dispatch, editor }) => {
27
+ const type = getNodeType(typeOrName, state.schema)
28
+ const { $from, $to } = state.selection
30
29
 
31
- // @ts-ignore
32
- // eslint-disable-next-line
30
+ // @ts-ignore
31
+ // eslint-disable-next-line
33
32
  const node: ProseMirrorNode = state.selection.node
34
33
 
35
- if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) {
36
- return false
37
- }
38
-
39
- const grandParent = $from.node(-1)
34
+ if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) {
35
+ return false
36
+ }
40
37
 
41
- if (grandParent.type !== type) {
42
- return false
43
- }
38
+ const grandParent = $from.node(-1)
44
39
 
45
- const extensionAttributes = editor.extensionManager.attributes
46
-
47
- if ($from.parent.content.size === 0 && $from.node(-1).childCount === $from.indexAfter(-1)) {
48
- // In an empty block. If this is a nested list, the wrapping
49
- // list item should be split. Otherwise, bail out and let next
50
- // command handle lifting.
51
- if (
52
- $from.depth === 2
53
- || $from.node(-3).type !== type
54
- || $from.index(-2) !== $from.node(-2).childCount - 1
55
- ) {
40
+ if (grandParent.type !== type) {
56
41
  return false
57
42
  }
58
43
 
59
- if (dispatch) {
60
- let wrap = Fragment.empty
61
- // eslint-disable-next-line
62
- const depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3
44
+ const extensionAttributes = editor.extensionManager.attributes
63
45
 
64
- // Build a fragment containing empty versions of the structure
65
- // from the outer list item to the parent node of the cursor
66
- for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d -= 1) {
67
- wrap = Fragment.from($from.node(d).copy(wrap))
46
+ if ($from.parent.content.size === 0 && $from.node(-1).childCount === $from.indexAfter(-1)) {
47
+ // In an empty block. If this is a nested list, the wrapping
48
+ // list item should be split. Otherwise, bail out and let next
49
+ // command handle lifting.
50
+ if ($from.depth === 2 || $from.node(-3).type !== type || $from.index(-2) !== $from.node(-2).childCount - 1) {
51
+ return false
68
52
  }
69
53
 
70
- // eslint-disable-next-line
71
- const depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1 : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3
72
-
73
- // Add a second list item with an empty default start node
74
- const newNextTypeAttributes = {
75
- ...getSplittedAttributes(
76
- extensionAttributes,
77
- $from.node().type.name,
78
- $from.node().attrs,
79
- ),
80
- ...overrideAttrs,
81
- }
82
- const nextType = type.contentMatch.defaultType?.createAndFill(newNextTypeAttributes) || undefined
54
+ if (dispatch) {
55
+ let wrap = Fragment.empty
56
+ // eslint-disable-next-line
57
+ const depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3
83
58
 
84
- wrap = wrap.append(Fragment.from(type.createAndFill(null, nextType) || undefined))
59
+ // Build a fragment containing empty versions of the structure
60
+ // from the outer list item to the parent node of the cursor
61
+ for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d -= 1) {
62
+ wrap = Fragment.from($from.node(d).copy(wrap))
63
+ }
85
64
 
86
- const start = $from.before($from.depth - (depthBefore - 1))
65
+ const depthAfter =
66
+ // eslint-disable-next-line no-nested-ternary
67
+ $from.indexAfter(-1) < $from.node(-2).childCount
68
+ ? 1
69
+ : $from.indexAfter(-2) < $from.node(-3).childCount
70
+ ? 2
71
+ : 3
72
+
73
+ // Add a second list item with an empty default start node
74
+ const newNextTypeAttributes = {
75
+ ...getSplittedAttributes(extensionAttributes, $from.node().type.name, $from.node().attrs),
76
+ ...overrideAttrs,
77
+ }
78
+ const nextType = type.contentMatch.defaultType?.createAndFill(newNextTypeAttributes) || undefined
87
79
 
88
- tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0))
80
+ wrap = wrap.append(Fragment.from(type.createAndFill(null, nextType) || undefined))
89
81
 
90
- let sel = -1
82
+ const start = $from.before($from.depth - (depthBefore - 1))
91
83
 
92
- tr.doc.nodesBetween(start, tr.doc.content.size, (n, pos) => {
93
- if (sel > -1) {
94
- return false
95
- }
84
+ tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0))
85
+
86
+ let sel = -1
96
87
 
97
- if (n.isTextblock && n.content.size === 0) {
98
- sel = pos + 1
88
+ tr.doc.nodesBetween(start, tr.doc.content.size, (n, pos) => {
89
+ if (sel > -1) {
90
+ return false
91
+ }
92
+
93
+ if (n.isTextblock && n.content.size === 0) {
94
+ sel = pos + 1
95
+ }
96
+ })
97
+
98
+ if (sel > -1) {
99
+ tr.setSelection(TextSelection.near(tr.doc.resolve(sel)))
99
100
  }
100
- })
101
101
 
102
- if (sel > -1) {
103
- tr.setSelection(TextSelection.near(tr.doc.resolve(sel)))
102
+ tr.scrollIntoView()
104
103
  }
105
104
 
106
- tr.scrollIntoView()
105
+ return true
107
106
  }
108
107
 
109
- return true
110
- }
108
+ const nextType = $to.pos === $from.end() ? grandParent.contentMatchAt(0).defaultType : null
111
109
 
112
- const nextType = $to.pos === $from.end() ? grandParent.contentMatchAt(0).defaultType : null
110
+ const newTypeAttributes = {
111
+ ...getSplittedAttributes(extensionAttributes, grandParent.type.name, grandParent.attrs),
112
+ ...overrideAttrs,
113
+ }
114
+ const newNextTypeAttributes = {
115
+ ...getSplittedAttributes(extensionAttributes, $from.node().type.name, $from.node().attrs),
116
+ ...overrideAttrs,
117
+ }
113
118
 
114
- const newTypeAttributes = {
115
- ...getSplittedAttributes(
116
- extensionAttributes,
117
- grandParent.type.name,
118
- grandParent.attrs,
119
- ),
120
- ...overrideAttrs,
121
- }
122
- const newNextTypeAttributes = {
123
- ...getSplittedAttributes(
124
- extensionAttributes,
125
- $from.node().type.name,
126
- $from.node().attrs,
127
- ),
128
- ...overrideAttrs,
129
- }
119
+ tr.delete($from.pos, $to.pos)
130
120
 
131
- tr.delete($from.pos, $to.pos)
121
+ const types = nextType
122
+ ? [
123
+ { type, attrs: newTypeAttributes },
124
+ { type: nextType, attrs: newNextTypeAttributes },
125
+ ]
126
+ : [{ type, attrs: newTypeAttributes }]
132
127
 
133
- const types = nextType
134
- ? [
135
- { type, attrs: newTypeAttributes },
136
- { type: nextType, attrs: newNextTypeAttributes },
137
- ]
138
- : [{ type, attrs: newTypeAttributes }]
128
+ if (!canSplit(tr.doc, $from.pos, 2)) {
129
+ return false
130
+ }
139
131
 
140
- if (!canSplit(tr.doc, $from.pos, 2)) {
141
- return false
142
- }
132
+ if (dispatch) {
133
+ const { selection, storedMarks } = state
134
+ const { splittableMarks } = editor.extensionManager
135
+ const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())
143
136
 
144
- if (dispatch) {
145
- const { selection, storedMarks } = state
146
- const { splittableMarks } = editor.extensionManager
147
- const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())
137
+ tr.split($from.pos, 2, types).scrollIntoView()
148
138
 
149
- tr.split($from.pos, 2, types).scrollIntoView()
139
+ if (!marks || !dispatch) {
140
+ return true
141
+ }
150
142
 
151
- if (!marks || !dispatch) {
152
- return true
153
- }
143
+ const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))
154
144
 
155
- const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))
145
+ tr.ensureMarks(filteredMarks)
146
+ }
156
147
 
157
- tr.ensureMarks(filteredMarks)
148
+ return true
158
149
  }
159
-
160
- return true
161
- }
@@ -1,11 +1,11 @@
1
- import { NodeType } from '@tiptap/pm/model'
2
- import { Transaction } from '@tiptap/pm/state'
1
+ import type { NodeType } from '@tiptap/pm/model'
2
+ import type { Transaction } from '@tiptap/pm/state'
3
3
  import { canJoin } from '@tiptap/pm/transform'
4
4
 
5
5
  import { findParentNode } from '../helpers/findParentNode.js'
6
6
  import { getNodeType } from '../helpers/getNodeType.js'
7
7
  import { isList } from '../helpers/isList.js'
8
- import { RawCommands } from '../types.js'
8
+ import type { RawCommands } from '../types.js'
9
9
 
10
10
  const joinListBackwards = (tr: Transaction, listType: NodeType): boolean => {
11
11
  const list = findParentNode(node => node.type === listType)(tr.selection)
@@ -68,90 +68,92 @@ declare module '@tiptap/core' {
68
68
  * @param attributes Attributes for the new list.
69
69
  * @example editor.commands.toggleList('bulletList', 'listItem')
70
70
  */
71
- toggleList: (listTypeOrName: string | NodeType, itemTypeOrName: string | NodeType, keepMarks?: boolean, attributes?: Record<string, any>) => ReturnType;
71
+ toggleList: (
72
+ listTypeOrName: string | NodeType,
73
+ itemTypeOrName: string | NodeType,
74
+ keepMarks?: boolean,
75
+ attributes?: Record<string, any>,
76
+ ) => ReturnType
72
77
  }
73
78
  }
74
79
  }
75
80
 
76
- export const toggleList: RawCommands['toggleList'] = (listTypeOrName, itemTypeOrName, keepMarks, attributes = {}) => ({
77
- editor, tr, state, dispatch, chain, commands, can,
78
- }) => {
79
- const { extensions, splittableMarks } = editor.extensionManager
80
- const listType = getNodeType(listTypeOrName, state.schema)
81
- const itemType = getNodeType(itemTypeOrName, state.schema)
82
- const { selection, storedMarks } = state
83
- const { $from, $to } = selection
84
- const range = $from.blockRange($to)
81
+ export const toggleList: RawCommands['toggleList'] =
82
+ (listTypeOrName, itemTypeOrName, keepMarks, attributes = {}) =>
83
+ ({ editor, tr, state, dispatch, chain, commands, can }) => {
84
+ const { extensions, splittableMarks } = editor.extensionManager
85
+ const listType = getNodeType(listTypeOrName, state.schema)
86
+ const itemType = getNodeType(itemTypeOrName, state.schema)
87
+ const { selection, storedMarks } = state
88
+ const { $from, $to } = selection
89
+ const range = $from.blockRange($to)
85
90
 
86
- const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())
91
+ const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())
87
92
 
88
- if (!range) {
89
- return false
90
- }
91
-
92
- const parentList = findParentNode(node => isList(node.type.name, extensions))(selection)
93
+ if (!range) {
94
+ return false
95
+ }
93
96
 
94
- if (range.depth >= 1 && parentList && range.depth - parentList.depth <= 1) {
95
- // remove list
96
- if (parentList.node.type === listType) {
97
- return commands.liftListItem(itemType)
97
+ const parentList = findParentNode(node => isList(node.type.name, extensions))(selection)
98
+
99
+ if (range.depth >= 1 && parentList && range.depth - parentList.depth <= 1) {
100
+ // remove list
101
+ if (parentList.node.type === listType) {
102
+ return commands.liftListItem(itemType)
103
+ }
104
+
105
+ // change list type
106
+ if (isList(parentList.node.type.name, extensions) && listType.validContent(parentList.node.content) && dispatch) {
107
+ return chain()
108
+ .command(() => {
109
+ tr.setNodeMarkup(parentList.pos, listType)
110
+
111
+ return true
112
+ })
113
+ .command(() => joinListBackwards(tr, listType))
114
+ .command(() => joinListForwards(tr, listType))
115
+ .run()
116
+ }
117
+ }
118
+ if (!keepMarks || !marks || !dispatch) {
119
+ return (
120
+ chain()
121
+ // try to convert node to default node if needed
122
+ .command(() => {
123
+ const canWrapInList = can().wrapInList(listType, attributes)
124
+
125
+ if (canWrapInList) {
126
+ return true
127
+ }
128
+
129
+ return commands.clearNodes()
130
+ })
131
+ .wrapInList(listType, attributes)
132
+ .command(() => joinListBackwards(tr, listType))
133
+ .command(() => joinListForwards(tr, listType))
134
+ .run()
135
+ )
98
136
  }
99
137
 
100
- // change list type
101
- if (
102
- isList(parentList.node.type.name, extensions)
103
- && listType.validContent(parentList.node.content)
104
- && dispatch
105
- ) {
106
- return chain()
138
+ return (
139
+ chain()
140
+ // try to convert node to default node if needed
107
141
  .command(() => {
108
- tr.setNodeMarkup(parentList.pos, listType)
142
+ const canWrapInList = can().wrapInList(listType, attributes)
109
143
 
110
- return true
144
+ const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))
145
+
146
+ tr.ensureMarks(filteredMarks)
147
+
148
+ if (canWrapInList) {
149
+ return true
150
+ }
151
+
152
+ return commands.clearNodes()
111
153
  })
154
+ .wrapInList(listType, attributes)
112
155
  .command(() => joinListBackwards(tr, listType))
113
156
  .command(() => joinListForwards(tr, listType))
114
157
  .run()
115
- }
158
+ )
116
159
  }
117
- if (!keepMarks || !marks || !dispatch) {
118
-
119
- return chain()
120
- // try to convert node to default node if needed
121
- .command(() => {
122
- const canWrapInList = can().wrapInList(listType, attributes)
123
-
124
- if (canWrapInList) {
125
- return true
126
- }
127
-
128
- return commands.clearNodes()
129
- })
130
- .wrapInList(listType, attributes)
131
- .command(() => joinListBackwards(tr, listType))
132
- .command(() => joinListForwards(tr, listType))
133
- .run()
134
- }
135
-
136
- return (
137
- chain()
138
- // try to convert node to default node if needed
139
- .command(() => {
140
- const canWrapInList = can().wrapInList(listType, attributes)
141
-
142
- const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))
143
-
144
- tr.ensureMarks(filteredMarks)
145
-
146
- if (canWrapInList) {
147
- return true
148
- }
149
-
150
- return commands.clearNodes()
151
- })
152
- .wrapInList(listType, attributes)
153
- .command(() => joinListBackwards(tr, listType))
154
- .command(() => joinListForwards(tr, listType))
155
- .run()
156
- )
157
- }
@@ -1,8 +1,8 @@
1
- import { MarkType } from '@tiptap/pm/model'
1
+ import type { MarkType } from '@tiptap/pm/model'
2
2
 
3
3
  import { getMarkType } from '../helpers/getMarkType.js'
4
4
  import { isMarkActive } from '../helpers/isMarkActive.js'
5
- import { RawCommands } from '../types.js'
5
+ import type { RawCommands } from '../types.js'
6
6
 
7
7
  declare module '@tiptap/core' {
8
8
  interface Commands<ReturnType> {
@@ -36,14 +36,16 @@ declare module '@tiptap/core' {
36
36
  }
37
37
  }
38
38
 
39
- export const toggleMark: RawCommands['toggleMark'] = (typeOrName, attributes = {}, options = {}) => ({ state, commands }) => {
40
- const { extendEmptyMarkRange = false } = options
41
- const type = getMarkType(typeOrName, state.schema)
42
- const isActive = isMarkActive(state, type, attributes)
39
+ export const toggleMark: RawCommands['toggleMark'] =
40
+ (typeOrName, attributes = {}, options = {}) =>
41
+ ({ state, commands }) => {
42
+ const { extendEmptyMarkRange = false } = options
43
+ const type = getMarkType(typeOrName, state.schema)
44
+ const isActive = isMarkActive(state, type, attributes)
43
45
 
44
- if (isActive) {
45
- return commands.unsetMark(type, { extendEmptyMarkRange })
46
- }
46
+ if (isActive) {
47
+ return commands.unsetMark(type, { extendEmptyMarkRange })
48
+ }
47
49
 
48
- return commands.setMark(type, attributes)
49
- }
50
+ return commands.setMark(type, attributes)
51
+ }
@@ -1,8 +1,8 @@
1
- import { NodeType } from '@tiptap/pm/model'
1
+ import type { NodeType } from '@tiptap/pm/model'
2
2
 
3
3
  import { getNodeType } from '../helpers/getNodeType.js'
4
4
  import { isNodeActive } from '../helpers/isNodeActive.js'
5
- import { RawCommands } from '../types.js'
5
+ import type { RawCommands } from '../types.js'
6
6
 
7
7
  declare module '@tiptap/core' {
8
8
  interface Commands<ReturnType> {
@@ -23,23 +23,25 @@ declare module '@tiptap/core' {
23
23
  }
24
24
  }
25
25
 
26
- export const toggleNode: RawCommands['toggleNode'] = (typeOrName, toggleTypeOrName, attributes = {}) => ({ state, commands }) => {
27
- const type = getNodeType(typeOrName, state.schema)
28
- const toggleType = getNodeType(toggleTypeOrName, state.schema)
29
- const isActive = isNodeActive(state, type, attributes)
26
+ export const toggleNode: RawCommands['toggleNode'] =
27
+ (typeOrName, toggleTypeOrName, attributes = {}) =>
28
+ ({ state, commands }) => {
29
+ const type = getNodeType(typeOrName, state.schema)
30
+ const toggleType = getNodeType(toggleTypeOrName, state.schema)
31
+ const isActive = isNodeActive(state, type, attributes)
30
32
 
31
- let attributesToCopy: Record<string, any> | undefined
33
+ let attributesToCopy: Record<string, any> | undefined
32
34
 
33
- if (state.selection.$anchor.sameParent(state.selection.$head)) {
34
- // only copy attributes if the selection is pointing to a node of the same type
35
- attributesToCopy = state.selection.$anchor.parent.attrs
36
- }
35
+ if (state.selection.$anchor.sameParent(state.selection.$head)) {
36
+ // only copy attributes if the selection is pointing to a node of the same type
37
+ attributesToCopy = state.selection.$anchor.parent.attrs
38
+ }
37
39
 
38
- if (isActive) {
39
- return commands.setNode(toggleType, attributesToCopy)
40
- }
40
+ if (isActive) {
41
+ return commands.setNode(toggleType, attributesToCopy)
42
+ }
41
43
 
42
- // If the node is not active, we want to set the new node type with the given attributes
43
- // Copying over the attributes from the current node if the selection is pointing to a node of the same type
44
- return commands.setNode(type, { ...attributesToCopy, ...attributes })
45
- }
44
+ // If the node is not active, we want to set the new node type with the given attributes
45
+ // Copying over the attributes from the current node if the selection is pointing to a node of the same type
46
+ return commands.setNode(type, { ...attributesToCopy, ...attributes })
47
+ }
@@ -1,8 +1,8 @@
1
- import { NodeType } from '@tiptap/pm/model'
1
+ import type { NodeType } from '@tiptap/pm/model'
2
2
 
3
3
  import { getNodeType } from '../helpers/getNodeType.js'
4
4
  import { isNodeActive } from '../helpers/isNodeActive.js'
5
- import { RawCommands } from '../types.js'
5
+ import type { RawCommands } from '../types.js'
6
6
 
7
7
  declare module '@tiptap/core' {
8
8
  interface Commands<ReturnType> {
@@ -18,13 +18,15 @@ declare module '@tiptap/core' {
18
18
  }
19
19
  }
20
20
 
21
- export const toggleWrap: RawCommands['toggleWrap'] = (typeOrName, attributes = {}) => ({ state, commands }) => {
22
- const type = getNodeType(typeOrName, state.schema)
23
- const isActive = isNodeActive(state, type, attributes)
21
+ export const toggleWrap: RawCommands['toggleWrap'] =
22
+ (typeOrName, attributes = {}) =>
23
+ ({ state, commands }) => {
24
+ const type = getNodeType(typeOrName, state.schema)
25
+ const isActive = isNodeActive(state, type, attributes)
24
26
 
25
- if (isActive) {
26
- return commands.lift(type)
27
- }
27
+ if (isActive) {
28
+ return commands.lift(type)
29
+ }
28
30
 
29
- return commands.wrapIn(type, attributes)
30
- }
31
+ return commands.wrapIn(type, attributes)
32
+ }
@@ -1,4 +1,4 @@
1
- import { RawCommands } from '../types.js'
1
+ import type { RawCommands } from '../types.js'
2
2
 
3
3
  declare module '@tiptap/core' {
4
4
  interface Commands<ReturnType> {
@@ -7,41 +7,43 @@ declare module '@tiptap/core' {
7
7
  * Undo an input rule.
8
8
  * @example editor.commands.undoInputRule()
9
9
  */
10
- undoInputRule: () => ReturnType,
10
+ undoInputRule: () => ReturnType
11
11
  }
12
12
  }
13
13
  }
14
14
 
15
- export const undoInputRule: RawCommands['undoInputRule'] = () => ({ state, dispatch }) => {
16
- const plugins = state.plugins
17
-
18
- for (let i = 0; i < plugins.length; i += 1) {
19
- const plugin = plugins[i]
20
- let undoable
21
-
22
- // @ts-ignore
23
- // eslint-disable-next-line
24
- if (plugin.spec.isInputRules && (undoable = plugin.getState(state))) {
25
- if (dispatch) {
26
- const tr = state.tr
27
- const toUndo = undoable.transform
28
-
29
- for (let j = toUndo.steps.length - 1; j >= 0; j -= 1) {
30
- tr.step(toUndo.steps[j].invert(toUndo.docs[j]))
15
+ export const undoInputRule: RawCommands['undoInputRule'] =
16
+ () =>
17
+ ({ state, dispatch }) => {
18
+ const plugins = state.plugins
19
+
20
+ for (let i = 0; i < plugins.length; i += 1) {
21
+ const plugin = plugins[i]
22
+ let undoable
23
+
24
+ // @ts-ignore
25
+ // eslint-disable-next-line
26
+ if (plugin.spec.isInputRules && (undoable = plugin.getState(state))) {
27
+ if (dispatch) {
28
+ const tr = state.tr
29
+ const toUndo = undoable.transform
30
+
31
+ for (let j = toUndo.steps.length - 1; j >= 0; j -= 1) {
32
+ tr.step(toUndo.steps[j].invert(toUndo.docs[j]))
33
+ }
34
+
35
+ if (undoable.text) {
36
+ const marks = tr.doc.resolve(undoable.from).marks()
37
+
38
+ tr.replaceWith(undoable.from, undoable.to, state.schema.text(undoable.text, marks))
39
+ } else {
40
+ tr.delete(undoable.from, undoable.to)
41
+ }
31
42
  }
32
43
 
33
- if (undoable.text) {
34
- const marks = tr.doc.resolve(undoable.from).marks()
35
-
36
- tr.replaceWith(undoable.from, undoable.to, state.schema.text(undoable.text, marks))
37
- } else {
38
- tr.delete(undoable.from, undoable.to)
39
- }
44
+ return true
40
45
  }
41
-
42
- return true
43
46
  }
44
- }
45
47
 
46
- return false
47
- }
48
+ return false
49
+ }