@witchcraft/editor 0.0.5 → 0.0.7

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 (416) hide show
  1. package/dist/module.d.mts +15 -2
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +67 -13
  4. package/dist/runtime/assets/base.css +1 -0
  5. package/dist/runtime/assets/handle-arrow.svg +16 -0
  6. package/dist/runtime/assets/handle-border-circles-single.svg +44 -0
  7. package/dist/runtime/assets/handle-border-circles.svg +27 -0
  8. package/dist/runtime/assets/handle-temp.svg +1 -0
  9. package/dist/runtime/assets/utils.css +1 -0
  10. package/dist/runtime/components/CodeBlockThemePicker.d.vue.ts +12 -0
  11. package/dist/runtime/components/CodeBlockThemePicker.vue +123 -0
  12. package/dist/runtime/components/CodeBlockThemePicker.vue.d.ts +12 -0
  13. package/dist/runtime/components/Commands.d.vue.ts +10 -0
  14. package/dist/runtime/components/Commands.vue +60 -0
  15. package/dist/runtime/components/Commands.vue.d.ts +10 -0
  16. package/dist/runtime/components/Editor.d.vue.ts +40 -0
  17. package/dist/runtime/components/Editor.vue +208 -0
  18. package/dist/runtime/components/Editor.vue.d.ts +40 -0
  19. package/dist/runtime/components/EditorDemoApp.d.vue.ts +2 -0
  20. package/dist/runtime/components/EditorDemoApp.vue +104 -0
  21. package/dist/runtime/components/EditorDemoApp.vue.d.ts +2 -0
  22. package/dist/runtime/components/EditorDemoControls.d.vue.ts +12 -0
  23. package/dist/runtime/components/EditorDemoControls.vue +36 -0
  24. package/dist/runtime/components/EditorDemoControls.vue.d.ts +12 -0
  25. package/dist/runtime/components/TestWrapper.d.vue.ts +11 -0
  26. package/dist/runtime/components/TestWrapper.vue +63 -0
  27. package/dist/runtime/components/TestWrapper.vue.d.ts +11 -0
  28. package/dist/runtime/composables/useEditor.d.ts +9 -0
  29. package/dist/runtime/composables/useEditor.js +21 -0
  30. package/dist/runtime/composables/useWindowDebugging.d.ts +3 -0
  31. package/dist/runtime/composables/useWindowDebugging.js +16 -0
  32. package/dist/runtime/demo/App.d.vue.ts +2 -0
  33. package/dist/runtime/demo/App.vue +101 -0
  34. package/dist/runtime/demo/App.vue.d.ts +2 -0
  35. package/dist/runtime/demo/README.md +1 -0
  36. package/dist/runtime/demo/main.d.ts +1 -0
  37. package/dist/runtime/demo/main.js +4 -0
  38. package/dist/runtime/demo/tailwind.css +1 -0
  39. package/dist/runtime/env.d.ts +2 -0
  40. package/dist/runtime/injectionKeys.d.ts +6 -0
  41. package/dist/runtime/injectionKeys.js +3 -0
  42. package/dist/runtime/main.lib.d.ts +2 -0
  43. package/dist/runtime/main.lib.js +2 -0
  44. package/dist/runtime/pm/commands/backspace.d.ts +12 -0
  45. package/dist/runtime/pm/commands/backspace.js +26 -0
  46. package/dist/runtime/pm/commands/changeAttrs.d.ts +9 -0
  47. package/dist/runtime/pm/commands/changeAttrs.js +15 -0
  48. package/dist/runtime/pm/commands/deleteSelection.d.ts +9 -0
  49. package/dist/runtime/pm/commands/deleteSelection.js +8 -0
  50. package/dist/runtime/pm/commands/enter.d.ts +14 -0
  51. package/dist/runtime/pm/commands/enter.js +9 -0
  52. package/dist/runtime/pm/commands/insertBreak.d.ts +9 -0
  53. package/dist/runtime/pm/commands/insertBreak.js +22 -0
  54. package/dist/runtime/pm/features/Base/Base.d.ts +4 -0
  55. package/dist/runtime/pm/features/Base/Base.js +32 -0
  56. package/dist/runtime/pm/features/Base/commands/deleteNodes.d.ts +10 -0
  57. package/dist/runtime/pm/features/Base/commands/deleteNodes.js +29 -0
  58. package/dist/runtime/pm/features/Base/commands/setCursorVisible.d.ts +12 -0
  59. package/dist/runtime/pm/features/Base/commands/setCursorVisible.js +7 -0
  60. package/dist/runtime/pm/features/Base/plugins/debugSelectionPlugin.d.ts +9 -0
  61. package/dist/runtime/pm/features/Base/plugins/debugSelectionPlugin.js +48 -0
  62. package/dist/runtime/pm/features/Base/plugins/isCursorVisiblePlugin.d.ts +3 -0
  63. package/dist/runtime/pm/features/Base/plugins/isCursorVisiblePlugin.js +26 -0
  64. package/dist/runtime/pm/features/Base/plugins/isUsingTouchPlugin.d.ts +3 -0
  65. package/dist/runtime/pm/features/Base/plugins/isUsingTouchPlugin.js +38 -0
  66. package/dist/runtime/pm/features/Base/plugins/selectingIndicator.d.ts +5 -0
  67. package/dist/runtime/pm/features/Base/plugins/selectingIndicator.js +35 -0
  68. package/dist/runtime/pm/features/Base/plugins/unfocusedSelectionIndicatorPlugin.d.ts +33 -0
  69. package/dist/runtime/pm/features/Base/plugins/unfocusedSelectionIndicatorPlugin.js +66 -0
  70. package/dist/runtime/pm/features/Base/types.d.ts +3 -0
  71. package/dist/runtime/pm/features/Base/types.js +0 -0
  72. package/dist/runtime/pm/features/BaseShortcuts/BaseShortcuts.d.ts +3 -0
  73. package/dist/runtime/pm/features/BaseShortcuts/BaseShortcuts.js +34 -0
  74. package/dist/runtime/pm/features/Blockquote/Blockquote.d.ts +5 -0
  75. package/dist/runtime/pm/features/Blockquote/Blockquote.js +65 -0
  76. package/dist/runtime/pm/features/Blockquote/commands/blockquoteEnter.d.ts +11 -0
  77. package/dist/runtime/pm/features/Blockquote/commands/blockquoteEnter.js +31 -0
  78. package/dist/runtime/pm/features/Blockquote/commands/blockquoteShiftEnter.d.ts +11 -0
  79. package/dist/runtime/pm/features/Blockquote/commands/blockquoteShiftEnter.js +12 -0
  80. package/dist/runtime/pm/features/Blocks/Blocks.d.ts +2 -0
  81. package/dist/runtime/pm/features/Blocks/Blocks.js +2 -0
  82. package/dist/runtime/pm/features/Blocks/Item.d.ts +11 -0
  83. package/dist/runtime/pm/features/Blocks/Item.js +157 -0
  84. package/dist/runtime/pm/features/Blocks/List.d.ts +4 -0
  85. package/dist/runtime/pm/features/Blocks/List.js +59 -0
  86. package/dist/runtime/pm/features/Blocks/commands/changeItemType.d.ts +20 -0
  87. package/dist/runtime/pm/features/Blocks/commands/changeItemType.js +40 -0
  88. package/dist/runtime/pm/features/Blocks/commands/changeTypeAttr.d.ts +14 -0
  89. package/dist/runtime/pm/features/Blocks/commands/changeTypeAttr.js +28 -0
  90. package/dist/runtime/pm/features/Blocks/commands/copyOrMoveItem.d.ts +23 -0
  91. package/dist/runtime/pm/features/Blocks/commands/copyOrMoveItem.js +124 -0
  92. package/dist/runtime/pm/features/Blocks/commands/deleteItem.d.ts +12 -0
  93. package/dist/runtime/pm/features/Blocks/commands/deleteItem.js +8 -0
  94. package/dist/runtime/pm/features/Blocks/commands/indentItem.d.ts +12 -0
  95. package/dist/runtime/pm/features/Blocks/commands/indentItem.js +58 -0
  96. package/dist/runtime/pm/features/Blocks/commands/itemMenuCommands.d.ts +18 -0
  97. package/dist/runtime/pm/features/Blocks/commands/itemMenuCommands.js +40 -0
  98. package/dist/runtime/pm/features/Blocks/commands/moveItem.d.ts +12 -0
  99. package/dist/runtime/pm/features/Blocks/commands/moveItem.js +80 -0
  100. package/dist/runtime/pm/features/Blocks/commands/setNode.d.ts +20 -0
  101. package/dist/runtime/pm/features/Blocks/commands/setNode.js +87 -0
  102. package/dist/runtime/pm/features/Blocks/commands/splitItem.d.ts +17 -0
  103. package/dist/runtime/pm/features/Blocks/commands/splitItem.js +87 -0
  104. package/dist/runtime/pm/features/Blocks/commands/unindentItem.d.ts +12 -0
  105. package/dist/runtime/pm/features/Blocks/commands/unindentItem.js +42 -0
  106. package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.d.vue.ts +0 -0
  107. package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.vue +129 -0
  108. package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.vue.d.ts +0 -0
  109. package/dist/runtime/pm/features/Blocks/components/ItemMenu.d.vue.ts +6 -0
  110. package/dist/runtime/pm/features/Blocks/components/ItemMenu.vue +78 -0
  111. package/dist/runtime/pm/features/Blocks/components/ItemMenu.vue.d.ts +6 -0
  112. package/dist/runtime/pm/features/Blocks/components/ItemNodeView.d.vue.ts +92 -0
  113. package/dist/runtime/pm/features/Blocks/components/ItemNodeView.vue +350 -0
  114. package/dist/runtime/pm/features/Blocks/components/ItemNodeView.vue.d.ts +92 -0
  115. package/dist/runtime/pm/features/Blocks/components/defaultItemMenu.d.ts +5 -0
  116. package/dist/runtime/pm/features/Blocks/components/defaultItemMenu.js +42 -0
  117. package/dist/runtime/pm/features/Blocks/composables/useDragWithThreshold.d.ts +1 -0
  118. package/dist/runtime/pm/features/Blocks/composables/useDragWithThreshold.js +0 -0
  119. package/dist/runtime/pm/features/Blocks/composables/useHandleHeight.d.ts +5 -0
  120. package/dist/runtime/pm/features/Blocks/composables/useHandleHeight.js +22 -0
  121. package/dist/runtime/pm/features/Blocks/composables/useHasChildren.d.ts +5 -0
  122. package/dist/runtime/pm/features/Blocks/composables/useHasChildren.js +10 -0
  123. package/dist/runtime/pm/features/Blocks/composables/useNodeStates.d.ts +7 -0
  124. package/dist/runtime/pm/features/Blocks/composables/useNodeStates.js +20 -0
  125. package/dist/runtime/pm/features/Blocks/itemMenuMenuItems.d.ts +20 -0
  126. package/dist/runtime/pm/features/Blocks/itemMenuMenuItems.js +138 -0
  127. package/dist/runtime/pm/features/Blocks/plugins/ensureLastItemIsContentPlugin.d.ts +11 -0
  128. package/dist/runtime/pm/features/Blocks/plugins/ensureLastItemIsContentPlugin.js +36 -0
  129. package/dist/runtime/pm/features/Blocks/plugins/itemBlockIdPlugin.d.ts +8 -0
  130. package/dist/runtime/pm/features/Blocks/plugins/itemBlockIdPlugin.js +30 -0
  131. package/dist/runtime/pm/features/Blocks/plugins/itemHasSingularSelectionPlugin.d.ts +3 -0
  132. package/dist/runtime/pm/features/Blocks/plugins/itemHasSingularSelectionPlugin.js +30 -0
  133. package/dist/runtime/pm/features/Blocks/plugins/itemMenuPlugin.d.ts +4 -0
  134. package/dist/runtime/pm/features/Blocks/plugins/itemMenuPlugin.js +17 -0
  135. package/dist/runtime/pm/features/Blocks/states/stateful.d.ts +2 -0
  136. package/dist/runtime/pm/features/Blocks/states/stateful.js +37 -0
  137. package/dist/runtime/pm/features/Blocks/states/task/cancelled.svg +32 -0
  138. package/dist/runtime/pm/features/Blocks/states/task/checked.svg +27 -0
  139. package/dist/runtime/pm/features/Blocks/states/task/checked2.svg +24 -0
  140. package/dist/runtime/pm/features/Blocks/states/task/partial.svg +24 -0
  141. package/dist/runtime/pm/features/Blocks/states/task/partial2.svg +31 -0
  142. package/dist/runtime/pm/features/Blocks/states/task/unchecked.svg +20 -0
  143. package/dist/runtime/pm/features/Blocks/types.d.ts +43 -0
  144. package/dist/runtime/pm/features/Blocks/types.js +2 -0
  145. package/dist/runtime/pm/features/Blocks/utils/createItemMenuCommandExecuter.d.ts +3 -0
  146. package/dist/runtime/pm/features/Blocks/utils/createItemMenuCommandExecuter.js +24 -0
  147. package/dist/runtime/pm/features/Blocks/utils/fixBlockIds.d.ts +4 -0
  148. package/dist/runtime/pm/features/Blocks/utils/fixBlockIds.js +23 -0
  149. package/dist/runtime/pm/features/Blocks/utils/isValidId.d.ts +2 -0
  150. package/dist/runtime/pm/features/Blocks/utils/isValidId.js +7 -0
  151. package/dist/runtime/pm/features/CodeBlock/CodeBlock.d.ts +16 -0
  152. package/dist/runtime/pm/features/CodeBlock/CodeBlock.js +91 -0
  153. package/dist/runtime/pm/features/CodeBlock/build/generateHighlightJsInfo.d.ts +1 -0
  154. package/dist/runtime/pm/features/CodeBlock/build/generateHighlightJsInfo.js +63 -0
  155. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockEnterOrSplit.d.ts +9 -0
  156. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockEnterOrSplit.js +28 -0
  157. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockIndent.d.ts +9 -0
  158. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockIndent.js +39 -0
  159. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockUnindent.d.ts +9 -0
  160. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockUnindent.js +50 -0
  161. package/dist/runtime/pm/features/CodeBlock/commands/focusCodeBlockLanguage.d.ts +9 -0
  162. package/dist/runtime/pm/features/CodeBlock/commands/focusCodeBlockLanguage.js +27 -0
  163. package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.d.vue.ts +92 -0
  164. package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.vue +112 -0
  165. package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.vue.d.ts +92 -0
  166. package/dist/runtime/pm/features/CodeBlock/composables/useAsyncCodeBlockHighlighting.d.ts +28 -0
  167. package/dist/runtime/pm/features/CodeBlock/composables/useAsyncCodeBlockHighlighting.js +137 -0
  168. package/dist/runtime/pm/features/CodeBlock/composables/useHighlightJsTheme.d.ts +37 -0
  169. package/dist/runtime/pm/features/CodeBlock/composables/useHighlightJsTheme.js +101 -0
  170. package/dist/runtime/pm/features/CodeBlock/highlightJsInfo.d.ts +17 -0
  171. package/dist/runtime/pm/features/CodeBlock/highlightJsInfo.js +711 -0
  172. package/dist/runtime/pm/features/CodeBlock/types.d.ts +4 -0
  173. package/dist/runtime/pm/features/CodeBlock/types.js +2 -0
  174. package/dist/runtime/pm/features/Collaboration/Collaboration.d.ts +66 -0
  175. package/dist/runtime/pm/features/Collaboration/Collaboration.js +169 -0
  176. package/dist/runtime/pm/features/CommandsMenus/CommandBar.d.ts +19 -0
  177. package/dist/runtime/pm/features/CommandsMenus/CommandBar.js +97 -0
  178. package/dist/runtime/pm/features/CommandsMenus/commandBarMenuItems.d.ts +20 -0
  179. package/dist/runtime/pm/features/CommandsMenus/commandBarMenuItems.js +188 -0
  180. package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.d.vue.ts +8 -0
  181. package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.vue +58 -0
  182. package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.vue.d.ts +8 -0
  183. package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.d.vue.ts +12 -0
  184. package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.vue +42 -0
  185. package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.vue.d.ts +12 -0
  186. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.d.vue.ts +10 -0
  187. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.vue +55 -0
  188. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.vue.d.ts +10 -0
  189. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.d.vue.ts +11 -0
  190. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.vue +58 -0
  191. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.vue.d.ts +11 -0
  192. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.d.vue.ts +11 -0
  193. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.vue +54 -0
  194. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.vue.d.ts +11 -0
  195. package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.d.vue.ts +5 -0
  196. package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.vue +13 -0
  197. package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.vue.d.ts +5 -0
  198. package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.d.vue.ts +8 -0
  199. package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.vue +45 -0
  200. package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.vue.d.ts +8 -0
  201. package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.d.vue.ts +2 -0
  202. package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.vue +5 -0
  203. package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.vue.d.ts +2 -0
  204. package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.d.vue.ts +2 -0
  205. package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.vue +5 -0
  206. package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.vue.d.ts +2 -0
  207. package/dist/runtime/pm/features/CommandsMenus/types.d.ts +61 -0
  208. package/dist/runtime/pm/features/CommandsMenus/types.js +5 -0
  209. package/dist/runtime/pm/features/CommandsMenus/utils/defaultCommandExecutor.d.ts +3 -0
  210. package/dist/runtime/pm/features/CommandsMenus/utils/defaultCommandExecutor.js +11 -0
  211. package/dist/runtime/pm/features/CommandsMenus/utils/findCommand.d.ts +10 -0
  212. package/dist/runtime/pm/features/CommandsMenus/utils/findCommand.js +16 -0
  213. package/dist/runtime/pm/features/CommandsMenus/utils/popupPositionModifier.d.ts +5 -0
  214. package/dist/runtime/pm/features/CommandsMenus/utils/popupPositionModifier.js +9 -0
  215. package/dist/runtime/pm/features/CommandsMenus/utils/popupVerticalPositioner.d.ts +5 -0
  216. package/dist/runtime/pm/features/CommandsMenus/utils/popupVerticalPositioner.js +11 -0
  217. package/dist/runtime/pm/features/Document/Document.d.ts +3 -0
  218. package/dist/runtime/pm/features/Document/Document.js +6 -0
  219. package/dist/runtime/pm/features/DocumentApi/DocumentApi.d.ts +86 -0
  220. package/dist/runtime/pm/features/DocumentApi/DocumentApi.js +170 -0
  221. package/dist/runtime/pm/features/DocumentApi/composables/useEditorContent.d.ts +13 -0
  222. package/dist/runtime/pm/features/DocumentApi/composables/useEditorContent.js +76 -0
  223. package/dist/runtime/pm/features/DocumentApi/composables/useTestDocumentApi.d.ts +23 -0
  224. package/dist/runtime/pm/features/DocumentApi/composables/useTestDocumentApi.js +70 -0
  225. package/dist/runtime/pm/features/DocumentApi/types.d.ts +133 -0
  226. package/dist/runtime/pm/features/DocumentApi/types.js +1 -0
  227. package/dist/runtime/pm/features/DocumentApi/utils/convertFullTransactionForPartialState.d.ts +3 -0
  228. package/dist/runtime/pm/features/DocumentApi/utils/convertFullTransactionForPartialState.js +37 -0
  229. package/dist/runtime/pm/features/DocumentApi/utils/convertTrForInstance.d.ts +4 -0
  230. package/dist/runtime/pm/features/DocumentApi/utils/convertTrForInstance.js +13 -0
  231. package/dist/runtime/pm/features/DocumentApi/utils/convertTransactionForFullState.d.ts +2 -0
  232. package/dist/runtime/pm/features/DocumentApi/utils/convertTransactionForFullState.js +22 -0
  233. package/dist/runtime/pm/features/DocumentApi/utils/copyMeta.d.ts +2 -0
  234. package/dist/runtime/pm/features/DocumentApi/utils/copyMeta.js +6 -0
  235. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedJson.d.ts +1 -0
  236. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedJson.js +14 -0
  237. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedNodeFromDoc.d.ts +1 -0
  238. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedNodeFromDoc.js +14 -0
  239. package/dist/runtime/pm/features/DocumentApi/utils/getStateEmbedRange.d.ts +9 -0
  240. package/dist/runtime/pm/features/DocumentApi/utils/getStateEmbedRange.js +19 -0
  241. package/dist/runtime/pm/features/DocumentApi/utils/isEmbedId.d.ts +2 -0
  242. package/dist/runtime/pm/features/DocumentApi/utils/isEmbedId.js +3 -0
  243. package/dist/runtime/pm/features/EmbeddedDocument/Embedded.d.ts +24 -0
  244. package/dist/runtime/pm/features/EmbeddedDocument/Embedded.js +73 -0
  245. package/dist/runtime/pm/features/EmbeddedDocument/EmbeddedDocument.d.ts +23 -0
  246. package/dist/runtime/pm/features/EmbeddedDocument/EmbeddedDocument.js +70 -0
  247. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.d.vue.ts +14 -0
  248. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.vue +169 -0
  249. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.vue.d.ts +14 -0
  250. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.d.vue.ts +92 -0
  251. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.vue +170 -0
  252. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.vue.d.ts +92 -0
  253. package/dist/runtime/pm/features/EmbeddedDocument/composables/useEmbeddedEditor.d.ts +31 -0
  254. package/dist/runtime/pm/features/EmbeddedDocument/composables/useEmbeddedEditor.js +199 -0
  255. package/dist/runtime/pm/features/EmbeddedDocument/types.d.ts +49 -0
  256. package/dist/runtime/pm/features/EmbeddedDocument/types.js +6 -0
  257. package/dist/runtime/pm/features/EmbeddedDocument/utils/isEmbeddedBlock.d.ts +9 -0
  258. package/dist/runtime/pm/features/EmbeddedDocument/utils/isEmbeddedBlock.js +3 -0
  259. package/dist/runtime/pm/features/EmbeddedDocument/utils/redirectFromEmbedded.d.ts +28 -0
  260. package/dist/runtime/pm/features/EmbeddedDocument/utils/redirectFromEmbedded.js +17 -0
  261. package/dist/runtime/pm/features/FileLoader/FileLoader.d.ts +16 -0
  262. package/dist/runtime/pm/features/FileLoader/FileLoader.js +99 -0
  263. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/FileLoaderHandler.d.ts +28 -0
  264. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/FileLoaderHandler.js +69 -0
  265. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/TestFileLoaderHandler.d.ts +11 -0
  266. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/TestFileLoaderHandler.js +49 -0
  267. package/dist/runtime/pm/features/FileLoader/commands/insertFile.d.ts +17 -0
  268. package/dist/runtime/pm/features/FileLoader/commands/insertFile.js +39 -0
  269. package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.d.vue.ts +92 -0
  270. package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.vue +38 -0
  271. package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.vue.d.ts +92 -0
  272. package/dist/runtime/pm/features/FileLoader/plugins/fileLoaderPlugin.d.ts +5 -0
  273. package/dist/runtime/pm/features/FileLoader/plugins/fileLoaderPlugin.js +61 -0
  274. package/dist/runtime/pm/features/FileLoader/types.d.ts +73 -0
  275. package/dist/runtime/pm/features/FileLoader/types.js +0 -0
  276. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNode.d.ts +4 -0
  277. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNode.js +27 -0
  278. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNodes.d.ts +9 -0
  279. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNodes.js +22 -0
  280. package/dist/runtime/pm/features/FileLoader/utils/findLoadingNodePos.d.ts +2 -0
  281. package/dist/runtime/pm/features/FileLoader/utils/findLoadingNodePos.js +11 -0
  282. package/dist/runtime/pm/features/FileLoader/utils/optionsCheck.d.ts +3 -0
  283. package/dist/runtime/pm/features/FileLoader/utils/optionsCheck.js +8 -0
  284. package/dist/runtime/pm/features/FileLoader/utils/readAsDataUrl.d.ts +1 -0
  285. package/dist/runtime/pm/features/FileLoader/utils/readAsDataUrl.js +12 -0
  286. package/dist/runtime/pm/features/HardBreak/HardBreak.d.ts +5 -0
  287. package/dist/runtime/pm/features/HardBreak/HardBreak.js +14 -0
  288. package/dist/runtime/pm/features/Heading/Heading.d.ts +24 -0
  289. package/dist/runtime/pm/features/Heading/Heading.js +85 -0
  290. package/dist/runtime/pm/features/Heading/commands/changeLevelAttr.d.ts +16 -0
  291. package/dist/runtime/pm/features/Heading/commands/changeLevelAttr.js +33 -0
  292. package/dist/runtime/pm/features/Heading/types.d.ts +14 -0
  293. package/dist/runtime/pm/features/Heading/types.js +0 -0
  294. package/dist/runtime/pm/features/Highlight/Highlight.d.ts +72 -0
  295. package/dist/runtime/pm/features/Highlight/Highlight.js +163 -0
  296. package/dist/runtime/pm/features/Highlight/retyped/tiptapHighlight.d.ts +3 -0
  297. package/dist/runtime/pm/features/Highlight/retyped/tiptapHighlight.js +5 -0
  298. package/dist/runtime/pm/features/Highlight/types.d.ts +27 -0
  299. package/dist/runtime/pm/features/Highlight/types.js +2 -0
  300. package/dist/runtime/pm/features/History/History.d.ts +35 -0
  301. package/dist/runtime/pm/features/History/History.js +63 -0
  302. package/dist/runtime/pm/features/Iframe/Iframe.d.ts +21 -0
  303. package/dist/runtime/pm/features/Iframe/Iframe.js +127 -0
  304. package/dist/runtime/pm/features/Iframe/IframeParsers.d.ts +37 -0
  305. package/dist/runtime/pm/features/Iframe/IframeParsers.js +88 -0
  306. package/dist/runtime/pm/features/Iframe/components/IframeNodeView.d.vue.ts +92 -0
  307. package/dist/runtime/pm/features/Iframe/components/IframeNodeView.vue +79 -0
  308. package/dist/runtime/pm/features/Iframe/components/IframeNodeView.vue.d.ts +92 -0
  309. package/dist/runtime/pm/features/Iframe/types.d.ts +5 -0
  310. package/dist/runtime/pm/features/Iframe/types.js +0 -0
  311. package/dist/runtime/pm/features/Image/Image.d.ts +2 -0
  312. package/dist/runtime/pm/features/Image/Image.js +13 -0
  313. package/dist/runtime/pm/features/Link/Link.d.ts +38 -0
  314. package/dist/runtime/pm/features/Link/Link.js +241 -0
  315. package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.d.vue.ts +28 -0
  316. package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.vue +113 -0
  317. package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.vue.d.ts +28 -0
  318. package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.d.vue.ts +29 -0
  319. package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.vue +104 -0
  320. package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.vue.d.ts +29 -0
  321. package/dist/runtime/pm/features/Link/components/BubbleMenuLink.d.vue.ts +11 -0
  322. package/dist/runtime/pm/features/Link/components/BubbleMenuLink.vue +126 -0
  323. package/dist/runtime/pm/features/Link/components/BubbleMenuLink.vue.d.ts +11 -0
  324. package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.d.vue.ts +18 -0
  325. package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.vue +54 -0
  326. package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.vue.d.ts +18 -0
  327. package/dist/runtime/pm/features/Link/types.d.ts +44 -0
  328. package/dist/runtime/pm/features/Link/types.js +3 -0
  329. package/dist/runtime/pm/features/Menus/Menus.d.ts +45 -0
  330. package/dist/runtime/pm/features/Menus/Menus.js +142 -0
  331. package/dist/runtime/pm/features/Menus/components/MarkMenuManager.d.vue.ts +6 -0
  332. package/dist/runtime/pm/features/Menus/components/MarkMenuManager.vue +165 -0
  333. package/dist/runtime/pm/features/Menus/components/MarkMenuManager.vue.d.ts +6 -0
  334. package/dist/runtime/pm/features/Menus/types.d.ts +51 -0
  335. package/dist/runtime/pm/features/Menus/types.js +3 -0
  336. package/dist/runtime/pm/features/Menus/utils/isMarkMenu.d.ts +2 -0
  337. package/dist/runtime/pm/features/Menus/utils/isMarkMenu.js +3 -0
  338. package/dist/runtime/pm/features/Tables/commands/tableEnter.d.ts +15 -0
  339. package/dist/runtime/pm/features/Tables/commands/tableEnter.js +19 -0
  340. package/dist/runtime/pm/features/Tables/index.d.ts +9 -0
  341. package/dist/runtime/pm/features/Tables/index.js +44 -0
  342. package/dist/runtime/pm/generator.d.ts +82 -0
  343. package/dist/runtime/pm/generator.js +205 -0
  344. package/dist/runtime/pm/schema.d.ts +4 -0
  345. package/dist/runtime/pm/schema.js +80 -0
  346. package/dist/runtime/pm/testSchema.d.ts +5 -0
  347. package/dist/runtime/pm/testSchema.js +30 -0
  348. package/dist/runtime/pm/utils/createDropIndicator.d.ts +23 -0
  349. package/dist/runtime/pm/utils/createDropIndicator.js +36 -0
  350. package/dist/runtime/pm/utils/createStateOnlyPluginApply.d.ts +2 -0
  351. package/dist/runtime/pm/utils/createStateOnlyPluginApply.js +9 -0
  352. package/dist/runtime/pm/utils/createStateOnlyPluginObjApply.d.ts +2 -0
  353. package/dist/runtime/pm/utils/createStateOnlyPluginObjApply.js +14 -0
  354. package/dist/runtime/pm/utils/dropPointInfo.d.ts +56 -0
  355. package/dist/runtime/pm/utils/dropPointInfo.js +28 -0
  356. package/dist/runtime/pm/utils/findUpwards.d.ts +20 -0
  357. package/dist/runtime/pm/utils/findUpwards.js +18 -0
  358. package/dist/runtime/pm/utils/generateRandomDoc.d.ts +23 -0
  359. package/dist/runtime/pm/utils/generateRandomDoc.js +83 -0
  360. package/dist/runtime/pm/utils/generateRandomTree.d.ts +50 -0
  361. package/dist/runtime/pm/utils/generateRandomTree.js +38 -0
  362. package/dist/runtime/pm/utils/getChildChunks.d.ts +3 -0
  363. package/dist/runtime/pm/utils/getChildChunks.js +15 -0
  364. package/dist/runtime/pm/utils/getDiffReplacementRange.d.ts +20 -0
  365. package/dist/runtime/pm/utils/getDiffReplacementRange.js +9 -0
  366. package/dist/runtime/pm/utils/getElMaxVisualSize.d.ts +9 -0
  367. package/dist/runtime/pm/utils/getElMaxVisualSize.js +7 -0
  368. package/dist/runtime/pm/utils/getElPropertyAsInt.d.ts +4 -0
  369. package/dist/runtime/pm/utils/getElPropertyAsInt.js +8 -0
  370. package/dist/runtime/pm/utils/getGroupNodeNames.d.ts +2 -0
  371. package/dist/runtime/pm/utils/getGroupNodeNames.js +7 -0
  372. package/dist/runtime/pm/utils/getMarkPosition.d.ts +11 -0
  373. package/dist/runtime/pm/utils/getMarkPosition.js +34 -0
  374. package/dist/runtime/pm/utils/getMarksInSelection.d.ts +3 -0
  375. package/dist/runtime/pm/utils/getMarksInSelection.js +16 -0
  376. package/dist/runtime/pm/utils/getTypeByName.d.ts +2 -0
  377. package/dist/runtime/pm/utils/getTypeByName.js +5 -0
  378. package/dist/runtime/pm/utils/index.d.ts +15 -0
  379. package/dist/runtime/pm/utils/index.js +15 -0
  380. package/dist/runtime/pm/utils/internal/createNodeTypesList.d.ts +2 -0
  381. package/dist/runtime/pm/utils/internal/createNodeTypesList.js +17 -0
  382. package/dist/runtime/pm/utils/internal/debugMap.d.ts +7 -0
  383. package/dist/runtime/pm/utils/internal/debugMap.js +24 -0
  384. package/dist/runtime/pm/utils/internal/debugNode.d.ts +2 -0
  385. package/dist/runtime/pm/utils/internal/debugNode.js +18 -0
  386. package/dist/runtime/pm/utils/internal/debugSel.d.ts +5 -0
  387. package/dist/runtime/pm/utils/internal/debugSel.js +8 -0
  388. package/dist/runtime/pm/utils/internal/recurse.d.ts +2 -0
  389. package/dist/runtime/pm/utils/internal/recurse.js +39 -0
  390. package/dist/runtime/pm/utils/internal/stripBlockId.d.ts +2 -0
  391. package/dist/runtime/pm/utils/internal/stripBlockId.js +9 -0
  392. package/dist/runtime/pm/utils/mapSelection.d.ts +8 -0
  393. package/dist/runtime/pm/utils/mapSelection.js +12 -0
  394. package/dist/runtime/pm/utils/nodesBetween.d.ts +21 -0
  395. package/dist/runtime/pm/utils/nodesBetween.js +21 -0
  396. package/dist/runtime/pm/utils/pointToPmPoint.d.ts +2 -0
  397. package/dist/runtime/pm/utils/pointToPmPoint.js +3 -0
  398. package/dist/runtime/pm/utils/splitIntoChunks.d.ts +32 -0
  399. package/dist/runtime/pm/utils/splitIntoChunks.js +31 -0
  400. package/dist/runtime/testDocuments.d.ts +53 -0
  401. package/dist/runtime/testDocuments.js +122 -0
  402. package/dist/runtime/types/index.d.ts +53 -0
  403. package/dist/runtime/types/index.js +9 -0
  404. package/dist/types.d.mts +2 -12
  405. package/package.json +11 -9
  406. package/src/runtime/pm/commands/changeAttrs.ts +1 -1
  407. package/src/runtime/pm/features/Blocks/Item.ts +1 -1
  408. package/src/runtime/pm/features/Blocks/commands/moveItem.ts +1 -1
  409. package/src/runtime/pm/features/Blocks/components/DragTreeHandle.vue +14 -9
  410. package/src/runtime/pm/features/EmbeddedDocument/Embedded.ts +1 -1
  411. package/src/runtime/pm/features/FileLoader/types.ts +2 -2
  412. package/src/runtime/pm/generator.ts +266 -0
  413. package/src/runtime/pm/schema.ts +1 -0
  414. package/src/runtime/pm/utils/generateRandomDoc.ts +140 -0
  415. package/src/runtime/pm/utils/generateRandomTree.ts +100 -0
  416. package/dist/module.d.cts +0 -2
