@witchcraft/editor 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. package/dist/module.d.cts +2 -0
  2. package/dist/module.d.mts +2 -15
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +13 -72
  5. package/dist/types.d.mts +12 -2
  6. package/package.json +228 -236
  7. package/src/module.ts +1 -2
  8. package/src/runtime/assets/handle-border-circles.svg +0 -0
  9. package/src/runtime/components/Editor.vue +0 -0
  10. package/src/runtime/pm/features/Blocks/components/ItemNodeView.vue +1 -1
  11. package/src/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.vue +1 -1
  12. package/src/runtime/pm/schema.ts +0 -0
  13. package/src/runtime/pm/utils/createDropIndicator.ts +9 -3
  14. package/src/runtime/pm/utils/getElPropertyAsInt.ts +3 -0
  15. package/src/runtime/pm/utils/internal/debugSel.ts +0 -0
  16. package/src/runtime/pm/utils/internal/recurse.ts +0 -0
  17. package/dist/runtime/assets/base.css +0 -1
  18. package/dist/runtime/assets/handle-arrow.svg +0 -16
  19. package/dist/runtime/assets/handle-border-circles-single.svg +0 -44
  20. package/dist/runtime/assets/handle-border-circles.svg +0 -27
  21. package/dist/runtime/assets/handle-temp.svg +0 -1
  22. package/dist/runtime/assets/utils.css +0 -1
  23. package/dist/runtime/components/CodeBlockThemePicker.d.vue.ts +0 -12
  24. package/dist/runtime/components/CodeBlockThemePicker.vue +0 -123
  25. package/dist/runtime/components/CodeBlockThemePicker.vue.d.ts +0 -12
  26. package/dist/runtime/components/Commands.d.vue.ts +0 -10
  27. package/dist/runtime/components/Commands.vue +0 -60
  28. package/dist/runtime/components/Commands.vue.d.ts +0 -10
  29. package/dist/runtime/components/Editor.d.vue.ts +0 -40
  30. package/dist/runtime/components/Editor.vue +0 -208
  31. package/dist/runtime/components/Editor.vue.d.ts +0 -40
  32. package/dist/runtime/components/EditorDemoApp.d.vue.ts +0 -2
  33. package/dist/runtime/components/EditorDemoApp.vue +0 -104
  34. package/dist/runtime/components/EditorDemoApp.vue.d.ts +0 -2
  35. package/dist/runtime/components/EditorDemoControls.d.vue.ts +0 -12
  36. package/dist/runtime/components/EditorDemoControls.vue +0 -36
  37. package/dist/runtime/components/EditorDemoControls.vue.d.ts +0 -12
  38. package/dist/runtime/components/TestWrapper.d.vue.ts +0 -11
  39. package/dist/runtime/components/TestWrapper.vue +0 -63
  40. package/dist/runtime/components/TestWrapper.vue.d.ts +0 -11
  41. package/dist/runtime/composables/useEditor.d.ts +0 -9
  42. package/dist/runtime/composables/useEditor.js +0 -21
  43. package/dist/runtime/composables/useWindowDebugging.d.ts +0 -3
  44. package/dist/runtime/composables/useWindowDebugging.js +0 -16
  45. package/dist/runtime/demo/App.d.vue.ts +0 -2
  46. package/dist/runtime/demo/App.vue +0 -101
  47. package/dist/runtime/demo/App.vue.d.ts +0 -2
  48. package/dist/runtime/demo/README.md +0 -1
  49. package/dist/runtime/demo/main.d.ts +0 -1
  50. package/dist/runtime/demo/main.js +0 -4
  51. package/dist/runtime/demo/tailwind.css +0 -1
  52. package/dist/runtime/env.d.ts +0 -2
  53. package/dist/runtime/injectionKeys.d.ts +0 -6
  54. package/dist/runtime/injectionKeys.js +0 -3
  55. package/dist/runtime/main.lib.d.ts +0 -2
  56. package/dist/runtime/main.lib.js +0 -2
  57. package/dist/runtime/pm/commands/backspace.d.ts +0 -12
  58. package/dist/runtime/pm/commands/backspace.js +0 -26
  59. package/dist/runtime/pm/commands/changeAttrs.d.ts +0 -9
  60. package/dist/runtime/pm/commands/changeAttrs.js +0 -15
  61. package/dist/runtime/pm/commands/deleteSelection.d.ts +0 -9
  62. package/dist/runtime/pm/commands/deleteSelection.js +0 -8
  63. package/dist/runtime/pm/commands/enter.d.ts +0 -14
  64. package/dist/runtime/pm/commands/enter.js +0 -9
  65. package/dist/runtime/pm/commands/insertBreak.d.ts +0 -9
  66. package/dist/runtime/pm/commands/insertBreak.js +0 -22
  67. package/dist/runtime/pm/features/Base/Base.d.ts +0 -4
  68. package/dist/runtime/pm/features/Base/Base.js +0 -32
  69. package/dist/runtime/pm/features/Base/commands/deleteNodes.d.ts +0 -10
  70. package/dist/runtime/pm/features/Base/commands/deleteNodes.js +0 -29
  71. package/dist/runtime/pm/features/Base/commands/setCursorVisible.d.ts +0 -12
  72. package/dist/runtime/pm/features/Base/commands/setCursorVisible.js +0 -7
  73. package/dist/runtime/pm/features/Base/plugins/debugSelectionPlugin.d.ts +0 -9
  74. package/dist/runtime/pm/features/Base/plugins/debugSelectionPlugin.js +0 -48
  75. package/dist/runtime/pm/features/Base/plugins/isCursorVisiblePlugin.d.ts +0 -3
  76. package/dist/runtime/pm/features/Base/plugins/isCursorVisiblePlugin.js +0 -26
  77. package/dist/runtime/pm/features/Base/plugins/isUsingTouchPlugin.d.ts +0 -3
  78. package/dist/runtime/pm/features/Base/plugins/isUsingTouchPlugin.js +0 -38
  79. package/dist/runtime/pm/features/Base/plugins/selectingIndicator.d.ts +0 -5
  80. package/dist/runtime/pm/features/Base/plugins/selectingIndicator.js +0 -35
  81. package/dist/runtime/pm/features/Base/plugins/unfocusedSelectionIndicatorPlugin.d.ts +0 -33
  82. package/dist/runtime/pm/features/Base/plugins/unfocusedSelectionIndicatorPlugin.js +0 -66
  83. package/dist/runtime/pm/features/Base/types.d.ts +0 -3
  84. package/dist/runtime/pm/features/Base/types.js +0 -0
  85. package/dist/runtime/pm/features/BaseShortcuts/BaseShortcuts.d.ts +0 -3
  86. package/dist/runtime/pm/features/BaseShortcuts/BaseShortcuts.js +0 -34
  87. package/dist/runtime/pm/features/Blockquote/Blockquote.d.ts +0 -5
  88. package/dist/runtime/pm/features/Blockquote/Blockquote.js +0 -65
  89. package/dist/runtime/pm/features/Blockquote/commands/blockquoteEnter.d.ts +0 -11
  90. package/dist/runtime/pm/features/Blockquote/commands/blockquoteEnter.js +0 -31
  91. package/dist/runtime/pm/features/Blockquote/commands/blockquoteShiftEnter.d.ts +0 -11
  92. package/dist/runtime/pm/features/Blockquote/commands/blockquoteShiftEnter.js +0 -12
  93. package/dist/runtime/pm/features/Blocks/Blocks.d.ts +0 -2
  94. package/dist/runtime/pm/features/Blocks/Blocks.js +0 -2
  95. package/dist/runtime/pm/features/Blocks/Item.d.ts +0 -11
  96. package/dist/runtime/pm/features/Blocks/Item.js +0 -157
  97. package/dist/runtime/pm/features/Blocks/List.d.ts +0 -4
  98. package/dist/runtime/pm/features/Blocks/List.js +0 -59
  99. package/dist/runtime/pm/features/Blocks/commands/changeItemType.d.ts +0 -20
  100. package/dist/runtime/pm/features/Blocks/commands/changeItemType.js +0 -40
  101. package/dist/runtime/pm/features/Blocks/commands/changeTypeAttr.d.ts +0 -14
  102. package/dist/runtime/pm/features/Blocks/commands/changeTypeAttr.js +0 -28
  103. package/dist/runtime/pm/features/Blocks/commands/copyOrMoveItem.d.ts +0 -23
  104. package/dist/runtime/pm/features/Blocks/commands/copyOrMoveItem.js +0 -124
  105. package/dist/runtime/pm/features/Blocks/commands/deleteItem.d.ts +0 -12
  106. package/dist/runtime/pm/features/Blocks/commands/deleteItem.js +0 -8
  107. package/dist/runtime/pm/features/Blocks/commands/indentItem.d.ts +0 -12
  108. package/dist/runtime/pm/features/Blocks/commands/indentItem.js +0 -58
  109. package/dist/runtime/pm/features/Blocks/commands/itemMenuCommands.d.ts +0 -18
  110. package/dist/runtime/pm/features/Blocks/commands/itemMenuCommands.js +0 -40
  111. package/dist/runtime/pm/features/Blocks/commands/moveItem.d.ts +0 -12
  112. package/dist/runtime/pm/features/Blocks/commands/moveItem.js +0 -80
  113. package/dist/runtime/pm/features/Blocks/commands/setNode.d.ts +0 -20
  114. package/dist/runtime/pm/features/Blocks/commands/setNode.js +0 -87
  115. package/dist/runtime/pm/features/Blocks/commands/splitItem.d.ts +0 -17
  116. package/dist/runtime/pm/features/Blocks/commands/splitItem.js +0 -87
  117. package/dist/runtime/pm/features/Blocks/commands/unindentItem.d.ts +0 -12
  118. package/dist/runtime/pm/features/Blocks/commands/unindentItem.js +0 -42
  119. package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.d.vue.ts +0 -0
  120. package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.vue +0 -122
  121. package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.vue.d.ts +0 -0
  122. package/dist/runtime/pm/features/Blocks/components/ItemMenu.d.vue.ts +0 -6
  123. package/dist/runtime/pm/features/Blocks/components/ItemMenu.vue +0 -78
  124. package/dist/runtime/pm/features/Blocks/components/ItemMenu.vue.d.ts +0 -6
  125. package/dist/runtime/pm/features/Blocks/components/ItemNodeView.d.vue.ts +0 -92
  126. package/dist/runtime/pm/features/Blocks/components/ItemNodeView.vue +0 -350
  127. package/dist/runtime/pm/features/Blocks/components/ItemNodeView.vue.d.ts +0 -92
  128. package/dist/runtime/pm/features/Blocks/components/defaultItemMenu.d.ts +0 -5
  129. package/dist/runtime/pm/features/Blocks/components/defaultItemMenu.js +0 -42
  130. package/dist/runtime/pm/features/Blocks/composables/useDragWithThreshold.d.ts +0 -1
  131. package/dist/runtime/pm/features/Blocks/composables/useDragWithThreshold.js +0 -0
  132. package/dist/runtime/pm/features/Blocks/composables/useHandleHeight.d.ts +0 -5
  133. package/dist/runtime/pm/features/Blocks/composables/useHandleHeight.js +0 -22
  134. package/dist/runtime/pm/features/Blocks/composables/useHasChildren.d.ts +0 -5
  135. package/dist/runtime/pm/features/Blocks/composables/useHasChildren.js +0 -10
  136. package/dist/runtime/pm/features/Blocks/composables/useNodeStates.d.ts +0 -7
  137. package/dist/runtime/pm/features/Blocks/composables/useNodeStates.js +0 -20
  138. package/dist/runtime/pm/features/Blocks/itemMenuMenuItems.d.ts +0 -20
  139. package/dist/runtime/pm/features/Blocks/itemMenuMenuItems.js +0 -138
  140. package/dist/runtime/pm/features/Blocks/plugins/ensureLastItemIsContentPlugin.d.ts +0 -11
  141. package/dist/runtime/pm/features/Blocks/plugins/ensureLastItemIsContentPlugin.js +0 -36
  142. package/dist/runtime/pm/features/Blocks/plugins/itemBlockIdPlugin.d.ts +0 -8
  143. package/dist/runtime/pm/features/Blocks/plugins/itemBlockIdPlugin.js +0 -30
  144. package/dist/runtime/pm/features/Blocks/plugins/itemHasSingularSelectionPlugin.d.ts +0 -3
  145. package/dist/runtime/pm/features/Blocks/plugins/itemHasSingularSelectionPlugin.js +0 -30
  146. package/dist/runtime/pm/features/Blocks/plugins/itemMenuPlugin.d.ts +0 -4
  147. package/dist/runtime/pm/features/Blocks/plugins/itemMenuPlugin.js +0 -17
  148. package/dist/runtime/pm/features/Blocks/states/stateful.d.ts +0 -2
  149. package/dist/runtime/pm/features/Blocks/states/stateful.js +0 -37
  150. package/dist/runtime/pm/features/Blocks/states/task/cancelled.svg +0 -32
  151. package/dist/runtime/pm/features/Blocks/states/task/checked.svg +0 -27
  152. package/dist/runtime/pm/features/Blocks/states/task/checked2.svg +0 -24
  153. package/dist/runtime/pm/features/Blocks/states/task/partial.svg +0 -24
  154. package/dist/runtime/pm/features/Blocks/states/task/partial2.svg +0 -31
  155. package/dist/runtime/pm/features/Blocks/states/task/unchecked.svg +0 -20
  156. package/dist/runtime/pm/features/Blocks/types.d.ts +0 -43
  157. package/dist/runtime/pm/features/Blocks/types.js +0 -2
  158. package/dist/runtime/pm/features/Blocks/utils/createItemMenuCommandExecuter.d.ts +0 -3
  159. package/dist/runtime/pm/features/Blocks/utils/createItemMenuCommandExecuter.js +0 -24
  160. package/dist/runtime/pm/features/Blocks/utils/fixBlockIds.d.ts +0 -4
  161. package/dist/runtime/pm/features/Blocks/utils/fixBlockIds.js +0 -23
  162. package/dist/runtime/pm/features/Blocks/utils/isValidId.d.ts +0 -2
  163. package/dist/runtime/pm/features/Blocks/utils/isValidId.js +0 -7
  164. package/dist/runtime/pm/features/CodeBlock/CodeBlock.d.ts +0 -16
  165. package/dist/runtime/pm/features/CodeBlock/CodeBlock.js +0 -91
  166. package/dist/runtime/pm/features/CodeBlock/build/generateHighlightJsInfo.d.ts +0 -1
  167. package/dist/runtime/pm/features/CodeBlock/build/generateHighlightJsInfo.js +0 -63
  168. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockEnterOrSplit.d.ts +0 -9
  169. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockEnterOrSplit.js +0 -28
  170. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockIndent.d.ts +0 -9
  171. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockIndent.js +0 -39
  172. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockUnindent.d.ts +0 -9
  173. package/dist/runtime/pm/features/CodeBlock/commands/codeBlockUnindent.js +0 -50
  174. package/dist/runtime/pm/features/CodeBlock/commands/focusCodeBlockLanguage.d.ts +0 -9
  175. package/dist/runtime/pm/features/CodeBlock/commands/focusCodeBlockLanguage.js +0 -27
  176. package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.d.vue.ts +0 -92
  177. package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.vue +0 -112
  178. package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.vue.d.ts +0 -92
  179. package/dist/runtime/pm/features/CodeBlock/composables/useAsyncCodeBlockHighlighting.d.ts +0 -28
  180. package/dist/runtime/pm/features/CodeBlock/composables/useAsyncCodeBlockHighlighting.js +0 -137
  181. package/dist/runtime/pm/features/CodeBlock/composables/useHighlightJsTheme.d.ts +0 -37
  182. package/dist/runtime/pm/features/CodeBlock/composables/useHighlightJsTheme.js +0 -101
  183. package/dist/runtime/pm/features/CodeBlock/highlightJsInfo.d.ts +0 -17
  184. package/dist/runtime/pm/features/CodeBlock/highlightJsInfo.js +0 -711
  185. package/dist/runtime/pm/features/CodeBlock/types.d.ts +0 -4
  186. package/dist/runtime/pm/features/CodeBlock/types.js +0 -2
  187. package/dist/runtime/pm/features/Collaboration/Collaboration.d.ts +0 -66
  188. package/dist/runtime/pm/features/Collaboration/Collaboration.js +0 -169
  189. package/dist/runtime/pm/features/CommandsMenus/CommandBar.d.ts +0 -19
  190. package/dist/runtime/pm/features/CommandsMenus/CommandBar.js +0 -97
  191. package/dist/runtime/pm/features/CommandsMenus/commandBarMenuItems.d.ts +0 -20
  192. package/dist/runtime/pm/features/CommandsMenus/commandBarMenuItems.js +0 -188
  193. package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.d.vue.ts +0 -8
  194. package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.vue +0 -58
  195. package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.vue.d.ts +0 -8
  196. package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.d.vue.ts +0 -12
  197. package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.vue +0 -42
  198. package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.vue.d.ts +0 -12
  199. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.d.vue.ts +0 -10
  200. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.vue +0 -55
  201. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.vue.d.ts +0 -10
  202. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.d.vue.ts +0 -11
  203. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.vue +0 -58
  204. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.vue.d.ts +0 -11
  205. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.d.vue.ts +0 -11
  206. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.vue +0 -54
  207. package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.vue.d.ts +0 -11
  208. package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.d.vue.ts +0 -5
  209. package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.vue +0 -13
  210. package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.vue.d.ts +0 -5
  211. package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.d.vue.ts +0 -8
  212. package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.vue +0 -45
  213. package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.vue.d.ts +0 -8
  214. package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.d.vue.ts +0 -2
  215. package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.vue +0 -5
  216. package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.vue.d.ts +0 -2
  217. package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.d.vue.ts +0 -2
  218. package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.vue +0 -5
  219. package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.vue.d.ts +0 -2
  220. package/dist/runtime/pm/features/CommandsMenus/types.d.ts +0 -61
  221. package/dist/runtime/pm/features/CommandsMenus/types.js +0 -5
  222. package/dist/runtime/pm/features/CommandsMenus/utils/defaultCommandExecutor.d.ts +0 -3
  223. package/dist/runtime/pm/features/CommandsMenus/utils/defaultCommandExecutor.js +0 -11
  224. package/dist/runtime/pm/features/CommandsMenus/utils/findCommand.d.ts +0 -10
  225. package/dist/runtime/pm/features/CommandsMenus/utils/findCommand.js +0 -16
  226. package/dist/runtime/pm/features/CommandsMenus/utils/popupPositionModifier.d.ts +0 -5
  227. package/dist/runtime/pm/features/CommandsMenus/utils/popupPositionModifier.js +0 -9
  228. package/dist/runtime/pm/features/CommandsMenus/utils/popupVerticalPositioner.d.ts +0 -5
  229. package/dist/runtime/pm/features/CommandsMenus/utils/popupVerticalPositioner.js +0 -11
  230. package/dist/runtime/pm/features/Document/Document.d.ts +0 -3
  231. package/dist/runtime/pm/features/Document/Document.js +0 -6
  232. package/dist/runtime/pm/features/DocumentApi/DocumentApi.d.ts +0 -86
  233. package/dist/runtime/pm/features/DocumentApi/DocumentApi.js +0 -170
  234. package/dist/runtime/pm/features/DocumentApi/composables/useEditorContent.d.ts +0 -13
  235. package/dist/runtime/pm/features/DocumentApi/composables/useEditorContent.js +0 -76
  236. package/dist/runtime/pm/features/DocumentApi/composables/useTestDocumentApi.d.ts +0 -23
  237. package/dist/runtime/pm/features/DocumentApi/composables/useTestDocumentApi.js +0 -70
  238. package/dist/runtime/pm/features/DocumentApi/types.d.ts +0 -133
  239. package/dist/runtime/pm/features/DocumentApi/types.js +0 -1
  240. package/dist/runtime/pm/features/DocumentApi/utils/convertFullTransactionForPartialState.d.ts +0 -3
  241. package/dist/runtime/pm/features/DocumentApi/utils/convertFullTransactionForPartialState.js +0 -37
  242. package/dist/runtime/pm/features/DocumentApi/utils/convertTrForInstance.d.ts +0 -4
  243. package/dist/runtime/pm/features/DocumentApi/utils/convertTrForInstance.js +0 -13
  244. package/dist/runtime/pm/features/DocumentApi/utils/convertTransactionForFullState.d.ts +0 -2
  245. package/dist/runtime/pm/features/DocumentApi/utils/convertTransactionForFullState.js +0 -22
  246. package/dist/runtime/pm/features/DocumentApi/utils/copyMeta.d.ts +0 -2
  247. package/dist/runtime/pm/features/DocumentApi/utils/copyMeta.js +0 -6
  248. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedJson.d.ts +0 -1
  249. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedJson.js +0 -14
  250. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedNodeFromDoc.d.ts +0 -1
  251. package/dist/runtime/pm/features/DocumentApi/utils/getEmbedNodeFromDoc.js +0 -14
  252. package/dist/runtime/pm/features/DocumentApi/utils/getStateEmbedRange.d.ts +0 -9
  253. package/dist/runtime/pm/features/DocumentApi/utils/getStateEmbedRange.js +0 -19
  254. package/dist/runtime/pm/features/DocumentApi/utils/isEmbedId.d.ts +0 -2
  255. package/dist/runtime/pm/features/DocumentApi/utils/isEmbedId.js +0 -3
  256. package/dist/runtime/pm/features/EmbeddedDocument/Embedded.d.ts +0 -24
  257. package/dist/runtime/pm/features/EmbeddedDocument/Embedded.js +0 -73
  258. package/dist/runtime/pm/features/EmbeddedDocument/EmbeddedDocument.d.ts +0 -23
  259. package/dist/runtime/pm/features/EmbeddedDocument/EmbeddedDocument.js +0 -70
  260. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.d.vue.ts +0 -14
  261. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.vue +0 -169
  262. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.vue.d.ts +0 -14
  263. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.d.vue.ts +0 -92
  264. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.vue +0 -170
  265. package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.vue.d.ts +0 -92
  266. package/dist/runtime/pm/features/EmbeddedDocument/composables/useEmbeddedEditor.d.ts +0 -31
  267. package/dist/runtime/pm/features/EmbeddedDocument/composables/useEmbeddedEditor.js +0 -199
  268. package/dist/runtime/pm/features/EmbeddedDocument/types.d.ts +0 -49
  269. package/dist/runtime/pm/features/EmbeddedDocument/types.js +0 -6
  270. package/dist/runtime/pm/features/EmbeddedDocument/utils/isEmbeddedBlock.d.ts +0 -9
  271. package/dist/runtime/pm/features/EmbeddedDocument/utils/isEmbeddedBlock.js +0 -3
  272. package/dist/runtime/pm/features/EmbeddedDocument/utils/redirectFromEmbedded.d.ts +0 -28
  273. package/dist/runtime/pm/features/EmbeddedDocument/utils/redirectFromEmbedded.js +0 -17
  274. package/dist/runtime/pm/features/FileLoader/FileLoader.d.ts +0 -16
  275. package/dist/runtime/pm/features/FileLoader/FileLoader.js +0 -99
  276. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/FileLoaderHandler.d.ts +0 -28
  277. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/FileLoaderHandler.js +0 -69
  278. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/TestFileLoaderHandler.d.ts +0 -11
  279. package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/TestFileLoaderHandler.js +0 -49
  280. package/dist/runtime/pm/features/FileLoader/commands/insertFile.d.ts +0 -17
  281. package/dist/runtime/pm/features/FileLoader/commands/insertFile.js +0 -39
  282. package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.d.vue.ts +0 -92
  283. package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.vue +0 -38
  284. package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.vue.d.ts +0 -92
  285. package/dist/runtime/pm/features/FileLoader/plugins/fileLoaderPlugin.d.ts +0 -5
  286. package/dist/runtime/pm/features/FileLoader/plugins/fileLoaderPlugin.js +0 -61
  287. package/dist/runtime/pm/features/FileLoader/types.d.ts +0 -73
  288. package/dist/runtime/pm/features/FileLoader/types.js +0 -0
  289. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNode.d.ts +0 -4
  290. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNode.js +0 -27
  291. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNodes.d.ts +0 -9
  292. package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNodes.js +0 -22
  293. package/dist/runtime/pm/features/FileLoader/utils/findLoadingNodePos.d.ts +0 -2
  294. package/dist/runtime/pm/features/FileLoader/utils/findLoadingNodePos.js +0 -11
  295. package/dist/runtime/pm/features/FileLoader/utils/optionsCheck.d.ts +0 -3
  296. package/dist/runtime/pm/features/FileLoader/utils/optionsCheck.js +0 -8
  297. package/dist/runtime/pm/features/FileLoader/utils/readAsDataUrl.d.ts +0 -1
  298. package/dist/runtime/pm/features/FileLoader/utils/readAsDataUrl.js +0 -12
  299. package/dist/runtime/pm/features/HardBreak/HardBreak.d.ts +0 -5
  300. package/dist/runtime/pm/features/HardBreak/HardBreak.js +0 -14
  301. package/dist/runtime/pm/features/Heading/Heading.d.ts +0 -24
  302. package/dist/runtime/pm/features/Heading/Heading.js +0 -85
  303. package/dist/runtime/pm/features/Heading/commands/changeLevelAttr.d.ts +0 -16
  304. package/dist/runtime/pm/features/Heading/commands/changeLevelAttr.js +0 -33
  305. package/dist/runtime/pm/features/Heading/types.d.ts +0 -14
  306. package/dist/runtime/pm/features/Heading/types.js +0 -0
  307. package/dist/runtime/pm/features/Highlight/Highlight.d.ts +0 -72
  308. package/dist/runtime/pm/features/Highlight/Highlight.js +0 -163
  309. package/dist/runtime/pm/features/Highlight/retyped/tiptapHighlight.d.ts +0 -3
  310. package/dist/runtime/pm/features/Highlight/retyped/tiptapHighlight.js +0 -5
  311. package/dist/runtime/pm/features/Highlight/types.d.ts +0 -27
  312. package/dist/runtime/pm/features/Highlight/types.js +0 -2
  313. package/dist/runtime/pm/features/History/History.d.ts +0 -35
  314. package/dist/runtime/pm/features/History/History.js +0 -63
  315. package/dist/runtime/pm/features/Iframe/Iframe.d.ts +0 -21
  316. package/dist/runtime/pm/features/Iframe/Iframe.js +0 -127
  317. package/dist/runtime/pm/features/Iframe/IframeParsers.d.ts +0 -37
  318. package/dist/runtime/pm/features/Iframe/IframeParsers.js +0 -88
  319. package/dist/runtime/pm/features/Iframe/components/IframeNodeView.d.vue.ts +0 -92
  320. package/dist/runtime/pm/features/Iframe/components/IframeNodeView.vue +0 -79
  321. package/dist/runtime/pm/features/Iframe/components/IframeNodeView.vue.d.ts +0 -92
  322. package/dist/runtime/pm/features/Iframe/types.d.ts +0 -5
  323. package/dist/runtime/pm/features/Iframe/types.js +0 -0
  324. package/dist/runtime/pm/features/Image/Image.d.ts +0 -2
  325. package/dist/runtime/pm/features/Image/Image.js +0 -13
  326. package/dist/runtime/pm/features/Link/Link.d.ts +0 -38
  327. package/dist/runtime/pm/features/Link/Link.js +0 -241
  328. package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.d.vue.ts +0 -28
  329. package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.vue +0 -113
  330. package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.vue.d.ts +0 -28
  331. package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.d.vue.ts +0 -29
  332. package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.vue +0 -104
  333. package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.vue.d.ts +0 -29
  334. package/dist/runtime/pm/features/Link/components/BubbleMenuLink.d.vue.ts +0 -11
  335. package/dist/runtime/pm/features/Link/components/BubbleMenuLink.vue +0 -126
  336. package/dist/runtime/pm/features/Link/components/BubbleMenuLink.vue.d.ts +0 -11
  337. package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.d.vue.ts +0 -18
  338. package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.vue +0 -54
  339. package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.vue.d.ts +0 -18
  340. package/dist/runtime/pm/features/Link/types.d.ts +0 -44
  341. package/dist/runtime/pm/features/Link/types.js +0 -3
  342. package/dist/runtime/pm/features/Menus/Menus.d.ts +0 -45
  343. package/dist/runtime/pm/features/Menus/Menus.js +0 -142
  344. package/dist/runtime/pm/features/Menus/components/MarkMenuManager.d.vue.ts +0 -6
  345. package/dist/runtime/pm/features/Menus/components/MarkMenuManager.vue +0 -165
  346. package/dist/runtime/pm/features/Menus/components/MarkMenuManager.vue.d.ts +0 -6
  347. package/dist/runtime/pm/features/Menus/types.d.ts +0 -51
  348. package/dist/runtime/pm/features/Menus/types.js +0 -3
  349. package/dist/runtime/pm/features/Menus/utils/isMarkMenu.d.ts +0 -2
  350. package/dist/runtime/pm/features/Menus/utils/isMarkMenu.js +0 -3
  351. package/dist/runtime/pm/features/Tables/commands/tableEnter.d.ts +0 -15
  352. package/dist/runtime/pm/features/Tables/commands/tableEnter.js +0 -19
  353. package/dist/runtime/pm/features/Tables/index.d.ts +0 -9
  354. package/dist/runtime/pm/features/Tables/index.js +0 -44
  355. package/dist/runtime/pm/schema.d.ts +0 -4
  356. package/dist/runtime/pm/schema.js +0 -80
  357. package/dist/runtime/pm/testSchema.d.ts +0 -5
  358. package/dist/runtime/pm/testSchema.js +0 -30
  359. package/dist/runtime/pm/utils/createDropIndicator.d.ts +0 -23
  360. package/dist/runtime/pm/utils/createDropIndicator.js +0 -32
  361. package/dist/runtime/pm/utils/createStateOnlyPluginApply.d.ts +0 -2
  362. package/dist/runtime/pm/utils/createStateOnlyPluginApply.js +0 -9
  363. package/dist/runtime/pm/utils/createStateOnlyPluginObjApply.d.ts +0 -2
  364. package/dist/runtime/pm/utils/createStateOnlyPluginObjApply.js +0 -14
  365. package/dist/runtime/pm/utils/dropPointInfo.d.ts +0 -56
  366. package/dist/runtime/pm/utils/dropPointInfo.js +0 -28
  367. package/dist/runtime/pm/utils/findUpwards.d.ts +0 -20
  368. package/dist/runtime/pm/utils/findUpwards.js +0 -18
  369. package/dist/runtime/pm/utils/getChildChunks.d.ts +0 -3
  370. package/dist/runtime/pm/utils/getChildChunks.js +0 -15
  371. package/dist/runtime/pm/utils/getDiffReplacementRange.d.ts +0 -20
  372. package/dist/runtime/pm/utils/getDiffReplacementRange.js +0 -9
  373. package/dist/runtime/pm/utils/getElMaxVisualSize.d.ts +0 -9
  374. package/dist/runtime/pm/utils/getElMaxVisualSize.js +0 -7
  375. package/dist/runtime/pm/utils/getElPropertyAsInt.d.ts +0 -1
  376. package/dist/runtime/pm/utils/getElPropertyAsInt.js +0 -8
  377. package/dist/runtime/pm/utils/getGroupNodeNames.d.ts +0 -2
  378. package/dist/runtime/pm/utils/getGroupNodeNames.js +0 -7
  379. package/dist/runtime/pm/utils/getMarkPosition.d.ts +0 -11
  380. package/dist/runtime/pm/utils/getMarkPosition.js +0 -34
  381. package/dist/runtime/pm/utils/getMarksInSelection.d.ts +0 -3
  382. package/dist/runtime/pm/utils/getMarksInSelection.js +0 -16
  383. package/dist/runtime/pm/utils/getTypeByName.d.ts +0 -2
  384. package/dist/runtime/pm/utils/getTypeByName.js +0 -5
  385. package/dist/runtime/pm/utils/index.d.ts +0 -15
  386. package/dist/runtime/pm/utils/index.js +0 -15
  387. package/dist/runtime/pm/utils/internal/createNodeTypesList.d.ts +0 -2
  388. package/dist/runtime/pm/utils/internal/createNodeTypesList.js +0 -17
  389. package/dist/runtime/pm/utils/internal/debugMap.d.ts +0 -7
  390. package/dist/runtime/pm/utils/internal/debugMap.js +0 -24
  391. package/dist/runtime/pm/utils/internal/debugNode.d.ts +0 -2
  392. package/dist/runtime/pm/utils/internal/debugNode.js +0 -18
  393. package/dist/runtime/pm/utils/internal/debugSel.d.ts +0 -5
  394. package/dist/runtime/pm/utils/internal/debugSel.js +0 -8
  395. package/dist/runtime/pm/utils/internal/recurse.d.ts +0 -2
  396. package/dist/runtime/pm/utils/internal/recurse.js +0 -39
  397. package/dist/runtime/pm/utils/internal/stripBlockId.d.ts +0 -2
  398. package/dist/runtime/pm/utils/internal/stripBlockId.js +0 -9
  399. package/dist/runtime/pm/utils/mapSelection.d.ts +0 -8
  400. package/dist/runtime/pm/utils/mapSelection.js +0 -12
  401. package/dist/runtime/pm/utils/nodesBetween.d.ts +0 -21
  402. package/dist/runtime/pm/utils/nodesBetween.js +0 -21
  403. package/dist/runtime/pm/utils/pointToPmPoint.d.ts +0 -2
  404. package/dist/runtime/pm/utils/pointToPmPoint.js +0 -3
  405. package/dist/runtime/pm/utils/splitIntoChunks.d.ts +0 -32
  406. package/dist/runtime/pm/utils/splitIntoChunks.js +0 -31
  407. package/dist/runtime/testDocuments.d.ts +0 -53
  408. package/dist/runtime/testDocuments.js +0 -122
  409. package/dist/runtime/types/index.d.ts +0 -53
  410. package/dist/runtime/types/index.js +0 -9
