@witchcraft/editor 0.0.4 → 0.0.5

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 (410) hide show
  1. package/dist/module.d.cts +2 -0
  2. package/dist/module.d.mts +2 -15
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +13 -72
  5. package/dist/types.d.mts +12 -2
  6. package/package.json +228 -236
  7. package/src/module.ts +1 -2
  8. package/src/runtime/assets/handle-border-circles.svg +0 -0
  9. package/src/runtime/components/Editor.vue +0 -0
  10. package/src/runtime/pm/features/Blocks/components/ItemNodeView.vue +1 -1
  11. package/src/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.vue +1 -1
  12. package/src/runtime/pm/schema.ts +0 -0
  13. package/src/runtime/pm/utils/createDropIndicator.ts +9 -3
  14. package/src/runtime/pm/utils/getElPropertyAsInt.ts +3 -0
  15. package/src/runtime/pm/utils/internal/debugSel.ts +0 -0
  16. package/src/runtime/pm/utils/internal/recurse.ts +0 -0
  17. package/dist/runtime/assets/base.css +0 -1
  18. package/dist/runtime/assets/handle-arrow.svg +0 -16
  19. package/dist/runtime/assets/handle-border-circles-single.svg +0 -44
  20. package/dist/runtime/assets/handle-border-circles.svg +0 -27
  21. package/dist/runtime/assets/handle-temp.svg +0 -1
  22. package/dist/runtime/assets/utils.css +0 -1
  23. package/dist/runtime/components/CodeBlockThemePicker.d.vue.ts +0 -12
  24. package/dist/runtime/components/CodeBlockThemePicker.vue +0 -123
  25. package/dist/runtime/components/CodeBlockThemePicker.vue.d.ts +0 -12
  26. package/dist/runtime/components/Commands.d.vue.ts +0 -10
  27. package/dist/runtime/components/Commands.vue +0 -60
  28. package/dist/runtime/components/Commands.vue.d.ts +0 -10
  29. package/dist/runtime/components/Editor.d.vue.ts +0 -40
  30. package/dist/runtime/components/Editor.vue +0 -208
  31. package/dist/runtime/components/Editor.vue.d.ts +0 -40
  32. package/dist/runtime/components/EditorDemoApp.d.vue.ts +0 -2
  33. package/dist/runtime/components/EditorDemoApp.vue +0 -104
  34. package/dist/runtime/components/EditorDemoApp.vue.d.ts +0 -2
  35. package/dist/runtime/components/EditorDemoControls.d.vue.ts +0 -12
  36. package/dist/runtime/components/EditorDemoControls.vue +0 -36
  37. package/dist/runtime/components/EditorDemoControls.vue.d.ts +0 -12
  38. package/dist/runtime/components/TestWrapper.d.vue.ts +0 -11
  39. package/dist/runtime/components/TestWrapper.vue +0 -63
  40. package/dist/runtime/components/TestWrapper.vue.d.ts +0 -11
  41. package/dist/runtime/composables/useEditor.d.ts +0 -9
  42. package/dist/runtime/composables/useEditor.js +0 -21
  43. package/dist/runtime/composables/useWindowDebugging.d.ts +0 -3
  44. package/dist/runtime/composables/useWindowDebugging.js +0 -16
  45. package/dist/runtime/demo/App.d.vue.ts +0 -2
  46. package/dist/runtime/demo/App.vue +0 -101
  47. package/dist/runtime/demo/App.vue.d.ts +0 -2
  48. package/dist/runtime/demo/README.md +0 -1
  49. package/dist/runtime/demo/main.d.ts +0 -1
  50. package/dist/runtime/demo/main.js +0 -4
  51. package/dist/runtime/demo/tailwind.css +0 -1
  52. package/dist/runtime/env.d.ts +0 -2
  53. package/dist/runtime/injectionKeys.d.ts +0 -6
  54. package/dist/runtime/injectionKeys.js +0 -3
  55. package/dist/runtime/main.lib.d.ts +0 -2
  56. package/dist/runtime/main.lib.js +0 -2
  57. package/dist/runtime/pm/commands/backspace.d.ts +0 -12
  58. package/dist/runtime/pm/commands/backspace.js +0 -26
  59. package/dist/runtime/pm/commands/changeAttrs.d.ts +0 -9
  60. package/dist/runtime/pm/commands/changeAttrs.js +0 -15
  61. package/dist/runtime/pm/commands/deleteSelection.d.ts +0 -9
  62. package/dist/runtime/pm/commands/deleteSelection.js +0 -8
  63. package/dist/runtime/pm/commands/enter.d.ts +0 -14
  64. package/dist/runtime/pm/commands/enter.js +0 -9
  65. package/dist/runtime/pm/commands/insertBreak.d.ts +0 -9
  66. package/dist/runtime/pm/commands/insertBreak.js +0 -22
  67. package/dist/runtime/pm/features/Base/Base.d.ts +0 -4
  68. package/dist/runtime/pm/features/Base/Base.js +0 -32
  69. package/dist/runtime/pm/features/Base/commands/deleteNodes.d.ts +0 -10
  70. package/dist/runtime/pm/features/Base/commands/deleteNodes.js +0 -29
  71. package/dist/runtime/pm/features/Base/commands/setCursorVisible.d.ts +0 -12
  72. package/dist/runtime/pm/features/Base/commands/setCursorVisible.js +0 -7
  73. package/dist/runtime/pm/features/Base/plugins/debugSelectionPlugin.d.ts +0 -9
  74. package/dist/runtime/pm/features/Base/plugins/debugSelectionPlugin.js +0 -48
  75. package/dist/runtime/pm/features/Base/plugins/isCursorVisiblePlugin.d.ts +0 -3
  76. package/dist/runtime/pm/features/Base/plugins/isCursorVisiblePlugin.js +0 -26
  77. package/dist/runtime/pm/features/Base/plugins/isUsingTouchPlugin.d.ts +0 -3
  78. package/dist/runtime/pm/features/Base/plugins/isUsingTouchPlugin.js +0 -38
  79. package/dist/runtime/pm/features/Base/plugins/selectingIndicator.d.ts +0 -5
  80. package/dist/runtime/pm/features/Base/plugins/selectingIndicator.js +0 -35
  81. package/dist/runtime/pm/features/Base/plugins/unfocusedSelectionIndicatorPlugin.d.ts +0 -33
  82. package/dist/runtime/pm/features/Base/plugins/unfocusedSelectionIndicatorPlugin.js +0 -66
  83. package/dist/runtime/pm/features/Base/types.d.ts +0 -3
  84. package/dist/runtime/pm/features/Base/types.js +0 -0
  85. package/dist/runtime/pm/features/BaseShortcuts/BaseShortcuts.d.ts +0 -3
  86. package/dist/runtime/pm/features/BaseShortcuts/BaseShortcuts.js +0 -34
  87. package/dist/runtime/pm/features/Blockquote/Blockquote.d.ts +0 -5
  88. package/dist/runtime/pm/features/Blockquote/Blockquote.js +0 -65
  89. package/dist/runtime/pm/features/Blockquote/commands/blockquoteEnter.d.ts +0 -11
  90. package/dist/runtime/pm/features/Blockquote/commands/blockquoteEnter.js +0 -31
  91. package/dist/runtime/pm/features/Blockquote/commands/blockquoteShiftEnter.d.ts +0 -11
  92. package/dist/runtime/pm/features/Blockquote/commands/blockquoteShiftEnter.js +0 -12
  93. package/dist/runtime/pm/features/Blocks/Blocks.d.ts +0 -2
  94. package/dist/runtime/pm/features/Blocks/Blocks.js +0 -2
  95. package/dist/runtime/pm/features/Blocks/Item.d.ts +0 -11
  96. package/dist/runtime/pm/features/Blocks/Item.js +0 -157
  97. package/dist/runtime/pm/features/Blocks/List.d.ts +0 -4
  98. package/dist/runtime/pm/features/Blocks/List.js +0 -59
  99. package/dist/runtime/pm/features/Blocks/commands/changeItemType.d.ts +0 -20
  100. package/dist/runtime/pm/features/Blocks/commands/changeItemType.js +0 -40
  101. package/dist/runtime/pm/features/Blocks/commands/changeTypeAttr.d.ts +0 -14
  102. package/dist/runtime/pm/features/Blocks/commands/changeTypeAttr.js +0 -28
  103. package/dist/runtime/pm/features/Blocks/commands/copyOrMoveItem.d.ts +0 -23
  104. package/dist/runtime/pm/features/Blocks/commands/copyOrMoveItem.js +0 -124
  105. package/dist/runtime/pm/features/Blocks/commands/deleteItem.d.ts +0 -12
  106. package/dist/runtime/pm/features/Blocks/commands/deleteItem.js +0 -8
  107. package/dist/runtime/pm/features/Blocks/commands/indentItem.d.ts +0 -12
  108. package/dist/runtime/pm/features/Blocks/commands/indentItem.js +0 -58
  109. package/dist/runtime/pm/features/Blocks/commands/itemMenuCommands.d.ts +0 -18
  110. package/dist/runtime/pm/features/Blocks/commands/itemMenuCommands.js +0 -40
  111. package/dist/runtime/pm/features/Blocks/commands/moveItem.d.ts +0 -12
  112. package/dist/runtime/pm/features/Blocks/commands/moveItem.js +0 -80
  113. package/dist/runtime/pm/features/Blocks/commands/setNode.d.ts +0 -20
  114. package/dist/runtime/pm/features/Blocks/commands/setNode.js +0 -87
  115. package/dist/runtime/pm/features/Blocks/commands/splitItem.d.ts +0 -17
  116. package/dist/runtime/pm/features/Blocks/commands/splitItem.js +0 -87
  117. package/dist/runtime/pm/features/Blocks/commands/unindentItem.d.ts +0 -12
  118. package/dist/runtime/pm/features/Blocks/commands/unindentItem.js +0 -42
  119. package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.d.vue.ts +0 -0
  120. package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.vue +0 -122
  121. package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.vue.d.ts +0 -0
  122. package/dist/runtime/pm/features/Blocks/components/ItemMenu.d.vue.ts +0 -6
  123. package/dist/runtime/pm/features/Blocks/components/ItemMenu.vue +0 -78
  124. package/dist/runtime/pm/features/Blocks/components/ItemMenu.vue.d.ts +0 -6
  125. package/dist/runtime/pm/features/Blocks/components/ItemNodeView.d.vue.ts +0 -92
  126. package/dist/runtime/pm/features/Blocks/components/ItemNodeView.vue +0 -350
  127. package/dist/runtime/pm/features/Blocks/components/ItemNodeView.vue.d.ts +0 -92
  128. package/dist/runtime/pm/features/Blocks/components/defaultItemMenu.d.ts +0 -5
  129. package/dist/runtime/pm/features/Blocks/components/defaultItemMenu.js +0 -42
  130. package/dist/runtime/pm/features/Blocks/composables/useDragWithThreshold.d.ts +0 -1
  131. package/dist/runtime/pm/features/Blocks/composables/useDragWithThreshold.js +0 -0
  132. package/dist/runtime/pm/features/Blocks/composables/useHandleHeight.d.ts +0 -5
  133. package/dist/runtime/pm/features/Blocks/composables/useHandleHeight.js +0 -22
  134. package/dist/runtime/pm/features/Blocks/composables/useHasChildren.d.ts +0 -5
  135. package/dist/runtime/pm/features/Blocks/composables/useHasChildren.js +0 -10
  136. package/dist/runtime/pm/features/Blocks/composables/useNodeStates.d.ts +0 -7
  137. package/dist/runtime/pm/features/Blocks/composables/useNodeStates.js +0 -20
  138. package/dist/runtime/pm/features/Blocks/itemMenuMenuItems.d.ts +0 -20
  139. package/dist/runtime/pm/features/Blocks/itemMenuMenuItems.js +0 -138
  140. package/dist/runtime/pm/features/Blocks/plugins/ensureLastItemIsContentPlugin.d.ts +0 -11
  141. package/dist/runtime/pm/features/Blocks/plugins/ensureLastItemIsContentPlugin.js +0 -36
  142. package/dist/runtime/pm/features/Blocks/plugins/itemBlockIdPlugin.d.ts +0 -8
  143. package/dist/runtime/pm/features/Blocks/plugins/itemBlockIdPlugin.js +0 -30
  144. package/dist/runtime/pm/features/Blocks/plugins/itemHasSingularSelectionPlugin.d.ts +0 -3
  145. package/dist/runtime/pm/features/Blocks/plugins/itemHasSingularSelectionPlugin.js +0 -30
  146. package/dist/runtime/pm/features/Blocks/plugins/itemMenuPlugin.d.ts +0 -4
  147. package/dist/runtime/pm/features/Blocks/plugins/itemMenuPlugin.js +0 -17
  148. package/dist/runtime/pm/features/Blocks/states/stateful.d.ts +0 -2
  149. package/dist/runtime/pm/features/Blocks/states/stateful.js +0 -37
  150. package/dist/runtime/pm/features/Blocks/states/task/cancelled.svg +0 -32
  151. package/dist/runtime/pm/features/Blocks/states/task/checked.svg +0 -27
  152. package/dist/runtime/pm/features/Blocks/states/task/checked2.svg +0 -24
  153. package/dist/runtime/pm/features/Blocks/states/task/partial.svg +0 -24
  154. package/dist/runtime/pm/features/Blocks/states/task/partial2.svg +0 -31
  155. package/dist/runtime/pm/features/Blocks/states/task/unchecked.svg +0 -20
  156. package/dist/runtime/pm/features/Blocks/types.d.ts +0 -43
  157. package/dist/runtime/pm/features/Blocks/types.js +0 -2
  158. package/dist/runtime/pm/features/Blocks/utils/createItemMenuCommandExecuter.d.ts +0 -3
  159. package/dist/runtime/pm/features/Blocks/utils/createItemMenuCommandExecuter.js +0 -24
  160. package/dist/runtime/pm/features/Blocks/utils/fixBlockIds.d.ts +0 -4
  161. package/dist/runtime/pm/features/Blocks/utils/fixBlockIds.js +0 -23
  162. package/dist/runtime/pm/features/Blocks/utils/isValidId.d.ts +0 -2
  163. package/dist/runtime/pm/features/Blocks/utils/isValidId.js +0 -7
  164. package/dist/runtime/pm/features/CodeBlock/CodeBlock.d.ts +0 -16
  165. package/dist/runtime/pm/features/CodeBlock/CodeBlock.js +0 -91
  166. package/dist/runtime/pm/features/CodeBlock/build/generateHighlightJsInfo.d.ts +0 -1
  167. package/dist/runtime/pm/features/CodeBlock/build/generateHighlightJsInfo.js +0 -63
  168. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockEnterOrSplit.d.ts +0 -9
  169. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockEnterOrSplit.js +0 -28
  170. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockIndent.d.ts +0 -9
  171. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockIndent.js +0 -39
  172. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockUnindent.d.ts +0 -9
  173. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockUnindent.js +0 -50
  174. package/dist/runtime/pm/features/CodeBlock/commands/focusCodeBlockLanguage.d.ts +0 -9
  175. package/dist/runtime/pm/features/CodeBlock/commands/focusCodeBlockLanguage.js +0 -27
  176. package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.d.vue.ts +0 -92
  177. package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.vue +0 -112
  178. package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.vue.d.ts +0 -92
  179. package/dist/runtime/pm/features/CodeBlock/composables/useAsyncCodeBlockHighlighting.d.ts +0 -28
  180. package/dist/runtime/pm/features/CodeBlock/composables/useAsyncCodeBlockHighlighting.js +0 -137
  181. package/dist/runtime/pm/features/CodeBlock/composables/useHighlightJsTheme.d.ts +0 -37
  182. package/dist/runtime/pm/features/CodeBlock/composables/useHighlightJsTheme.js +0 -101
  183. package/dist/runtime/pm/features/CodeBlock/highlightJsInfo.d.ts +0 -17
  184. package/dist/runtime/pm/features/CodeBlock/highlightJsInfo.js +0 -711
  185. package/dist/runtime/pm/features/CodeBlock/types.d.ts +0 -4
  186. package/dist/runtime/pm/features/CodeBlock/types.js +0 -2
  187. package/dist/runtime/pm/features/Collaboration/Collaboration.d.ts +0 -66
  188. package/dist/runtime/pm/features/Collaboration/Collaboration.js +0 -169
  189. package/dist/runtime/pm/features/CommandsMenus/CommandBar.d.ts +0 -19
  190. package/dist/runtime/pm/features/CommandsMenus/CommandBar.js +0 -97
  191. package/dist/runtime/pm/features/CommandsMenus/commandBarMenuItems.d.ts +0 -20
  192. package/dist/runtime/pm/features/CommandsMenus/commandBarMenuItems.js +0 -188
  193. package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.d.vue.ts +0 -8
  194. package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.vue +0 -58
  195. package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.vue.d.ts +0 -8
  196. package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.d.vue.ts +0 -12
  197. package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.vue +0 -42
  198. package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.vue.d.ts +0 -12
  199. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.d.vue.ts +0 -10
  200. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.vue +0 -55
  201. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.vue.d.ts +0 -10
  202. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.d.vue.ts +0 -11
  203. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.vue +0 -58
  204. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.vue.d.ts +0 -11
  205. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.d.vue.ts +0 -11
  206. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.vue +0 -54
  207. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.vue.d.ts +0 -11
  208. package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.d.vue.ts +0 -5
  209. package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.vue +0 -13
  210. package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.vue.d.ts +0 -5
  211. package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.d.vue.ts +0 -8
  212. package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.vue +0 -45
  213. package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.vue.d.ts +0 -8
  214. package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.d.vue.ts +0 -2
  215. package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.vue +0 -5
  216. package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.vue.d.ts +0 -2
  217. package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.d.vue.ts +0 -2
  218. package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.vue +0 -5
  219. package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.vue.d.ts +0 -2
  220. package/dist/runtime/pm/features/CommandsMenus/types.d.ts +0 -61
  221. package/dist/runtime/pm/features/CommandsMenus/types.js +0 -5
  222. package/dist/runtime/pm/features/CommandsMenus/utils/defaultCommandExecutor.d.ts +0 -3
  223. package/dist/runtime/pm/features/CommandsMenus/utils/defaultCommandExecutor.js +0 -11
  224. package/dist/runtime/pm/features/CommandsMenus/utils/findCommand.d.ts +0 -10
  225. package/dist/runtime/pm/features/CommandsMenus/utils/findCommand.js +0 -16
  226. package/dist/runtime/pm/features/CommandsMenus/utils/popupPositionModifier.d.ts +0 -5
  227. package/dist/runtime/pm/features/CommandsMenus/utils/popupPositionModifier.js +0 -9
  228. package/dist/runtime/pm/features/CommandsMenus/utils/popupVerticalPositioner.d.ts +0 -5
  229. package/dist/runtime/pm/features/CommandsMenus/utils/popupVerticalPositioner.js +0 -11
  230. package/dist/runtime/pm/features/Document/Document.d.ts +0 -3
  231. package/dist/runtime/pm/features/Document/Document.js +0 -6
  232. package/dist/runtime/pm/features/DocumentApi/DocumentApi.d.ts +0 -86
  233. package/dist/runtime/pm/features/DocumentApi/DocumentApi.js +0 -170
  234. package/dist/runtime/pm/features/DocumentApi/composables/useEditorContent.d.ts +0 -13
  235. package/dist/runtime/pm/features/DocumentApi/composables/useEditorContent.js +0 -76
  236. package/dist/runtime/pm/features/DocumentApi/composables/useTestDocumentApi.d.ts +0 -23
  237. package/dist/runtime/pm/features/DocumentApi/composables/useTestDocumentApi.js +0 -70
  238. package/dist/runtime/pm/features/DocumentApi/types.d.ts +0 -133
  239. package/dist/runtime/pm/features/DocumentApi/types.js +0 -1
  240. package/dist/runtime/pm/features/DocumentApi/utils/convertFullTransactionForPartialState.d.ts +0 -3
  241. package/dist/runtime/pm/features/DocumentApi/utils/convertFullTransactionForPartialState.js +0 -37
  242. package/dist/runtime/pm/features/DocumentApi/utils/convertTrForInstance.d.ts +0 -4
  243. package/dist/runtime/pm/features/DocumentApi/utils/convertTrForInstance.js +0 -13
  244. package/dist/runtime/pm/features/DocumentApi/utils/convertTransactionForFullState.d.ts +0 -2
  245. package/dist/runtime/pm/features/DocumentApi/utils/convertTransactionForFullState.js +0 -22
  246. package/dist/runtime/pm/features/DocumentApi/utils/copyMeta.d.ts +0 -2
  247. package/dist/runtime/pm/features/DocumentApi/utils/copyMeta.js +0 -6
  248. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedJson.d.ts +0 -1
  249. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedJson.js +0 -14
  250. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedNodeFromDoc.d.ts +0 -1
  251. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedNodeFromDoc.js +0 -14
  252. package/dist/runtime/pm/features/DocumentApi/utils/getStateEmbedRange.d.ts +0 -9
  253. package/dist/runtime/pm/features/DocumentApi/utils/getStateEmbedRange.js +0 -19
  254. package/dist/runtime/pm/features/DocumentApi/utils/isEmbedId.d.ts +0 -2
  255. package/dist/runtime/pm/features/DocumentApi/utils/isEmbedId.js +0 -3
  256. package/dist/runtime/pm/features/EmbeddedDocument/Embedded.d.ts +0 -24
  257. package/dist/runtime/pm/features/EmbeddedDocument/Embedded.js +0 -73
  258. package/dist/runtime/pm/features/EmbeddedDocument/EmbeddedDocument.d.ts +0 -23
  259. package/dist/runtime/pm/features/EmbeddedDocument/EmbeddedDocument.js +0 -70
  260. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.d.vue.ts +0 -14
  261. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.vue +0 -169
  262. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.vue.d.ts +0 -14
  263. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.d.vue.ts +0 -92
  264. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.vue +0 -170
  265. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.vue.d.ts +0 -92
  266. package/dist/runtime/pm/features/EmbeddedDocument/composables/useEmbeddedEditor.d.ts +0 -31
  267. package/dist/runtime/pm/features/EmbeddedDocument/composables/useEmbeddedEditor.js +0 -199
  268. package/dist/runtime/pm/features/EmbeddedDocument/types.d.ts +0 -49
  269. package/dist/runtime/pm/features/EmbeddedDocument/types.js +0 -6
  270. package/dist/runtime/pm/features/EmbeddedDocument/utils/isEmbeddedBlock.d.ts +0 -9
  271. package/dist/runtime/pm/features/EmbeddedDocument/utils/isEmbeddedBlock.js +0 -3
  272. package/dist/runtime/pm/features/EmbeddedDocument/utils/redirectFromEmbedded.d.ts +0 -28
  273. package/dist/runtime/pm/features/EmbeddedDocument/utils/redirectFromEmbedded.js +0 -17
  274. package/dist/runtime/pm/features/FileLoader/FileLoader.d.ts +0 -16
  275. package/dist/runtime/pm/features/FileLoader/FileLoader.js +0 -99
  276. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/FileLoaderHandler.d.ts +0 -28
  277. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/FileLoaderHandler.js +0 -69
  278. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/TestFileLoaderHandler.d.ts +0 -11
  279. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/TestFileLoaderHandler.js +0 -49
  280. package/dist/runtime/pm/features/FileLoader/commands/insertFile.d.ts +0 -17
  281. package/dist/runtime/pm/features/FileLoader/commands/insertFile.js +0 -39
  282. package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.d.vue.ts +0 -92
  283. package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.vue +0 -38
  284. package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.vue.d.ts +0 -92
  285. package/dist/runtime/pm/features/FileLoader/plugins/fileLoaderPlugin.d.ts +0 -5
  286. package/dist/runtime/pm/features/FileLoader/plugins/fileLoaderPlugin.js +0 -61
  287. package/dist/runtime/pm/features/FileLoader/types.d.ts +0 -73
  288. package/dist/runtime/pm/features/FileLoader/types.js +0 -0
  289. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNode.d.ts +0 -4
  290. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNode.js +0 -27
  291. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNodes.d.ts +0 -9
  292. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNodes.js +0 -22
  293. package/dist/runtime/pm/features/FileLoader/utils/findLoadingNodePos.d.ts +0 -2
  294. package/dist/runtime/pm/features/FileLoader/utils/findLoadingNodePos.js +0 -11
  295. package/dist/runtime/pm/features/FileLoader/utils/optionsCheck.d.ts +0 -3
  296. package/dist/runtime/pm/features/FileLoader/utils/optionsCheck.js +0 -8
  297. package/dist/runtime/pm/features/FileLoader/utils/readAsDataUrl.d.ts +0 -1
  298. package/dist/runtime/pm/features/FileLoader/utils/readAsDataUrl.js +0 -12
  299. package/dist/runtime/pm/features/HardBreak/HardBreak.d.ts +0 -5
  300. package/dist/runtime/pm/features/HardBreak/HardBreak.js +0 -14
  301. package/dist/runtime/pm/features/Heading/Heading.d.ts +0 -24
  302. package/dist/runtime/pm/features/Heading/Heading.js +0 -85
  303. package/dist/runtime/pm/features/Heading/commands/changeLevelAttr.d.ts +0 -16
  304. package/dist/runtime/pm/features/Heading/commands/changeLevelAttr.js +0 -33
  305. package/dist/runtime/pm/features/Heading/types.d.ts +0 -14
  306. package/dist/runtime/pm/features/Heading/types.js +0 -0
  307. package/dist/runtime/pm/features/Highlight/Highlight.d.ts +0 -72
  308. package/dist/runtime/pm/features/Highlight/Highlight.js +0 -163
  309. package/dist/runtime/pm/features/Highlight/retyped/tiptapHighlight.d.ts +0 -3
  310. package/dist/runtime/pm/features/Highlight/retyped/tiptapHighlight.js +0 -5
  311. package/dist/runtime/pm/features/Highlight/types.d.ts +0 -27
  312. package/dist/runtime/pm/features/Highlight/types.js +0 -2
  313. package/dist/runtime/pm/features/History/History.d.ts +0 -35
  314. package/dist/runtime/pm/features/History/History.js +0 -63
  315. package/dist/runtime/pm/features/Iframe/Iframe.d.ts +0 -21
  316. package/dist/runtime/pm/features/Iframe/Iframe.js +0 -127
  317. package/dist/runtime/pm/features/Iframe/IframeParsers.d.ts +0 -37
  318. package/dist/runtime/pm/features/Iframe/IframeParsers.js +0 -88
  319. package/dist/runtime/pm/features/Iframe/components/IframeNodeView.d.vue.ts +0 -92
  320. package/dist/runtime/pm/features/Iframe/components/IframeNodeView.vue +0 -79
  321. package/dist/runtime/pm/features/Iframe/components/IframeNodeView.vue.d.ts +0 -92
  322. package/dist/runtime/pm/features/Iframe/types.d.ts +0 -5
  323. package/dist/runtime/pm/features/Iframe/types.js +0 -0
  324. package/dist/runtime/pm/features/Image/Image.d.ts +0 -2
  325. package/dist/runtime/pm/features/Image/Image.js +0 -13
  326. package/dist/runtime/pm/features/Link/Link.d.ts +0 -38
  327. package/dist/runtime/pm/features/Link/Link.js +0 -241
  328. package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.d.vue.ts +0 -28
  329. package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.vue +0 -113
  330. package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.vue.d.ts +0 -28
  331. package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.d.vue.ts +0 -29
  332. package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.vue +0 -104
  333. package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.vue.d.ts +0 -29
  334. package/dist/runtime/pm/features/Link/components/BubbleMenuLink.d.vue.ts +0 -11
  335. package/dist/runtime/pm/features/Link/components/BubbleMenuLink.vue +0 -126
  336. package/dist/runtime/pm/features/Link/components/BubbleMenuLink.vue.d.ts +0 -11
  337. package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.d.vue.ts +0 -18
  338. package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.vue +0 -54
  339. package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.vue.d.ts +0 -18
  340. package/dist/runtime/pm/features/Link/types.d.ts +0 -44
  341. package/dist/runtime/pm/features/Link/types.js +0 -3
  342. package/dist/runtime/pm/features/Menus/Menus.d.ts +0 -45
  343. package/dist/runtime/pm/features/Menus/Menus.js +0 -142
  344. package/dist/runtime/pm/features/Menus/components/MarkMenuManager.d.vue.ts +0 -6
  345. package/dist/runtime/pm/features/Menus/components/MarkMenuManager.vue +0 -165
  346. package/dist/runtime/pm/features/Menus/components/MarkMenuManager.vue.d.ts +0 -6
  347. package/dist/runtime/pm/features/Menus/types.d.ts +0 -51
  348. package/dist/runtime/pm/features/Menus/types.js +0 -3
  349. package/dist/runtime/pm/features/Menus/utils/isMarkMenu.d.ts +0 -2
  350. package/dist/runtime/pm/features/Menus/utils/isMarkMenu.js +0 -3
  351. package/dist/runtime/pm/features/Tables/commands/tableEnter.d.ts +0 -15
  352. package/dist/runtime/pm/features/Tables/commands/tableEnter.js +0 -19
  353. package/dist/runtime/pm/features/Tables/index.d.ts +0 -9
  354. package/dist/runtime/pm/features/Tables/index.js +0 -44
  355. package/dist/runtime/pm/schema.d.ts +0 -4
  356. package/dist/runtime/pm/schema.js +0 -80
  357. package/dist/runtime/pm/testSchema.d.ts +0 -5
  358. package/dist/runtime/pm/testSchema.js +0 -30
  359. package/dist/runtime/pm/utils/createDropIndicator.d.ts +0 -23
  360. package/dist/runtime/pm/utils/createDropIndicator.js +0 -32
  361. package/dist/runtime/pm/utils/createStateOnlyPluginApply.d.ts +0 -2
  362. package/dist/runtime/pm/utils/createStateOnlyPluginApply.js +0 -9
  363. package/dist/runtime/pm/utils/createStateOnlyPluginObjApply.d.ts +0 -2
  364. package/dist/runtime/pm/utils/createStateOnlyPluginObjApply.js +0 -14
  365. package/dist/runtime/pm/utils/dropPointInfo.d.ts +0 -56
  366. package/dist/runtime/pm/utils/dropPointInfo.js +0 -28
  367. package/dist/runtime/pm/utils/findUpwards.d.ts +0 -20
  368. package/dist/runtime/pm/utils/findUpwards.js +0 -18
  369. package/dist/runtime/pm/utils/getChildChunks.d.ts +0 -3
  370. package/dist/runtime/pm/utils/getChildChunks.js +0 -15
  371. package/dist/runtime/pm/utils/getDiffReplacementRange.d.ts +0 -20
  372. package/dist/runtime/pm/utils/getDiffReplacementRange.js +0 -9
  373. package/dist/runtime/pm/utils/getElMaxVisualSize.d.ts +0 -9
  374. package/dist/runtime/pm/utils/getElMaxVisualSize.js +0 -7
  375. package/dist/runtime/pm/utils/getElPropertyAsInt.d.ts +0 -1
  376. package/dist/runtime/pm/utils/getElPropertyAsInt.js +0 -8
  377. package/dist/runtime/pm/utils/getGroupNodeNames.d.ts +0 -2
  378. package/dist/runtime/pm/utils/getGroupNodeNames.js +0 -7
  379. package/dist/runtime/pm/utils/getMarkPosition.d.ts +0 -11
  380. package/dist/runtime/pm/utils/getMarkPosition.js +0 -34
  381. package/dist/runtime/pm/utils/getMarksInSelection.d.ts +0 -3
  382. package/dist/runtime/pm/utils/getMarksInSelection.js +0 -16
  383. package/dist/runtime/pm/utils/getTypeByName.d.ts +0 -2
  384. package/dist/runtime/pm/utils/getTypeByName.js +0 -5
  385. package/dist/runtime/pm/utils/index.d.ts +0 -15
  386. package/dist/runtime/pm/utils/index.js +0 -15
  387. package/dist/runtime/pm/utils/internal/createNodeTypesList.d.ts +0 -2
  388. package/dist/runtime/pm/utils/internal/createNodeTypesList.js +0 -17
  389. package/dist/runtime/pm/utils/internal/debugMap.d.ts +0 -7
  390. package/dist/runtime/pm/utils/internal/debugMap.js +0 -24
  391. package/dist/runtime/pm/utils/internal/debugNode.d.ts +0 -2
  392. package/dist/runtime/pm/utils/internal/debugNode.js +0 -18
  393. package/dist/runtime/pm/utils/internal/debugSel.d.ts +0 -5
  394. package/dist/runtime/pm/utils/internal/debugSel.js +0 -8
  395. package/dist/runtime/pm/utils/internal/recurse.d.ts +0 -2
  396. package/dist/runtime/pm/utils/internal/recurse.js +0 -39
  397. package/dist/runtime/pm/utils/internal/stripBlockId.d.ts +0 -2
  398. package/dist/runtime/pm/utils/internal/stripBlockId.js +0 -9
  399. package/dist/runtime/pm/utils/mapSelection.d.ts +0 -8
  400. package/dist/runtime/pm/utils/mapSelection.js +0 -12
  401. package/dist/runtime/pm/utils/nodesBetween.d.ts +0 -21
  402. package/dist/runtime/pm/utils/nodesBetween.js +0 -21
  403. package/dist/runtime/pm/utils/pointToPmPoint.d.ts +0 -2
  404. package/dist/runtime/pm/utils/pointToPmPoint.js +0 -3
  405. package/dist/runtime/pm/utils/splitIntoChunks.d.ts +0 -32
  406. package/dist/runtime/pm/utils/splitIntoChunks.js +0 -31
  407. package/dist/runtime/testDocuments.d.ts +0 -53
  408. package/dist/runtime/testDocuments.js +0 -122
  409. package/dist/runtime/types/index.d.ts +0 -53
  410. package/dist/runtime/types/index.js +0 -9
