@witchcraft/editor 0.0.5 → 0.0.6

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 (400) 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 +122 -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/schema.d.ts +4 -0
  343. package/dist/runtime/pm/schema.js +80 -0
  344. package/dist/runtime/pm/testSchema.d.ts +5 -0
  345. package/dist/runtime/pm/testSchema.js +30 -0
  346. package/dist/runtime/pm/utils/createDropIndicator.d.ts +23 -0
  347. package/dist/runtime/pm/utils/createDropIndicator.js +36 -0
  348. package/dist/runtime/pm/utils/createStateOnlyPluginApply.d.ts +2 -0
  349. package/dist/runtime/pm/utils/createStateOnlyPluginApply.js +9 -0
  350. package/dist/runtime/pm/utils/createStateOnlyPluginObjApply.d.ts +2 -0
  351. package/dist/runtime/pm/utils/createStateOnlyPluginObjApply.js +14 -0
  352. package/dist/runtime/pm/utils/dropPointInfo.d.ts +56 -0
  353. package/dist/runtime/pm/utils/dropPointInfo.js +28 -0
  354. package/dist/runtime/pm/utils/findUpwards.d.ts +20 -0
  355. package/dist/runtime/pm/utils/findUpwards.js +18 -0
  356. package/dist/runtime/pm/utils/getChildChunks.d.ts +3 -0
  357. package/dist/runtime/pm/utils/getChildChunks.js +15 -0
  358. package/dist/runtime/pm/utils/getDiffReplacementRange.d.ts +20 -0
  359. package/dist/runtime/pm/utils/getDiffReplacementRange.js +9 -0
  360. package/dist/runtime/pm/utils/getElMaxVisualSize.d.ts +9 -0
  361. package/dist/runtime/pm/utils/getElMaxVisualSize.js +7 -0
  362. package/dist/runtime/pm/utils/getElPropertyAsInt.d.ts +4 -0
  363. package/dist/runtime/pm/utils/getElPropertyAsInt.js +8 -0
  364. package/dist/runtime/pm/utils/getGroupNodeNames.d.ts +2 -0
  365. package/dist/runtime/pm/utils/getGroupNodeNames.js +7 -0
  366. package/dist/runtime/pm/utils/getMarkPosition.d.ts +11 -0
  367. package/dist/runtime/pm/utils/getMarkPosition.js +34 -0
  368. package/dist/runtime/pm/utils/getMarksInSelection.d.ts +3 -0
  369. package/dist/runtime/pm/utils/getMarksInSelection.js +16 -0
  370. package/dist/runtime/pm/utils/getTypeByName.d.ts +2 -0
  371. package/dist/runtime/pm/utils/getTypeByName.js +5 -0
  372. package/dist/runtime/pm/utils/index.d.ts +15 -0
  373. package/dist/runtime/pm/utils/index.js +15 -0
  374. package/dist/runtime/pm/utils/internal/createNodeTypesList.d.ts +2 -0
  375. package/dist/runtime/pm/utils/internal/createNodeTypesList.js +17 -0
  376. package/dist/runtime/pm/utils/internal/debugMap.d.ts +7 -0
  377. package/dist/runtime/pm/utils/internal/debugMap.js +24 -0
  378. package/dist/runtime/pm/utils/internal/debugNode.d.ts +2 -0
  379. package/dist/runtime/pm/utils/internal/debugNode.js +18 -0
  380. package/dist/runtime/pm/utils/internal/debugSel.d.ts +5 -0
  381. package/dist/runtime/pm/utils/internal/debugSel.js +8 -0
  382. package/dist/runtime/pm/utils/internal/recurse.d.ts +2 -0
  383. package/dist/runtime/pm/utils/internal/recurse.js +39 -0
  384. package/dist/runtime/pm/utils/internal/stripBlockId.d.ts +2 -0
  385. package/dist/runtime/pm/utils/internal/stripBlockId.js +9 -0
  386. package/dist/runtime/pm/utils/mapSelection.d.ts +8 -0
  387. package/dist/runtime/pm/utils/mapSelection.js +12 -0
  388. package/dist/runtime/pm/utils/nodesBetween.d.ts +21 -0
  389. package/dist/runtime/pm/utils/nodesBetween.js +21 -0
  390. package/dist/runtime/pm/utils/pointToPmPoint.d.ts +2 -0
  391. package/dist/runtime/pm/utils/pointToPmPoint.js +3 -0
  392. package/dist/runtime/pm/utils/splitIntoChunks.d.ts +32 -0
  393. package/dist/runtime/pm/utils/splitIntoChunks.js +31 -0
  394. package/dist/runtime/testDocuments.d.ts +53 -0
  395. package/dist/runtime/testDocuments.js +122 -0
  396. package/dist/runtime/types/index.d.ts +53 -0
  397. package/dist/runtime/types/index.js +9 -0
  398. package/dist/types.d.mts +2 -12
  399. package/package.json +5 -5
  400. package/dist/module.d.cts +0 -2