@@ -0,0 +1,39 @@
1
+ export function recurse(node, deep = true, props = [], depth = 0) {
2
+ const obj = {};
3
+ const text = [];
4
+ text.push(`=${node?.type?.name ?? "any"} ${node.firstChild?.textContent ?? ""}`);
5
+ if (node.textContent !== "" && node.isText) {
6
+ text.push(`"${node.textContent}"`);
7
+ }
8
+ if (props.includes("size")) {
9
+ text.push(node.nodeSize);
10
+ }
11
+ if (props.includes("is")) {
12
+ obj.isBlock = node.isBlock;
13
+ obj.isInline = node.isInline;
14
+ obj.isLeaf = node.isLeaf;
15
+ obj.isText = node.isText;
16
+ obj.isTextblock = node.isTextblock;
17
+ obj.isAtom = node.isAtom;
18
+ }
19
+ if (props.includes("attrs")) {
20
+ obj.attrs = node.attrs;
21
+ }
22
+ const content = node.content.content;
23
+ if (content && content.length > 0) {
24
+ if (deep) {
25
+ obj.children = `
26
+ ${Object.values(content).map((nodeInner) => recurse(nodeInner, deep, props, depth + 1)).join("\n")}`;
27
+ } else {
28
+ obj.children = `[${content.length}]`;
29
+ }
30
+ }
31
+ const indent = " ".repeat(depth);
32
+ const top = text.length > 0 ? indent + text.join(`
33
+ ${indent}`) : "";
34
+ const bottomContent = Object.entries(obj).map(([key, val]) => key === "children" ? `${indent}${val}` : key === "attrs" ? `${val ? indent + (Object.keys(val).length > 0 ? JSON.stringify(val) : "") : ""}` : `${indent}${key}: ${val}`);
35
+ const bottom = bottomContent.length > 0 ? `
36
+ ${bottomContent.join("\n")}` : "";
37
+ const res = top + bottom;
38
+ return res;
39
+ }
@@ -0,0 +1,2 @@
1
+ /** For testing only, see testSchema.ts. */
2
+ export declare function stripBlockId(obj: any): string;
@@ -0,0 +1,9 @@
1
+ import { Node } from "@tiptap/pm/model";
2
+ export function stripBlockId(obj) {
3
+ if (obj instanceof Node && "attrs" in obj) {
4
+ delete obj.attrs.blockId;
5
+ } else {
6
+ delete obj.blockId;
7
+ }
8
+ return obj;
9
+ }
@@ -0,0 +1,8 @@
1
+ import type { Selection, Transaction } from "@tiptap/pm/state";
2
+ /**
3
+ * Mimicks mapping a selection for the "block selections" returned by {@link splitIntoChunks}.
4
+ */
5
+ export declare const mapSelection: (tr: Transaction, selection: Pick<Selection, "$from" | "$to">) => Pick<Selection, "$from" | "$to"> & {
6
+ from: number;
7
+ to: number;
8
+ };
@@ -0,0 +1,12 @@
1
+ export const mapSelection = (tr, selection) => {
2
+ const from = tr.mapping.map(selection.$from.pos);
3
+ const $from = tr.doc.resolve(from);
4
+ const to = tr.mapping.map(selection.$to.pos);
5
+ const $to = tr.doc.resolve(to);
6
+ return {
7
+ $from,
8
+ $to,
9
+ from,
10
+ to
11
+ };
12
+ };
@@ -0,0 +1,21 @@
1
+ import type { Node } from "@tiptap/pm/model";
2
+ import type { Selection } from "@tiptap/pm/state";
3
+ import type { NodesBetweenFilter } from "../../types/index.js";
4
+ /**
5
+ * A more intuitive nodesBetween wrapper. Goes only through the nodes inside or touching the selection.
6
+ *
7
+ * Does not go through wrapping parents (except the first by default) that start/end before/after the given positions like nodesBetween.
8
+ *
9
+ * This can be changed by using the `shift` option, or `fromShift` and `toShift`.
10
+ *
11
+ * For example, if the cursor is in the middle of some text, using `{shift: 0}`, you would only get the text node.
12
+ *
13
+ * - Te|xt
14
+ *
15
+ * To get whatever it's parent item is, we need `{shift: -1}` (the default, since this is the most common use case).
16
+ */
17
+ export declare function nodesBetween(doc: Node, { $from, $to }: Pick<Selection, "$from" | "$to">, filter: NodesBetweenFilter, { shift, fromShift, toShift }?: {
18
+ shift?: number;
19
+ fromShift?: number;
20
+ toShift?: number;
21
+ }): void;
@@ -0,0 +1,21 @@
1
+ export function nodesBetween(doc, { $from, $to }, filter, {
2
+ shift = -1,
3
+ fromShift,
4
+ toShift
5
+ } = {}) {
6
+ let shiftFrom = fromShift;
7
+ let shiftTo = toShift;
8
+ if (shift) {
9
+ shiftFrom = shift;
10
+ shiftTo = shift;
11
+ }
12
+ doc.nodesBetween($from.start(), $to.end(), (node, pos, ...args) => {
13
+ const isAfterStart = pos >= $from.start(shiftFrom) - 1;
14
+ const isBeforeEnd = pos <= $to.end(shiftTo) + 1;
15
+ if (isAfterStart && isBeforeEnd) {
16
+ const res = filter(node, pos, ...args);
17
+ return res;
18
+ }
19
+ return void 0;
20
+ });
21
+ }
@@ -0,0 +1,2 @@
1
+ import type { PmPoint, Point } from "../../types/index.js";
2
+ export declare function pointToPmPoint(point: Point): PmPoint;
@@ -0,0 +1,3 @@
1
+ export function pointToPmPoint(point) {
2
+ return { left: point.x, top: point.y };
3
+ }
@@ -0,0 +1,32 @@
1
+ import { type Mutable } from "@alanscodelog/utils";
2
+ import type { Node, NodeType } from "@tiptap/pm/model";
3
+ import type { Selection } from "@tiptap/pm/state";
4
+ /**
5
+ * When we have a selection like so:
6
+ * ```
7
+ * - A1
8
+ * - B|1
9
+ * - A|2
10
+ * - B2
11
+ * ```
12
+ *
13
+ * We can't lift/sink the range because they're in different depths.
14
+ *
15
+ * This will split a selection into a list of {$from, $to} that can be lifted/sunk, e.g. B1 and A2 (which includes it's children).
16
+ *
17
+ * If $from.depth > $to.depth like this, nothing is split (unless splitChildren is true) since sinking A1 implies sinking all it's children. The selection returned is adjusted though so $pos.node() is of the wanted node type.
18
+ *
19
+ * ```
20
+ * - A|1
21
+ * - B|1
22
+ * - A2
23
+ * ```
24
+ * `splitChildren` should be true when lifting a list, if we want the above to lift B1 if the selection touches it.
25
+ *
26
+ * The function returns a selection like object with just $from and $to. This is because we need something like a BlockSelection really (multiple node selection), but NodeSelection does not support this.
27
+ *
28
+ * {@link mapSelection} can be used to map the returned selection. This is necessary if changing the chunks as you go through them.
29
+ */
30
+ export declare const splitIntoChunks: (doc: Node, itemType: NodeType, selection: Pick<Selection, "$from" | "$to">, { splitChildren }?: {
31
+ splitChildren?: boolean;
32
+ }) => Mutable<Pick<Selection, "$from" | "$to">>[];
@@ -0,0 +1,31 @@
1
+ import { last } from "@alanscodelog/utils";
2
+ import { nodesBetween } from "./nodesBetween.js";
3
+ export const splitIntoChunks = (doc, itemType, selection, {
4
+ splitChildren = false
5
+ } = {}) => {
6
+ const { $from, $to } = selection;
7
+ const $newFrom = doc.resolve($from.before());
8
+ const $lastTo = doc.resolve($to.after());
9
+ const pairs = [{
10
+ $from: $newFrom,
11
+ $to: $lastTo
12
+ }];
13
+ let searchedDepth = 0;
14
+ let $last = $from;
15
+ nodesBetween(doc, { $from, $to }, (node, pos) => {
16
+ if (node?.type === itemType) {
17
+ const $pos = doc.resolve(pos + 1);
18
+ if ($pos.depth < $newFrom.depth - searchedDepth * 2) {
19
+ last(pairs).$to = $last;
20
+ pairs.push({ $from: $pos, $to: $lastTo });
21
+ searchedDepth++;
22
+ } else if (splitChildren && $pos.depth !== $newFrom.depth) {
23
+ pairs.push({ $from: $pos, $to: $lastTo });
24
+ }
25
+ $last = $pos;
26
+ return splitChildren;
27
+ }
28
+ return true;
29
+ });
30
+ return pairs;
31
+ };
@@ -0,0 +1,53 @@
1
+ export declare const someDoc: {
2
+ title: string;
3
+ content: string;
4
+ embedder: string;
5
+ subEmbedders: string[];
6
+ };
7
+ export declare const someDoc2: {
8
+ title: string;
9
+ content: string;
10
+ embedder: string;
11
+ subEmbedders: string[];
12
+ };
13
+ export declare const someDoc3: {
14
+ title: string;
15
+ content: string;
16
+ embedder: string;
17
+ subEmbedders: string[];
18
+ };
19
+ export declare const contentSimpleTable: string;
20
+ export declare const contentParagraphs: string;
21
+ export declare const contentMarks: string;
22
+ export declare const contentBlockTypes: string;
23
+ export declare const contentAllNodeTypes: string;
24
+ export declare const root: {
25
+ title: string;
26
+ embedder: string;
27
+ content: string;
28
+ };
29
+ export declare const testDocuments: {
30
+ root: {
31
+ title: string;
32
+ embedder: string;
33
+ content: string;
34
+ };
35
+ someDoc: {
36
+ title: string;
37
+ content: string;
38
+ embedder: string;
39
+ subEmbedders: string[];
40
+ };
41
+ someDoc2: {
42
+ title: string;
43
+ content: string;
44
+ embedder: string;
45
+ subEmbedders: string[];
46
+ };
47
+ someDoc3: {
48
+ title: string;
49
+ content: string;
50
+ embedder: string;
51
+ subEmbedders: string[];
52
+ };
53
+ };
@@ -0,0 +1,122 @@
1
+ import { crop as html } from "@alanscodelog/utils/crop";
2
+ export const someDoc = {
3
+ title: "Some Doc",
4
+ content: html`
5
+ <li blockid="some-sub-id"><p>A</p></li>
6
+ <li blockid="some-sub-id2"><p>B</p></li>
7
+ `,
8
+ embedder: html`
9
+ <li><div type="embeddedDoc" embeddocid="someDoc"></div></li>
10
+ `,
11
+ subEmbedders: [
12
+ html` <li><div type="embeddedDoc" embeddocid="someDoc" embedblockid="some-sub-id"></div></li> `,
13
+ html` <li><div type="embeddedDoc" embeddocid="someDoc" embedblockid="some-sub-id2"></div></li> `
14
+ ]
15
+ };
16
+ export const someDoc2 = {
17
+ title: "Some Doc 2",
18
+ content: html`
19
+ <li blockid="some-sub-id"><p>C</p></li>
20
+ `,
21
+ embedder: html`
22
+ <li><div type="embeddedDoc" embeddocid="someDoc2"></div></li>
23
+ `,
24
+ subEmbedders: [html`
25
+ <li><div type="embeddedDoc" embeddocid="someDoc2" embedblockid="some-sub-id"></div></li>
26
+ `]
27
+ };
28
+ export const someDoc3 = {
29
+ title: "Some Doc 3",
30
+ content: html`
31
+ <li blockid="some-sub-id"><p>D</p></li>
32
+ <li blockid="some-sub-id2"><p>E</p></li>
33
+ `,
34
+ embedder: html`
35
+ <li><div type="embeddedDoc" embeddocid="someDoc3"></div></li>
36
+ `,
37
+ subEmbedders: [
38
+ html` <li><div type="embeddedDoc" embeddocid="someDoc3" embedblockid="some-sub-id"></div></li> `,
39
+ html` <li><div type="embeddedDoc" embeddocid="someDoc3" embedblockid="some-sub-id2"></div></li> `
40
+ ]
41
+ };
42
+ export const contentSimpleTable = html`
43
+ <li>
44
+ <table>
45
+ <thead>
46
+ <th>a</th>
47
+ <th>b</th>
48
+ </thead>
49
+ <tbody>
50
+ <tr>
51
+ <td>a2</td>
52
+ <td>b2</td>
53
+ </tr>
54
+ <tr>
55
+ <td>a3</td>
56
+ <td>b3</td>
57
+ </tr>
58
+ </tbody>
59
+ </table>
60
+ </li>
61
+ `;
62
+ export const contentParagraphs = html`
63
+ <li><p>Paragraph</p></li>
64
+ <li><p>Paragraph with<br/> line break.</p></li>
65
+ `;
66
+ export const contentMarks = html`
67
+ <li><p><mark data-color="yellow">Yellow</mark></p></li>
68
+ <li><p><mark data-color="orange">Orange</mark></p></li>
69
+ <li><p><mark data-color="red">Red</mark></p></li>
70
+ <li><p><mark data-color="green">Green</mark></p></li>
71
+ <li><p><mark data-color="blue">Blue</mark></p></li>
72
+ <li><b>Bold</b></li>
73
+ <li><i>Italic</i></li>
74
+ <li><s>Strikethrough</s></li>
75
+ <li><u>Underline</u></li>
76
+ <li><sub>Subscript</sub></li>
77
+ <li><sup>Superscript</sup></li>
78
+ <li><code>Inline Code</code></li>
79
+ <li><b> Bold <i> Italic <a href="https://www.google.com">Link</a></i></b></li>
80
+ <li><b> Bold <i> Italic <a href="internal://some-id">Internal Link</a></i></b></li>
81
+ `;
82
+ export const contentBlockTypes = html`
83
+ <li><pre><code language="css">.code .block {
84
+ color: red;
85
+ }</code></pre></li>
86
+ <li><blockquote><p>Blockquote</p></blockquote></li>
87
+ <li><h1>Heading 1</h1></li>
88
+ <li><h2>Heading 2</h2></li>
89
+ <li><h3>Heading 3</h3></li>
90
+ <li><h4>Heading 4</h4></li>
91
+ <li><h5>Heading 5</h5></li>
92
+ <li><h6>Heading 6</h6></li>
93
+ <li><p>Image</p></li>
94
+ <!-- is removed-->
95
+ <li><div type="fileLoader" file-name="some-file.png" file-loading="true" file-loading-id="some-id"></div> </li>
96
+ <li><img src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAADMElEQVR4nOzVwQnAIBQFQYXff81RUkQCOyDj1YOPnbXWPmeTRef+/3O/OyBjzh3CD95BfqICMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMO0TAAD//2Anhf4QtqobAAAAAElFTkSuQmCC"/></li>
97
+ ${contentSimpleTable}
98
+ ${someDoc.embedder}
99
+ ${someDoc.subEmbedders[0]}
100
+ `;
101
+ export const contentAllNodeTypes = html`
102
+ ${contentParagraphs}
103
+ ${contentMarks}
104
+ ${contentBlockTypes}
105
+ `;
106
+ export const root = {
107
+ title: "Root",
108
+ embedder: html`
109
+ <li><div embeddocid="root"></div></li>
110
+ `,
111
+ content: html`
112
+ <ul>
113
+ ${contentAllNodeTypes}
114
+ <ul>
115
+ `
116
+ };
117
+ export const testDocuments = {
118
+ root,
119
+ someDoc,
120
+ someDoc2,
121
+ someDoc3
122
+ };
@@ -0,0 +1,53 @@
1
+ import type { Node } from "@tiptap/pm/model";
2
+ export * from "../pm/features/Link/types.js";
3
+ export * from "../pm/features/Base/types.js";
4
+ export * from "../pm/features/Menus/types.js";
5
+ export * from "../pm/features/Blocks/types.js";
6
+ export * from "../pm/features/CommandsMenus/types.js";
7
+ export * from "../pm/features/CodeBlock/types.js";
8
+ export * from "../pm/features/FileLoader/types.js";
9
+ export * from "../pm/features/DocumentApi/types.js";
10
+ export * from "../pm/features/EmbeddedDocument/types.js";
11
+ export type NodesBetweenFilter = (node: Node | null, start: number, parent: Node | null, index: number) => boolean;
12
+ export type PmPoint = {
13
+ left: number;
14
+ top: number;
15
+ };
16
+ export type Point = {
17
+ x: number;
18
+ y: number;
19
+ };
20
+ export type CssVariables = {
21
+ /** The space between the node type indicator and the node. */
22
+ pmNodeTypeMargin: string;
23
+ pmUnfocusedSelectionColor: string;
24
+ /**
25
+ * The background color for the code blocks.
26
+ * This has not effect unless you've injected the css. See {@link useHighlightJsTheme}.
27
+ */
28
+ pmCodeBlockBgColor: string;
29
+ pmMaxEmbedWidth: string;
30
+ pmDragScrollMargin: string;
31
+ /** The space between the handle and the node type indicator or node. */
32
+ dragHandleMargin: string;
33
+ /** The size of the draggable handle. */
34
+ dragHandleSize: string;
35
+ dragHandleImage: string;
36
+ dragHandleCollapseIndicatorImage: string;
37
+ };
38
+ export type HTMLAttributesOptions = {
39
+ HTMLAttributes: Record<string, any>;
40
+ };
41
+ export type CommandAttributeOptions<T> = CommandNodeOptions & {
42
+ attributeKey: string;
43
+ allowedValues: T[];
44
+ };
45
+ export type CommandNodeOptions = {
46
+ nodeType: string;
47
+ };
48
+ export type CommandToggleNodesOptions = {
49
+ /** Like {@link toggleNodeTypeNames}, but for groups. */
50
+ toggleGroups?: string[];
51
+ /** A list of node types that can be converted to the wanted node type. */
52
+ toggleNodeTypeNames?: string[];
53
+ };
@@ -0,0 +1,9 @@
1
+ export * from "../pm/features/Link/types.js";
2
+ export * from "../pm/features/Base/types.js";
3
+ export * from "../pm/features/Menus/types.js";
4
+ export * from "../pm/features/Blocks/types.js";
5
+ export * from "../pm/features/CommandsMenus/types.js";
6
+ export * from "../pm/features/CodeBlock/types.js";
7
+ export * from "../pm/features/FileLoader/types.js";
8
+ export * from "../pm/features/DocumentApi/types.js";
9
+ export * from "../pm/features/EmbeddedDocument/types.js";
package/dist/types.d.mts CHANGED
@@ -1,13 +1,3 @@
1
- import type { ModuleHooks, ModuleRuntimeHooks, ModuleRuntimeConfig, ModulePublicRuntimeConfig } from './module.mjs'
1
+ export { default } from './module.mjs'
2
2
 