@@ -1,73 +0,0 @@
1
- import type { Editor } from "@tiptap/core";
2
- import type { HTMLAttributesOptions } from "../../../types/index.js";
3
- import type { WithOnTriggerByEmbeddedBlockOptions } from "../EmbeddedDocument/types.js";
4
- export interface FileLoaderExtensionOptions extends HTMLAttributesOptions, WithOnTriggerByEmbeddedBlockOptions {
5
- /**
6
- * By default, the plugin removes fileLoader nodes using {@link cleanupFileLoaderNodes} when the document is loaded. This can happen if the user interrupts a file load/upload/save and the document is saved with a fileLoader node.
7
- *
8
- * We can't keep a reference to the file they wanted to load without external work, so the nodes are removed.
9
- */
10
- cleanupOnLoad?: boolean;
11
- /** See {@link IFileLoaderHandler} */
12
- handler: IFileLoaderHandler<File, any>;
13
- }
14
- /**
15
- * Helps handle the loading of files. Provides a way to adjust the insert position and takes care of keeping track of loading vs loaded nodes.
16
- *
17
- * See {@link FileLoaderHandler} for a partial implementation you can customize to create the interface.
18
- *
19
- * The insert handlers are called with the files in reverse order so that you can more easily insert them one after the other without position mapping.
20
- */
21
- export type IFileLoaderHandler<TFile extends File, T = {
22
- file: TFile;
23
- result: string | ArrayBuffer | null;
24
- }, TKey = string> = {
25
- /**
26
- * Should load/save/upload the file and return the information neccesary to create the loaded node.
27
- *
28
- * The `insertId` and `editor` are provided in case you're uploading the file or doing some other heavy operation and want to update the fileLoader node as soon as you can load the image.
29
- *
30
- * A `FileLoaderNodeView` is provided (but no pre-configured) for these purposes. If you set the node's `preview` property it will use it as the src for an image.
31
- */
32
- loadFile: (file: TFile, insertId: TKey, editor: Editor) => Promise<T | undefined>;
33
- /**
34
- * This can be used to remove the loading node on errors.
35
- *
36
- * The default {@link FileLoaderHandler.onLoadError} uses {@link cleanupFileLoaderNodes} to remove the parent item node if possible, otherwise it turns the fileLoader node into a paragraph.
37
- */
38
- onLoadError: (file: TFile, editor: Editor, pos: number | undefined, error: Error, loadingKey: TKey) => void;
39
- /**
40
- *
41
- * Where to insert the fileLoader node.
42
- *
43
- * The default @{@link FileLoaderHandler.insertPosition} returns the position after the closest parent item node. The idea being one inserts a new item node there with a loading file node inside.
44
- *
45
- * You can override this by returning a different position. If no position is returned, no node is inserted.
46
- */
47
- insertPosition: (file: TFile, editor: Editor, pos?: number) => number | undefined;
48
- /**
49
- * Given a file, should insert a fileLoader node with the `loadingId` set to a unique key that the extension can then use to find the node again. It should return this key if it inserted the node.
50
- *
51
- * Using the file name is not a good idea as it's not guaranteed to be unique if the user inserts the same item twice.
52
- *
53
- * The default {@link FileLoaderHandler.insertLoadingNode} inserts a new item node with a fileLoader node inside after in the closest viable position after the insertPos. It uses a nanoid for the loading id.
54
- */
55
- insertLoadingNode: (file: TFile, editor: Editor, insertPos: number, originalPos?: number) => TKey | undefined;
56
- /**
57
- * After loading the file, if it's successful, this is passed the result and the position of the fileLoader node.
58
- *
59
- * Note that this position points at the node with those attributes, and not it's parent in the case of having inserted a wrapping node.
60
- *
61
- *
62
- */
63
- replaceLoadingNode: (editor: Editor, pos: number, res: T, loadingKey: TKey) => void;
64
- /**
65
- * Return the file (or whatever type you'd like) to allow the extension to handle it.
66
- *
67
- * If the function doesn't return anything, the file will be ignored.
68
- * No fileLoader node will be created. The event will still be preventDefaulted.
69
- *
70
- * This can be used to filter out mime types you can't handle with a library like `mime`. Mime type filtering is not handled by the extension since it can be complicated.
71
- */
72
- filterFile: (file: File) => TFile | undefined;
73
- };
File without changes
@@ -1,4 +0,0 @@
1
- import type { NodeType } from "@tiptap/pm/model";
2
- import type { Transaction } from "@tiptap/pm/state";
3
- /** Like {@link cleanupFileLoaderNodes} but for single nodes when you already know the position. Returns true if it deleted a node. */
4
- export declare function cleanupFileLoaderNode(tr: Transaction, pos: number, fileLoaderType: NodeType, wrappingTypes: NodeType[], replaceType: NodeType): boolean;
@@ -1,27 +0,0 @@
1
- import { findUpwards } from "../../../utils/findUpwards.js";
2
- export function cleanupFileLoaderNode(tr, pos, fileLoaderType, wrappingTypes, replaceType) {
3
- const node = tr.doc.nodeAt(pos);
4
- if (!node) return false;
5
- if (node.type === fileLoaderType) {
6
- let $parent;
7
- findUpwards(tr.doc, pos, ($pos) => {
8
- if (wrappingTypes.includes($pos.parent.type)) {
9
- if ($pos.parent.childCount === 1) {
10
- $parent = $pos;
11
- } else {
12
- return true;
13
- }
14
- } else if ($parent) {
15
- return true;
16
- }
17
- return false;
18
- });
19
- if ($parent) {
20
- tr.delete($parent.start() - 1, $parent.end() + 1);
21
- } else {
22
- tr.replaceWith(pos, pos + node.nodeSize, replaceType.create());
23
- }
24
- return true;
25
- }
26
- return false;
27
- }
@@ -1,9 +0,0 @@
1
- import type { NodeType, Schema } from "@tiptap/pm/model";
2
- import type { Transaction } from "@tiptap/pm/state";
3
- import { cleanupFileLoaderNode } from "./cleanupFileLoaderNode.js";
4
- /**
5
- * Removes all `fileLoader` nodes from the document.
6
- *
7
- * Searches up parent wrappers of the given `wrappingTypes`. If any exist and have no other children, they are removed.
8
- */
9
- export declare function cleanupFileLoaderNodes(tr: Transaction, schema: Schema, fileLoaderTypeOrName: string | NodeType, wrappingTypesOrNames: (string | NodeType)[], replaceTypeOrName: string | NodeType, callback?: typeof cleanupFileLoaderNode): Transaction;
@@ -1,22 +0,0 @@
1
- import { unreachable } from "@alanscodelog/utils/unreachable";
2
- import { getNodeType } from "@tiptap/core";
3
- import { cleanupFileLoaderNode } from "./cleanupFileLoaderNode.js";
4
- export function cleanupFileLoaderNodes(tr, schema, fileLoaderTypeOrName, wrappingTypesOrNames, replaceTypeOrName, callback = cleanupFileLoaderNode) {
5
- const fileLoaderType = getNodeType(fileLoaderTypeOrName, schema);
6
- const wrappingTypes = wrappingTypesOrNames.map((_) => getNodeType(_, schema));
7
- const replaceType = getNodeType(replaceTypeOrName, schema);
8
- const positions = [];
9
- tr.doc.descendants((node, pos) => {
10
- if (node.type === fileLoaderType) {
11
- positions.push(pos);
12
- }
13
- });
14
- for (const pos of positions.reverse()) {
15
- const mappedPos = tr.mapping.map(pos);
16
- if (mappedPos !== pos) unreachable();
17
- callback(tr, mappedPos, fileLoaderType, wrappingTypes, replaceType);
18
- }
19
- tr.setMeta("preventClearDocument", true);
20
- tr.setMeta("addToHistory", false);
21
- return tr;
22
- }
@@ -1,2 +0,0 @@
1
- import type { EditorState } from "@tiptap/pm/state";
2
- export declare function findLoadingNodePos(state: EditorState, loadingId: string): number | undefined;
@@ -1,11 +0,0 @@
1
- export function findLoadingNodePos(state, loadingId) {
2
- let replacePos;
3
- state.doc.nodesBetween(0, state.doc.content.size - 1, (node, position) => {
4
- if (node.attrs.loadingId === loadingId) {
5
- replacePos = position;
6
- return false;
7
- }
8
- return true;
9
- });
10
- return replacePos;
11
- }
@@ -1,3 +0,0 @@
1
- import type { Editor } from "@tiptap/core";
2
- import type { FileLoaderExtensionOptions } from "../types.js";
3
- export declare function optionsCheck(editor: Editor, options: FileLoaderExtensionOptions): void;
@@ -1,8 +0,0 @@
1
- export function optionsCheck(editor, options) {
2
- if (!options.handler) {
3
- throw new Error("The FileLoader needs to be configered with a handler (see FileLoaderHandler).");
4
- }
5
- if ((!options.handler.insertLoadingNode || !options.handler.onLoadError || !options.handler?.insertPosition) && editor.state.schema.nodes.item === void 0) {
6
- throw new Error("Could not find item node in schema. Add the block extensions or specify a custom `handler.insertLoadingNode` function for the FileLoader.");
7
- }
8
- }
@@ -1 +0,0 @@
1
- export declare function readAsDataUrl(file: File): Promise<string>;
@@ -1,12 +0,0 @@
1
- export async function readAsDataUrl(file) {
2
- return new Promise((resolve, reject) => {
3
- const fileReader = new FileReader();
4
- fileReader.readAsDataURL(file);
5
- fileReader.onload = () => {
6
- resolve(fileReader.result);
7
- };
8
- fileReader.onerror = (e) => {
9
- reject(e);
10
- };
11
- });
12
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * Extends the tiptap hard break extension to set the linebreakReplacement option (which tiptap does not expose).
3
- * This option tells prosemirror that when converting between blocks that can/can't show whitespace, it should use this node type to represent line breaks in node types that don't display them.
4
- */
5
- export declare const HardBreak: import("@tiptap/core").Node<import("@tiptap/extension-hard-break", { with: { "resolution-mode": "require" } }).HardBreakOptions, any>;
@@ -1,14 +0,0 @@
1
- import { HardBreak as TipTapHardBreak } from "@tiptap/extension-hard-break";
2
- export const HardBreak = TipTapHardBreak.extend({
3
- extendNodeSchema(extension) {
4
- if (extension.name === "hardBreak") {
5
- return {
6
- linebreakReplacement: true
7
- };
8
- }
9
- return {};
10
- },
11
- addKeyboardShortcuts() {
12
- return {};
13
- }
14
- });
@@ -1,24 +0,0 @@
1
- import { Node } from "@tiptap/core";
2
- import type { HeadingNodeOptions } from "./types.js";
3
- declare module "@tiptap/core" {
4
- interface Commands<ReturnType> {
5
- heading: {
6
- setHeading: (opts: {
7
- level: HeadingNodeOptions["levels"][number];
8
- onlyHeading: boolean;
9
- }, pos?: number) => ReturnType;
10
- toggleHeading: (opts: {
11
- level: HeadingNodeOptions["levels"][number];
12
- }) => ReturnType;
13
- };
14
- }
15
- }
16
- /**
17
- * Like tiptap's Heading extension, but makes it easier to configure per-level html attributes.
18
- *
19
- * Also the setHeading command has an option to only change the heading level if the text is already a heading.
20
- *
21
- * This is useful for when you want to change the heading level of a heading that is already in the document.
22
- */
23
- export declare const Heading: Node<HeadingNodeOptions<[1, 2, 3, 4, 5, 6]>, any>;
24
- export type NodeHeadingName = "heading";
@@ -1,85 +0,0 @@
1
- import { isArray } from "@alanscodelog/utils/isArray";
2
- import { keys } from "@alanscodelog/utils/keys";
3
- import { mergeAttributes, Node, textblockTypeInputRule } from "@tiptap/core";
4
- import { changeLevelAttr } from "./commands/changeLevelAttr.js";
5
- export const Heading = Node.create({
6
- name: "heading",
7
- content: "inline*",
8
- group: "block",
9
- defining: true,
10
- addOptions() {
11
- return {
12
- levels: [1, 2, 3, 4, 5, 6],
13
- HTMLAttributes: {
14
- class: [
15
- "text-xl",
16
- "text-2xl/normal",
17
- "text-3xl/normal",
18
- "text-4xl/normal",
19
- "text-5xl/normal",
20
- "text-6xl/normal"
21
- ]
22
- }
23
- };
24
- },
25
- addAttributes() {
26
- return {
27
- level: {
28
- default: 1,
29
- rendered: false
30
- }
31
- };
32
- },
33
- parseHTML() {
34
- return this.options.levels.map((level) => ({
35
- tag: `h${level}`,
36
- attrs: { level }
37
- }));
38
- },
39
- // eslint-disable-next-line @typescript-eslint/naming-convention
40
- renderHTML({ HTMLAttributes, node }) {
41
- const level = this.options.levels.includes(node.attrs.level) ? node.attrs.level : this.options.levels[0];
42
- const thisFinalHTMLAttributes = { ...this.options.HTMLAttributes };
43
- for (const key of keys(thisFinalHTMLAttributes)) {
44
- if (isArray(thisFinalHTMLAttributes[key])) {
45
- thisFinalHTMLAttributes[key] = thisFinalHTMLAttributes[key][level - 1];
46
- }
47
- }
48
- return [
49
- `h${level}`,
50
- mergeAttributes(
51
- thisFinalHTMLAttributes,
52
- HTMLAttributes,
53
- {
54
- level
55
- }
56
- ),
57
- 0
58
- ];
59
- },
60
- addCommands() {
61
- return {
62
- setHeading: changeLevelAttr({
63
- attributeKey: "level",
64
- nodeType: this.type.name,
65
- allowedValues: this.options.levels,
66
- toggleGroups: ["block"]
67
- }),
68
- toggleHeading: ({ level = 1 }) => ({ commands }) => {
69
- if (!this.options.levels.includes(level)) {
70
- return false;
71
- }
72
- return commands.toggleNode(this.name, "paragraph", { level });
73
- }
74
- };
75
- },
76
- addInputRules() {
77
- return this.options.levels.map((level) => textblockTypeInputRule({
78
- find: new RegExp(`^(#{1,${level}})\\s$`),
79
- type: this.type,
80
- getAttributes: {
81
- level
82
- }
83
- }));
84
- }
85
- });
@@ -1,16 +0,0 @@
1
- import { type Command } from "@tiptap/core";
2
- import type { CommandAttributeOptions, CommandToggleNodesOptions } from "../../../../types/index.js";
3
- declare module "@tiptap/core" {
4
- interface Commands<ReturnType> {
5
- changeLevelAttr: {
6
- changeLevelAttr: (opts: {
7
- level: number;
8
- onlyHeading: boolean;
9
- }, pos?: number) => ReturnType;
10
- };
11
- }
12
- }
13
- export declare const changeLevelAttr: ({ nodeType, allowedValues, attributeKey, toggleGroups, toggleNodeTypeNames }: CommandAttributeOptions<number> & CommandToggleNodesOptions) => ({ level, onlyHeadings }: {
14
- level: number;
15
- onlyHeadings?: boolean;
16
- }, pos?: number) => Command;
@@ -1,33 +0,0 @@
1
- import { getNodeType } from "@tiptap/core";
2
- import { findUpwards } from "../../../utils/findUpwards.js";
3
- import { createNodeTypesList } from "../../../utils/internal/createNodeTypesList.js";
4
- export const changeLevelAttr = ({
5
- nodeType,
6
- allowedValues,
7
- attributeKey,
8
- toggleGroups,
9
- toggleNodeTypeNames
10
- }) => ({
11
- level,
12
- onlyHeadings = false
13
- }, pos) => ({ state, commands, tr, editor }) => {
14
- if (!allowedValues.includes(level)) {
15
- return false;
16
- }
17
- const nodeTypes = createNodeTypesList(
18
- editor.schema,
19
- [nodeType],
20
- onlyHeadings ? void 0 : toggleNodeTypeNames,
21
- onlyHeadings ? void 0 : toggleGroups
22
- );
23
- const nodeTypeType = getNodeType(nodeType, editor.schema);
24
- const from = pos ?? state.selection.map(tr.doc, tr.mapping).from;
25
- const nodePos = findUpwards(tr.doc, from, ($pos) => {
26
- if (nodeTypes.includes($pos.node().type.name)) {
27
- return true;
28
- }
29
- return false;
30
- })?.$pos?.pos;
31
- if (!nodePos) return false;
32
- return commands.setNode(nodeTypeType, { [`${attributeKey}`]: level }, nodePos - 1);
33
- };
@@ -1,14 +0,0 @@
1
- export interface HeadingNodeOptions<T extends number[] = [1, 2, 3, 4, 5, 6]> {
2
- /**
3
- * The available heading levels.
4
- */
5
- levels: T;
6
- /**
7
- * The HTML attributes for the heading node.
8
- *
9
- * Each value can also be an array of values for each heading level.
10
- *
11
- * The default adds tailwind text size classes.
12
- */
13
- HTMLAttributes: Record<string, any>;
14
- }
File without changes
@@ -1,72 +0,0 @@
1
- import { Mark } from "@tiptap/core";
2
- import { type HighlightMarkOptions } from "./types.js";
3
- declare module "@tiptap/core" {
4
- interface Commands<ReturnType> {
5
- highlight: {
6
- /**
7
- * Set a highlight mark.
8
- *
9
- * The color must be one of the keys in the configured `colors` option or it will throw an error.
10
- *
11
- * If no color is provided, the default color will be used.
12
- */
13
- setHighlight: (color?: keyof HighlightMarkOptions["colors"]) => ReturnType;
14
- /**
15
- * Toggle a highlight mark.
16
- *
17
- * The color must be one of the keys in the configured `colors` option or it will throw an error.
18
- *
19
- * If no color is provided, the default color will be used.
20
- */
21
- toggleHighlight: (color?: keyof HighlightMarkOptions["colors"]) => ReturnType;
22
- /**
23
- * Unset a highlight mark.
24
- */
25
- unsetHighlight: () => ReturnType;
26
- /**
27
- * Set the highlight options.
28
- *
29
- * Note that you will need to keep the same keys to avoid having to manually migrate the doc. You can add more keys, but again, not remove any without having to migrate the doc. That's why they are named slot* by default, to avoid tight coupling with colors.
30
- */
31
- setHighlightOptions: (options: Partial<HighlightMarkOptions>) => ReturnType;
32
- };
33
- }
34
- }
35
- export declare const defaultColors: {
36
- slot1: {
37
- name: string;
38
- color: string;
39
- matches: string[];
40
- };
41
- slot2: {
42
- name: string;
43
- color: string;
44
- matches: string[];
45
- };
46
- slot3: {
47
- name: string;
48
- color: string;
49
- matches: string[];
50
- };
51
- slot4: {
52
- name: string;
53
- color: string;
54
- matches: string[];
55
- };
56
- slot5: {
57
- name: string;
58
- color: string;
59
- matches: string[];
60
- };
61
- };
62
- /**
63
- * For highlighting text with pre-configured colors.
64
- *
65
- * Colors can be changed on the fly using setHighlightOptions.
66
- *
67
- * The Commands feature includes a HighlightIcon component designed to work with this extension. It's included in the CommandBar menu by default.
68
- *
69
- * See also `createToggleHighlightCommand` in commandBarMenuItems.ts for creating a custom number of commands with custom prefixes if needed.
70
- */
71
- export declare const Highlight: Mark<HighlightMarkOptions<"slot1" | "slot2" | "slot3" | "slot4" | "slot5">, any>;
72
- export type MarkHighlightName = "highlight";
@@ -1,163 +0,0 @@
1
- import { keys } from "@alanscodelog/utils/keys";
2
- import {
3
- Mark,
4
- markInputRule,
5
- markPasteRule,
6
- mergeAttributes
7
- } from "@tiptap/core";
8
- import { Plugin } from "@tiptap/pm/state";
9
- import { inputRegex, pasteRegex } from "./retyped/tiptapHighlight.js";
10
- import { highlightPluginKey } from "./types.js";
11
- import { createStateOnlyPluginObjApply } from "../../utils/createStateOnlyPluginObjApply.js";
12
- export const defaultColors = {
13
- slot1: {
14
- name: "Yellow",
15
- color: "rgba(255, 234, 54, 0.5)",
16
- matches: ["#ffff00", "yellow"]
17
- },
18
- slot2: {
19
- name: "Orange",
20
- color: "rgba(255, 132, 0, 0.5)",
21
- matches: ["#ffa500", "orange"]
22
- },
23
- slot3: {
24
- name: "Red",
25
- color: "rgba(255, 0, 0, 0.5)",
26
- matches: ["#ff0000", "red"]
27
- },
28
- slot4: {
29
- name: "Green",
30
- color: "rgba(70, 177, 0, 0.5)",
31
- matches: ["#008000", "green"]
32
- },
33
- slot5: {
34
- name: "Blue",
35
- color: "rgba(0, 101, 255, 0.5)",
36
- matches: ["#0000ff", "blue"]
37
- }
38
- };
39
- export const Highlight = Mark.create({
40
- name: "highlight",
41
- addOptions() {
42
- return {
43
- defaultColor: "slot1",
44
- colors: defaultColors,
45
- HTMLAttributes: {}
46
- };
47
- },
48
- addAttributes() {
49
- return {
50
- color: {
51
- default: null,
52
- parseHTML: (element) => {
53
- const color = element.getAttribute("data-color");
54
- if (color && color in this.options.colors) {
55
- return color;
56
- }
57
- const bgColor = element.style.backgroundColor;
58
- const foundSimilar = keys(this.options.colors).find((key) => {
59
- const c = this.options.colors[key];
60
- if (c.color === color || color && c.matches?.includes(color) || c.color === bgColor || c.matches?.includes(bgColor)) return true;
61
- return false;
62
- });
63
- if (foundSimilar) {
64
- return foundSimilar;
65
- }
66
- if (color) {
67
- return this.options.defaultColor;
68
- }
69
- return false;
70
- },
71
- renderHTML: (attributes) => {
72
- const color = attributes.color;
73
- if (!color) {
74
- return {};
75
- }
76
- const finalColor = this.options.colors[color];
77
- return {
78
- "data-color": finalColor.color,
79
- style: `background-color: ${finalColor.color}; color: inherit`
80
- };
81
- }
82
- }
83
- };
84
- },
85
- parseHTML() {
86
- return [
87
- {
88
- tag: "mark"
89
- }
90
- ];
91
- },
92
- // eslint-disable-next-line @typescript-eslint/naming-convention
93
- renderHTML({ HTMLAttributes }) {
94
- return ["mark", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
95
- },
96
- addCommands() {
97
- return {
98
- setHighlightOptions: (options) => ({ tr, dispatch }) => {
99
- if (dispatch) {
100
- tr.setMeta(highlightPluginKey, {
101
- ...options,
102
- colors: options.colors ? { ...options.colors } : void 0
103
- });
104
- }
105
- return true;
106
- },
107
- setHighlight: (color) => ({ commands }) => {
108
- if (color === void 0) {
109
- return commands.setMark(this.name, { color: this.options.defaultColor });
110
- }
111
- if (color in this.options.colors) {
112
- return commands.setMark(this.name, { color });
113
- } else {
114
- throw new Error(`Color ${color} not found in the Highlight options.`);
115
- }
116
- },
117
- toggleHighlight: (color) => ({ commands }) => {
118
- if (color === void 0) {
119
- return commands.toggleMark(this.name, { color: this.options.defaultColor });
120
- }
121
- if (color in this.options.colors) {
122
- return commands.toggleMark(this.name, { color });
123
- } else {
124
- throw new Error(`Color ${color} not found in the Highlight options.`);
125
- }
126
- },
127
- unsetHighlight: () => ({ commands }) => commands.unsetMark(this.name)
128
- };
129
- },
130
- addProseMirrorPlugins() {
131
- const self = this;
132
- return [
133
- new Plugin({
134
- key: highlightPluginKey,
135
- state: {
136
- init() {
137
- return {
138
- ...self.options,
139
- colors: { ...self.options.colors }
140
- };
141
- },
142
- apply: createStateOnlyPluginObjApply(highlightPluginKey)
143
- }
144
- })
145
- ];
146
- },
147
- addInputRules() {
148
- return [
149
- markInputRule({
150
- find: inputRegex,
151
- type: this.type
152
- })
153
- ];
154
- },
155
- addPasteRules() {
156
- return [
157
- markPasteRule({
158
- find: pasteRegex,
159
- type: this.type
160
- })
161
- ];
162
- }
163
- });
@@ -1,3 +0,0 @@
1
- // see ./tiptapHighlight.js
2
- export declare const inputRegex: RegExp
3
- export declare const pasteRegex: RegExp
@@ -1,5 +0,0 @@
1
- /** Avoid importing the module directly to avoid interface merging. */
2
- import { inputRegex as _inputRegex, pasteRegex as _pasteRegex } from "@tiptap/extension-highlight"
3
-
4
- export const inputRegex = _inputRegex
5
- export const pasteRegex = _pasteRegex
@@ -1,27 +0,0 @@
1
- import { PluginKey } from "@tiptap/pm/state";
2
- import type { HTMLAttributesOptions } from "../../../types/index.js";
3
- export interface HighlightMarkOptions<T extends string = `slot${[1, 2, 3, 4, 5][number]}`> extends HTMLAttributesOptions {
4
- /**
5
- * The colors to use for the highlight in Record<name, {color: string, name: string}> format.
6
- *
7
- * This is to allow the colors/slots to be configurable by the user without needing to change the document when they do so since only the key is stored.
8
- *
9
- * The value is a record to allow additional properties to be stored.
10
- *
11
- * The `matches` property can be used to specify an additional array of strings/colors to match when parsing HTML.
12
- *
13
- * The default is Record<"slotX", {color: "rgbaa(...)", name: "colorName", matches?: [name, "#color"]}>
14
- */
15
- colors: Record<T, {
16
- color: string;
17
- name: string;
18
- matches?: string[];
19
- }>;
20
- /**
21
- * For when a non-matching color is found in the HTML. Default is slot1 which is yellow.
22
- */
23
- defaultColor: T;
24
- }
25
- export declare const highlightPluginKey: PluginKey<{
26
- colors: HighlightMarkOptions["colors"];
27
- }>;