@@ -0,0 +1,12 @@
1
+ import type { Editor } from "@tiptap/core";
2
+ import { type CommandBarCommand } from "../types.js";
3
+ type __VLS_Props = {
4
+ item: CommandBarCommand;
5
+ editor: Editor;
6
+ };
7
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
8
+ close: () => any;
9
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
10
+ onClose?: (() => any) | undefined;
11
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import type { CommandGroup } from "../types.js";
2
+ type __VLS_Props = {
3
+ item: CommandGroup;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
6
+ close: () => any;
7
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
8
+ onClose?: (() => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ export default _default;
@@ -0,0 +1,55 @@
1
+ <template>
2
+ <div
3
+ class="group/command-group"
4
+ @mouseenter="popup.setReference(el);
5
+ showSubMenu = true"
6
+ @mouseleave="popup.setReference(null);
7
+ showSubMenu = false"
8
+ >
9
+ <CommandMenuItem
10
+ :item="item"
11
+ v-extract-root-el="(_) => el = _"
12
+ />
13
+ <!-- @vue-expect-error -->
14
+ <WPopup
15
+ :model-value="showSubMenu"
16
+ :preferred-horizontal="['right-most']"
17
+ :preferred-vertical="popupVerticalPositioner"
18
+ :position-modifier="popupPositionModifier"
19
+ :use-backdrop="false"
20
+ ref="popup"
21
+ @update:model-value="showSubMenu = $event"
22
+ >
23
+ <template #popup="{ extractEl }">
24
+ <div
25
+ :ref="extractEl"
26
+ @mouseleave="popup.setReference(null);
27
+ showSubMenu = false"
28
+ >
29
+ <CommandMenuList
30
+ :entries="item.variations"
31
+ class="ml-0 mt-0"
32
+ @close="emit('close')"
33
+ />
34
+ </div>
35
+ </template>
36
+ </WPopup>
37
+ </div>
38
+ </template>
39
+
40
+ <script setup>
41
+ import WPopup from "@witchcraft/ui/components/LibPopup";
42
+ import { vExtractRootEl } from "@witchcraft/ui/directives/vExtractRootEl";
43
+ import { ref } from "vue";
44
+ import CommandMenuItem from "./CommandMenuItem.vue";
45
+ import CommandMenuList from "./CommandMenuList.vue";
46
+ import { popupPositionModifier } from "../utils/popupPositionModifier.js";
47
+ import { popupVerticalPositioner } from "../utils/popupVerticalPositioner.js";
48
+ defineProps({
49
+ item: { type: null, required: true }
50
+ });
51
+ const el = ref(null);
52
+ const showSubMenu = ref(false);
53
+ const popup = ref();
54
+ const emit = defineEmits(["close"]);
55
+ </script>
@@ -0,0 +1,10 @@
1
+ import type { CommandGroup } from "../types.js";
2
+ type __VLS_Props = {
3
+ item: CommandGroup;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
6
+ close: () => any;
7
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
8
+ onClose?: (() => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import type { ItemMenuCommand } from "../../Blocks/types.js";
2
+ import { type CommandGroup } from "../types.js";
3
+ type __VLS_Props = {
4
+ item: ItemMenuCommand | CommandGroup;
5
+ };
6
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
+ close: () => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onClose?: (() => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ export default _default;
@@ -0,0 +1,58 @@
1
+ <template>
2
+ <div
3
+ class="
4
+ p-1
5
+ "
6
+ :title="item.type === 'command' ? item.description : void 0"
7
+ >
8
+ <div
9
+ class="
10
+ group/menu-item
11
+ px-1
12
+ rounded-xs
13
+ hover:text-accent-700
14
+ dark:hover:text-accent-300
15
+ cursor-pointer
16
+ "
17
+ @click="handleClick"
18
+ >
19
+ <WIcon class="w-[1em] text-center">
20
+ <component
21
+ v-if="item.icon"
22
+ :is="'component' in item.icon ? item.icon.component : item.icon"
23
+ v-bind="'props' in item.icon ? { editor, ...item.icon.props } : { editor }"
24
+ />
25
+ </WIcon>
26
+ {{ item.title }}
27
+ <i-fa-solid-chevron-right
28
+ v-if="item.type === 'group'"
29
+ class="
30
+ text-neutral-500
31
+ pl-2
32
+ group-hover/menu-item:text-accent-500
33
+ "
34
+ />
35
+ </div>
36
+ </div>
37
+ </template>
38
+
39
+ <script setup>
40
+ import { inject } from "vue";
41
+ import IFaSolidChevronRight from "~icons/fa-solid/chevron-right";
42
+ import { commandExecuterInjectionKey, menuEditorInjectionKey } from "../types.js";
43
+ const editor = inject(menuEditorInjectionKey);
44
+ const props = defineProps({
45
+ item: { type: null, required: true }
46
+ });
47
+ const emit = defineEmits(["close"]);
48
+ const executer = inject(commandExecuterInjectionKey);
49
+ if (!executer) {
50
+ throw new Error("Command executer must be provided.");
51
+ }
52
+ function handleClick() {
53
+ if (props.item.type === "command") {
54
+ executer(props.item, editor.value);
55
+ emit("close");
56
+ }
57
+ }
58
+ </script>
@@ -0,0 +1,11 @@
1
+ import type { ItemMenuCommand } from "../../Blocks/types.js";
2
+ import { type CommandGroup } from "../types.js";
3
+ type __VLS_Props = {
4
+ item: ItemMenuCommand | CommandGroup;
5
+ };
6
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
+ close: () => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onClose?: (() => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import type { ItemMenuCommand } from "../../Blocks/types";
2
+ import type { CommandGroup } from "../types.js";
3
+ type __VLS_Props = {
4
+ entries: (ItemMenuCommand | CommandGroup)[];
5
+ };
6
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
+ close: () => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onClose?: (() => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ export default _default;
@@ -0,0 +1,54 @@
1
+ <template>
2
+ <div
3
+ class="
4
+ commands-list
5
+ flex
6
+ flex-col
7
+ rounded-sm
8
+ border
9
+ bg-neutral-100
10
+ border-neutral-300
11
+ dark:bg-neutral-800
12
+ dark:border-neutral-700
13
+ m-1
14
+ [&>*:first-child]:border-t-0
15
+ [&>*:first-child]:rounded-t-sm
16
+ [&>*:last-child]:rounded-b-sm
17
+ "
18
+ >
19
+ <template
20
+ v-for="item in entries"
21
+ :key="item.type + item.title"
22
+ >
23
+ <div
24
+
25
+ class="
26
+ border-t
27
+ border-neutral-300
28
+ "
29
+ >
30
+ <div v-if="item.type === 'command'">
31
+ <CommandMenuItem
32
+ :item="item"
33
+ @close="emit('close')"
34
+ />
35
+ </div>
36
+
37
+ <CommandMenuGroup
38
+ v-else-if="item.type === 'group'"
39
+ :item="item"
40
+ @close="emit('close')"
41
+ />
42
+ </div>
43
+ </template>
44
+ </div>
45
+ </template>
46
+
47
+ <script setup>
48
+ import CommandMenuGroup from "./CommandMenuGroup.vue";
49
+ import CommandMenuItem from "./CommandMenuItem.vue";
50
+ defineProps({
51
+ entries: { type: Array, required: true }
52
+ });
53
+ const emit = defineEmits(["close"]);
54
+ </script>
@@ -0,0 +1,11 @@
1
+ import type { ItemMenuCommand } from "../../Blocks/types";
2
+ import type { CommandGroup } from "../types.js";
3
+ type __VLS_Props = {
4
+ entries: (ItemMenuCommand | CommandGroup)[];
5
+ };
6
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
+ close: () => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onClose?: (() => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ export default _default;
@@ -0,0 +1,5 @@
1
+ type __VLS_Props = {
2
+ text: string;
3
+ };
4
+ 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>;
5
+ export default _default;
@@ -0,0 +1,13 @@
1
+ <template>
2
+ <span v-bind="$attrs">
3
+ {{ text }}
4
+ </span>
5
+ </template>
6
+
7
+ <script setup>
8
+ import { useAttrs } from "vue";
9
+ defineProps({
10
+ text: { type: String, required: true }
11
+ });
12
+ const $attrs = useAttrs();
13
+ </script>
@@ -0,0 +1,5 @@
1
+ type __VLS_Props = {
2
+ text: string;
3
+ };
4
+ 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>;
5
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import type { Editor } from "@tiptap/core";
2
+ import type { HighlightMarkOptions } from "../../Highlight/types.js";
3
+ type __VLS_Props = {
4
+ editor: Editor;
5
+ colorSlot?: keyof HighlightMarkOptions["colors"] | string;
6
+ };
7
+ 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>;
8
+ export default _default;
@@ -0,0 +1,45 @@
1
+ <template>
2
+ <div
3
+ class=" flex justify-center items-center"
4
+ >
5
+ <div
6
+ v-if="colorSlot !== void 0"
7
+ class=" w-[1rem] h-[1rem] rounded-full text-sm overflow-hidden"
8
+ :style="`background-color: ${color?.color}`"
9
+ :title="color?.name"
10
+ >
11
+ <FaSolidHighlighter class="mb-2 ml-1"/>
12
+ </div>
13
+ <div
14
+ v-else
15
+ class="
16
+ w-[1rem]
17
+ h-[1rem]
18
+ rounded-full
19
+ bg-neutral-100
20
+ dark:bg-neutral-900
21
+ border-2
22
+ border-dashed
23
+ border-neutral-500
24
+ flex justify-center items-center
25
+ "
26
+ />
27
+ </div>
28
+ </template>
29
+
30
+ <script setup>
31
+ import { computed } from "vue";
32
+ import FaSolidHighlighter from "~icons/lucide/highlighter";
33
+ import { highlightPluginKey } from "../../Highlight/types.js";
34
+ const props = defineProps({
35
+ editor: { type: null, required: true },
36
+ colorSlot: { type: null, required: false }
37
+ });
38
+ const color = computed(() => {
39
+ const colors = highlightPluginKey.getState(props.editor.state)?.colors;
40
+ if (colors && props.colorSlot !== void 0) {
41
+ return colors[props.colorSlot];
42
+ }
43
+ return void 0;
44
+ });
45
+ </script>
@@ -0,0 +1,8 @@
1
+ import type { Editor } from "@tiptap/core";
2
+ import type { HighlightMarkOptions } from "../../Highlight/types.js";
3
+ type __VLS_Props = {
4
+ editor: Editor;
5
+ colorSlot?: keyof HighlightMarkOptions["colors"] | string;
6
+ };
7
+ 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>;
8
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <span>
3
+ X<sub class="pl-1">2</sub>
4
+ </span>
5
+ </template>
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <span>
3
+ X<sup class="pl-1">2</sup>
4
+ </span>
5
+ </template>
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,61 @@
1
+ import type { ChainedCommands, Editor } from "@tiptap/core";
2
+ import { type EditorState, PluginKey } from "@tiptap/pm/state";
3
+ import type { FunctionalComponent, InjectionKey, Ref } from "vue";
4
+ export interface CommandBarExtensionOptions {
5
+ commandBar: CommandBarMenu;
6
+ }
7
+ export type Command<TRegularArgs extends any[] = any[], TFuncArgs extends ((editor: Editor, ...args: any[]) => any[]) = ((editor: Editor, ...args: any[]) => any[])> = {
8
+ type: "command";
9
+ command: keyof ChainedCommands;
10
+ title: string;
11
+ description?: string;
12
+ icon?: (new () => any) | FunctionalComponent | {
13
+ component: (new () => any) | FunctionalComponent;
14
+ props?: Record<string, any>;
15
+ };
16
+ /**
17
+ * Args to pass to the command.
18
+ *
19
+ * A function to determine those args can also be
20
+ * passed instead.
21
+ *
22
+ * What context is provided to the function depends on the meny.
23
+ */
24
+ args?: TRegularArgs | TFuncArgs;
25
+ /**
26
+ * Determines whether the entry should be shown.
27
+ *
28
+ * Note that while one can just use tiptap's `can()` method, some commands are
29
+ * expensive to execute, so it's better to just do a more generic lightweight check in those situations.
30
+ */
31
+ canShow?: (editorstate: EditorState) => boolean;
32
+ };
33
+ export type CommandGroup<T extends string | never = string, TCommand extends Command<any> = Command<any>, TNestable extends boolean = false> = {
34
+ icon?: (new () => any) | {
35
+ component: new () => any;
36
+ props?: Record<string, any>;
37
+ };
38
+ type: "group";
39
+ groupType?: T extends string ? T : never;
40
+ title: string;
41
+ variations: TNestable extends false ? TCommand[] : (TCommand | CommandGroup<T, TCommand, TNestable>)[];
42
+ };
43
+ export declare const menuEditorInjectionKey: InjectionKey<Ref<Editor>>;
44
+ export declare const menuBlockIdInjectionKey: InjectionKey<Ref<string | undefined>>;
45
+ export type CommandBarMenuState = {
46
+ state: boolean;
47
+ /** For internal use, the commandBar can't be opened if the editor isn't focused. */
48
+ canOpen: boolean;
49
+ };
50
+ export declare const commandBarMenuPluginKey: PluginKey<CommandBarMenuState>;
51
+ export type CommandBarCommand = Command;
52
+ export type CommandBarGroup = CommandGroup<"inline", /* todo | "dropdown" */ CommandBarCommand, false>;
53
+ export type CommandBarMenu = {
54
+ enabled: true | false | Record<string, boolean>;
55
+ commands: (CommandBarCommand | CommandBarGroup)[];
56
+ options?: {
57
+ onlyOpenOnSelection?: boolean;
58
+ };
59
+ };
60
+ export type CommandExecuter = (item: Command, editor: Editor) => void;
61
+ export declare const commandExecuterInjectionKey: InjectionKey<CommandExecuter>;
@@ -0,0 +1,5 @@
1
+ import { PluginKey } from "@tiptap/pm/state";
2
+ export const menuEditorInjectionKey = Symbol("menuEditorInjectionKey");
3
+ export const menuBlockIdInjectionKey = Symbol("menuBlockIdInjectionKey");
4
+ export const commandBarMenuPluginKey = new PluginKey("commandBarMenuPluginKey");
5
+ export const commandExecuterInjectionKey = Symbol("commandExecuterInjectionKey");
@@ -0,0 +1,3 @@
1
+ import type { Editor } from "@tiptap/core";
2
+ import type { Command } from "../types.js";
3
+ export declare function defaultCommandExecuter(item: Command, editor: Editor): void;
@@ -0,0 +1,11 @@
1
+ import { castType } from "@alanscodelog/utils/castType";
2
+ export function defaultCommandExecuter(item, editor) {
3
+ if (item.type === "command") {
4
+ const args = typeof item.args === "function" ? item.args(editor) : item.args ?? [];
5
+ editor.commands.command(({ commands }) => {
6
+ castType(item);
7
+ commands[item.command](...args);
8
+ return true;
9
+ });
10
+ }
11
+ }
@@ -0,0 +1,10 @@
1
+ import type { Command, CommandGroup } from "../types.js";
2
+ /**
3
+ * Deep search through a list of commands/command groups.
4
+ *
5
+ * The callback is passed each command
6
+ * and it's parent group if it has one..
7
+ *
8
+ * Returning true will stop the search.
9
+ */
10
+ export declare function findCommand<TEntry extends Command | CommandGroup, TCommand extends Exclude<TEntry, CommandGroup>, TCommandGroup extends Exclude<TEntry, Command>>(commands: TEntry[], cb: (command: TCommand, parent: TCommandGroup | undefined) => boolean): boolean;
@@ -0,0 +1,16 @@
1
+ import { castType } from "@alanscodelog/utils/castType";
2
+ export function findCommand(commands, cb) {
3
+ const parent = arguments[2];
4
+ const internalFindCommand = findCommand;
5
+ for (const item of commands) {
6
+ if (item.type === "command") {
7
+ castType(item);
8
+ const res = cb(item, parent);
9
+ if (res) return true;
10
+ } else if (item.type === "group") {
11
+ const res = internalFindCommand(item.variations, cb, item);
12
+ if (res) return true;
13
+ }
14
+ }
15
+ return false;
16
+ }
@@ -0,0 +1,5 @@
1
+ import type { PopupPositionModifier } from "@witchcraft/ui/types";
2
+ /**
3
+ * Modifes the popup to have a max width and height if it doesn't fit in the window.
4
+ */
5
+ export declare const popupPositionModifier: PopupPositionModifier;
@@ -0,0 +1,9 @@
1
+ export const popupPositionModifier = (pos, _reference, popup, veil) => {
2
+ if (popup.height > veil.height) {
3
+ pos.maxHeight = veil.height;
4
+ }
5
+ if (popup.width > veil.width) {
6
+ pos.maxWidth = veil.width;
7
+ }
8
+ return pos;
9
+ };
@@ -0,0 +1,5 @@
1
+ import type { PopupPositioner } from "@witchcraft/ui/types";
2
+ /**
3
+ * Position the popup so it's top edge is at the item's top edge, UNLESS it hits the top or bottom edges, in which case it'll shift the positioning, always keeping the top of the menu in view.
4
+ */
5
+ export declare const popupVerticalPositioner: PopupPositioner;
@@ -0,0 +1,11 @@
1
+ export const popupVerticalPositioner = (reference, popup, veil, space) => {
2
+ if (!reference) return 0;
3
+ const spaceBottomFromReferenceTop = veil.y + veil.height - reference.y;
4
+ if (space.top <= 0 || space.top + reference.width + space.bottom <= popup.height) {
5
+ return 0;
6
+ } else if (spaceBottomFromReferenceTop > popup.height) {
7
+ return reference.y;
8
+ } else {
9
+ return veil.y + veil.height - popup.height;
10
+ }
11
+ };
@@ -0,0 +1,3 @@
1
+ import { Node } from "@tiptap/core";
2
+ export declare const Document: Node<any, any>;
3
+ export type NodeDocumentName = "doc";
@@ -0,0 +1,6 @@
1
+ import { Node } from "@tiptap/core";
2
+ export const Document = Node.create({
3
+ name: "doc",
4
+ topNode: true,
5
+ content: "list"
6
+ });
@@ -0,0 +1,86 @@
1
+ import type { Content, EditorOptions } from "@tiptap/core";
2
+ import type { Schema } from "@tiptap/pm/model";
3
+ import type { EditorState, Plugin, Transaction } from "@tiptap/pm/state";
4
+ import { Editor } from "@tiptap/vue-3";
5
+ import type { DocId, DocumentApiInterface, EmbedId, OnSaveDocumentCallback, OnUpdateDocumentCallback } from "./types.js";
6
+ /**
7
+ * Configures the document api which tells the editor how to load/unload/save/cache documents, including embedded ones.
8
+ *
9
+ * The cache implementation is left up to the user, hence why it's defined as a get/set interface. A load function must be provided for requesting uncached documents.
10
+ *
11
+ * `save` is optional, but you probably want to save. The function is automatically debounced the configured amount.
12
+ *
13
+ * **Any function that needs to return a document should return it unwrapped with toRaw if it was a ref or in a ref or reactive. **
14
+ *
15
+ * A `refCounter` object can be provided with the respective load/unload functions to be notified when embedded views load/unload documents to reference count them and unload them once no editors have them in use.
16
+ *
17
+ * It is safe to call load multiple times for the same document, the actual load function will only be called once per document, but the refCounter will be called multiple times.
18
+ *
19
+ * The `getTitle` function can be provided to customize the title of the embedded document. It's passed the full embed id and returns it as docId#blockId by default.
20
+ *
21
+ * If there are extensions that use onCreate to set state or have plugins that need to change the state on init with appendTransaction, they will not work since there is no view to initialize the plugins. To get around this, plugins can specify a stateInit function that will be called with a transaction from the initial loaded state which it can then modify while having access to `this` and the extension options.
22
+ *
23
+ * The api creates a default instance of the editor to copy plugins from, this can be replaced by passing your own editor instance.
24
+ *
25
+ * See {@link useTestDocumentApi} for an example of how to set things up.
26
+ */
27
+ export declare class DocumentApi<T extends Record<string, any> = Record<string, any>> implements DocumentApiInterface<T> {
28
+ private readonly _callbacks;
29
+ private readonly _load;
30
+ private readonly _save?;
31
+ private readonly _saveQueue;
32
+ readonly save: DocumentApiInterface<T>["save"];
33
+ private readonly _cache;
34
+ /**
35
+ * The refCounter is called every time an editor loads or unloads a document. It's used to keep track of the number of editors that are using a document, and to unload it when no editors are using it.
36
+ *
37
+ * Note that you need not immediately unload the cached document. So long as the count is immediatly updated you can set a timeout to actually delete the cache entry (be sure to check the count it still 0 and you can delete it).
38
+ */
39
+ private readonly _refCounter;
40
+ getSuggestions: DocumentApiInterface["getSuggestions"];
41
+ getEmbedTitle: DocumentApiInterface["getEmbedTitle"];
42
+ postEditorInit: DocumentApiInterface["postEditorInit"];
43
+ preEditorInit: DocumentApiInterface["preEditorInit"];
44
+ updateFilter?: DocumentApiInterface["updateFilter"];
45
+ editor: Editor;
46
+ constructor({ editorOptions, getTitle, getSuggestions, load, save, saveDebounce, cache, refCounter, postEditorInit, preEditorInit, updateFilter }: {
47
+ /**
48
+ * The editor options for the internal instance to use to keep track of the document state. It should include the same extensions as the root editor.
49
+ */
50
+ editorOptions: Partial<EditorOptions>;
51
+ getTitle?: (docId: string, blockId?: string) => string;
52
+ getSuggestions: DocumentApiInterface["getSuggestions"];
53
+ load: (docId: string, schema: Schema, plugins: Plugin[]) => Promise<{
54
+ state: EditorState;
55
+ data?: T;
56
+ }>;
57
+ save?: DocumentApi["_save"];
58
+ saveDebounce?: number;
59
+ cache: DocumentApi["_cache"];
60
+ refCounter: DocumentApi<T>["_refCounter"];
61
+ postEditorInit?: DocumentApi["postEditorInit"];
62
+ preEditorInit?: DocumentApi["preEditorInit"];
63
+ updateFilter?: DocumentApi["updateFilter"];
64
+ });
65
+ _saveDocument(docId: string): Promise<void>;
66
+ updateDocument(embedId: DocId, tr: Transaction, updaterSymbol?: symbol): void;
67
+ addEventListener(type: "saving" | "saved", cb: OnSaveDocumentCallback): void;
68
+ addEventListener(type: "update", cb: OnUpdateDocumentCallback): void;
69
+ removeEventListener(type: "saving" | "saved", cb: OnSaveDocumentCallback): void;
70
+ removeEventListener(type: "update", cb: OnUpdateDocumentCallback): void;
71
+ unload({ docId }: DocId): void;
72
+ private readonly _loading;
73
+ load({ docId }: DocId): Promise<{
74
+ state: EditorState;
75
+ data?: T;
76
+ }>;
77
+ private _loadInternal;
78
+ getFullState(docId: DocId): EditorState;
79
+ getFromCache(docId: DocId, options?: {
80
+ errorIfNotFound: true;
81
+ }): EditorState;
82
+ getFromCache(docId: DocId, options?: {
83
+ errorIfNotFound?: boolean;
84
+ }): EditorState | undefined;
85
+ getEmbeddedContent(embedId: EmbedId): Content | undefined;
86
+ }