@@ -1,24 +0,0 @@
1
- import { castType } from "@alanscodelog/utils/castType";
2
- import { unreachable } from "@alanscodelog/utils/unreachable";
3
- export function createItemMenuCommandExecuter(getBlockId) {
4
- return function itemMenuCommandExecuter(item, editor) {
5
- const blockId = getBlockId();
6
- if (blockId === void 0) {
7
- console.warn("No blockId found, this is probably a bug.");
8
- return;
9
- }
10
- if (item.type === "command") {
11
- const blockEl = editor.view.dom.querySelector(`li[blockid='${blockId}']`);
12
- const blockPos = editor.view.posAtDOM(blockEl, 0);
13
- if (blockId !== void 0 && blockPos <= -1) unreachable();
14
- const args = typeof item.args === "function" ? item.args(editor, { blockId, blockPos, contentPos: blockPos + 1 }) : item.args?.map(
15
- (arg) => arg === "$blockId" ? blockId : arg === "$blockPos" ? blockPos : arg === "$contentPos" ? blockPos + 1 : arg
16
- ) ?? [];
17
- editor.commands.command(({ commands }) => {
18
- castType(item);
19
- commands[item.command](...args);
20
- return true;
21
- });
22
- }
23
- };
24
- }
@@ -1,4 +0,0 @@
1
- import type { NodeType } from "@tiptap/pm/model";
2
- import type { Transaction } from "@tiptap/pm/state";
3
- /** Ensures no block ids are missing, duplicated, or invalid. If no id length is given, any id length is valid. */
4
- export declare function fixBlockIds(tr: Transaction, type: NodeType, idLength: number, allowOtherIdLengths?: boolean): Transaction;
@@ -1,23 +0,0 @@
1
- import { nanoid } from "nanoid";
2
- import { isValidId } from "./isValidId.js";
3
- export function fixBlockIds(tr, type, idLength, allowOtherIdLengths = false) {
4
- const seen = /* @__PURE__ */ new Set();
5
- tr.doc.descendants((node, pos) => {
6
- if (node.type === type) {
7
- const isValid = isValidId(
8
- node.attrs.blockId,
9
- allowOtherIdLengths ? void 0 : idLength
10
- );
11
- if (!isValid || seen.has(node.attrs.blockId)) {
12
- const blockId = nanoid(idLength);
13
- tr.setNodeAttribute(pos, "blockId", blockId);
14
- seen.add(blockId);
15
- } else {
16
- seen.add(node.attrs.blockId);
17
- }
18
- }
19
- });
20
- tr.setMeta("preventClearDocument", true);
21
- tr.setMeta("addToHistory", false);
22
- return tr;
23
- }
@@ -1,2 +0,0 @@
1
- export declare const idRegex: RegExp;
2
- export declare function isValidId(id: string | undefined | null, length?: number): boolean;
@@ -1,7 +0,0 @@
1
- export const idRegex = /^[\w-]+$/;
2
- export function isValidId(id, length) {
3
- if (id === void 0 || id === null || length !== void 0 && id.length !== length || !idRegex.test(id)) {
4
- return false;
5
- }
6
- return true;
7
- }
@@ -1,16 +0,0 @@
1
- export declare const lowlightInstance: {
2
- highlight: (language: string, value: string, options?: Readonly<import("lowlight").Options> | null | undefined) => import("hast").Root;
3
- highlightAuto: (value: string, options?: Readonly<import("lowlight").AutoOptions> | null | undefined) => import("hast").Root;
4
- listLanguages: () => Array<string>;
5
- register: {
6
- (grammars: Readonly<Record<string, import("highlight.js").LanguageFn>>): undefined;
7
- (name: string, grammar: import("highlight.js").LanguageFn): undefined;
8
- };
9
- registerAlias: {
10
- (aliases: Readonly<Record<string, ReadonlyArray<string> | string>>): undefined;
11
- (language: string, alias: ReadonlyArray<string> | string): undefined;
12
- };
13
- registered: (aliasOrName: string) => boolean;
14
- };
15
- export declare const CodeBlock: import("@tiptap/core").Node<import("@tiptap/extension-code-block-lowlight", { with: { "resolution-mode": "require" } }).CodeBlockLowlightOptions, any>;
16
- export type NodeCodeBlockName = "codeBlock";
@@ -1,91 +0,0 @@
1
- import { CodeBlockLowlight as TipTapCodeBlockLowlight } from "@tiptap/extension-code-block-lowlight";
2
- import { mergeAttributes, VueNodeViewRenderer } from "@tiptap/vue-3";
3
- import { createLowlight } from "lowlight";
4
- import { codeBlockEnterOrSplit } from "./commands/codeBlockEnterOrSplit.js";
5
- import { codeBlockIndent } from "./commands/codeBlockIndent.js";
6
- import { codeBlockUnindent } from "./commands/codeBlockUnindent.js";
7
- import { focusCodeBlockLanguage } from "./commands/focusCodeBlockLanguage.js";
8
- import CodeBlockView from "./components/CodeBlockView.vue";
9
- export const lowlightInstance = createLowlight();
10
- export const CodeBlock = TipTapCodeBlockLowlight.extend({
11
- name: "codeBlock",
12
- group: "block",
13
- marks: "",
14
- addOptions() {
15
- return {
16
- ...this.parent?.(),
17
- defaultLanguage: null,
18
- lowlight: lowlightInstance
19
- };
20
- },
21
- addAttributes() {
22
- return {
23
- ...this.parent?.(),
24
- language: {
25
- default: ""
26
- },
27
- loading: {
28
- default: true
29
- }
30
- };
31
- },
32
- parseHTML() {
33
- return [
34
- {
35
- // pre > code not working?
36
- tag: "pre",
37
- preserveWhitespace: "full",
38
- getAttrs: (node) => {
39
- const child = node.children[0];
40
- if (!child) return false;
41
- const language = child.getAttribute("language");
42
- if (language) {
43
- return { language };
44
- }
45
- const match = Array.from(node.classList).find((_) => _.startsWith("language-"));
46
- if (match) {
47
- return {
48
- language: match.slice("language-".length)
49
- };
50
- }
51
- return false;
52
- }
53
- }
54
- ];
55
- },
56
- // eslint-disable-next-line @typescript-eslint/naming-convention
57
- renderHTML({ node, HTMLAttributes }) {
58
- const classes = node.attrs.language ? this.options.languageClassPrefix + node.attrs.language : "";
59
- return [
60
- "pre",
61
- [
62
- "code",
63
- mergeAttributes(
64
- this.options.HTMLAttributes,
65
- { language: node.attrs.language },
66
- HTMLAttributes,
67
- {
68
- class: `${classes} ${HTMLAttributes?.class ?? this.options.HTMLAttributes?.class ?? ""}`
69
- }
70
- ),
71
- 0
72
- ]
73
- ];
74
- },
75
- addNodeView() {
76
- return VueNodeViewRenderer(CodeBlockView);
77
- },
78
- addCommands() {
79
- const self = this;
80
- return {
81
- ...self?.parent?.(),
82
- codeBlockEnterOrSplit: codeBlockEnterOrSplit(this.name),
83
- focusCodeBlockLanguage: focusCodeBlockLanguage(this.name),
84
- codeBlockIndent: codeBlockIndent(this.name),
85
- codeBlockUnindent: codeBlockUnindent(this.name)
86
- };
87
- },
88
- addKeyboardShortcuts() {
89
- return {};
90
- }
91
- });
@@ -1,63 +0,0 @@
1
- import { crop } from "@alanscodelog/utils"
2
- // this import registers all languages
3
- import hljs from "highlight.js"
4
- import fs from "node:fs"
5
- import path from "node:path"
6
-
7
- const list = Object.fromEntries(hljs.listLanguages()
8
- .map(lang => [
9
- lang,
10
- {
11
- aliases: hljs.getLanguage(lang).aliases
12
- }
13
- ]))
14
-
15
- if (list.length === 0) {
16
- throw new Error("No languages found, something is wrong with the import.")
17
- }
18
-
19
- const fileContents = crop`
20
- /* eslint-disable */
21
- import { keys } from "@alanscodelog/utils/keys"
22
-
23
- /**
24
- * This is an auto-generated file.
25
- *
26
- * Do not edit manually.
27
- *
28
- * See build/utils/generateHighlightJsInfo.js
29
- */
30
-
31
- type LanguageState = Record<string, { loaded: boolean, aliases: string[] }>
32
-
33
- export type HighlightJsLanguageInfo = {
34
- languages: LanguageState
35
- aliases: Record<string, string>
36
- }
37
-
38
- const rawLanguages: Record<string, Partial<LanguageState[string]>> = ${JSON.stringify(list, null, "\t")}
39
-
40
- for (const lang of (keys(rawLanguages as any))) {
41
- (rawLanguages as any)[lang].loaded = false
42
- }
43
-
44
-
45
- export const highlightJsLanaguages: HighlightJsLanguageInfo = {
46
- languages: rawLanguages as any,
47
- aliases: Object.fromEntries(
48
- (keys(rawLanguages)
49
- .map(lang =>
50
- [
51
- ...(rawLanguages[lang].aliases?.map(alias => [alias,lang]) ?? []),
52
- [lang, lang]
53
- ]
54
- ))
55
- .flat()
56
- )
57
- }
58
- `
59
- const dirPath = path.resolve(import.meta.dirname)
60
- fs.writeFileSync(
61
- path.resolve(dirPath, "../highlightJsInfo.ts"),
62
- fileContents
63
- )
@@ -1,9 +0,0 @@
1
- import type { Command } from "@tiptap/core";
2
- declare module "@tiptap/core" {
3
- interface Commands<ReturnType> {
4
- codeBlockEnterOrSplit: {
5
- codeBlockEnterOrSplit: (pos?: number) => ReturnType;
6
- };
7
- }
8
- }
9
- export declare const codeBlockEnterOrSplit: (codeBlockType: string) => (pos?: number) => Command;
@@ -1,28 +0,0 @@
1
- export const codeBlockEnterOrSplit = (codeBlockType) => (pos) => ({ state, chain, tr }) => {
2
- const sel = state.selection.map(tr.doc, tr.mapping);
3
- const { $from, $to } = sel;
4
- let { empty, from } = sel;
5
- if (pos !== void 0) {
6
- from = pos;
7
- empty = true;
8
- }
9
- if ($from.parent.type.name !== codeBlockType || $to.parent.type.name !== codeBlockType || $from.parent !== $to.parent) {
10
- return false;
11
- }
12
- const isAtEnd = empty && from === $from.end();
13
- const endsWithDoubleNewline = $from.parent.textContent.endsWith("\n\n");
14
- if (isAtEnd && endsWithDoubleNewline) {
15
- return chain().command(({ tr: tr2, dispatch }) => {
16
- if (dispatch) {
17
- tr2.delete(from - 1, $from.pos);
18
- }
19
- return true;
20
- }).splitItem().run();
21
- }
22
- return chain().command(({ commands }) => {
23
- if (!empty) {
24
- return commands.deleteSelection();
25
- }
26
- return true;
27
- }).newlineInCode().run();
28
- };
@@ -1,9 +0,0 @@
1
- import type { Command } from "@tiptap/core";
2
- declare module "@tiptap/core" {
3
- interface Commands<ReturnType> {
4
- codeBlockIndent: {
5
- codeBlockIndent: () => ReturnType;
6
- };
7
- }
8
- }
9
- export declare const codeBlockIndent: (codeBlockType: string) => () => Command;
@@ -1,39 +0,0 @@
1
- import { TextSelection } from "@tiptap/pm/state";
2
- export const codeBlockIndent = (codeBlockType) => () => ({ state, tr, dispatch }) => {
3
- const { $from, $to, empty, from, to } = state.selection.map(tr.doc, tr.mapping);
4
- if ($from.parent.type.name !== codeBlockType || $to.parent.type.name !== codeBlockType || $from.parent !== $to.parent) {
5
- return false;
6
- }
7
- if (!dispatch) return true;
8
- if (empty) {
9
- tr.insertText(" ");
10
- return true;
11
- }
12
- const textContent = $from.parent.textContent;
13
- const nodeStart = $from.start();
14
- let start = from - nodeStart;
15
- let end = to - nodeStart;
16
- for (let i = start; i > 0; i--) {
17
- if (textContent[i - 1] === "\n") {
18
- break;
19
- }
20
- start--;
21
- }
22
- for (let j = end; j < textContent.length; j++) {
23
- if (textContent[j] === "\n") {
24
- break;
25
- }
26
- end++;
27
- }
28
- const blockSelection = textContent.slice(start, end);
29
- const lines = blockSelection.split("\n");
30
- let tabCount = 0;
31
- for (let i = 0; i < lines.length; i++) {
32
- lines[i] = ` ${lines[i]}`;
33
- tabCount++;
34
- }
35
- const content = lines.join("\n");
36
- tr.insertText(content, nodeStart + start, nodeStart + end);
37
- tr.setSelection(TextSelection.create(tr.doc, from + 1, to + tabCount));
38
- return true;
39
- };
@@ -1,9 +0,0 @@
1
- import type { Command } from "@tiptap/core";
2
- declare module "@tiptap/core" {
3
- interface Commands<ReturnType> {
4
- codeBlockUnindent: {
5
- codeBlockUnindent: () => ReturnType;
6
- };
7
- }
8
- }
9
- export declare const codeBlockUnindent: (codeBlockType: string) => () => Command;
@@ -1,50 +0,0 @@
1
- import { TextSelection } from "@tiptap/pm/state";
2
- export const codeBlockUnindent = (codeBlockType) => () => ({ state, tr, dispatch }) => {
3
- const { $from, $to, from, to } = state.selection.map(tr.doc, tr.mapping);
4
- if ($from.parent.type.name !== codeBlockType || $to.parent.type.name !== codeBlockType || $from.parent !== $to.parent) {
5
- return false;
6
- }
7
- if (!dispatch) return true;
8
- const textContent = $from.parent.textContent;
9
- const nodeStart = $from.start();
10
- let start = from - nodeStart;
11
- let end = to - nodeStart;
12
- const lastCharIsNewline = textContent[end - 1] === "\n";
13
- const nextCharIsTab = textContent[end] === " ";
14
- for (let i = start; i > 0; i--) {
15
- if (textContent[i - 1] === "\n") {
16
- break;
17
- }
18
- start--;
19
- }
20
- for (let j = end; j < textContent.length; j++) {
21
- if (textContent[j] === "\n") {
22
- break;
23
- }
24
- end++;
25
- }
26
- const blockSelection = textContent.slice(start, end);
27
- const lines = blockSelection.split("\n");
28
- let tabCount = 0;
29
- let firstLineHadTab = false;
30
- for (let i = 0; i < lines.length; i++) {
31
- if (lines[i].startsWith(" ")) {
32
- lines[i] = lines[i].slice(1);
33
- tabCount++;
34
- if (i === 0) {
35
- firstLineHadTab = true;
36
- }
37
- }
38
- }
39
- const content = lines.join("\n");
40
- tr.insertText(content, nodeStart + start, nodeStart + end);
41
- tr.setSelection(TextSelection.create(
42
- tr.doc,
43
- from - (firstLineHadTab ? 1 : 0),
44
- // there's a weird bug? when the cursor ends at a newline (and is technically on that line and block selecting it) and the next char is a tab
45
- // where you can't keep unindenting the last line
46
- // this grows the selection to workaround it
47
- to - tabCount + (lastCharIsNewline && nextCharIsTab ? 1 : 0)
48
- ));
49
- return true;
50
- };
@@ -1,9 +0,0 @@
1
- import type { Command } from "@tiptap/core";
2
- declare module "@tiptap/core" {
3
- interface Commands<ReturnType> {
4
- focusCodeBlockLanguage: {
5
- focusCodeBlockLanguage: (dir: "up" | "down") => ReturnType;
6
- };
7
- }
8
- }
9
- export declare const focusCodeBlockLanguage: (codeBlockType: string, langPickerClass?: string) => () => Command;
@@ -1,27 +0,0 @@
1
- import { debugNode } from "../../../utils/internal/debugNode.js";
2
- function focusInput(domNode, langPickerClass, dispatch) {
3
- if (domNode instanceof HTMLElement) {
4
- const langPickerEl = domNode.querySelector(`.${langPickerClass}`);
5
- if (langPickerEl instanceof HTMLElement) {
6
- if (dispatch) {
7
- langPickerEl.focus();
8
- }
9
- return true;
10
- }
11
- }
12
- return false;
13
- }
14
- export const focusCodeBlockLanguage = (codeBlockType, langPickerClass = "lang-picker-input") => () => ({ state, tr, view, dispatch }) => {
15
- const { from, empty } = state.selection.map(tr.doc, tr.mapping);
16
- if (!empty) {
17
- return false;
18
- }
19
- const $node = tr.doc.resolve(from);
20
- debugNode($node.node());
21
- const isCodeBlock = $node.node()?.type.name === codeBlockType;
22
- if (isCodeBlock) {
23
- const domNode = view.domAtPos($node.start(-1)).node;
24
- return focusInput(domNode, langPickerClass, dispatch);
25
- }
26
- return false;
27
- };
@@ -1,92 +0,0 @@
1
- declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
- editor: {
3
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["editor"]>;
4
- required: true;
5
- };
6
- node: {
7
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["node"]>;
8
- required: true;
9
- };
10
- decorations: {
11
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["decorations"]>;
12
- required: true;
13
- };
14
- selected: {
15
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["selected"]>;
16
- required: true;
17
- };
18
- extension: {
19
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["extension"]>;
20
- required: true;
21
- };
22
- getPos: {
23
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["getPos"]>;
24
- required: true;
25
- };
26
- updateAttributes: {
27
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["updateAttributes"]>;
28
- required: true;
29
- };
30
- deleteNode: {
31
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["deleteNode"]>;
32
- required: true;
33
- };
34
- view: {
35
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["view"]>;
36
- required: true;
37
- };
38
- innerDecorations: {
39
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["innerDecorations"]>;
40
- required: true;
41
- };
42
- HTMLAttributes: {
43
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["HTMLAttributes"]>;
44
- required: true;
45
- };
46
- }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
47
- editor: {
48
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["editor"]>;
49
- required: true;
50
- };
51
- node: {
52
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["node"]>;
53
- required: true;
54
- };
55
- decorations: {
56
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["decorations"]>;
57
- required: true;
58
- };
59
- selected: {
60
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["selected"]>;
61
- required: true;
62
- };
63
- extension: {
64
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["extension"]>;
65
- required: true;
66
- };
67
- getPos: {
68
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["getPos"]>;
69
- required: true;
70
- };
71
- updateAttributes: {
72
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["updateAttributes"]>;
73
- required: true;
74
- };
75
- deleteNode: {
76
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["deleteNode"]>;
77
- required: true;
78
- };
79
- view: {
80
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["view"]>;
81
- required: true;
82
- };
83
- innerDecorations: {
84
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["innerDecorations"]>;
85
- required: true;
86
- };
87
- HTMLAttributes: {
88
- type: import("vue").PropType<import("@tiptap/core").NodeViewProps["HTMLAttributes"]>;
89
- required: true;
90
- };
91
- }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
92
- export default _default;
@@ -1,112 +0,0 @@
1
- <template>
2
- <node-view-wrapper
3
- :class="`
4
- border
5
- border-[var(--pmCodeBlockBgColor)]
6
- code-block
7
- bg-[var(--pmCodeBlockBgColor)]
8
- rounded-sm
9
- `"
10
- v-extract-root-el="(el) => codeBlockEl = el"
11
- >
12
- <!-- dark class is not added directly to style this because we don't want to style the input, it should match the app theme instead -->
13
- <div
14
- contenteditable="false"
15
- :class="`
16
- lang-picker
17
- rem-[0.7]
18
- ${codeBlockThemeIsDark ? `bg-neutral-600` : `bg-neutral-400`}
19
- `"
20
- ref="codeBlockLangPickerEl"
21
- >
22
- <!-- and here we only style everything but the suggestions so the input matches the code block background -->
23
- <!-- @vue-expect-error -->
24
- <WSimpleInput
25
- :border="false"
26
- wrapper-class="lang-picker-input flex-nowrap z-10"
27
- :inner-wrapper-class="`
28
- ${codeBlockThemeIsDark ? `[&>*:not(.suggestions)]:text-neutral-300` : `[&>*:not(.suggestions)]:text-neutral-700`}
29
- `"
30
- suggestions-class="max-h-[200px] overflow-y-auto"
31
- :suggestions="keys(langsInfo.aliases)"
32
- :restrict-to-suggestions="true"
33
- :aria-label="`Language:`"
34
- :model-value="lang"
35
- @blur="lang = lang"
36
- @focus="savePosition"
37
- @submit="focusCodeBlock"
38
- />
39
- </div>
40
-
41
- <!-- @vue-expect-error -->
42
- <node-view-content
43
- :class="twMerge(
44
- `
45
- hljs
46
- py-1
47
- px-2
48
- ${codeBlockThemeIsDark ? `dark` : ``}
49
- `,
50
- node.attrs.language ? `language-${node.attrs.language}` : void 0
51
- )"
52
- as="pre"
53
- :language="node.attrs.language"
54
- :loading="node.attrs.loading"
55
- />
56
- </node-view-wrapper>
57
- </template>
58
-
59
- <script setup>
60
- import { keys } from "@alanscodelog/utils/keys";
61
- import { TextSelection } from "@tiptap/pm/state";
62
- import { NodeViewContent, nodeViewProps, NodeViewWrapper } from "@tiptap/vue-3";
63
- import WSimpleInput from "@witchcraft/ui/components/LibSimpleInput";
64
- import { vExtractRootEl } from "@witchcraft/ui/directives/vExtractRootEl";
65
- import { twMerge } from "tailwind-merge";
66
- import { inject, ref, watch } from "vue";
67
- import { codeBlockThemeIsDarkInjectionKey, langsInfoInjectionKey } from "../types.js";
68
- const langsInfo = inject(langsInfoInjectionKey, ref({ languages: {}, aliases: {} }));
69
- const codeBlockThemeIsDark = inject(codeBlockThemeIsDarkInjectionKey, ref(false));
70
- const props = defineProps(nodeViewProps);
71
- const lang = ref(props.node.attrs.language ?? "");
72
- const codeBlockEl = ref(null);
73
- watch(() => props.node.attrs.language, (val) => {
74
- lang.value = val;
75
- });
76
- let savedPos;
77
- function focusCodeBlock(newVal) {
78
- if (!codeBlockEl.value) return;
79
- props.editor.view.focus();
80
- props.editor.commands.command(({ tr, dispatch }) => {
81
- const thisNodePos = props.editor.view.posAtDOM(codeBlockEl.value, 0);
82
- if (thisNodePos < 0) return false;
83
- const $node = tr.doc.resolve(thisNodePos + props.node.nodeSize - 1);
84
- if (savedPos) {
85
- tr.setSelection(savedPos);
86
- } else {
87
- const sel = TextSelection.findFrom($node, -1, true);
88
- if (!sel) return false;
89
- tr.setSelection(sel);
90
- }
91
- tr.setNodeMarkup($node.start(), void 0, {
92
- ...props.node.attrs,
93
- language: newVal,
94
- loading: true
95
- });
96
- tr.scrollIntoView();
97
- if (dispatch) dispatch(tr);
98
- savedPos = void 0;
99
- return true;
100
- });
101
- codeBlockEl.value.querySelector("code")?.focus();
102
- }
103
- function savePosition() {
104
- if (!codeBlockEl.value) return;
105
- const nodePos = props.editor.view.posAtDOM(codeBlockEl.value, 0);
106
- const $node = props.editor.state.doc.resolve(nodePos);
107
- savedPos = props.editor.state.selection;
108
- if (savedPos.from < $node.start() || savedPos.to > $node.end()) {
109
- savedPos = void 0;
110
- }
111
- }
112
- </script>