3
- declare module '#app' {
4
- interface RuntimeNuxtHooks extends ModuleRuntimeHooks {}
5
- }
6
-
7
- declare module '@nuxt/schema' {
8
- interface NuxtHooks extends ModuleHooks {}
9
- interface RuntimeConfig extends ModuleRuntimeConfig {}
10
- interface PublicRuntimeConfig extends ModulePublicRuntimeConfig {}
11
- }
12
-
13
- export * from "./module.mjs"
3
+ export { type ModuleOptions } from './module.mjs'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@witchcraft/editor",
3
3
  "description": "Block base prosemirror editor with partial/full editable document embeds, infinite embeds, and document uploads.",
4
- "version": "0.0.5",
4
+ "version": "0.0.7",
5
5
  "main": "./dist/runtime/main.lib.js",
6
6
  "type": "module",
7
7
  "sideEffects": false,
@@ -91,7 +91,7 @@
91
91
  "@tiptap/extension-underline": "^3.4.2",
92
92
  "@tiptap/pm": "^3.4.2",
93
93
  "@tiptap/vue-3": "^3.4.2",
94
- "@witchcraft/ui": "^0.3.2",
94
+ "@witchcraft/ui": "^0.3.7",
95
95
  "tailwindcss": "^4.1.13",
96
96
  "vue": "^3.5.21"
