@abraca/nuxt 0.1.0

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 (299) hide show
  1. package/README.md +84 -0
  2. package/dist/module.d.mts +201 -0
  3. package/dist/module.json +12 -0
  4. package/dist/module.mjs +170 -0
  5. package/dist/runtime/components/ACollaborationUsers.d.vue.ts +11 -0
  6. package/dist/runtime/components/ACollaborationUsers.vue +48 -0
  7. package/dist/runtime/components/ACollaborationUsers.vue.d.ts +11 -0
  8. package/dist/runtime/components/AColorPicker.d.vue.ts +13 -0
  9. package/dist/runtime/components/AColorPicker.vue +71 -0
  10. package/dist/runtime/components/AColorPicker.vue.d.ts +13 -0
  11. package/dist/runtime/components/ACommandPalette.d.vue.ts +13 -0
  12. package/dist/runtime/components/ACommandPalette.vue +31 -0
  13. package/dist/runtime/components/ACommandPalette.vue.d.ts +13 -0
  14. package/dist/runtime/components/AConnectionStatus.d.vue.ts +13 -0
  15. package/dist/runtime/components/AConnectionStatus.vue +50 -0
  16. package/dist/runtime/components/AConnectionStatus.vue.d.ts +13 -0
  17. package/dist/runtime/components/ADocTypeSelect.d.vue.ts +10 -0
  18. package/dist/runtime/components/ADocTypeSelect.vue +34 -0
  19. package/dist/runtime/components/ADocTypeSelect.vue.d.ts +10 -0
  20. package/dist/runtime/components/ADocumentTree.d.vue.ts +53 -0
  21. package/dist/runtime/components/ADocumentTree.vue +350 -0
  22. package/dist/runtime/components/ADocumentTree.vue.d.ts +53 -0
  23. package/dist/runtime/components/AEditor.d.vue.ts +60 -0
  24. package/dist/runtime/components/AEditor.vue +174 -0
  25. package/dist/runtime/components/AEditor.vue.d.ts +60 -0
  26. package/dist/runtime/components/AFloatingWindow.d.vue.ts +24 -0
  27. package/dist/runtime/components/AFloatingWindow.vue +232 -0
  28. package/dist/runtime/components/AFloatingWindow.vue.d.ts +24 -0
  29. package/dist/runtime/components/AIconPicker.d.vue.ts +13 -0
  30. package/dist/runtime/components/AIconPicker.vue +257 -0
  31. package/dist/runtime/components/AIconPicker.vue.d.ts +13 -0
  32. package/dist/runtime/components/ANodePanel.d.vue.ts +15 -0
  33. package/dist/runtime/components/ANodePanel.vue +541 -0
  34. package/dist/runtime/components/ANodePanel.vue.d.ts +15 -0
  35. package/dist/runtime/components/ANotifications.d.vue.ts +7 -0
  36. package/dist/runtime/components/ANotifications.vue +75 -0
  37. package/dist/runtime/components/ANotifications.vue.d.ts +7 -0
  38. package/dist/runtime/components/APermissionGuard.d.vue.ts +21 -0
  39. package/dist/runtime/components/APermissionGuard.vue +22 -0
  40. package/dist/runtime/components/APermissionGuard.vue.d.ts +21 -0
  41. package/dist/runtime/components/APresence.d.vue.ts +43 -0
  42. package/dist/runtime/components/APresence.vue +36 -0
  43. package/dist/runtime/components/APresence.vue.d.ts +43 -0
  44. package/dist/runtime/components/AProvider.d.vue.ts +27 -0
  45. package/dist/runtime/components/AProvider.vue +42 -0
  46. package/dist/runtime/components/AProvider.vue.d.ts +27 -0
  47. package/dist/runtime/components/ARoleBadge.d.vue.ts +11 -0
  48. package/dist/runtime/components/ARoleBadge.vue +29 -0
  49. package/dist/runtime/components/ARoleBadge.vue.d.ts +11 -0
  50. package/dist/runtime/components/AVoiceBar.d.vue.ts +13 -0
  51. package/dist/runtime/components/AVoiceBar.vue +379 -0
  52. package/dist/runtime/components/AVoiceBar.vue.d.ts +13 -0
  53. package/dist/runtime/components/AVoiceTile.d.vue.ts +10 -0
  54. package/dist/runtime/components/AVoiceTile.vue +48 -0
  55. package/dist/runtime/components/AVoiceTile.vue.d.ts +10 -0
  56. package/dist/runtime/components/AWindowLayer.d.vue.ts +3 -0
  57. package/dist/runtime/components/AWindowLayer.vue +17 -0
  58. package/dist/runtime/components/AWindowLayer.vue.d.ts +3 -0
  59. package/dist/runtime/components/aware/AArea.d.vue.ts +42 -0
  60. package/dist/runtime/components/aware/AArea.vue +45 -0
  61. package/dist/runtime/components/aware/AArea.vue.d.ts +42 -0
  62. package/dist/runtime/components/aware/AAvatar.d.vue.ts +25 -0
  63. package/dist/runtime/components/aware/AAvatar.vue +86 -0
  64. package/dist/runtime/components/aware/AAvatar.vue.d.ts +25 -0
  65. package/dist/runtime/components/aware/AButton.d.vue.ts +7 -0
  66. package/dist/runtime/components/aware/AButton.vue +39 -0
  67. package/dist/runtime/components/aware/AButton.vue.d.ts +7 -0
  68. package/dist/runtime/components/aware/ACursorLabel.d.vue.ts +12 -0
  69. package/dist/runtime/components/aware/ACursorLabel.vue +44 -0
  70. package/dist/runtime/components/aware/ACursorLabel.vue.d.ts +12 -0
  71. package/dist/runtime/components/aware/ADocBadge.d.vue.ts +11 -0
  72. package/dist/runtime/components/aware/ADocBadge.vue +27 -0
  73. package/dist/runtime/components/aware/ADocBadge.vue.d.ts +11 -0
  74. package/dist/runtime/components/aware/AFacepile.d.vue.ts +20 -0
  75. package/dist/runtime/components/aware/AFacepile.vue +92 -0
  76. package/dist/runtime/components/aware/AFacepile.vue.d.ts +20 -0
  77. package/dist/runtime/components/aware/AInput.d.vue.ts +7 -0
  78. package/dist/runtime/components/aware/AInput.vue +44 -0
  79. package/dist/runtime/components/aware/AInput.vue.d.ts +7 -0
  80. package/dist/runtime/components/aware/ASelect.d.vue.ts +7 -0
  81. package/dist/runtime/components/aware/ASelect.vue +51 -0
  82. package/dist/runtime/components/aware/ASelect.vue.d.ts +7 -0
  83. package/dist/runtime/components/aware/ATextarea.d.vue.ts +7 -0
  84. package/dist/runtime/components/aware/ATextarea.vue +44 -0
  85. package/dist/runtime/components/aware/ATextarea.vue.d.ts +7 -0
  86. package/dist/runtime/components/aware/AUserList.d.vue.ts +17 -0
  87. package/dist/runtime/components/aware/AUserList.vue +72 -0
  88. package/dist/runtime/components/aware/AUserList.vue.d.ts +17 -0
  89. package/dist/runtime/components/renderers/ACalendarRenderer.d.vue.ts +8 -0
  90. package/dist/runtime/components/renderers/ACalendarRenderer.vue +154 -0
  91. package/dist/runtime/components/renderers/ACalendarRenderer.vue.d.ts +8 -0
  92. package/dist/runtime/components/renderers/AGalleryRenderer.d.vue.ts +8 -0
  93. package/dist/runtime/components/renderers/AGalleryRenderer.vue +88 -0
  94. package/dist/runtime/components/renderers/AGalleryRenderer.vue.d.ts +8 -0
  95. package/dist/runtime/components/renderers/AKanbanRenderer.d.vue.ts +8 -0
  96. package/dist/runtime/components/renderers/AKanbanRenderer.vue +179 -0
  97. package/dist/runtime/components/renderers/AKanbanRenderer.vue.d.ts +8 -0
  98. package/dist/runtime/components/renderers/AOutlineRenderer.d.vue.ts +8 -0
  99. package/dist/runtime/components/renderers/AOutlineRenderer.vue +180 -0
  100. package/dist/runtime/components/renderers/AOutlineRenderer.vue.d.ts +8 -0
  101. package/dist/runtime/components/renderers/ATableRenderer.d.vue.ts +8 -0
  102. package/dist/runtime/components/renderers/ATableRenderer.vue +191 -0
  103. package/dist/runtime/components/renderers/ATableRenderer.vue.d.ts +8 -0
  104. package/dist/runtime/composables/useAAField.d.ts +42 -0
  105. package/dist/runtime/composables/useAAField.js +62 -0
  106. package/dist/runtime/composables/useAbraLocale.d.ts +14 -0
  107. package/dist/runtime/composables/useAbraLocale.js +11 -0
  108. package/dist/runtime/composables/useAbracadabra.d.ts +11 -0
  109. package/dist/runtime/composables/useAbracadabra.js +3 -0
  110. package/dist/runtime/composables/useAbracadabraAuth.d.ts +23 -0
  111. package/dist/runtime/composables/useAbracadabraAuth.js +22 -0
  112. package/dist/runtime/composables/useAwareness.d.ts +22 -0
  113. package/dist/runtime/composables/useAwareness.js +48 -0
  114. package/dist/runtime/composables/useAwarenessPeers.d.ts +34 -0
  115. package/dist/runtime/composables/useAwarenessPeers.js +33 -0
  116. package/dist/runtime/composables/useBackgroundSync.d.ts +37 -0
  117. package/dist/runtime/composables/useBackgroundSync.js +73 -0
  118. package/dist/runtime/composables/useChat.d.ts +65 -0
  119. package/dist/runtime/composables/useChat.js +210 -0
  120. package/dist/runtime/composables/useChatUsers.d.ts +21 -0
  121. package/dist/runtime/composables/useChatUsers.js +39 -0
  122. package/dist/runtime/composables/useChildTree.d.ts +119 -0
  123. package/dist/runtime/composables/useChildTree.js +100 -0
  124. package/dist/runtime/composables/useCommandPalette.d.ts +58 -0
  125. package/dist/runtime/composables/useCommandPalette.js +94 -0
  126. package/dist/runtime/composables/useConnectionStatus.d.ts +17 -0
  127. package/dist/runtime/composables/useConnectionStatus.js +37 -0
  128. package/dist/runtime/composables/useDashboard.d.ts +3 -0
  129. package/dist/runtime/composables/useDashboard.js +23 -0
  130. package/dist/runtime/composables/useDocExport.d.ts +5 -0
  131. package/dist/runtime/composables/useDocExport.js +256 -0
  132. package/dist/runtime/composables/useDocImport.d.ts +10 -0
  133. package/dist/runtime/composables/useDocImport.js +227 -0
  134. package/dist/runtime/composables/useDocJump.d.ts +29 -0
  135. package/dist/runtime/composables/useDocJump.js +17 -0
  136. package/dist/runtime/composables/useDocumentPermissions.d.ts +20 -0
  137. package/dist/runtime/composables/useDocumentPermissions.js +33 -0
  138. package/dist/runtime/composables/useEditor.d.ts +45 -0
  139. package/dist/runtime/composables/useEditor.js +121 -0
  140. package/dist/runtime/composables/useEditorDragHandle.d.ts +26 -0
  141. package/dist/runtime/composables/useEditorDragHandle.js +219 -0
  142. package/dist/runtime/composables/useEditorMentions.d.ts +28 -0
  143. package/dist/runtime/composables/useEditorMentions.js +40 -0
  144. package/dist/runtime/composables/useEditorSuggestions.d.ts +18 -0
  145. package/dist/runtime/composables/useEditorSuggestions.js +45 -0
  146. package/dist/runtime/composables/useEditorToolbar.d.ts +22 -0
  147. package/dist/runtime/composables/useEditorToolbar.js +60 -0
  148. package/dist/runtime/composables/useFileBlobStore.d.ts +15 -0
  149. package/dist/runtime/composables/useFileBlobStore.js +22 -0
  150. package/dist/runtime/composables/useFileIndex.d.ts +20 -0
  151. package/dist/runtime/composables/useFileIndex.js +69 -0
  152. package/dist/runtime/composables/useFollowUser.d.ts +5 -0
  153. package/dist/runtime/composables/useFollowUser.js +40 -0
  154. package/dist/runtime/composables/useNotifications.d.ts +82 -0
  155. package/dist/runtime/composables/useNotifications.js +171 -0
  156. package/dist/runtime/composables/useOfflineUploadQueue.d.ts +90 -0
  157. package/dist/runtime/composables/useOfflineUploadQueue.js +33 -0
  158. package/dist/runtime/composables/usePasskeyAccounts.d.ts +32 -0
  159. package/dist/runtime/composables/usePasskeyAccounts.js +46 -0
  160. package/dist/runtime/composables/usePluginRegistry.d.ts +6 -0
  161. package/dist/runtime/composables/usePluginRegistry.js +3 -0
  162. package/dist/runtime/composables/useRendererBase.d.ts +186 -0
  163. package/dist/runtime/composables/useRendererBase.js +46 -0
  164. package/dist/runtime/composables/useSearchIndex.d.ts +20 -0
  165. package/dist/runtime/composables/useSearchIndex.js +104 -0
  166. package/dist/runtime/composables/useTrash.d.ts +50 -0
  167. package/dist/runtime/composables/useTrash.js +127 -0
  168. package/dist/runtime/composables/useVoice.d.ts +51 -0
  169. package/dist/runtime/composables/useVoice.js +220 -0
  170. package/dist/runtime/composables/useWindowManager.d.ts +122 -0
  171. package/dist/runtime/composables/useWindowManager.js +141 -0
  172. package/dist/runtime/composables/useYDoc.d.ts +142 -0
  173. package/dist/runtime/composables/useYDoc.js +172 -0
  174. package/dist/runtime/extensions/accordion.d.ts +3 -0
  175. package/dist/runtime/extensions/accordion.js +49 -0
  176. package/dist/runtime/extensions/badge.d.ts +2 -0
  177. package/dist/runtime/extensions/badge.js +39 -0
  178. package/dist/runtime/extensions/callout.d.ts +2 -0
  179. package/dist/runtime/extensions/callout.js +28 -0
  180. package/dist/runtime/extensions/card.d.ts +3 -0
  181. package/dist/runtime/extensions/card.js +53 -0
  182. package/dist/runtime/extensions/code-collapse.d.ts +2 -0
  183. package/dist/runtime/extensions/code-collapse.js +32 -0
  184. package/dist/runtime/extensions/code-group.d.ts +2 -0
  185. package/dist/runtime/extensions/code-group.js +17 -0
  186. package/dist/runtime/extensions/collapsible.d.ts +2 -0
  187. package/dist/runtime/extensions/collapsible.js +35 -0
  188. package/dist/runtime/extensions/document-header.d.ts +11 -0
  189. package/dist/runtime/extensions/document-header.js +82 -0
  190. package/dist/runtime/extensions/document-meta.d.ts +20 -0
  191. package/dist/runtime/extensions/document-meta.js +121 -0
  192. package/dist/runtime/extensions/document.d.ts +6 -0
  193. package/dist/runtime/extensions/document.js +6 -0
  194. package/dist/runtime/extensions/file-block.d.ts +15 -0
  195. package/dist/runtime/extensions/file-block.js +34 -0
  196. package/dist/runtime/extensions/file-drop.d.ts +6 -0
  197. package/dist/runtime/extensions/file-drop.js +65 -0
  198. package/dist/runtime/extensions/kbd.d.ts +2 -0
  199. package/dist/runtime/extensions/kbd.js +33 -0
  200. package/dist/runtime/extensions/prose-icon.d.ts +2 -0
  201. package/dist/runtime/extensions/prose-icon.js +33 -0
  202. package/dist/runtime/extensions/search-highlight.d.ts +10 -0
  203. package/dist/runtime/extensions/search-highlight.js +129 -0
  204. package/dist/runtime/extensions/steps.d.ts +2 -0
  205. package/dist/runtime/extensions/steps.js +32 -0
  206. package/dist/runtime/extensions/tabs.d.ts +3 -0
  207. package/dist/runtime/extensions/tabs.js +49 -0
  208. package/dist/runtime/extensions/views/AccordionItemView.d.vue.ts +4 -0
  209. package/dist/runtime/extensions/views/AccordionItemView.vue +41 -0
  210. package/dist/runtime/extensions/views/AccordionItemView.vue.d.ts +4 -0
  211. package/dist/runtime/extensions/views/AccordionView.d.vue.ts +4 -0
  212. package/dist/runtime/extensions/views/AccordionView.vue +22 -0
  213. package/dist/runtime/extensions/views/AccordionView.vue.d.ts +4 -0
  214. package/dist/runtime/extensions/views/BadgeView.d.vue.ts +4 -0
  215. package/dist/runtime/extensions/views/BadgeView.vue +23 -0
  216. package/dist/runtime/extensions/views/BadgeView.vue.d.ts +4 -0
  217. package/dist/runtime/extensions/views/CalloutView.d.vue.ts +4 -0
  218. package/dist/runtime/extensions/views/CalloutView.vue +43 -0
  219. package/dist/runtime/extensions/views/CalloutView.vue.d.ts +4 -0
  220. package/dist/runtime/extensions/views/CardGroupView.d.vue.ts +4 -0
  221. package/dist/runtime/extensions/views/CardGroupView.vue +22 -0
  222. package/dist/runtime/extensions/views/CardGroupView.vue.d.ts +4 -0
  223. package/dist/runtime/extensions/views/CardView.d.vue.ts +4 -0
  224. package/dist/runtime/extensions/views/CardView.vue +28 -0
  225. package/dist/runtime/extensions/views/CardView.vue.d.ts +4 -0
  226. package/dist/runtime/extensions/views/CodeCollapseView.d.vue.ts +4 -0
  227. package/dist/runtime/extensions/views/CodeCollapseView.vue +45 -0
  228. package/dist/runtime/extensions/views/CodeCollapseView.vue.d.ts +4 -0
  229. package/dist/runtime/extensions/views/CodeGroupView.d.vue.ts +4 -0
  230. package/dist/runtime/extensions/views/CodeGroupView.vue +53 -0
  231. package/dist/runtime/extensions/views/CodeGroupView.vue.d.ts +4 -0
  232. package/dist/runtime/extensions/views/CollapsibleView.d.vue.ts +4 -0
  233. package/dist/runtime/extensions/views/CollapsibleView.vue +42 -0
  234. package/dist/runtime/extensions/views/CollapsibleView.vue.d.ts +4 -0
  235. package/dist/runtime/extensions/views/FileNodeView.d.vue.ts +4 -0
  236. package/dist/runtime/extensions/views/FileNodeView.vue +140 -0
  237. package/dist/runtime/extensions/views/FileNodeView.vue.d.ts +4 -0
  238. package/dist/runtime/extensions/views/KbdView.d.vue.ts +4 -0
  239. package/dist/runtime/extensions/views/KbdView.vue +23 -0
  240. package/dist/runtime/extensions/views/KbdView.vue.d.ts +4 -0
  241. package/dist/runtime/extensions/views/ProseIconView.d.vue.ts +4 -0
  242. package/dist/runtime/extensions/views/ProseIconView.vue +23 -0
  243. package/dist/runtime/extensions/views/ProseIconView.vue.d.ts +4 -0
  244. package/dist/runtime/extensions/views/StepsView.d.vue.ts +4 -0
  245. package/dist/runtime/extensions/views/StepsView.vue +32 -0
  246. package/dist/runtime/extensions/views/StepsView.vue.d.ts +4 -0
  247. package/dist/runtime/extensions/views/TabsItemView.d.vue.ts +4 -0
  248. package/dist/runtime/extensions/views/TabsItemView.vue +22 -0
  249. package/dist/runtime/extensions/views/TabsItemView.vue.d.ts +4 -0
  250. package/dist/runtime/extensions/views/TabsView.d.vue.ts +4 -0
  251. package/dist/runtime/extensions/views/TabsView.vue +56 -0
  252. package/dist/runtime/extensions/views/TabsView.vue.d.ts +4 -0
  253. package/dist/runtime/locale.d.ts +134 -0
  254. package/dist/runtime/locale.js +119 -0
  255. package/dist/runtime/middleware/abracadabra-auth.d.ts +11 -0
  256. package/dist/runtime/middleware/abracadabra-auth.js +9 -0
  257. package/dist/runtime/plugin-abracadabra.client.d.ts +7 -0
  258. package/dist/runtime/plugin-abracadabra.client.js +898 -0
  259. package/dist/runtime/plugin-abracadabra.server.d.ts +2 -0
  260. package/dist/runtime/plugin-abracadabra.server.js +71 -0
  261. package/dist/runtime/plugin-registry.d.ts +34 -0
  262. package/dist/runtime/plugin-registry.js +83 -0
  263. package/dist/runtime/plugin-shared-globals.client.d.ts +2 -0
  264. package/dist/runtime/plugin-shared-globals.client.js +20 -0
  265. package/dist/runtime/plugins/core.plugin.d.ts +12 -0
  266. package/dist/runtime/plugins/core.plugin.js +179 -0
  267. package/dist/runtime/server/api/_abracadabra/render/[docId].get.d.ts +18 -0
  268. package/dist/runtime/server/api/_abracadabra/render/[docId].get.js +51 -0
  269. package/dist/runtime/server/api/_abracadabra/spaces.get.d.ts +11 -0
  270. package/dist/runtime/server/api/_abracadabra/spaces.get.js +16 -0
  271. package/dist/runtime/server/plugins/abracadabra-service.d.ts +2 -0
  272. package/dist/runtime/server/plugins/abracadabra-service.js +116 -0
  273. package/dist/runtime/server/runners/doc-tree-cache.d.ts +11 -0
  274. package/dist/runtime/server/runners/doc-tree-cache.js +65 -0
  275. package/dist/runtime/server/tsconfig.json +3 -0
  276. package/dist/runtime/server/utils/docCache.d.ts +25 -0
  277. package/dist/runtime/server/utils/docCache.js +131 -0
  278. package/dist/runtime/server/utils/serverRunner.d.ts +28 -0
  279. package/dist/runtime/server/utils/serverRunner.js +58 -0
  280. package/dist/runtime/types.d.ts +444 -0
  281. package/dist/runtime/types.js +93 -0
  282. package/dist/runtime/utils/VoiceClient.d.ts +94 -0
  283. package/dist/runtime/utils/VoiceClient.js +599 -0
  284. package/dist/runtime/utils/avatarStyle.d.ts +15 -0
  285. package/dist/runtime/utils/avatarStyle.js +20 -0
  286. package/dist/runtime/utils/colorPalettes.d.ts +13 -0
  287. package/dist/runtime/utils/colorPalettes.js +49 -0
  288. package/dist/runtime/utils/docTypes.d.ts +129 -0
  289. package/dist/runtime/utils/docTypes.js +116 -0
  290. package/dist/runtime/utils/markdownToYjs.d.ts +23 -0
  291. package/dist/runtime/utils/markdownToYjs.js +440 -0
  292. package/dist/runtime/utils/metaFieldDefinitions.d.ts +7 -0
  293. package/dist/runtime/utils/metaFieldDefinitions.js +182 -0
  294. package/dist/runtime/utils/voiceErrors.d.ts +33 -0
  295. package/dist/runtime/utils/voiceErrors.js +54 -0
  296. package/dist/runtime/utils/yjsConvert.d.ts +14 -0
  297. package/dist/runtime/utils/yjsConvert.js +331 -0
  298. package/dist/types.d.mts +13 -0
  299. package/package.json +100 -0
