@witchcraft/editor 0.0.3 → 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 (416) 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 -237
  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/EmbeddedDocumentPicker.vue +0 -2
  12. package/src/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.vue +1 -3
  13. package/src/runtime/pm/features/Iframe/components/IframeNodeView.vue +0 -3
  14. package/src/runtime/pm/features/Link/components/BubbleMenuExternalLink.vue +0 -1
  15. package/src/runtime/pm/features/Link/components/BubbleMenuInternalLink.vue +1 -4
  16. package/src/runtime/pm/features/Link/components/BubbleMenuLinkActions.vue +0 -3
  17. package/src/runtime/pm/features/Menus/components/MarkMenuManager.vue +0 -1
  18. package/src/runtime/pm/schema.ts +0 -0
  19. package/src/runtime/pm/utils/createDropIndicator.ts +9 -3
  20. package/src/runtime/pm/utils/getElPropertyAsInt.ts +3 -0
  21. package/src/runtime/pm/utils/internal/debugSel.ts +0 -0
  22. package/src/runtime/pm/utils/internal/recurse.ts +0 -0
  23. package/dist/runtime/assets/base.css +0 -1
  24. package/dist/runtime/assets/handle-arrow.svg +0 -16
  25. package/dist/runtime/assets/handle-border-circles-single.svg +0 -44
  26. package/dist/runtime/assets/handle-border-circles.svg +0 -27
  27. package/dist/runtime/assets/handle-temp.svg +0 -1
  28. package/dist/runtime/assets/utils.css +0 -1
  29. package/dist/runtime/components/CodeBlockThemePicker.d.vue.ts +0 -12
  30. package/dist/runtime/components/CodeBlockThemePicker.vue +0 -123
  31. package/dist/runtime/components/CodeBlockThemePicker.vue.d.ts +0 -12
  32. package/dist/runtime/components/Commands.d.vue.ts +0 -10
  33. package/dist/runtime/components/Commands.vue +0 -60
  34. package/dist/runtime/components/Commands.vue.d.ts +0 -10
  35. package/dist/runtime/components/Editor.d.vue.ts +0 -40
  36. package/dist/runtime/components/Editor.vue +0 -208
  37. package/dist/runtime/components/Editor.vue.d.ts +0 -40
  38. package/dist/runtime/components/EditorDemoApp.d.vue.ts +0 -2
  39. package/dist/runtime/components/EditorDemoApp.vue +0 -104
  40. package/dist/runtime/components/EditorDemoApp.vue.d.ts +0 -2
  41. package/dist/runtime/components/EditorDemoControls.d.vue.ts +0 -12
  42. package/dist/runtime/components/EditorDemoControls.vue +0 -36
  43. package/dist/runtime/components/EditorDemoControls.vue.d.ts +0 -12
  44. package/dist/runtime/components/TestWrapper.d.vue.ts +0 -11
  45. package/dist/runtime/components/TestWrapper.vue +0 -63
  46. package/dist/runtime/components/TestWrapper.vue.d.ts +0 -11
  47. package/dist/runtime/composables/useEditor.d.ts +0 -9
  48. package/dist/runtime/composables/useEditor.js +0 -21
  49. package/dist/runtime/composables/useWindowDebugging.d.ts +0 -3
  50. package/dist/runtime/composables/useWindowDebugging.js +0 -16
  51. package/dist/runtime/demo/App.d.vue.ts +0 -2
  52. package/dist/runtime/demo/App.vue +0 -101
  53. package/dist/runtime/demo/App.vue.d.ts +0 -2
  54. package/dist/runtime/demo/README.md +0 -1
  55. package/dist/runtime/demo/main.d.ts +0 -1
  56. package/dist/runtime/demo/main.js +0 -4
  57. package/dist/runtime/demo/tailwind.css +0 -1
  58. package/dist/runtime/env.d.ts +0 -2
  59. package/dist/runtime/injectionKeys.d.ts +0 -6
  60. package/dist/runtime/injectionKeys.js +0 -3
  61. package/dist/runtime/main.lib.d.ts +0 -2
  62. package/dist/runtime/main.lib.js +0 -2
  63. package/dist/runtime/pm/commands/backspace.d.ts +0 -12
  64. package/dist/runtime/pm/commands/backspace.js +0 -26
  65. package/dist/runtime/pm/commands/changeAttrs.d.ts +0 -9
  66. package/dist/runtime/pm/commands/changeAttrs.js +0 -15
  67. package/dist/runtime/pm/commands/deleteSelection.d.ts +0 -9
  68. package/dist/runtime/pm/commands/deleteSelection.js +0 -8
  69. package/dist/runtime/pm/commands/enter.d.ts +0 -14
  70. package/dist/runtime/pm/commands/enter.js +0 -9
  71. package/dist/runtime/pm/commands/insertBreak.d.ts +0 -9
  72. package/dist/runtime/pm/commands/insertBreak.js +0 -22
  73. package/dist/runtime/pm/features/Base/Base.d.ts +0 -4
  74. package/dist/runtime/pm/features/Base/Base.js +0 -32
  75. package/dist/runtime/pm/features/Base/commands/deleteNodes.d.ts +0 -10
  76. package/dist/runtime/pm/features/Base/commands/deleteNodes.js +0 -29
  77. package/dist/runtime/pm/features/Base/commands/setCursorVisible.d.ts +0 -12
  78. package/dist/runtime/pm/features/Base/commands/setCursorVisible.js +0 -7
  79. package/dist/runtime/pm/features/Base/plugins/debugSelectionPlugin.d.ts +0 -9
  80. package/dist/runtime/pm/features/Base/plugins/debugSelectionPlugin.js +0 -48
  81. package/dist/runtime/pm/features/Base/plugins/isCursorVisiblePlugin.d.ts +0 -3
  82. package/dist/runtime/pm/features/Base/plugins/isCursorVisiblePlugin.js +0 -26
  83. package/dist/runtime/pm/features/Base/plugins/isUsingTouchPlugin.d.ts +0 -3
  84. package/dist/runtime/pm/features/Base/plugins/isUsingTouchPlugin.js +0 -38
  85. package/dist/runtime/pm/features/Base/plugins/selectingIndicator.d.ts +0 -5
  86. package/dist/runtime/pm/features/Base/plugins/selectingIndicator.js +0 -35
  87. package/dist/runtime/pm/features/Base/plugins/unfocusedSelectionIndicatorPlugin.d.ts +0 -33
  88. package/dist/runtime/pm/features/Base/plugins/unfocusedSelectionIndicatorPlugin.js +0 -66
  89. package/dist/runtime/pm/features/Base/types.d.ts +0 -3
  90. package/dist/runtime/pm/features/Base/types.js +0 -0
  91. package/dist/runtime/pm/features/BaseShortcuts/BaseShortcuts.d.ts +0 -3
  92. package/dist/runtime/pm/features/BaseShortcuts/BaseShortcuts.js +0 -34
  93. package/dist/runtime/pm/features/Blockquote/Blockquote.d.ts +0 -5
  94. package/dist/runtime/pm/features/Blockquote/Blockquote.js +0 -65
  95. package/dist/runtime/pm/features/Blockquote/commands/blockquoteEnter.d.ts +0 -11
  96. package/dist/runtime/pm/features/Blockquote/commands/blockquoteEnter.js +0 -31
  97. package/dist/runtime/pm/features/Blockquote/commands/blockquoteShiftEnter.d.ts +0 -11
  98. package/dist/runtime/pm/features/Blockquote/commands/blockquoteShiftEnter.js +0 -12
  99. package/dist/runtime/pm/features/Blocks/Blocks.d.ts +0 -2
  100. package/dist/runtime/pm/features/Blocks/Blocks.js +0 -2
  101. package/dist/runtime/pm/features/Blocks/Item.d.ts +0 -11
  102. package/dist/runtime/pm/features/Blocks/Item.js +0 -157
  103. package/dist/runtime/pm/features/Blocks/List.d.ts +0 -4
  104. package/dist/runtime/pm/features/Blocks/List.js +0 -59
  105. package/dist/runtime/pm/features/Blocks/commands/changeItemType.d.ts +0 -20
  106. package/dist/runtime/pm/features/Blocks/commands/changeItemType.js +0 -40
  107. package/dist/runtime/pm/features/Blocks/commands/changeTypeAttr.d.ts +0 -14
  108. package/dist/runtime/pm/features/Blocks/commands/changeTypeAttr.js +0 -28
  109. package/dist/runtime/pm/features/Blocks/commands/copyOrMoveItem.d.ts +0 -23
  110. package/dist/runtime/pm/features/Blocks/commands/copyOrMoveItem.js +0 -124
  111. package/dist/runtime/pm/features/Blocks/commands/deleteItem.d.ts +0 -12
  112. package/dist/runtime/pm/features/Blocks/commands/deleteItem.js +0 -8
  113. package/dist/runtime/pm/features/Blocks/commands/indentItem.d.ts +0 -12
  114. package/dist/runtime/pm/features/Blocks/commands/indentItem.js +0 -58
  115. package/dist/runtime/pm/features/Blocks/commands/itemMenuCommands.d.ts +0 -18
  116. package/dist/runtime/pm/features/Blocks/commands/itemMenuCommands.js +0 -40
  117. package/dist/runtime/pm/features/Blocks/commands/moveItem.d.ts +0 -12
  118. package/dist/runtime/pm/features/Blocks/commands/moveItem.js +0 -80
  119. package/dist/runtime/pm/features/Blocks/commands/setNode.d.ts +0 -20
  120. package/dist/runtime/pm/features/Blocks/commands/setNode.js +0 -87
  121. package/dist/runtime/pm/features/Blocks/commands/splitItem.d.ts +0 -17
  122. package/dist/runtime/pm/features/Blocks/commands/splitItem.js +0 -87
  123. package/dist/runtime/pm/features/Blocks/commands/unindentItem.d.ts +0 -12
  124. package/dist/runtime/pm/features/Blocks/commands/unindentItem.js +0 -42
  125. package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.d.vue.ts +0 -0
  126. package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.vue +0 -122
  127. package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.vue.d.ts +0 -0
  128. package/dist/runtime/pm/features/Blocks/components/ItemMenu.d.vue.ts +0 -6
  129. package/dist/runtime/pm/features/Blocks/components/ItemMenu.vue +0 -78
  130. package/dist/runtime/pm/features/Blocks/components/ItemMenu.vue.d.ts +0 -6
  131. package/dist/runtime/pm/features/Blocks/components/ItemNodeView.d.vue.ts +0 -92
  132. package/dist/runtime/pm/features/Blocks/components/ItemNodeView.vue +0 -350
  133. package/dist/runtime/pm/features/Blocks/components/ItemNodeView.vue.d.ts +0 -92
  134. package/dist/runtime/pm/features/Blocks/components/defaultItemMenu.d.ts +0 -5
  135. package/dist/runtime/pm/features/Blocks/components/defaultItemMenu.js +0 -42
  136. package/dist/runtime/pm/features/Blocks/composables/useDragWithThreshold.d.ts +0 -1
  137. package/dist/runtime/pm/features/Blocks/composables/useDragWithThreshold.js +0 -0
  138. package/dist/runtime/pm/features/Blocks/composables/useHandleHeight.d.ts +0 -5
  139. package/dist/runtime/pm/features/Blocks/composables/useHandleHeight.js +0 -22
  140. package/dist/runtime/pm/features/Blocks/composables/useHasChildren.d.ts +0 -5
  141. package/dist/runtime/pm/features/Blocks/composables/useHasChildren.js +0 -10
  142. package/dist/runtime/pm/features/Blocks/composables/useNodeStates.d.ts +0 -7
  143. package/dist/runtime/pm/features/Blocks/composables/useNodeStates.js +0 -20
  144. package/dist/runtime/pm/features/Blocks/itemMenuMenuItems.d.ts +0 -20
  145. package/dist/runtime/pm/features/Blocks/itemMenuMenuItems.js +0 -138
  146. package/dist/runtime/pm/features/Blocks/plugins/ensureLastItemIsContentPlugin.d.ts +0 -11
  147. package/dist/runtime/pm/features/Blocks/plugins/ensureLastItemIsContentPlugin.js +0 -36
  148. package/dist/runtime/pm/features/Blocks/plugins/itemBlockIdPlugin.d.ts +0 -8
  149. package/dist/runtime/pm/features/Blocks/plugins/itemBlockIdPlugin.js +0 -30
  150. package/dist/runtime/pm/features/Blocks/plugins/itemHasSingularSelectionPlugin.d.ts +0 -3
  151. package/dist/runtime/pm/features/Blocks/plugins/itemHasSingularSelectionPlugin.js +0 -30
  152. package/dist/runtime/pm/features/Blocks/plugins/itemMenuPlugin.d.ts +0 -4
  153. package/dist/runtime/pm/features/Blocks/plugins/itemMenuPlugin.js +0 -17
  154. package/dist/runtime/pm/features/Blocks/states/stateful.d.ts +0 -2
  155. package/dist/runtime/pm/features/Blocks/states/stateful.js +0 -37
  156. package/dist/runtime/pm/features/Blocks/states/task/cancelled.svg +0 -32
  157. package/dist/runtime/pm/features/Blocks/states/task/checked.svg +0 -27
  158. package/dist/runtime/pm/features/Blocks/states/task/checked2.svg +0 -24
  159. package/dist/runtime/pm/features/Blocks/states/task/partial.svg +0 -24
  160. package/dist/runtime/pm/features/Blocks/states/task/partial2.svg +0 -31
  161. package/dist/runtime/pm/features/Blocks/states/task/unchecked.svg +0 -20
  162. package/dist/runtime/pm/features/Blocks/types.d.ts +0 -43
  163. package/dist/runtime/pm/features/Blocks/types.js +0 -2
  164. package/dist/runtime/pm/features/Blocks/utils/createItemMenuCommandExecuter.d.ts +0 -3
  165. package/dist/runtime/pm/features/Blocks/utils/createItemMenuCommandExecuter.js +0 -24
  166. package/dist/runtime/pm/features/Blocks/utils/fixBlockIds.d.ts +0 -4
  167. package/dist/runtime/pm/features/Blocks/utils/fixBlockIds.js +0 -23
  168. package/dist/runtime/pm/features/Blocks/utils/isValidId.d.ts +0 -2
  169. package/dist/runtime/pm/features/Blocks/utils/isValidId.js +0 -7
  170. package/dist/runtime/pm/features/CodeBlock/CodeBlock.d.ts +0 -16
  171. package/dist/runtime/pm/features/CodeBlock/CodeBlock.js +0 -91
  172. package/dist/runtime/pm/features/CodeBlock/build/generateHighlightJsInfo.d.ts +0 -1
  173. package/dist/runtime/pm/features/CodeBlock/build/generateHighlightJsInfo.js +0 -63
  174. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockEnterOrSplit.d.ts +0 -9
  175. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockEnterOrSplit.js +0 -28
  176. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockIndent.d.ts +0 -9
  177. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockIndent.js +0 -39
  178. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockUnindent.d.ts +0 -9
  179. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockUnindent.js +0 -50
  180. package/dist/runtime/pm/features/CodeBlock/commands/focusCodeBlockLanguage.d.ts +0 -9
  181. package/dist/runtime/pm/features/CodeBlock/commands/focusCodeBlockLanguage.js +0 -27
  182. package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.d.vue.ts +0 -92
  183. package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.vue +0 -112
  184. package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.vue.d.ts +0 -92
  185. package/dist/runtime/pm/features/CodeBlock/composables/useAsyncCodeBlockHighlighting.d.ts +0 -28
  186. package/dist/runtime/pm/features/CodeBlock/composables/useAsyncCodeBlockHighlighting.js +0 -137
  187. package/dist/runtime/pm/features/CodeBlock/composables/useHighlightJsTheme.d.ts +0 -37
  188. package/dist/runtime/pm/features/CodeBlock/composables/useHighlightJsTheme.js +0 -101
  189. package/dist/runtime/pm/features/CodeBlock/highlightJsInfo.d.ts +0 -17
  190. package/dist/runtime/pm/features/CodeBlock/highlightJsInfo.js +0 -711
  191. package/dist/runtime/pm/features/CodeBlock/types.d.ts +0 -4
  192. package/dist/runtime/pm/features/CodeBlock/types.js +0 -2
  193. package/dist/runtime/pm/features/Collaboration/Collaboration.d.ts +0 -66
  194. package/dist/runtime/pm/features/Collaboration/Collaboration.js +0 -169
  195. package/dist/runtime/pm/features/CommandsMenus/CommandBar.d.ts +0 -19
  196. package/dist/runtime/pm/features/CommandsMenus/CommandBar.js +0 -97
  197. package/dist/runtime/pm/features/CommandsMenus/commandBarMenuItems.d.ts +0 -20
  198. package/dist/runtime/pm/features/CommandsMenus/commandBarMenuItems.js +0 -188
  199. package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.d.vue.ts +0 -8
  200. package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.vue +0 -58
  201. package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.vue.d.ts +0 -8
  202. package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.d.vue.ts +0 -12
  203. package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.vue +0 -42
  204. package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.vue.d.ts +0 -12
  205. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.d.vue.ts +0 -10
  206. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.vue +0 -55
  207. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.vue.d.ts +0 -10
  208. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.d.vue.ts +0 -11
  209. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.vue +0 -58
  210. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.vue.d.ts +0 -11
  211. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.d.vue.ts +0 -11
  212. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.vue +0 -54
  213. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.vue.d.ts +0 -11
  214. package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.d.vue.ts +0 -5
  215. package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.vue +0 -13
  216. package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.vue.d.ts +0 -5
  217. package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.d.vue.ts +0 -8
  218. package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.vue +0 -45
  219. package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.vue.d.ts +0 -8
  220. package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.d.vue.ts +0 -2
  221. package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.vue +0 -5
  222. package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.vue.d.ts +0 -2
  223. package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.d.vue.ts +0 -2
  224. package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.vue +0 -5
  225. package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.vue.d.ts +0 -2
  226. package/dist/runtime/pm/features/CommandsMenus/types.d.ts +0 -61
  227. package/dist/runtime/pm/features/CommandsMenus/types.js +0 -5
  228. package/dist/runtime/pm/features/CommandsMenus/utils/defaultCommandExecutor.d.ts +0 -3
  229. package/dist/runtime/pm/features/CommandsMenus/utils/defaultCommandExecutor.js +0 -11
  230. package/dist/runtime/pm/features/CommandsMenus/utils/findCommand.d.ts +0 -10
  231. package/dist/runtime/pm/features/CommandsMenus/utils/findCommand.js +0 -16
  232. package/dist/runtime/pm/features/CommandsMenus/utils/popupPositionModifier.d.ts +0 -5
  233. package/dist/runtime/pm/features/CommandsMenus/utils/popupPositionModifier.js +0 -9
  234. package/dist/runtime/pm/features/CommandsMenus/utils/popupVerticalPositioner.d.ts +0 -5
  235. package/dist/runtime/pm/features/CommandsMenus/utils/popupVerticalPositioner.js +0 -11
  236. package/dist/runtime/pm/features/Document/Document.d.ts +0 -3
  237. package/dist/runtime/pm/features/Document/Document.js +0 -6
  238. package/dist/runtime/pm/features/DocumentApi/DocumentApi.d.ts +0 -86
  239. package/dist/runtime/pm/features/DocumentApi/DocumentApi.js +0 -170
  240. package/dist/runtime/pm/features/DocumentApi/composables/useEditorContent.d.ts +0 -13
  241. package/dist/runtime/pm/features/DocumentApi/composables/useEditorContent.js +0 -76
  242. package/dist/runtime/pm/features/DocumentApi/composables/useTestDocumentApi.d.ts +0 -23
  243. package/dist/runtime/pm/features/DocumentApi/composables/useTestDocumentApi.js +0 -70
  244. package/dist/runtime/pm/features/DocumentApi/types.d.ts +0 -133
  245. package/dist/runtime/pm/features/DocumentApi/types.js +0 -1
  246. package/dist/runtime/pm/features/DocumentApi/utils/convertFullTransactionForPartialState.d.ts +0 -3
  247. package/dist/runtime/pm/features/DocumentApi/utils/convertFullTransactionForPartialState.js +0 -37
  248. package/dist/runtime/pm/features/DocumentApi/utils/convertTrForInstance.d.ts +0 -4
  249. package/dist/runtime/pm/features/DocumentApi/utils/convertTrForInstance.js +0 -13
  250. package/dist/runtime/pm/features/DocumentApi/utils/convertTransactionForFullState.d.ts +0 -2
  251. package/dist/runtime/pm/features/DocumentApi/utils/convertTransactionForFullState.js +0 -22
  252. package/dist/runtime/pm/features/DocumentApi/utils/copyMeta.d.ts +0 -2
  253. package/dist/runtime/pm/features/DocumentApi/utils/copyMeta.js +0 -6
  254. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedJson.d.ts +0 -1
  255. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedJson.js +0 -14
  256. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedNodeFromDoc.d.ts +0 -1
  257. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedNodeFromDoc.js +0 -14
  258. package/dist/runtime/pm/features/DocumentApi/utils/getStateEmbedRange.d.ts +0 -9
  259. package/dist/runtime/pm/features/DocumentApi/utils/getStateEmbedRange.js +0 -19
  260. package/dist/runtime/pm/features/DocumentApi/utils/isEmbedId.d.ts +0 -2
  261. package/dist/runtime/pm/features/DocumentApi/utils/isEmbedId.js +0 -3
  262. package/dist/runtime/pm/features/EmbeddedDocument/Embedded.d.ts +0 -24
  263. package/dist/runtime/pm/features/EmbeddedDocument/Embedded.js +0 -73
  264. package/dist/runtime/pm/features/EmbeddedDocument/EmbeddedDocument.d.ts +0 -23
  265. package/dist/runtime/pm/features/EmbeddedDocument/EmbeddedDocument.js +0 -70
  266. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.d.vue.ts +0 -14
  267. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.vue +0 -171
  268. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.vue.d.ts +0 -14
  269. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.d.vue.ts +0 -92
  270. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.vue +0 -172
  271. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.vue.d.ts +0 -92
  272. package/dist/runtime/pm/features/EmbeddedDocument/composables/useEmbeddedEditor.d.ts +0 -31
  273. package/dist/runtime/pm/features/EmbeddedDocument/composables/useEmbeddedEditor.js +0 -199
  274. package/dist/runtime/pm/features/EmbeddedDocument/types.d.ts +0 -49
  275. package/dist/runtime/pm/features/EmbeddedDocument/types.js +0 -6
  276. package/dist/runtime/pm/features/EmbeddedDocument/utils/isEmbeddedBlock.d.ts +0 -9
  277. package/dist/runtime/pm/features/EmbeddedDocument/utils/isEmbeddedBlock.js +0 -3
  278. package/dist/runtime/pm/features/EmbeddedDocument/utils/redirectFromEmbedded.d.ts +0 -28
  279. package/dist/runtime/pm/features/EmbeddedDocument/utils/redirectFromEmbedded.js +0 -17
  280. package/dist/runtime/pm/features/FileLoader/FileLoader.d.ts +0 -16
  281. package/dist/runtime/pm/features/FileLoader/FileLoader.js +0 -99
  282. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/FileLoaderHandler.d.ts +0 -28
  283. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/FileLoaderHandler.js +0 -69
  284. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/TestFileLoaderHandler.d.ts +0 -11
  285. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/TestFileLoaderHandler.js +0 -49
  286. package/dist/runtime/pm/features/FileLoader/commands/insertFile.d.ts +0 -17
  287. package/dist/runtime/pm/features/FileLoader/commands/insertFile.js +0 -39
  288. package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.d.vue.ts +0 -92
  289. package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.vue +0 -38
  290. package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.vue.d.ts +0 -92
  291. package/dist/runtime/pm/features/FileLoader/plugins/fileLoaderPlugin.d.ts +0 -5
  292. package/dist/runtime/pm/features/FileLoader/plugins/fileLoaderPlugin.js +0 -61
  293. package/dist/runtime/pm/features/FileLoader/types.d.ts +0 -73
  294. package/dist/runtime/pm/features/FileLoader/types.js +0 -0
  295. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNode.d.ts +0 -4
  296. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNode.js +0 -27
  297. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNodes.d.ts +0 -9
  298. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNodes.js +0 -22
  299. package/dist/runtime/pm/features/FileLoader/utils/findLoadingNodePos.d.ts +0 -2
  300. package/dist/runtime/pm/features/FileLoader/utils/findLoadingNodePos.js +0 -11
  301. package/dist/runtime/pm/features/FileLoader/utils/optionsCheck.d.ts +0 -3
  302. package/dist/runtime/pm/features/FileLoader/utils/optionsCheck.js +0 -8
  303. package/dist/runtime/pm/features/FileLoader/utils/readAsDataUrl.d.ts +0 -1
  304. package/dist/runtime/pm/features/FileLoader/utils/readAsDataUrl.js +0 -12
  305. package/dist/runtime/pm/features/HardBreak/HardBreak.d.ts +0 -5
  306. package/dist/runtime/pm/features/HardBreak/HardBreak.js +0 -14
  307. package/dist/runtime/pm/features/Heading/Heading.d.ts +0 -24
  308. package/dist/runtime/pm/features/Heading/Heading.js +0 -85
  309. package/dist/runtime/pm/features/Heading/commands/changeLevelAttr.d.ts +0 -16
  310. package/dist/runtime/pm/features/Heading/commands/changeLevelAttr.js +0 -33
  311. package/dist/runtime/pm/features/Heading/types.d.ts +0 -14
  312. package/dist/runtime/pm/features/Heading/types.js +0 -0
  313. package/dist/runtime/pm/features/Highlight/Highlight.d.ts +0 -72
  314. package/dist/runtime/pm/features/Highlight/Highlight.js +0 -163
  315. package/dist/runtime/pm/features/Highlight/retyped/tiptapHighlight.d.ts +0 -3
  316. package/dist/runtime/pm/features/Highlight/retyped/tiptapHighlight.js +0 -5
  317. package/dist/runtime/pm/features/Highlight/types.d.ts +0 -27
  318. package/dist/runtime/pm/features/Highlight/types.js +0 -2
  319. package/dist/runtime/pm/features/History/History.d.ts +0 -35
  320. package/dist/runtime/pm/features/History/History.js +0 -63
  321. package/dist/runtime/pm/features/Iframe/Iframe.d.ts +0 -21
  322. package/dist/runtime/pm/features/Iframe/Iframe.js +0 -127
  323. package/dist/runtime/pm/features/Iframe/IframeParsers.d.ts +0 -37
  324. package/dist/runtime/pm/features/Iframe/IframeParsers.js +0 -88
  325. package/dist/runtime/pm/features/Iframe/components/IframeNodeView.d.vue.ts +0 -92
  326. package/dist/runtime/pm/features/Iframe/components/IframeNodeView.vue +0 -82
  327. package/dist/runtime/pm/features/Iframe/components/IframeNodeView.vue.d.ts +0 -92
  328. package/dist/runtime/pm/features/Iframe/types.d.ts +0 -5
  329. package/dist/runtime/pm/features/Iframe/types.js +0 -0
  330. package/dist/runtime/pm/features/Image/Image.d.ts +0 -2
  331. package/dist/runtime/pm/features/Image/Image.js +0 -13
  332. package/dist/runtime/pm/features/Link/Link.d.ts +0 -38
  333. package/dist/runtime/pm/features/Link/Link.js +0 -241
  334. package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.d.vue.ts +0 -28
  335. package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.vue +0 -114
  336. package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.vue.d.ts +0 -28
  337. package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.d.vue.ts +0 -29
  338. package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.vue +0 -107
  339. package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.vue.d.ts +0 -29
  340. package/dist/runtime/pm/features/Link/components/BubbleMenuLink.d.vue.ts +0 -11
  341. package/dist/runtime/pm/features/Link/components/BubbleMenuLink.vue +0 -126
  342. package/dist/runtime/pm/features/Link/components/BubbleMenuLink.vue.d.ts +0 -11
  343. package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.d.vue.ts +0 -18
  344. package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.vue +0 -57
  345. package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.vue.d.ts +0 -18
  346. package/dist/runtime/pm/features/Link/types.d.ts +0 -44
  347. package/dist/runtime/pm/features/Link/types.js +0 -3
  348. package/dist/runtime/pm/features/Menus/Menus.d.ts +0 -45
  349. package/dist/runtime/pm/features/Menus/Menus.js +0 -142
  350. package/dist/runtime/pm/features/Menus/components/MarkMenuManager.d.vue.ts +0 -6
  351. package/dist/runtime/pm/features/Menus/components/MarkMenuManager.vue +0 -166
  352. package/dist/runtime/pm/features/Menus/components/MarkMenuManager.vue.d.ts +0 -6
  353. package/dist/runtime/pm/features/Menus/types.d.ts +0 -51
  354. package/dist/runtime/pm/features/Menus/types.js +0 -3
  355. package/dist/runtime/pm/features/Menus/utils/isMarkMenu.d.ts +0 -2
  356. package/dist/runtime/pm/features/Menus/utils/isMarkMenu.js +0 -3
  357. package/dist/runtime/pm/features/Tables/commands/tableEnter.d.ts +0 -15
  358. package/dist/runtime/pm/features/Tables/commands/tableEnter.js +0 -19
  359. package/dist/runtime/pm/features/Tables/index.d.ts +0 -9
  360. package/dist/runtime/pm/features/Tables/index.js +0 -44
  361. package/dist/runtime/pm/schema.d.ts +0 -4
  362. package/dist/runtime/pm/schema.js +0 -80
  363. package/dist/runtime/pm/testSchema.d.ts +0 -5
  364. package/dist/runtime/pm/testSchema.js +0 -30
  365. package/dist/runtime/pm/utils/createDropIndicator.d.ts +0 -23
  366. package/dist/runtime/pm/utils/createDropIndicator.js +0 -32
  367. package/dist/runtime/pm/utils/createStateOnlyPluginApply.d.ts +0 -2
  368. package/dist/runtime/pm/utils/createStateOnlyPluginApply.js +0 -9
  369. package/dist/runtime/pm/utils/createStateOnlyPluginObjApply.d.ts +0 -2
  370. package/dist/runtime/pm/utils/createStateOnlyPluginObjApply.js +0 -14
  371. package/dist/runtime/pm/utils/dropPointInfo.d.ts +0 -56
  372. package/dist/runtime/pm/utils/dropPointInfo.js +0 -28
  373. package/dist/runtime/pm/utils/findUpwards.d.ts +0 -20
  374. package/dist/runtime/pm/utils/findUpwards.js +0 -18
  375. package/dist/runtime/pm/utils/getChildChunks.d.ts +0 -3
  376. package/dist/runtime/pm/utils/getChildChunks.js +0 -15
  377. package/dist/runtime/pm/utils/getDiffReplacementRange.d.ts +0 -20
  378. package/dist/runtime/pm/utils/getDiffReplacementRange.js +0 -9
  379. package/dist/runtime/pm/utils/getElMaxVisualSize.d.ts +0 -9
  380. package/dist/runtime/pm/utils/getElMaxVisualSize.js +0 -7
  381. package/dist/runtime/pm/utils/getElPropertyAsInt.d.ts +0 -1
  382. package/dist/runtime/pm/utils/getElPropertyAsInt.js +0 -8
  383. package/dist/runtime/pm/utils/getGroupNodeNames.d.ts +0 -2
  384. package/dist/runtime/pm/utils/getGroupNodeNames.js +0 -7
  385. package/dist/runtime/pm/utils/getMarkPosition.d.ts +0 -11
  386. package/dist/runtime/pm/utils/getMarkPosition.js +0 -34
  387. package/dist/runtime/pm/utils/getMarksInSelection.d.ts +0 -3
  388. package/dist/runtime/pm/utils/getMarksInSelection.js +0 -16
  389. package/dist/runtime/pm/utils/getTypeByName.d.ts +0 -2
  390. package/dist/runtime/pm/utils/getTypeByName.js +0 -5
  391. package/dist/runtime/pm/utils/index.d.ts +0 -15
  392. package/dist/runtime/pm/utils/index.js +0 -15
  393. package/dist/runtime/pm/utils/internal/createNodeTypesList.d.ts +0 -2
  394. package/dist/runtime/pm/utils/internal/createNodeTypesList.js +0 -17
  395. package/dist/runtime/pm/utils/internal/debugMap.d.ts +0 -7
  396. package/dist/runtime/pm/utils/internal/debugMap.js +0 -24
  397. package/dist/runtime/pm/utils/internal/debugNode.d.ts +0 -2
  398. package/dist/runtime/pm/utils/internal/debugNode.js +0 -18
  399. package/dist/runtime/pm/utils/internal/debugSel.d.ts +0 -5
  400. package/dist/runtime/pm/utils/internal/debugSel.js +0 -8
  401. package/dist/runtime/pm/utils/internal/recurse.d.ts +0 -2
  402. package/dist/runtime/pm/utils/internal/recurse.js +0 -39
  403. package/dist/runtime/pm/utils/internal/stripBlockId.d.ts +0 -2
  404. package/dist/runtime/pm/utils/internal/stripBlockId.js +0 -9
  405. package/dist/runtime/pm/utils/mapSelection.d.ts +0 -8
  406. package/dist/runtime/pm/utils/mapSelection.js +0 -12
  407. package/dist/runtime/pm/utils/nodesBetween.d.ts +0 -21
  408. package/dist/runtime/pm/utils/nodesBetween.js +0 -21
  409. package/dist/runtime/pm/utils/pointToPmPoint.d.ts +0 -2
  410. package/dist/runtime/pm/utils/pointToPmPoint.js +0 -3
  411. package/dist/runtime/pm/utils/splitIntoChunks.d.ts +0 -32
  412. package/dist/runtime/pm/utils/splitIntoChunks.js +0 -31
  413. package/dist/runtime/testDocuments.d.ts +0 -53
  414. package/dist/runtime/testDocuments.js +0 -122
  415. package/dist/runtime/types/index.d.ts +0 -53
  416. package/dist/runtime/types/index.js +0 -9