97
97
  },
@@ -110,13 +110,15 @@
110
110
  "@alanscodelog/eslint-config": "^6.3.1",
111
111
  "@alanscodelog/utils": "^6.0.2",
112
112
  "@commitlint/cli": "^19.8.1",
113
+ "@faker-js/faker": "^10.0.0",
113
114
  "@fortawesome/fontawesome-svg-core": "^7.0.1",
114
115
  "@fortawesome/free-brands-svg-icons": "^7.0.1",
115
116
  "@fortawesome/free-regular-svg-icons": "^7.0.1",
116
117
  "@fortawesome/free-solid-svg-icons": "^7.0.1",
117
118
  "@nuxt/eslint-config": "^1.9.0",
118
- "@witchcraft/nuxt-utils": "^0.3.2",
119
- "@witchcraft/ui": "^0.3.2",
119
+ "@tiptap/html": "^3.4.2",
120
+ "@witchcraft/nuxt-utils": "^0.3.6",
121
+ "@witchcraft/ui": "^0.3.7",
120
122
  "colord": "^2.9.3",
121
123
  "defu": "^6.1.4",
122
124
  "highlight.js": "^11.11.1",
@@ -141,7 +143,7 @@
141
143
  "@nuxt/module-builder": "^1.0.2",
142
144
  "@nuxt/schema": "^4.1.2",