@@ -0,0 +1,28 @@
1
+ import { Node, mergeAttributes } from "@tiptap/core";
2
+ import { VueNodeViewRenderer } from "@tiptap/vue-3";
3
+ import CalloutView from "./views/CalloutView.vue";
4
+ export const Callout = Node.create({
5
+ name: "callout",
6
+ group: "block",
7
+ content: "block+",
8
+ addAttributes() {
9
+ return {
10
+ type: { default: "note" }
11
+ };
12
+ },
13
+ parseHTML() {
14
+ return [
15
+ {
16
+ tag: "div[data-callout]",
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ getAttrs: (el) => ({ type: el.getAttribute("data-callout") })
19
+ }
20
+ ];
21
+ },
22
+ renderHTML({ HTMLAttributes }) {
23
+ return ["div", mergeAttributes({ "data-callout": HTMLAttributes.type }), 0];
24
+ },
25
+ addNodeView() {
26
+ return VueNodeViewRenderer(CalloutView);
27
+ }
28
+ });
@@ -0,0 +1,3 @@
1
+ import { Node } from '@tiptap/core';
2
+ export declare const Card: Node<any, any>;
3
+ export declare const CardGroup: Node<any, any>;
@@ -0,0 +1,53 @@
1
+ import { Node, mergeAttributes } from "@tiptap/core";
2
+ import { VueNodeViewRenderer } from "@tiptap/vue-3";
3
+ import CardView from "./views/CardView.vue";
4
+ import CardGroupView from "./views/CardGroupView.vue";
5
+ export const Card = Node.create({
6
+ name: "card",
7
+ group: "block",
8
+ content: "block+",
9
+ addAttributes() {
10
+ return {
11
+ title: { default: "" },
12
+ icon: { default: "" },
13
+ to: { default: "" }
14
+ };
15
+ },
16
+ parseHTML() {
17
+ return [
18
+ {
19
+ tag: "div[data-card]",
20
+ getAttrs: (el) => ({
21
+ title: el.getAttribute("data-title"),
22
+ icon: el.getAttribute("data-icon"),
23
+ to: el.getAttribute("data-to")
24
+ })
25
+ }
26
+ ];
27
+ },
28
+ renderHTML({ HTMLAttributes }) {
29
+ return ["div", mergeAttributes({
30
+ "data-card": "",
31
+ "data-title": HTMLAttributes.title,
32
+ "data-icon": HTMLAttributes.icon,
33
+ "data-to": HTMLAttributes.to
34
+ }), 0];
35
+ },
36
+ addNodeView() {
37
+ return VueNodeViewRenderer(CardView);
38
+ }
39
+ });
40
+ export const CardGroup = Node.create({
41
+ name: "cardGroup",
42
+ group: "block",
43
+ content: "card+",
44
+ parseHTML() {
45
+ return [{ tag: "div[data-card-group]" }];
46
+ },
47
+ renderHTML() {
48
+ return ["div", { "data-card-group": "" }, 0];
49
+ },
50
+ addNodeView() {
51
+ return VueNodeViewRenderer(CardGroupView);
52
+ }
53
+ });
@@ -0,0 +1,2 @@
1
+ import { Node } from '@tiptap/core';
2
+ export declare const CodeCollapse: Node<any, any>;
@@ -0,0 +1,32 @@
1
+ import { Node, mergeAttributes } from "@tiptap/core";
2
+ import { VueNodeViewRenderer } from "@tiptap/vue-3";
3
+ import CodeCollapseView from "./views/CodeCollapseView.vue";
4
+ export const CodeCollapse = Node.create({
5
+ name: "codeCollapse",
6
+ group: "block",
7
+ content: "codeBlock",
8
+ addAttributes() {
9
+ return {
10
+ open: { default: false }
11
+ };
12
+ },
13
+ parseHTML() {
14
+ return [
15
+ {
16
+ tag: "div[data-code-collapse]",
17
+ getAttrs: (el) => ({
18
+ open: el.getAttribute("data-open") === "true"
19
+ })
20
+ }
21
+ ];
22
+ },
23
+ renderHTML({ HTMLAttributes }) {
24
+ return ["div", mergeAttributes({
25
+ "data-code-collapse": "",
26
+ "data-open": HTMLAttributes.open
27
+ }), 0];
28
+ },
29
+ addNodeView() {
30
+ return VueNodeViewRenderer(CodeCollapseView);
31
+ }
32
+ });
@@ -0,0 +1,2 @@
1
+ import { Node } from '@tiptap/core';
2
+ export declare const CodeGroup: Node<any, any>;
@@ -0,0 +1,17 @@
1
+ import { Node, mergeAttributes } from "@tiptap/core";
2
+ import { VueNodeViewRenderer } from "@tiptap/vue-3";
3
+ import CodeGroupView from "./views/CodeGroupView.vue";
4
+ export const CodeGroup = Node.create({
5
+ name: "codeGroup",
6
+ group: "block",
7
+ content: "codeBlock+",
8
+ parseHTML() {
9
+ return [{ tag: "div[data-code-group]" }];
10
+ },
11
+ renderHTML() {
12
+ return ["div", mergeAttributes({ "data-code-group": "" }), 0];
13
+ },
14
+ addNodeView() {
15
+ return VueNodeViewRenderer(CodeGroupView);
16
+ }
17
+ });
@@ -0,0 +1,2 @@
1
+ import { Node } from '@tiptap/core';
2
+ export declare const Collapsible: Node<any, any>;
@@ -0,0 +1,35 @@
1
+ import { Node, mergeAttributes } from "@tiptap/core";
2
+ import { VueNodeViewRenderer } from "@tiptap/vue-3";
3
+ import CollapsibleView from "./views/CollapsibleView.vue";
4
+ export const Collapsible = Node.create({
5
+ name: "collapsible",
6
+ group: "block",
7
+ content: "block+",
8
+ addAttributes() {
9
+ return {
10
+ label: { default: "Details" },
11
+ open: { default: false }
12
+ };
13
+ },
14
+ parseHTML() {
15
+ return [
16
+ {
17
+ tag: "div[data-collapsible]",
18
+ getAttrs: (el) => ({
19
+ label: el.getAttribute("data-label"),
20
+ open: el.getAttribute("data-open") === "true"
21
+ })
22
+ }
23
+ ];
24
+ },
25
+ renderHTML({ HTMLAttributes }) {
26
+ return ["div", mergeAttributes({
27
+ "data-collapsible": "",
28
+ "data-label": HTMLAttributes.label,
29
+ "data-open": HTMLAttributes.open
30
+ }), 0];
31
+ },
32
+ addNodeView() {
33
+ return VueNodeViewRenderer(CollapsibleView);
34
+ }
35
+ });
@@ -0,0 +1,11 @@
1
+ import { Node } from '@tiptap/core';
2
+ /**
3
+ * DocumentHeader — the pinned H1 title node at the top of every doc.
4
+ *
5
+ * - Always the first node (enforced by the custom Document schema)
6
+ * - Cannot be deleted (Backspace at position 0 is swallowed)
7
+ * - Enter moves cursor to the first body block below the header
8
+ * - Pasting block content (paragraphs, headings, etc.) is flattened to inline text
9
+ * - Select-all + typing keeps text in the header with correct cursor placement
10
+ */
11
+ export declare const DocumentHeader: Node<any, any>;
@@ -0,0 +1,82 @@
1
+ import { Node, mergeAttributes } from "@tiptap/core";
2
+ import { Plugin, PluginKey, TextSelection, AllSelection } from "@tiptap/pm/state";
3
+ import { Slice, Fragment } from "@tiptap/pm/model";
4
+ export const DocumentHeader = Node.create({
5
+ name: "documentHeader",
6
+ content: "inline*",
7
+ marks: "",
8
+ defining: true,
9
+ parseHTML() {
10
+ return [{ tag: "h1.document-header" }];
11
+ },
12
+ renderHTML({ HTMLAttributes }) {
13
+ return [
14
+ "h1",
15
+ mergeAttributes(HTMLAttributes, { class: "document-header" }),
16
+ 0
17
+ ];
18
+ },
19
+ addKeyboardShortcuts() {
20
+ return {
21
+ // Enter inside the header → move cursor to the first body block below
22
+ Enter: ({ editor }) => {
23
+ const $head = editor.state.selection.$head;
24
+ if ($head.parent.type.name !== "documentHeader") return false;
25
+ const headerNode = editor.state.doc.firstChild;
26
+ if (!headerNode) return false;
27
+ const insideNextBlock = headerNode.nodeSize + 1;
28
+ return editor.commands.setTextSelection(insideNextBlock);
29
+ },
30
+ // Backspace at the very start of the header → swallow (don't delete the node)
31
+ Backspace: ({ editor }) => {
32
+ const { empty, anchor } = editor.state.selection;
33
+ return empty && anchor === 1;
34
+ }
35
+ };
36
+ },
37
+ addProseMirrorPlugins() {
38
+ return [
39
+ new Plugin({
40
+ key: new PluginKey("documentHeaderPaste"),
41
+ props: {
42
+ // When the entire doc is selected (Ctrl+A) and the user types,
43
+ // replace everything cleanly: put the typed char in the header
44
+ // and keep the cursor there, instead of letting ProseMirror
45
+ // misplace it into the body paragraph.
46
+ handleTextInput: (view, _from, _to, text) => {
47
+ if (!(view.state.selection instanceof AllSelection)) return false;
48
+ const { tr, schema } = view.state;
49
+ const headerType = schema.nodes.documentHeader;
50
+ const paragraphType = schema.nodes.paragraph;
51
+ if (!headerType || !paragraphType) return false;
52
+ const newContent = Fragment.from([
53
+ headerType.create(null, text ? [schema.text(text)] : []),
54
+ paragraphType.create()
55
+ ]);
56
+ tr.replaceWith(0, tr.doc.content.size, newContent);
57
+ tr.setSelection(TextSelection.create(tr.doc, 1 + text.length));
58
+ view.dispatch(tr);
59
+ return true;
60
+ },
61
+ handlePaste: (view, _event, slice) => {
62
+ const { $head } = view.state.selection;
63
+ if ($head.parent.type.name !== "documentHeader") return false;
64
+ const texts = [];
65
+ slice.content.forEach((node) => {
66
+ const t = node.textContent;
67
+ if (t) texts.push(t);
68
+ });
69
+ if (!texts.length) return false;
70
+ const text = texts.join(" ");
71
+ const { tr, schema } = view.state;
72
+ const textNode = schema.text(text);
73
+ const inlineSlice = new Slice(Fragment.from(textNode), 0, 0);
74
+ tr.replaceSelection(inlineSlice);
75
+ view.dispatch(tr);
76
+ return true;
77
+ }
78
+ }
79
+ })
80
+ ];
81
+ }
82
+ });
@@ -0,0 +1,20 @@
1
+ import { Node } from '@tiptap/core';
2
+ /**
3
+ * DocumentMeta — the meta-field container between documentHeader and body.
4
+ *
5
+ * content: 'inline*' so:
6
+ * - the cursor can land inside (enabling the slash menu via '/')
7
+ * - metaField inline atoms appear as chips on the same line
8
+ * - the Placeholder extension shows "Type '/' to add a property…"
9
+ *
10
+ * Keyboard:
11
+ * - Backspace at position 0 → swallow (prevent merging up into header)
12
+ * - Enter / ArrowDown → jump to first body block
13
+ * - ArrowUp → jump to end of documentHeader
14
+ *
15
+ * A ProseMirror plugin handles the first body block:
16
+ * - Backspace at start → blocked (prevent merge into documentMeta)
17
+ * - ArrowUp → explicitly navigates into documentMeta (ProseMirror's
18
+ * coordinate-based navigation skips the thin flex row when empty)
19
+ */
20
+ export declare const DocumentMeta: Node<any, any>;
@@ -0,0 +1,121 @@
1
+ import { Node } from "@tiptap/core";
2
+ import { Plugin, PluginKey, TextSelection } from "@tiptap/pm/state";
3
+ export const DocumentMeta = Node.create({
4
+ name: "documentMeta",
5
+ content: "inline*",
6
+ defining: true,
7
+ parseHTML() {
8
+ return [{ tag: 'div[data-type="document-meta"]' }];
9
+ },
10
+ renderHTML() {
11
+ return ["div", { "data-type": "document-meta" }, 0];
12
+ },
13
+ addKeyboardShortcuts() {
14
+ return {
15
+ Backspace: ({ editor }) => {
16
+ const { $head, empty } = editor.state.selection;
17
+ if (!empty) return false;
18
+ for (let d = $head.depth; d >= 0; d--) {
19
+ if ($head.node(d).type.name !== "documentMeta") continue;
20
+ return $head.pos === $head.start(d);
21
+ }
22
+ return false;
23
+ },
24
+ Enter: ({ editor }) => {
25
+ const { $head } = editor.state.selection;
26
+ for (let d = $head.depth; d >= 0; d--) {
27
+ if ($head.node(d).type.name !== "documentMeta") continue;
28
+ return moveToFirstBodyBlock(editor);
29
+ }
30
+ return false;
31
+ },
32
+ ArrowDown: ({ editor }) => {
33
+ const { $head } = editor.state.selection;
34
+ for (let d = $head.depth; d >= 0; d--) {
35
+ if ($head.node(d).type.name !== "documentMeta") continue;
36
+ return moveToFirstBodyBlock(editor);
37
+ }
38
+ return false;
39
+ },
40
+ ArrowUp: ({ editor }) => {
41
+ const { $head } = editor.state.selection;
42
+ for (let d = $head.depth; d >= 0; d--) {
43
+ if ($head.node(d).type.name !== "documentMeta") continue;
44
+ const header = editor.state.doc.firstChild;
45
+ if (!header || header.type.name !== "documentHeader") return false;
46
+ return editor.commands.setTextSelection(1 + header.content.size);
47
+ }
48
+ return false;
49
+ }
50
+ };
51
+ },
52
+ addProseMirrorPlugins() {
53
+ return [
54
+ new Plugin({
55
+ key: new PluginKey("documentMetaGuard"),
56
+ props: {
57
+ handleKeyDown(view, event) {
58
+ const { $head, empty } = view.state.selection;
59
+ if (!empty) return false;
60
+ if (event.key === "Backspace") {
61
+ if ($head.parentOffset !== 0) return false;
62
+ const index = $head.index($head.depth - 1);
63
+ if (index === 0) return false;
64
+ const prevSibling = $head.node($head.depth - 1).child(index - 1);
65
+ return prevSibling?.type.name === "documentMeta";
66
+ }
67
+ if (event.key === "ArrowUp") {
68
+ const parentType = $head.parent.type.name;
69
+ if (parentType === "documentMeta" || parentType === "documentHeader") return false;
70
+ const topIndex = $head.index(0);
71
+ if (topIndex === 0) return false;
72
+ const prevTop = $head.node(0).child(topIndex - 1);
73
+ if (prevTop?.type.name !== "documentMeta") return false;
74
+ let metaPos = -1;
75
+ view.state.doc.forEach((node, offset) => {
76
+ if (node.type.name === "documentMeta") metaPos = offset;
77
+ });
78
+ if (metaPos === -1) return false;
79
+ const metaNode = view.state.doc.nodeAt(metaPos);
80
+ const targetPos = metaPos + 1 + metaNode.content.size;
81
+ view.dispatch(view.state.tr.setSelection(
82
+ TextSelection.create(view.state.doc, targetPos)
83
+ ));
84
+ return true;
85
+ }
86
+ return false;
87
+ }
88
+ }
89
+ }),
90
+ new Plugin({
91
+ key: new PluginKey("documentMetaDedupe"),
92
+ appendTransaction(transactions, _old, newState) {
93
+ if (!transactions.some((tr2) => tr2.docChanged)) return null;
94
+ const metaPositions = [];
95
+ newState.doc.forEach((node, offset) => {
96
+ if (node.type.name === "documentMeta") metaPositions.push(offset);
97
+ });
98
+ if (metaPositions.length <= 1) return null;
99
+ const tr = newState.tr;
100
+ for (let i = metaPositions.length - 1; i >= 1; i--) {
101
+ const pos = metaPositions[i];
102
+ const node = newState.doc.nodeAt(pos);
103
+ if (node) tr.delete(pos, pos + node.nodeSize);
104
+ }
105
+ return tr;
106
+ }
107
+ })
108
+ ];
109
+ }
110
+ });
111
+ function moveToFirstBodyBlock(editor) {
112
+ const doc = editor.state.doc;
113
+ let firstBodyPos = -1;
114
+ doc.forEach((node, offset) => {
115
+ if (firstBodyPos === -1 && node.type.name !== "documentHeader" && node.type.name !== "documentMeta") {
116
+ firstBodyPos = offset + 1;
117
+ }
118
+ });
119
+ if (firstBodyPos > 0) return editor.commands.setTextSelection(firstBodyPos);
120
+ return false;
121
+ }
@@ -0,0 +1,6 @@
1
+ import { Node } from '@tiptap/core';
2
+ /**
3
+ * Custom Document node that enforces `documentHeader documentMeta block+` schema,
4
+ * so every doc always starts with an editable H1 title node followed by a meta row.
5
+ */
6
+ export declare const Document: Node<any, any>;
@@ -0,0 +1,6 @@
1
+ import { Node } from "@tiptap/core";
2
+ export const Document = Node.create({
3
+ name: "doc",
4
+ topNode: true,
5
+ content: "documentHeader documentMeta block+"
6
+ });
@@ -0,0 +1,15 @@
1
+ import { Node } from '@tiptap/core';
2
+ declare module '@tiptap/core' {
3
+ interface Commands<ReturnType> {
4
+ fileBlock: {
5
+ insertFileBlock: (attrs: {
6
+ uploadId: string;
7
+ docId: string;
8
+ filename: string;
9
+ mimeType: string;
10
+ }) => ReturnType;
11
+ };
12
+ }
13
+ }
14
+ export declare const FileBlock: Node<any, any>;
15
+ export default FileBlock;
@@ -0,0 +1,34 @@
1
+ import { Node, mergeAttributes } from "@tiptap/core";
2
+ import { VueNodeViewRenderer } from "@tiptap/vue-3";
3
+ import FileNodeViewComponent from "./views/FileNodeView.vue";
4
+ export const FileBlock = Node.create({
5
+ name: "fileBlock",
6
+ group: "block",
7
+ atom: true,
8
+ draggable: true,
9
+ addAttributes() {
10
+ return {
11
+ uploadId: { default: null },
12
+ docId: { default: null },
13
+ filename: { default: "" },
14
+ mimeType: { default: "" }
15
+ };
16
+ },
17
+ parseHTML() {
18
+ return [{ tag: 'div[data-type="file-block"]' }];
19
+ },
20
+ renderHTML({ HTMLAttributes }) {
21
+ return ["div", mergeAttributes(HTMLAttributes, { "data-type": "file-block" })];
22
+ },
23
+ addNodeView() {
24
+ return VueNodeViewRenderer(FileNodeViewComponent);
25
+ },
26
+ addCommands() {
27
+ return {
28
+ insertFileBlock: (attrs) => ({ commands }) => {
29
+ return commands.insertContent({ type: this.name, attrs });
30
+ }
31
+ };
32
+ }
33
+ });
34
+ export default FileBlock;
@@ -0,0 +1,6 @@
1
+ import { Extension } from '@tiptap/core';
2
+ export interface FileDropOptions {
3
+ onFiles: (files: File[], pos?: number) => void;
4
+ }
5
+ export declare const FileDrop: Extension<FileDropOptions, any>;
6
+ export default FileDrop;
@@ -0,0 +1,65 @@
1
+ import { Extension } from "@tiptap/core";
2
+ import { Plugin, PluginKey } from "@tiptap/pm/state";
3
+ function hasDraggedFiles(event) {
4
+ return Array.from(event.dataTransfer?.types ?? []).includes("Files");
5
+ }
6
+ export const FileDrop = Extension.create({
7
+ name: "fileDrop",
8
+ addOptions() {
9
+ return { onFiles: () => {
10
+ } };
11
+ },
12
+ addProseMirrorPlugins() {
13
+ const options = this.options;
14
+ let dragCounter = 0;
15
+ return [
16
+ new Plugin({
17
+ key: new PluginKey("fileDrop"),
18
+ props: {
19
+ handleDOMEvents: {
20
+ dragenter(view, event) {
21
+ if (!hasDraggedFiles(event)) return false;
22
+ dragCounter++;
23
+ view.dom.classList.add("file-drop-active");
24
+ return false;
25
+ },
26
+ dragleave(view) {
27
+ dragCounter = Math.max(0, dragCounter - 1);
28
+ if (dragCounter === 0) {
29
+ view.dom.classList.remove("file-drop-active");
30
+ }
31
+ return false;
32
+ },
33
+ dragover(_view, event) {
34
+ if (!hasDraggedFiles(event)) return false;
35
+ event.preventDefault();
36
+ event.dataTransfer.dropEffect = "copy";
37
+ return false;
38
+ },
39
+ drop(view, event) {
40
+ dragCounter = 0;
41
+ view.dom.classList.remove("file-drop-active");
42
+ const de = event;
43
+ const files = Array.from(de.dataTransfer?.files ?? []);
44
+ if (!files.length) return false;
45
+ event.preventDefault();
46
+ const dropPos = view.posAtCoords({ left: de.clientX, top: de.clientY })?.pos;
47
+ options.onFiles(files, dropPos);
48
+ return true;
49
+ },
50
+ paste(_view, event) {
51
+ const ce = event;
52
+ const items = Array.from(ce.clipboardData?.items ?? []);
53
+ const files = items.filter((item) => item.kind === "file").map((item) => item.getAsFile()).filter((f) => f !== null);
54
+ if (!files.length) return false;
55
+ event.preventDefault();
56
+ options.onFiles(files);
57
+ return true;
58
+ }
59
+ }
60
+ }
61
+ })
62
+ ];
63
+ }
64
+ });
65
+ export default FileDrop;
@@ -0,0 +1,2 @@
1
+ import { Node } from '@tiptap/core';
2
+ export declare const Kbd: Node<any, any>;
@@ -0,0 +1,33 @@
1
+ import { Node, mergeAttributes } from "@tiptap/core";
2
+ import { VueNodeViewRenderer } from "@tiptap/vue-3";
3
+ import KbdView from "./views/KbdView.vue";
4
+ export const Kbd = Node.create({
5
+ name: "kbd",
6
+ group: "inline",
7
+ inline: true,
8
+ atom: true,
9
+ addAttributes() {
10
+ return {
11
+ value: { default: "" }
12
+ };
13
+ },
14
+ parseHTML() {
15
+ return [
16
+ {
17
+ tag: "kbd[data-kbd]",
18
+ getAttrs: (el) => ({
19
+ value: el.getAttribute("data-value") || el.textContent
20
+ })
21
+ }
22
+ ];
23
+ },
24
+ renderHTML({ HTMLAttributes }) {
25
+ return ["kbd", mergeAttributes({
26
+ "data-kbd": "",
27
+ "data-value": HTMLAttributes.value
28
+ }), HTMLAttributes.value];
29
+ },
30
+ addNodeView() {
31
+ return VueNodeViewRenderer(KbdView);
32
+ }
33
+ });
@@ -0,0 +1,2 @@
1
+ import { Node } from '@tiptap/core';
2
+ export declare const ProseIcon: Node<any, any>;
@@ -0,0 +1,33 @@
1
+ import { Node, mergeAttributes } from "@tiptap/core";
2
+ import { VueNodeViewRenderer } from "@tiptap/vue-3";
3
+ import ProseIconView from "./views/ProseIconView.vue";
4
+ export const ProseIcon = Node.create({
5
+ name: "proseIcon",
6
+ group: "inline",
7
+ inline: true,
8
+ atom: true,
9
+ addAttributes() {
10
+ return {
11
+ name: { default: "i-lucide-star" }
12
+ };
13
+ },
14
+ parseHTML() {
15
+ return [
16
+ {
17
+ tag: "span[data-prose-icon]",
18
+ getAttrs: (el) => ({
19
+ name: el.getAttribute("data-name")
20
+ })
21
+ }
22
+ ];
23
+ },
24
+ renderHTML({ HTMLAttributes }) {
25
+ return ["span", mergeAttributes({
26
+ "data-prose-icon": "",
27
+ "data-name": HTMLAttributes.name
28
+ })];
29
+ },
30
+ addNodeView() {
31
+ return VueNodeViewRenderer(ProseIconView);
32
+ }
33
+ });
@@ -0,0 +1,10 @@
1
+ import { Extension } from '@tiptap/core';
2
+ import type { Node as ProseMirrorNode } from '@tiptap/pm/model';
3
+ export interface MatchResult {
4
+ from: number;
5
+ to: number;
6
+ contextBefore: string;
7
+ contextAfter: string;
8
+ }
9
+ export declare function findAllMatches(doc: ProseMirrorNode, term: string): MatchResult[];
10
+ export declare const SearchHighlight: Extension<any, any>;