@@ -1,126 +0,0 @@
1
- <template>
2
- <!-- Every focusable element needs to checkCloseOnBlur to preserve focus when focusing to another element inside the component -->
3
-
4
- <div
5
- v-if="showBubbleMenu"
6
- tabindex="0"
7
- :class="twMerge(`
8
- rounded-sm
9
- border-neutral-300
10
- dark:border-neutral-700
11
- border
12
- bg-neutral-50
13
- dark:bg-neutral-950
14
- p-2
15
- `)"
16
- >
17
- <bubble-menu-external-link
18
- v-if="!isInternalLink"
19
- :editor="editor"
20
- :link-suggestions="finalLinkSuggestions"
21
- :link-mark="linkMark"
22
- :is-changed="isChanged"
23
- ref="component"
24
- v-model:link-href="linkHref"
25
- v-model:link-text-value="linkTextValue"
26
- @close="close"
27
- @copy="copy"
28
- @remove="removeLink"
29
- />
30
- <bubble-menu-internal-link
31
- v-if="isInternalLink"
32
- :editor="editor"
33
- :link-suggestions="finalInternalLinkSuggestions"
34
- :link-mark="linkMark"
35
- :is-changed="isChanged"
36
- :get-internal-link-href="getInternalLinkHref"
37
- ref="component"
38
- v-model:link-text="linkTextValue"
39
- @close="close"
40
- @copy="copy"
41
- @remove="removeLink"
42
- />
43
- </div>
44
- </template>
45
-
46
- <script setup>
47
- import { unreachable } from "@alanscodelog/utils/unreachable";
48
- import { copy } from "@witchcraft/ui/helpers/copy";
49
- import { twMerge } from "@witchcraft/ui/utils/twMerge";
50
- import { computed, nextTick, onBeforeUnmount, onMounted, ref, toRaw, watch } from "vue";
51
- import BubbleMenuExternalLink from "./BubbleMenuExternalLink.vue";
52
- import { getMarkPosition } from "../../../utils/getMarkPosition.js";
53
- import { getMarksInSelection } from "../../../utils/getMarksInSelection.js";
54
- import { linkMenuPluginKey } from "../types.js";
55
- const props = defineProps({
56
- editor: { type: null, required: true },
57
- linkSuggestions: { type: Array, required: false },
58
- internalLinkSuggestions: { type: Array, required: false },
59
- getLinkSuggestions: { type: Function, required: false },
60
- getLinkInternalSuggestions: { type: Function, required: false },
61
- getInternalLinkHref: { type: Function, required: true }
62
- });
63
- const component = ref();
64
- const showBubbleMenu = ref(false);
65
- const linkHref = ref("");
66
- const linkTextValue = ref("");
67
- const originalLinkTextValue = ref("");
68
- const isInternalLink = ref(false);
69
- const linkMark = ref();
70
- function updateFromMark(mark) {
71
- linkHref.value = mark?.attrs.href ?? "";
72
- const state = props.editor.state;
73
- const sel = state.selection;
74
- if (mark) {
75
- const markPos = getMarkPosition(state, toRaw(mark.type), sel.from);
76
- if (!markPos) unreachable();
77
- linkTextValue.value = state.doc.cut(markPos.from, markPos.to).textContent;
78
- } else {
79
- if (!sel.empty) {
80
- linkTextValue.value = state.doc.cut(sel.from, sel.to).textContent;
81
- } else {
82
- linkTextValue.value = "";
83
- }
84
- }
85
- originalLinkTextValue.value = linkTextValue.value;
86
- if (mark?.attrs.internal) {
87
- isInternalLink.value = true;
88
- }
89
- }
90
- const isChanged = computed(
91
- () => !linkMark.value || originalLinkTextValue.value !== linkTextValue.value || linkHref.value !== linkMark.value.attrs.href
92
- );
93
- function close(e) {
94
- props.editor.commands.closeLinkMenu();
95
- e?.preventDefault();
96
- }
97
- function removeLink() {
98
- props.editor.commands.unsetLink();
99
- close();
100
- }
101
- function updateState() {
102
- const state = linkMenuPluginKey.getState(props.editor.state);
103
- if (!state) return;
104
- const newLinkMark = getMarksInSelection(props.editor.state).find((_) => _.type.name === "link");
105
- const isSame = newLinkMark === linkMark.value;
106
- linkMark.value = newLinkMark;
107
- isInternalLink.value = state.type === "internal";
108
- if (!isSame || !newLinkMark) updateFromMark(state.state ? newLinkMark : void 0);
109
- showBubbleMenu.value = !!state.state;
110
- if (state.state === "focus") {
111
- nextTick(() => {
112
- component.value?.focus(linkMark.value ? "link" : "text");
113
- });
114
- }
115
- }
116
- const finalLinkSuggestions = computed(() => props.linkSuggestions ?? props.getLinkSuggestions?.(linkHref.value, linkTextValue.value));
117
- const finalInternalLinkSuggestions = computed(() => props.internalLinkSuggestions ?? props.getLinkInternalSuggestions?.(linkHref.value));
118
- watch(() => props.editor.state, () => updateState());
119
- onMounted(() => {
120
- updateState();
121
- props.editor.on("transaction", updateState);
122
- });
123
- onBeforeUnmount(() => {
124
- props.editor.off("transaction", updateState);
125
- });
126
- </script>
@@ -1,11 +0,0 @@
1
- import type { Editor } from "@tiptap/vue-3";
2
- type __VLS_Props = {
3
- editor: Editor;
4
- linkSuggestions?: string[];
5
- internalLinkSuggestions?: string[];
6
- getLinkSuggestions?: (href: string, text: string) => string[];
7
- getLinkInternalSuggestions?: (href: string) => string[];
8
- getInternalLinkHref: (title: string) => string;
9
- };
10
- declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
- export default _default;
@@ -1,18 +0,0 @@
1
- import type { Mark } from "@tiptap/pm/model";
2
- type __VLS_Props = {
3
- linkMark: Mark | undefined;
4
- linkHref?: string;
5
- isChanged: boolean;
6
- };
7
- declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
- close: (e: Event) => any;
9
- copy: (value: string) => any;
10
- save: (e: Event) => any;
11
- remove: () => any;
12
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
- onClose?: ((e: Event) => any) | undefined;
14
- onCopy?: ((value: string) => any) | undefined;
15
- onSave?: ((e: Event) => any) | undefined;
16
- onRemove?: (() => any) | undefined;
17
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
- export default _default;
@@ -1,57 +0,0 @@
1
- <template>
2
- <div class="flex flex-nowrap flex-row gap-1 border border-transparent">
3
- <!-- @vue-expect-error -->
4
- <WButton
5
- :border="false"
6
- :disabled="!isChanged"
7
- class="text-ok-700 dark:text-ok-300"
8
- :aria-label="linkMark ? 'Save' : 'Add'"
9
- :title="linkMark ? 'Save' : 'Add'"
10
- @click="emit('save', $event)"
11
- >
12
- <WIcon v-if="linkMark">
13
- <i-fa-solid-check class="w-[1.25em]"/>
14
- </WIcon>
15
- <WIcon v-else>
16
- <i-fa-solid-plus/>
17
- </WIcon>
18
- </WButton>
19
- <!-- @vue-expect-error -->
20
- <WButton
21
- v-if="linkHref"
22
- :border="false"
23
- class="text-neutral-700 dark:text-neutral-300"
24
- aria-label="Copy"
25
- title="Copy"
26
- @click="emit('copy', linkHref)"
27
- >
28
- <WIcon><i-fa-solid-copy class="w-[1.25em]"/></WIcon>
29
- </WButton>
30
- <!-- @vue-expect-error -->
31
- <WButton
32
- v-if="linkMark"
33
- :border="false"
34
- class="text-neutral-700 dark:text-neutral-300"
35
- aria-label="Remove Link"
36
- title="Remove Link"
37
- @click="emit('remove')"
38
- >
39
- <WIcon><i-fa-solid-trash class="w-[1.25em]"/></WIcon>
40
- </WButton>
41
- </div>
42
- </template>
43
-
44
- <script setup>
45
- import WIcon from "@witchcraft/ui/components/Icon";
46
- import WButton from "@witchcraft/ui/components/LibButton";
47
- import IFaSolidCheck from "~icons/fa-solid/check";
48
- import IFaSolidCopy from "~icons/fa-solid/copy";
49
- import IFaSolidPlus from "~icons/fa-solid/plus";
50
- import IFaSolidTrash from "~icons/fa-solid/trash";
51
- defineProps({
52
- linkMark: { type: null, required: true },
53
- linkHref: { type: String, required: false },
54
- isChanged: { type: Boolean, required: true }
55
- });
56
- const emit = defineEmits(["close", "copy", "save", "remove"]);
57
- </script>
@@ -1,18 +0,0 @@
1
- import type { Mark } from "@tiptap/pm/model";
2
- type __VLS_Props = {
3
- linkMark: Mark | undefined;
4
- linkHref?: string;
5
- isChanged: boolean;
6
- };
7
- declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
- close: (e: Event) => any;
9
- copy: (value: string) => any;
10
- save: (e: Event) => any;
11
- remove: () => any;
12
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
- onClose?: ((e: Event) => any) | undefined;
14
- onCopy?: ((value: string) => any) | undefined;
15
- onSave?: ((e: Event) => any) | undefined;
16
- onRemove?: (() => any) | undefined;
17
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
- export default _default;
@@ -1,44 +0,0 @@
1
- import type { MakeRequired } from "@alanscodelog/utils/types";
2
- import type { LinkOptions } from "@tiptap/extension-link";
3
- import { PluginKey } from "@tiptap/pm/state";
4
- export interface AdditionalLinkOptions {
5
- /**
6
- * Returns true if the given href is an internal link.
7
- *
8
- * Note this should check if the internal link is in a valid format and prevent xss attacks. Usually just making it a simple format is enough.
9
- *
10
- * The default one checks against the regex /internal:\/\/[0-9a-zA-Z_-]+/
11
- */
12
- isInternalLink: (href: string) => boolean;
13
- /**
14
- * How to open internal links.
15
- *
16
- * The default is just to log the link to the console and warn to set the function which should be set with `setLinkOpts`
17
- */
18
- openInternal: (href: string) => void;
19
- /**
20
- * How to open external links.
21
- *
22
- * The default is to open the link in a new tab.
23
- *
24
- * This can be changed using `setLinkOpts` to set a different function.
25
- */
26
- openExternal: (href: string) => void;
27
- openLinkOnClickModifier: "ctrlKey" | "shiftKey" | "altKey" | "metaKey";
28
- }
29
- export type EditorLinkOptions = MakeRequired<Partial<LinkOptions>, "openInternal">;
30
- export type LinkMenuPluginState = {
31
- state: "open" | "focus" | false;
32
- justChangedLink: boolean;
33
- type: "external" | "internal" | undefined;
34
- autoOpen: boolean;
35
- allowAutoOpenOnRecentlyChangedLink: boolean;
36
- };
37
- export type DirectLinkClickPluginState = {};
38
- export declare const linkMenuPluginKey: PluginKey<LinkMenuPluginState>;
39
- export declare const directLinkClickWithModifierPluginKey: PluginKey<DirectLinkClickPluginState>;
40
- declare module "../../../types/index.js" {
41
- interface MenuCloseCommands {
42
- closeLinkMenu: () => any;
43
- }
44
- }
@@ -1,3 +0,0 @@
1
- import { PluginKey } from "@tiptap/pm/state";
2
- export const linkMenuPluginKey = new PluginKey("linkMenuState");
3
- export const directLinkClickWithModifierPluginKey = new PluginKey("directLinkClickWithModifierPluginState");
@@ -1,45 +0,0 @@
1
- import { Extension } from "@tiptap/core";
2
- import { type PluginKey } from "@tiptap/pm/state";
3
- import { type Menu, type OpenMenuInfo } from "./types.js.js";
4
- declare module "@tiptap/core" {
5
- interface Commands<ReturnType> {
6
- menus: {
7
- /** Can be used to close the open menu. Use force to close pinned menus. */
8
- closeOtherMenus: (forceUnpin?: boolean) => ReturnType;
9
- /** This will temporarily open and "pin" the menu, disabling the auto-prioritizing, until it's closed with `force: true`. */
10
- pinOpenMenu: (options: Pick<OpenMenuInfo, "name">) => ReturnType;
11
- /**
12
- * Register a menu to be hnadled by the Menus extension.
13
- *
14
- * The ideal place to register them is usually in the onCreate hook of the extension. Do not do it from addProseMirrorPlugins as this will cause the menus to be registered more times than they should be.
15
- *
16
- * To be technical, this happens because the DocumentApi creates a state using a copy of the editor's plugins from the extension manager. The problem is not the copy but that the plugin property is actually a getter that calls `addProseMirrorPlugins` so the functon must not have side-effects.
17
- */
18
- registerMenu: <TPluginKey extends PluginKey<any>>(menu: Menu<TPluginKey>) => ReturnType;
19
- /**
20
- * Since most mark menus don't have a close command, this is can be used to temporarily disable them.
21
- *
22
- * This should not be used to more permanantly turn off mark menus, as internally this is used to temporarily disable AND enable them. All optional mark menus have options to disable them.
23
- */
24
- disableMarkMenus: () => ReturnType;
25
- /**
26
- * Enables showing of mark menus again.
27
- */
28
- enableMarkMenus: () => ReturnType;
29
- };
30
- }
31
- }
32
- /**
33
- * Helps coordinate the display of different menus, never allowing more than one to be opened, sorting by priority, and autoclosing others. \*.
34
- *
35
- * If this extension is available, extensions with menus will register themselves, some with a higher priority than others.
36
- *
37
- * On each transaction, the extension will check in order of priority if any of the registered menus should be opened and save which menu that is to it's `menusPluginKey`, closing other open menus.
38
- *
39
- * The MarkMenuManager component is used in the editor wrapper to easily display "mark" menus with the help of this extension. If it is not used, they won't show since they must be added manually. The commponent reads the saved state and if the menu is a mark menu and a renderer has been provided for it using the `menusInjectionKey`, it renders the menu. The editor wrapper provides the `menus` option which takes care of providing the menus.
40
- *
41
- * \* Note that menus may choose to not implement or not provide a close command. In cases like "mark" menus this is fine if using the MarkMenuManager since it will only ever display one menu, but can otherwise break the intended purpose of the extension.
42
- */
43
- export declare const Menus: Extension<{}, {
44
- menus: Menu[];
45
- }>;
@@ -1,142 +0,0 @@
1
- import { Extension } from "@tiptap/core";
2
- import { Plugin } from "@tiptap/pm/state";
3
- import { menusPluginKey } from "./types.js";
4
- import { createStateOnlyPluginObjApply } from "../../utils/createStateOnlyPluginObjApply.js";
5
- export const Menus = Extension.create({
6
- name: "menus",
7
- addStorage() {
8
- return {
9
- menus: []
10
- };
11
- },
12
- addCommands() {
13
- return {
14
- enableMarkMenus: () => ({ tr, dispatch }) => {
15
- if (dispatch) {
16
- tr.setMeta(menusPluginKey, {
17
- canShow: true
18
- });
19
- }
20
- return true;
21
- },
22
- disableMarkMenus: () => ({ tr, dispatch }) => {
23
- if (dispatch) {
24
- tr.setMeta(menusPluginKey, {
25
- canShow: false
26
- });
27
- }
28
- return true;
29
- },
30
- registerMenu: (menu) => () => {
31
- const menus = this.storage.menus;
32
- const existingIndex = menus.findIndex((m) => m.name === menu.name);
33
- if (existingIndex >= 0) {
34
- console.warn("Menu already registered, replacing.", {
35
- existing: menus[existingIndex],
36
- new: menu
37
- });
38
- menus.splice(existingIndex, 1, menu);
39
- }
40
- menus.push(menu);
41
- menus.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
42
- return true;
43
- },
44
- unregisterMenu: (menu) => ({ tr }) => {
45
- const menus = this.storage.menus;
46
- const index = menus.indexOf(menu);
47
- if (index !== -1) {
48
- menus.splice(index, 1);
49
- tr.setMeta(menusPluginKey, { menus });
50
- return true;
51
- }
52
- return false;
53
- },
54
- pinOpenMenu: (options) => ({ dispatch, tr, commands }) => {
55
- const menus = this.storage.menus;
56
- const menu = menus.find((m) => m.name === options.name);
57
- if (!menu) {
58
- console.warn("Menu to open not found.", options);
59
- return false;
60
- }
61
- commands.closeOtherMenus(true);
62
- if (dispatch) {
63
- tr.setMeta(menusPluginKey, {
64
- state: true,
65
- pin: true,
66
- menu
67
- });
68
- }
69
- return true;
70
- },
71
- closeOtherMenus: (forceUnpin = false) => ({ dispatch, tr, state, commands }) => {
72
- const other = menusPluginKey.getState(state);
73
- if (other?.pin && !forceUnpin) return false;
74
- const otherMenu = other?.menu;
75
- if (otherMenu?.closeCommand) {
76
- commands[otherMenu.closeCommand]();
77
- if (dispatch) {
78
- tr.setMeta(menusPluginKey, {
79
- state: false,
80
- menu: void 0
81
- });
82
- }
83
- return true;
84
- }
85
- return false;
86
- }
87
- };
88
- },
89
- addProseMirrorPlugins() {
90
- const self = this;
91
- return [
92
- new Plugin({
93
- key: menusPluginKey,
94
- state: {
95
- init() {
96
- return {
97
- state: false,
98
- pin: false,
99
- canShow: true
100
- };
101
- },
102
- apply: createStateOnlyPluginObjApply(menusPluginKey)
103
- },
104
- appendTransaction(trs, oldState, newState) {
105
- const menuWasSetByTrs = trs.some((tr) => tr.getMeta(menusPluginKey));
106
- if (menuWasSetByTrs) return void 0;
107
- const menus = self.storage.menus;
108
- const activeMenu = getActiveMenu(menus, newState);
109
- const value = menusPluginKey.getState(newState);
110
- const valueWas = menusPluginKey.getState(oldState);
111
- if (valueWas?.pin) {
112
- return void 0;
113
- }
114
- if (value?.state !== !!activeMenu || value?.menu?.name !== activeMenu?.name) {
115
- return newState.tr.setMeta(menusPluginKey, {
116
- state: !!activeMenu,
117
- menu: activeMenu ? {
118
- name: activeMenu.name,
119
- type: activeMenu.type,
120
- closeCommand: activeMenu.closeCommand
121
- } : void 0
122
- });
123
- }
124
- return void 0;
125
- }
126
- })
127
- ];
128
- }
129
- });
130
- function getActiveMenu(menus, state) {
131
- if (!menus) return void 0;
132
- for (const menu of menus) {
133
- const menuState = menu.pluginKey.getState(state);
134
- if (menuState === void 0) {
135
- console.warn("Menu plugin state is undefined. Did you register a plugin with this key?", menu.pluginKey, menu.name);
136
- }
137
- if (menu.canShow(state, menuState)) {
138
- return menu;
139
- }
140
- }
141
- return void 0;
142
- }
@@ -1,6 +0,0 @@
1
- import type { Editor } from "@tiptap/vue-3";
2
- type __VLS_Props = {
3
- editor: Editor;
4
- };
5
- declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
- export default _default;
@@ -1,166 +0,0 @@
1
- <template>
2
- <!-- @vue-expect-error -->
3
- <WPopup
4
- :model-value="!!activeMarkMenu"
5
- :preferred-horizontal="['center-most']"
6
- :preferred-vertical="['top-most']"
7
- :modify-position="modifyPopupToMenuBounds"
8
- :use-backdrop="false"
9
- class="[&>div]:transition-[left,top] duration-30"
10
- ref="popupComponent"
11
- >
12
- <template #popup="{ extractEl }">
13
- <div
14
- tabindex="0"
15
- class="p-2"
16
- :ref="(_) => {
17
- extractEl(_);
18
- menuEl = _;
19
- }"
20
- @keydown.esc="close"
21
- >
22
- <component
23
- v-if="menuRenderer?.component"
24
- :editor="editor"
25
- :is="menuRenderer.component"
26
- ref="component"
27
- v-bind="menuRenderer?.props?.(editor) ?? { editor }"
28
- @close="close"
29
- @copy="copy"
30
- />
31
- </div>
32
- </template>
33
- </WPopup>
34
- </template>
35
-
36
- <script setup>
37
- import WPopup from "@witchcraft/ui/components/LibPopup";
38
- import { copy } from "@witchcraft/ui/helpers/copy";
39
- import {
40
- computed,
41
- inject,
42
- nextTick,
43
- ref,
44
- useTemplateRef,
45
- watch,
46
- watchEffect
47
- } from "vue";
48
- import { findUpwards } from "../../../utils/findUpwards.js";
49
- import { menusInjectionKey, menusPluginKey } from "../types.js";
50
- const props = defineProps({
51
- editor: { type: null, required: true }
52
- });
53
- const menus = inject(menusInjectionKey, ref({}));
54
- const activeMarkMenu = ref();
55
- const menuRenderer = computed(() => {
56
- if (!activeMarkMenu.value) return void 0;
57
- const menuCompInfo = menus?.value?.[activeMarkMenu.value];
58
- return menuCompInfo;
59
- });
60
- const popupComponent = useTemplateRef("popupComponent");
61
- const menuEl = ref(null);
62
- const virtualEditorEl = ref(null);
63
- const virtualCursorEl = ref(null);
64
- function virtualCursorGetBoundingClientRect() {
65
- const opts = menuRenderer.value?.popupOptions;
66
- const selection = props.editor.state.selection;
67
- const doc = props.editor.state.doc;
68
- const $fromItem = findUpwards(doc, selection.from, ($pos) => $pos.node().type.name === "item")?.$pos;
69
- const end = props.editor.view.coordsAtPos(selection.to);
70
- const start = props.editor.view.coordsAtPos(selection.from);
71
- const itemStart = props.editor.view.coordsAtPos($fromItem?.pos ?? selection.from);
72
- const pinToItemDistance = typeof opts?.pinToItemDistance === "function" ? opts?.pinToItemDistance(props.editor.state) : opts?.pinToItemDistance ?? 0;
73
- const itemStartIsShortDistance = Math.abs(start.top - itemStart.top) < pinToItemDistance;
74
- const leftMost = Math.min(start.left, end.left);
75
- const rightMost = Math.max(start.right, end.right);
76
- const topMost = Math.min(start.top, end.top, itemStartIsShortDistance ? itemStart.top : Infinity);
77
- const bottomMost = Math.max(start.bottom, end.bottom);
78
- return {
79
- x: leftMost,
80
- y: topMost,
81
- top: topMost,
82
- bottom: bottomMost,
83
- left: leftMost,
84
- right: rightMost,
85
- width: rightMost - leftMost,
86
- height: bottomMost - topMost
87
- };
88
- }
89
- function virtualEditorGetBoundingClientRect() {
90
- const editorRect = props.editor.view.dom.getBoundingClientRect();
91
- const bodyRect = document.body.getBoundingClientRect();
92
- return {
93
- x: editorRect.x,
94
- left: editorRect.left,
95
- right: editorRect.right,
96
- width: editorRect.width,
97
- y: 0,
98
- top: 0,
99
- bottom: bodyRect.bottom,
100
- height: bodyRect.height
101
- };
102
- }
103
- const modifyPopupToMenuBounds = (pos, reference, popup, _bg, space) => {
104
- const editorRect = props.editor.view.dom.closest(".editor-wrapper")?.getBoundingClientRect();
105
- if (!editorRect) {
106
- throw new Error("MarkMenuManager: The wrapping scrollable editor component must have the `editor-wrapper` class for mark menus to work as they need to know the position of the scrollable wrapper.");
107
- }
108
- const yMin = Math.max(editorRect.top - popup.height, 0);
109
- if (pos.y < yMin) pos.y = yMin;
110
- if (reference && pos.y + popup.height > reference.top) {
111
- pos.y = space.bottom > space.top ? reference.bottom : reference.top - popup.height;
112
- }
113
- return pos;
114
- };
115
- function close(e) {
116
- e?.preventDefault();
117
- props.editor.commands.closeOtherMenus();
118
- }
119
- function documentRefocusBlur(e) {
120
- document.removeEventListener("focus", documentRefocusBlur);
121
- checkMenuBlur(e);
122
- }
123
- function checkMenuBlur(e) {
124
- if ("relatedTarget" in e) {
125
- if (e.relatedTarget === null) {
126
- document.addEventListener("focus", documentRefocusBlur);
127
- } else if (!menuEl.value?.contains(e.relatedTarget)) {
128
- close(e);
129
- }
130
- }
131
- }
132
- watchEffect(() => {
133
- if (activeMarkMenu.value) {
134
- document.addEventListener("click", checkMenuBlur);
135
- virtualCursorEl.value = { getBoundingClientRect: virtualCursorGetBoundingClientRect };
136
- popupComponent.value?.setReference(virtualCursorEl.value);
137
- virtualEditorEl.value = { getBoundingClientRect: virtualEditorGetBoundingClientRect };
138
- popupComponent.value?.setBackground(virtualEditorEl.value);
139
- } else {
140
- document.removeEventListener("click", checkMenuBlur);
141
- virtualCursorEl.value = null;
142
- popupComponent.value?.setReference(virtualCursorEl.value);
143
- virtualEditorEl.value = null;
144
- popupComponent.value?.setBackground(virtualEditorEl.value);
145
- }
146
- });
147
- const recompute = () => {
148
- nextTick(() => {
149
- popupComponent.value?.recompute();
150
- });
151
- };
152
- function updateState() {
153
- const state = menusPluginKey.getState(props.editor.state);
154
- if (state?.menu?.type === "mark" && state.canShow) {
155
- activeMarkMenu.value = state?.menu?.name;
156
- recompute();
157
- } else {
158
- activeMarkMenu.value = void 0;
159
- }
160
- }
161
- watch(() => props.editor, (newVal, oldVal) => {
162
- oldVal.off("transaction", updateState);
163
- newVal.on("transaction", updateState);
164
- });
165
- props.editor.on("transaction", updateState);
166
- </script>
@@ -1,6 +0,0 @@
1
- import type { Editor } from "@tiptap/vue-3";
2
- type __VLS_Props = {
3
- editor: Editor;
4
- };
5
- declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
- export default _default;