143
145
  "@nuxt/types": "^2.18.1",
144
- "@playwright/test": "^1.54.0",
146
+ "@playwright/test": "=1.56.0",
145
147
  "@rollup/plugin-dynamic-import-vars": "^2.1.5",
146
148
  "@tailwindcss/cli": "^4.1.13",
147
149
  "@tailwindcss/vite": "^4.1.13",
@@ -150,18 +152,18 @@
150
152
  "@vitejs/plugin-vue": "^6.0.1",
151
153
  "@vitest/browser": "^3.2.4",
152
154
  "@vitest/coverage-v8": "^3.2.4",
153
- "@witchcraft/ui": "^0.3.2",
155
+ "@witchcraft/ui": "^0.3.7",
154
156
  "concurrently": "^9.2.1",
155
157
  "cross-env": "^10.0.0",
156
- "eslint": "^9.35.0",
158
+ "eslint": "^9.38.0",
157
159
  "fast-glob": "^3.3.3",
158
160
  "http-server": "^14.1.1",
159
161
  "husky": "^9.1.7",
160
162
  "madge": "^8.0.0",
161
163
  "nuxt": "^4.1.2",
162
164
  "onchange": "^7.1.0",
163
- "playwright": "^1.54.0",
164
- "playwright-core": "^1.54.0",
165
+ "playwright": "=1.56.0",
166
+ "playwright-core": "=1.56.0",
165
167
  "prosemirror-test-builder": "^1.1.1",
166
168
  "radix-vue": "^1.9.17",
167
169
  "semantic-release": "^24.2.8",
@@ -9,7 +9,7 @@ declare module "@tiptap/core" {
9
9
  changeAttrs: {
10
10
  changeAttrs: (
11
11
  nodeType: string | undefined,
12
- attrs: Record<string, unknown>,
12
+ attrs: Record<string, unknown>
13
13
  ) => ReturnType
14
14
  }
15
15
  }
@@ -32,7 +32,6 @@ declare module "@tiptap/core" {
32
32
  export const Item = Node.create<ItemNodeOptions>({
33
33
  name: "item" satisfies NodeItemName,
34
34
  content: "block list? | list",
35
-
36
35
  addOptions() {
37
36
  return {
38
37
  HTMLAttributes: {},
@@ -174,3 +173,4 @@ export const Item = Node.create<ItemNodeOptions>({
174
173
  }
175
174
  })
176
175
  export type NodeItemName = "item"
176
+
@@ -17,7 +17,7 @@ declare module "@tiptap/core" {
17
17
  */
18
18
  moveItem: (
19
19
  dir: "down" | "up",
20
- pos?: number,
20
+ pos?: number
21
21
  ) => ReturnType
22
22
  }
23
23
  }
@@ -97,22 +97,27 @@
97
97
  </div>
98
98
  </template>
99
99
 
100
- <!--
101
- Multipurpose drag handle + collapse indicator.
102
-
103
- This is incredibly useful for making a compact draggable tree view.
104
-
105
- The collapse indicator has a default height, but it should be set manually. For example `[&>.collapse-indicator]:h-[...]`
106
-
107
- The component only emits a few events, it does not handle the dragging itself or what actually happens on any clicks/input.
108
- -->
109
100
  <script lang="ts">
101
+ /**
102
+ * Multipurpose drag handle + collapse indicator.
103
+ *
104
+ * This is incredibly useful for making a compact draggable tree view.
105
+ *
106
+ * The collapse indicator has a default height, but it should be set manually. For example `[&>.collapse-indicator]:h-[...]`
107
+ *
108
+ * The component only emits a few events, it does not handle the dragging itself or what actually happens on any clicks/input.
109
+ */
110
+ export default { }
110
111
  </script>
111
112
 
112
113
  <script setup lang="ts">
113
114
  import { twMerge } from "@witchcraft/ui/utils/twMerge"
114
115
  import { onMounted, onUnmounted, ref, useAttrs } from "vue"
115
116
 
117
+
118
+ defineOptions({
119
+ name: "DragTreeHandle"
120
+ })
116
121
  interface Props {
117
122
  hasChildren: boolean
118
123
  passedDragThreshold: boolean
@@ -10,7 +10,7 @@ declare module "@tiptap/core" {
10
10
  embeddedCommandRedirect: {
11
11
  embeddedCommandRedirect: (
12
12
  commandName: string,
13
- args: any,
13
+ args: any
14
14
  ) => ReturnType
15
15
  }
16
16
  }
@@ -46,7 +46,7 @@ export type IFileLoaderHandler<
46
46
  editor: Editor,
47
47
  pos: number | undefined,
48
48
  error: Error,
49
- loadingKey: TKey,
49
+ loadingKey: TKey
50
50
  ) => void
51
51
 
52
52
  /**
@@ -77,7 +77,7 @@ export type IFileLoaderHandler<
77
77
  editor: Editor,
78
78
  pos: number,
79
79
  res: T,
80
- loadingKey: TKey,
80
+ loadingKey: TKey
81
81
  ) => void
82
82
  /**
83
83
  * Return the file (or whatever type you'd like) to allow the extension to handle it.