@abraca/nuxt 0.2.0 → 1.5.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 (559) hide show
  1. package/dist/module.d.mts +72 -0
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +139 -3
  4. package/dist/runtime/assets/editor.css +1 -0
  5. package/dist/runtime/components/AAccountSwitcherModal.d.vue.ts +10 -0
  6. package/dist/runtime/components/AAccountSwitcherModal.vue +158 -0
  7. package/dist/runtime/components/AAccountSwitcherModal.vue.d.ts +10 -0
  8. package/dist/runtime/components/AClaimAccountModal.d.vue.ts +10 -0
  9. package/dist/runtime/components/AClaimAccountModal.vue +230 -0
  10. package/dist/runtime/components/AClaimAccountModal.vue.d.ts +10 -0
  11. package/dist/runtime/components/ACollaborationUsers.vue +1 -0
  12. package/dist/runtime/components/AColorPicker.vue +4 -2
  13. package/dist/runtime/components/ACommandPalette.vue +8 -3
  14. package/dist/runtime/components/AConnectServerModal.d.vue.ts +12 -0
  15. package/dist/runtime/components/AConnectServerModal.vue +200 -0
  16. package/dist/runtime/components/AConnectServerModal.vue.d.ts +12 -0
  17. package/dist/runtime/components/AConnectionStatus.vue +1 -0
  18. package/dist/runtime/components/ADocPickModal.d.vue.ts +13 -0
  19. package/dist/runtime/components/ADocPickModal.vue +71 -0
  20. package/dist/runtime/components/ADocPickModal.vue.d.ts +13 -0
  21. package/dist/runtime/components/ADocRenderer.d.vue.ts +29 -0
  22. package/dist/runtime/components/ADocRenderer.vue +105 -0
  23. package/dist/runtime/components/ADocRenderer.vue.d.ts +29 -0
  24. package/dist/runtime/components/ADocTypeSelect.vue +8 -4
  25. package/dist/runtime/components/ADocumentTree.d.vue.ts +3 -3
  26. package/dist/runtime/components/ADocumentTree.vue +196 -29
  27. package/dist/runtime/components/ADocumentTree.vue.d.ts +3 -3
  28. package/dist/runtime/components/AEditor.d.vue.ts +9 -4
  29. package/dist/runtime/components/AEditor.vue +118 -8
  30. package/dist/runtime/components/AEditor.vue.d.ts +9 -4
  31. package/dist/runtime/components/AFloatingWindow.d.vue.ts +54 -2
  32. package/dist/runtime/components/AFloatingWindow.vue +15 -14
  33. package/dist/runtime/components/AFloatingWindow.vue.d.ts +54 -2
  34. package/dist/runtime/components/AIconPicker.vue +10 -2
  35. package/dist/runtime/components/AInviteRedeemModal.d.vue.ts +10 -0
  36. package/dist/runtime/components/AInviteRedeemModal.vue +122 -0
  37. package/dist/runtime/components/AInviteRedeemModal.vue.d.ts +10 -0
  38. package/dist/runtime/components/ANodePanel.vue +109 -62
  39. package/dist/runtime/components/ANotifications.vue +37 -8
  40. package/dist/runtime/components/APermissionGuard.vue +4 -1
  41. package/dist/runtime/components/APresence.vue +15 -3
  42. package/dist/runtime/components/AProvider.d.vue.ts +0 -1
  43. package/dist/runtime/components/AProvider.vue +24 -5
  44. package/dist/runtime/components/AProvider.vue.d.ts +0 -1
  45. package/dist/runtime/components/ARoleBadge.vue +1 -0
  46. package/dist/runtime/components/ASpaceFormModal.d.vue.ts +16 -0
  47. package/dist/runtime/components/ASpaceFormModal.vue +182 -0
  48. package/dist/runtime/components/ASpaceFormModal.vue.d.ts +16 -0
  49. package/dist/runtime/components/AVoiceBar.vue +60 -16
  50. package/dist/runtime/components/AVoiceTile.vue +5 -1
  51. package/dist/runtime/components/AWindowLayer.vue +1 -0
  52. package/dist/runtime/components/aware/AArea.d.vue.ts +1 -1
  53. package/dist/runtime/components/aware/AArea.vue +3 -2
  54. package/dist/runtime/components/aware/AArea.vue.d.ts +1 -1
  55. package/dist/runtime/components/aware/AAvatar.vue +87 -16
  56. package/dist/runtime/components/aware/AButton.vue +7 -2
  57. package/dist/runtime/components/aware/ACursorLabel.vue +6 -1
  58. package/dist/runtime/components/aware/ADocBadge.vue +6 -1
  59. package/dist/runtime/components/aware/AFacepile.vue +15 -3
  60. package/dist/runtime/components/aware/AInput.vue +8 -3
  61. package/dist/runtime/components/aware/ASelect.vue +3 -2
  62. package/dist/runtime/components/aware/ATextarea.vue +8 -3
  63. package/dist/runtime/components/aware/AUserList.vue +10 -2
  64. package/dist/runtime/components/chat/AChatAgentStatus.d.vue.ts +15 -0
  65. package/dist/runtime/components/chat/AChatAgentStatus.vue +95 -0
  66. package/dist/runtime/components/chat/AChatAgentStatus.vue.d.ts +15 -0
  67. package/dist/runtime/components/chat/AChatDocLink.d.vue.ts +18 -0
  68. package/dist/runtime/components/chat/AChatDocLink.vue +29 -0
  69. package/dist/runtime/components/chat/AChatDocLink.vue.d.ts +18 -0
  70. package/dist/runtime/components/chat/AChatDocQuote.d.vue.ts +26 -0
  71. package/dist/runtime/components/chat/AChatDocQuote.vue +47 -0
  72. package/dist/runtime/components/chat/AChatDocQuote.vue.d.ts +26 -0
  73. package/dist/runtime/components/chat/AChatInput.d.vue.ts +45 -0
  74. package/dist/runtime/components/chat/AChatInput.vue +219 -0
  75. package/dist/runtime/components/chat/AChatInput.vue.d.ts +45 -0
  76. package/dist/runtime/components/chat/AChatList.d.vue.ts +59 -0
  77. package/dist/runtime/components/chat/AChatList.vue +184 -0
  78. package/dist/runtime/components/chat/AChatList.vue.d.ts +59 -0
  79. package/dist/runtime/components/chat/AChatMemberList.d.vue.ts +24 -0
  80. package/dist/runtime/components/chat/AChatMemberList.vue +97 -0
  81. package/dist/runtime/components/chat/AChatMemberList.vue.d.ts +24 -0
  82. package/dist/runtime/components/chat/AChatMessages.d.vue.ts +31 -0
  83. package/dist/runtime/components/chat/AChatMessages.vue +161 -0
  84. package/dist/runtime/components/chat/AChatMessages.vue.d.ts +31 -0
  85. package/dist/runtime/components/chat/AChatPanel.d.vue.ts +84 -0
  86. package/dist/runtime/components/chat/AChatPanel.vue +89 -0
  87. package/dist/runtime/components/chat/AChatPanel.vue.d.ts +84 -0
  88. package/dist/runtime/components/chat/AChatTypingIndicator.d.vue.ts +11 -0
  89. package/dist/runtime/components/chat/AChatTypingIndicator.vue +58 -0
  90. package/dist/runtime/components/chat/AChatTypingIndicator.vue.d.ts +11 -0
  91. package/dist/runtime/components/editor/AColorPalettePopover.d.vue.ts +23 -0
  92. package/dist/runtime/components/editor/AColorPalettePopover.vue +71 -0
  93. package/dist/runtime/components/editor/AColorPalettePopover.vue.d.ts +23 -0
  94. package/dist/runtime/components/editor/ADocLinkPopover.d.vue.ts +7 -0
  95. package/dist/runtime/components/editor/ADocLinkPopover.vue +74 -0
  96. package/dist/runtime/components/editor/ADocLinkPopover.vue.d.ts +7 -0
  97. package/dist/runtime/components/editor/AFileAudioPlayer.d.vue.ts +10 -0
  98. package/dist/runtime/components/editor/AFileAudioPlayer.vue +353 -0
  99. package/dist/runtime/components/editor/AFileAudioPlayer.vue.d.ts +10 -0
  100. package/dist/runtime/components/editor/AFileGlbViewer.d.vue.ts +13 -0
  101. package/dist/runtime/components/editor/AFileGlbViewer.vue +187 -0
  102. package/dist/runtime/components/editor/AFileGlbViewer.vue.d.ts +13 -0
  103. package/dist/runtime/components/editor/AFileVideoPlayer.d.vue.ts +7 -0
  104. package/dist/runtime/components/editor/AFileVideoPlayer.vue +62 -0
  105. package/dist/runtime/components/editor/AFileVideoPlayer.vue.d.ts +7 -0
  106. package/dist/runtime/components/editor/ALinkPopover.d.vue.ts +8 -0
  107. package/dist/runtime/components/editor/ALinkPopover.vue +149 -0
  108. package/dist/runtime/components/editor/ALinkPopover.vue.d.ts +8 -0
  109. package/dist/runtime/components/editor/ALocationPickerPopover.d.vue.ts +28 -0
  110. package/dist/runtime/components/editor/ALocationPickerPopover.vue +232 -0
  111. package/dist/runtime/components/editor/ALocationPickerPopover.vue.d.ts +28 -0
  112. package/dist/runtime/components/renderers/ACalendarRenderer.d.vue.ts +14 -1
  113. package/dist/runtime/components/renderers/ACalendarRenderer.vue +279 -125
  114. package/dist/runtime/components/renderers/ACalendarRenderer.vue.d.ts +14 -1
  115. package/dist/runtime/components/renderers/ACallRenderer.d.vue.ts +13 -0
  116. package/dist/runtime/components/renderers/ACallRenderer.vue +172 -0
  117. package/dist/runtime/components/renderers/ACallRenderer.vue.d.ts +13 -0
  118. package/dist/runtime/components/renderers/AChecklistRenderer.d.vue.ts +19 -0
  119. package/dist/runtime/components/renderers/AChecklistRenderer.vue +582 -0
  120. package/dist/runtime/components/renderers/AChecklistRenderer.vue.d.ts +19 -0
  121. package/dist/runtime/components/renderers/ADashboardRenderer.d.vue.ts +19 -0
  122. package/dist/runtime/components/renderers/ADashboardRenderer.vue +1374 -0
  123. package/dist/runtime/components/renderers/ADashboardRenderer.vue.d.ts +19 -0
  124. package/dist/runtime/components/renderers/AGalleryCoverImage.d.vue.ts +8 -0
  125. package/dist/runtime/components/renderers/AGalleryCoverImage.vue +60 -0
  126. package/dist/runtime/components/renderers/AGalleryCoverImage.vue.d.ts +8 -0
  127. package/dist/runtime/components/renderers/AGalleryRenderer.d.vue.ts +12 -1
  128. package/dist/runtime/components/renderers/AGalleryRenderer.vue +327 -53
  129. package/dist/runtime/components/renderers/AGalleryRenderer.vue.d.ts +12 -1
  130. package/dist/runtime/components/renderers/AGraphRenderer.d.vue.ts +19 -0
  131. package/dist/runtime/components/renderers/AGraphRenderer.vue +1030 -0
  132. package/dist/runtime/components/renderers/AGraphRenderer.vue.d.ts +19 -0
  133. package/dist/runtime/components/renderers/AKanbanRenderer.d.vue.ts +13 -1
  134. package/dist/runtime/components/renderers/AKanbanRenderer.vue +490 -140
  135. package/dist/runtime/components/renderers/AKanbanRenderer.vue.d.ts +13 -1
  136. package/dist/runtime/components/renderers/AMapRenderer.d.vue.ts +19 -0
  137. package/dist/runtime/components/renderers/AMapRenderer.vue +1624 -0
  138. package/dist/runtime/components/renderers/AMapRenderer.vue.d.ts +19 -0
  139. package/dist/runtime/components/renderers/AMediaRenderer.d.vue.ts +19 -0
  140. package/dist/runtime/components/renderers/AMediaRenderer.vue +224 -0
  141. package/dist/runtime/components/renderers/AMediaRenderer.vue.d.ts +19 -0
  142. package/dist/runtime/components/renderers/AOutlineRenderer.d.vue.ts +12 -1
  143. package/dist/runtime/components/renderers/AOutlineRenderer.vue +295 -134
  144. package/dist/runtime/components/renderers/AOutlineRenderer.vue.d.ts +12 -1
  145. package/dist/runtime/components/renderers/ASpatialRenderer.d.vue.ts +19 -0
  146. package/dist/runtime/components/renderers/ASpatialRenderer.vue +436 -0
  147. package/dist/runtime/components/renderers/ASpatialRenderer.vue.d.ts +19 -0
  148. package/dist/runtime/components/renderers/ATableRenderer.d.vue.ts +12 -1
  149. package/dist/runtime/components/renderers/ATableRenderer.vue +459 -147
  150. package/dist/runtime/components/renderers/ATableRenderer.vue.d.ts +12 -1
  151. package/dist/runtime/components/renderers/ATimelineRenderer.d.vue.ts +19 -0
  152. package/dist/runtime/components/renderers/ATimelineRenderer.vue +468 -0
  153. package/dist/runtime/components/renderers/ATimelineRenderer.vue.d.ts +19 -0
  154. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.d.vue.ts +41 -0
  155. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue +109 -0
  156. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue.d.ts +41 -0
  157. package/dist/runtime/components/renderers/calendar/ACalendarDayView.d.vue.ts +49 -0
  158. package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue +152 -0
  159. package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue.d.ts +49 -0
  160. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.d.vue.ts +39 -0
  161. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue +101 -0
  162. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue.d.ts +39 -0
  163. package/dist/runtime/components/renderers/calendar/ACalendarMonthView.d.vue.ts +43 -0
  164. package/dist/runtime/components/renderers/calendar/ACalendarMonthView.vue +87 -0
  165. package/dist/runtime/components/renderers/calendar/ACalendarMonthView.vue.d.ts +43 -0
  166. package/dist/runtime/components/renderers/calendar/ACalendarToolbar.d.vue.ts +38 -0
  167. package/dist/runtime/components/renderers/calendar/ACalendarToolbar.vue +206 -0
  168. package/dist/runtime/components/renderers/calendar/ACalendarToolbar.vue.d.ts +38 -0
  169. package/dist/runtime/components/renderers/calendar/ACalendarUnscheduled.d.vue.ts +28 -0
  170. package/dist/runtime/components/renderers/calendar/ACalendarUnscheduled.vue +33 -0
  171. package/dist/runtime/components/renderers/calendar/ACalendarUnscheduled.vue.d.ts +28 -0
  172. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.d.vue.ts +50 -0
  173. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue +188 -0
  174. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue.d.ts +50 -0
  175. package/dist/runtime/components/renderers/media/MediaPlaylist.d.vue.ts +25 -0
  176. package/dist/runtime/components/renderers/media/MediaPlaylist.vue +115 -0
  177. package/dist/runtime/components/renderers/media/MediaPlaylist.vue.d.ts +25 -0
  178. package/dist/runtime/components/renderers/media/MediaSyncBar.d.vue.ts +21 -0
  179. package/dist/runtime/components/renderers/media/MediaSyncBar.vue +61 -0
  180. package/dist/runtime/components/renderers/media/MediaSyncBar.vue.d.ts +21 -0
  181. package/dist/runtime/components/renderers/media/MediaTransportBar.d.vue.ts +22 -0
  182. package/dist/runtime/components/renderers/media/MediaTransportBar.vue +98 -0
  183. package/dist/runtime/components/renderers/media/MediaTransportBar.vue.d.ts +22 -0
  184. package/dist/runtime/components/renderers/spatial/SpatialGround.d.vue.ts +20 -0
  185. package/dist/runtime/components/renderers/spatial/SpatialGround.vue +26 -0
  186. package/dist/runtime/components/renderers/spatial/SpatialGround.vue.d.ts +20 -0
  187. package/dist/runtime/components/renderers/spatial/SpatialObject.d.vue.ts +17 -0
  188. package/dist/runtime/components/renderers/spatial/SpatialObject.vue +257 -0
  189. package/dist/runtime/components/renderers/spatial/SpatialObject.vue.d.ts +17 -0
  190. package/dist/runtime/components/renderers/spatial/SpatialSceneBridge.d.vue.ts +15 -0
  191. package/dist/runtime/components/renderers/spatial/SpatialSceneBridge.vue +18 -0
  192. package/dist/runtime/components/renderers/spatial/SpatialSceneBridge.vue.d.ts +15 -0
  193. package/dist/runtime/components/renderers/spatial/SpatialUserAvatar.d.vue.ts +8 -0
  194. package/dist/runtime/components/renderers/spatial/SpatialUserAvatar.vue +53 -0
  195. package/dist/runtime/components/renderers/spatial/SpatialUserAvatar.vue.d.ts +8 -0
  196. package/dist/runtime/components/renderers/table/ATableColumnHeader.d.vue.ts +25 -0
  197. package/dist/runtime/components/renderers/table/ATableColumnHeader.vue +129 -0
  198. package/dist/runtime/components/renderers/table/ATableColumnHeader.vue.d.ts +25 -0
  199. package/dist/runtime/components/renderers/table/ATableFlatMode.d.vue.ts +21 -0
  200. package/dist/runtime/components/renderers/table/ATableFlatMode.vue +370 -0
  201. package/dist/runtime/components/renderers/table/ATableFlatMode.vue.d.ts +21 -0
  202. package/dist/runtime/components/renderers/table/ATableToolbar.d.vue.ts +22 -0
  203. package/dist/runtime/components/renderers/table/ATableToolbar.vue +106 -0
  204. package/dist/runtime/components/renderers/table/ATableToolbar.vue.d.ts +22 -0
  205. package/dist/runtime/components/renderers/table/cells/ATableCell.d.vue.ts +18 -0
  206. package/dist/runtime/components/renderers/table/cells/ATableCell.vue +54 -0
  207. package/dist/runtime/components/renderers/table/cells/ATableCell.vue.d.ts +18 -0
  208. package/dist/runtime/components/renderers/table/cells/ATableCellColor.d.vue.ts +14 -0
  209. package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue +67 -0
  210. package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue.d.ts +14 -0
  211. package/dist/runtime/components/renderers/table/cells/ATableCellDate.d.vue.ts +16 -0
  212. package/dist/runtime/components/renderers/table/cells/ATableCellDate.vue +91 -0
  213. package/dist/runtime/components/renderers/table/cells/ATableCellDate.vue.d.ts +16 -0
  214. package/dist/runtime/components/renderers/table/cells/ATableCellMembers.d.vue.ts +6 -0
  215. package/dist/runtime/components/renderers/table/cells/ATableCellMembers.vue +30 -0
  216. package/dist/runtime/components/renderers/table/cells/ATableCellMembers.vue.d.ts +6 -0
  217. package/dist/runtime/components/renderers/table/cells/ATableCellMultiSelect.d.vue.ts +17 -0
  218. package/dist/runtime/components/renderers/table/cells/ATableCellMultiSelect.vue +76 -0
  219. package/dist/runtime/components/renderers/table/cells/ATableCellMultiSelect.vue.d.ts +17 -0
  220. package/dist/runtime/components/renderers/table/cells/ATableCellNumber.d.vue.ts +17 -0
  221. package/dist/runtime/components/renderers/table/cells/ATableCellNumber.vue +54 -0
  222. package/dist/runtime/components/renderers/table/cells/ATableCellNumber.vue.d.ts +17 -0
  223. package/dist/runtime/components/renderers/table/cells/ATableCellRating.d.vue.ts +16 -0
  224. package/dist/runtime/components/renderers/table/cells/ATableCellRating.vue +35 -0
  225. package/dist/runtime/components/renderers/table/cells/ATableCellRating.vue.d.ts +16 -0
  226. package/dist/runtime/components/renderers/table/cells/ATableCellSelect.d.vue.ts +18 -0
  227. package/dist/runtime/components/renderers/table/cells/ATableCellSelect.vue +111 -0
  228. package/dist/runtime/components/renderers/table/cells/ATableCellSelect.vue.d.ts +18 -0
  229. package/dist/runtime/components/renderers/table/cells/ATableCellSlider.d.vue.ts +16 -0
  230. package/dist/runtime/components/renderers/table/cells/ATableCellSlider.vue +35 -0
  231. package/dist/runtime/components/renderers/table/cells/ATableCellSlider.vue.d.ts +16 -0
  232. package/dist/runtime/components/renderers/table/cells/ATableCellTags.d.vue.ts +15 -0
  233. package/dist/runtime/components/renderers/table/cells/ATableCellTags.vue +92 -0
  234. package/dist/runtime/components/renderers/table/cells/ATableCellTags.vue.d.ts +15 -0
  235. package/dist/runtime/components/renderers/table/cells/ATableCellText.d.vue.ts +15 -0
  236. package/dist/runtime/components/renderers/table/cells/ATableCellText.vue +44 -0
  237. package/dist/runtime/components/renderers/table/cells/ATableCellText.vue.d.ts +15 -0
  238. package/dist/runtime/components/renderers/table/cells/ATableCellToggle.d.vue.ts +14 -0
  239. package/dist/runtime/components/renderers/table/cells/ATableCellToggle.vue +31 -0
  240. package/dist/runtime/components/renderers/table/cells/ATableCellToggle.vue.d.ts +14 -0
  241. package/dist/runtime/components/renderers/table/cells/ATableCellUrl.d.vue.ts +15 -0
  242. package/dist/runtime/components/renderers/table/cells/ATableCellUrl.vue +63 -0
  243. package/dist/runtime/components/renderers/table/cells/ATableCellUrl.vue.d.ts +15 -0
  244. package/dist/runtime/components/renderers/timeline/ATimelineAxis.d.vue.ts +9 -0
  245. package/dist/runtime/components/renderers/timeline/ATimelineAxis.vue +53 -0
  246. package/dist/runtime/components/renderers/timeline/ATimelineAxis.vue.d.ts +9 -0
  247. package/dist/runtime/components/renderers/timeline/ATimelineBar.d.vue.ts +26 -0
  248. package/dist/runtime/components/renderers/timeline/ATimelineBar.vue +59 -0
  249. package/dist/runtime/components/renderers/timeline/ATimelineBar.vue.d.ts +26 -0
  250. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.d.vue.ts +28 -0
  251. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue +109 -0
  252. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue.d.ts +28 -0
  253. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.d.vue.ts +43 -0
  254. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue +168 -0
  255. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue.d.ts +43 -0
  256. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.d.vue.ts +24 -0
  257. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue +46 -0
  258. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue.d.ts +24 -0
  259. package/dist/runtime/components/renderers/timeline/ATimelineToolbar.d.vue.ts +34 -0
  260. package/dist/runtime/components/renderers/timeline/ATimelineToolbar.vue +193 -0
  261. package/dist/runtime/components/renderers/timeline/ATimelineToolbar.vue.d.ts +34 -0
  262. package/dist/runtime/components/settings/ASettingsAdminPanel.d.vue.ts +3 -0
  263. package/dist/runtime/components/settings/ASettingsAdminPanel.vue +159 -0
  264. package/dist/runtime/components/settings/ASettingsAdminPanel.vue.d.ts +3 -0
  265. package/dist/runtime/components/settings/ASettingsConnectionPanel.d.vue.ts +3 -0
  266. package/dist/runtime/components/settings/ASettingsConnectionPanel.vue +146 -0
  267. package/dist/runtime/components/settings/ASettingsConnectionPanel.vue.d.ts +3 -0
  268. package/dist/runtime/components/settings/ASettingsInvitesPanel.d.vue.ts +3 -0
  269. package/dist/runtime/components/settings/ASettingsInvitesPanel.vue +157 -0
  270. package/dist/runtime/components/settings/ASettingsInvitesPanel.vue.d.ts +3 -0
  271. package/dist/runtime/components/settings/ASettingsMembersPanel.d.vue.ts +3 -0
  272. package/dist/runtime/components/settings/ASettingsMembersPanel.vue +134 -0
  273. package/dist/runtime/components/settings/ASettingsMembersPanel.vue.d.ts +3 -0
  274. package/dist/runtime/components/settings/ASettingsModal.d.vue.ts +3 -0
  275. package/dist/runtime/components/settings/ASettingsModal.vue +176 -0
  276. package/dist/runtime/components/settings/ASettingsModal.vue.d.ts +3 -0
  277. package/dist/runtime/components/settings/ASettingsOfflinePanel.d.vue.ts +3 -0
  278. package/dist/runtime/components/settings/ASettingsOfflinePanel.vue +170 -0
  279. package/dist/runtime/components/settings/ASettingsOfflinePanel.vue.d.ts +3 -0
  280. package/dist/runtime/components/settings/ASettingsPluginsPanel.d.vue.ts +3 -0
  281. package/dist/runtime/components/settings/ASettingsPluginsPanel.vue +96 -0
  282. package/dist/runtime/components/settings/ASettingsPluginsPanel.vue.d.ts +3 -0
  283. package/dist/runtime/components/settings/ASettingsProfilePanel.d.vue.ts +3 -0
  284. package/dist/runtime/components/settings/ASettingsProfilePanel.vue +223 -0
  285. package/dist/runtime/components/settings/ASettingsProfilePanel.vue.d.ts +3 -0
  286. package/dist/runtime/components/settings/ASettingsSecurityPanel.d.vue.ts +3 -0
  287. package/dist/runtime/components/settings/ASettingsSecurityPanel.vue +312 -0
  288. package/dist/runtime/components/settings/ASettingsSecurityPanel.vue.d.ts +3 -0
  289. package/dist/runtime/components/settings/ASettingsSpacesPanel.d.vue.ts +3 -0
  290. package/dist/runtime/components/settings/ASettingsSpacesPanel.vue +195 -0
  291. package/dist/runtime/components/settings/ASettingsSpacesPanel.vue.d.ts +3 -0
  292. package/dist/runtime/components/settings/ASettingsTrashPanel.d.vue.ts +3 -0
  293. package/dist/runtime/components/settings/ASettingsTrashPanel.vue +135 -0
  294. package/dist/runtime/components/settings/ASettingsTrashPanel.vue.d.ts +3 -0
  295. package/dist/runtime/components/shell/AChildContextMenu.d.vue.ts +30 -0
  296. package/dist/runtime/components/shell/AChildContextMenu.vue +48 -0
  297. package/dist/runtime/components/shell/AChildContextMenu.vue.d.ts +30 -0
  298. package/dist/runtime/components/shell/ACursorOverlay.d.vue.ts +11 -0
  299. package/dist/runtime/components/shell/ACursorOverlay.vue +55 -0
  300. package/dist/runtime/components/shell/ACursorOverlay.vue.d.ts +11 -0
  301. package/dist/runtime/components/shell/ADocDragGhost.d.vue.ts +3 -0
  302. package/dist/runtime/components/shell/ADocDragGhost.vue +58 -0
  303. package/dist/runtime/components/shell/ADocDragGhost.vue.d.ts +3 -0
  304. package/dist/runtime/components/shell/ADocPanelSettings.d.vue.ts +111 -0
  305. package/dist/runtime/components/shell/ADocPanelSettings.vue +621 -0
  306. package/dist/runtime/components/shell/ADocPanelSettings.vue.d.ts +111 -0
  307. package/dist/runtime/components/shell/AFavoritesList.d.vue.ts +27 -0
  308. package/dist/runtime/components/shell/AFavoritesList.vue +83 -0
  309. package/dist/runtime/components/shell/AFavoritesList.vue.d.ts +27 -0
  310. package/dist/runtime/components/shell/ANodeContextMenu.d.vue.ts +17 -0
  311. package/dist/runtime/components/shell/ANodeContextMenu.vue +14 -0
  312. package/dist/runtime/components/shell/ANodeContextMenu.vue.d.ts +17 -0
  313. package/dist/runtime/components/shell/ASidebar.d.vue.ts +54 -0
  314. package/dist/runtime/components/shell/ASidebar.vue +92 -0
  315. package/dist/runtime/components/shell/ASidebar.vue.d.ts +54 -0
  316. package/dist/runtime/components/shell/ASidebarToggle.d.vue.ts +7 -0
  317. package/dist/runtime/components/shell/ASidebarToggle.vue +23 -0
  318. package/dist/runtime/components/shell/ASidebarToggle.vue.d.ts +7 -0
  319. package/dist/runtime/components/shell/ASpaceSwitcher.d.vue.ts +32 -0
  320. package/dist/runtime/components/shell/ASpaceSwitcher.vue +63 -0
  321. package/dist/runtime/components/shell/ASpaceSwitcher.vue.d.ts +32 -0
  322. package/dist/runtime/components/shell/ASyncStatus.d.vue.ts +25 -0
  323. package/dist/runtime/components/shell/ASyncStatus.vue +96 -0
  324. package/dist/runtime/components/shell/ASyncStatus.vue.d.ts +25 -0
  325. package/dist/runtime/components/shell/AUserMenu.d.vue.ts +28 -0
  326. package/dist/runtime/components/shell/AUserMenu.vue +79 -0
  327. package/dist/runtime/components/shell/AUserMenu.vue.d.ts +28 -0
  328. package/dist/runtime/components/shell/AUserProfilePopover.d.vue.ts +54 -0
  329. package/dist/runtime/components/shell/AUserProfilePopover.vue +176 -0
  330. package/dist/runtime/components/shell/AUserProfilePopover.vue.d.ts +54 -0
  331. package/dist/runtime/components/shell/AWelcomeScreen.d.vue.ts +96 -0
  332. package/dist/runtime/components/shell/AWelcomeScreen.vue +422 -0
  333. package/dist/runtime/components/shell/AWelcomeScreen.vue.d.ts +96 -0
  334. package/dist/runtime/composables/useAAField.js +2 -0
  335. package/dist/runtime/composables/useAbraLocale.js +1 -0
  336. package/dist/runtime/composables/useAbracadabra.js +1 -0
  337. package/dist/runtime/composables/useAbracadabraAuth.d.ts +3 -4
  338. package/dist/runtime/composables/useAbracadabraAuth.js +4 -0
  339. package/dist/runtime/composables/useAwareness.js +6 -0
  340. package/dist/runtime/composables/useAwarenessPeers.js +1 -0
  341. package/dist/runtime/composables/useBackgroundSync.d.ts +5 -0
  342. package/dist/runtime/composables/useBackgroundSync.js +24 -3
  343. package/dist/runtime/composables/useBroadcastSync.d.ts +18 -0
  344. package/dist/runtime/composables/useBroadcastSync.js +26 -0
  345. package/dist/runtime/composables/useCalendarView.d.ts +86 -0
  346. package/dist/runtime/composables/useCalendarView.js +316 -0
  347. package/dist/runtime/composables/useChat.d.ts +2 -1
  348. package/dist/runtime/composables/useChat.js +21 -12
  349. package/dist/runtime/composables/useChatUsers.js +3 -1
  350. package/dist/runtime/composables/useChildTree.d.ts +4 -2
  351. package/dist/runtime/composables/useChildTree.js +31 -21
  352. package/dist/runtime/composables/useCommandPalette.js +77 -19
  353. package/dist/runtime/composables/useConnectionStatus.d.ts +1 -1
  354. package/dist/runtime/composables/useConnectionStatus.js +8 -1
  355. package/dist/runtime/composables/useCrossWindowSync.d.ts +11 -0
  356. package/dist/runtime/composables/useCrossWindowSync.js +38 -0
  357. package/dist/runtime/composables/useDashboard.js +17 -9
  358. package/dist/runtime/composables/useDevicePairing.d.ts +58 -0
  359. package/dist/runtime/composables/useDevicePairing.js +110 -0
  360. package/dist/runtime/composables/useDocDragBus.d.ts +28 -0
  361. package/dist/runtime/composables/useDocDragBus.js +22 -0
  362. package/dist/runtime/composables/useDocDropZone.d.ts +51 -0
  363. package/dist/runtime/composables/useDocDropZone.js +84 -0
  364. package/dist/runtime/composables/useDocExport.d.ts +5 -0
  365. package/dist/runtime/composables/useDocExport.js +4 -2
  366. package/dist/runtime/composables/useDocImport.js +5 -3
  367. package/dist/runtime/composables/useDocLabels.d.ts +22 -0
  368. package/dist/runtime/composables/useDocLabels.js +11 -0
  369. package/dist/runtime/composables/useDocLinkPick.d.ts +18 -0
  370. package/dist/runtime/composables/useDocLinkPick.js +22 -0
  371. package/dist/runtime/composables/useDocSeo.d.ts +20 -0
  372. package/dist/runtime/composables/useDocSeo.js +45 -0
  373. package/dist/runtime/composables/useDocSlugs.d.ts +7 -0
  374. package/dist/runtime/composables/useDocSlugs.js +23 -0
  375. package/dist/runtime/composables/useDocTree.d.ts +35 -0
  376. package/dist/runtime/composables/useDocTree.js +39 -0
  377. package/dist/runtime/composables/useEditor.js +1 -0
  378. package/dist/runtime/composables/useEditorDragHandle.js +4 -1
  379. package/dist/runtime/composables/useEditorEmojis.d.ts +22 -0
  380. package/dist/runtime/composables/useEditorEmojis.js +57 -0
  381. package/dist/runtime/composables/useEditorMentions.d.ts +10 -3
  382. package/dist/runtime/composables/useEditorMentions.js +35 -5
  383. package/dist/runtime/composables/useEditorSuggestions.d.ts +2 -1
  384. package/dist/runtime/composables/useEditorSuggestions.js +36 -21
  385. package/dist/runtime/composables/useEditorToolbar.d.ts +1 -1
  386. package/dist/runtime/composables/useEditorToolbar.js +5 -1
  387. package/dist/runtime/composables/useFavorites.d.ts +13 -0
  388. package/dist/runtime/composables/useFavorites.js +42 -0
  389. package/dist/runtime/composables/useFileIndex.js +4 -1
  390. package/dist/runtime/composables/useFileTransfer.d.ts +112 -0
  391. package/dist/runtime/composables/useFileTransfer.js +183 -0
  392. package/dist/runtime/composables/useFollowUser.js +4 -1
  393. package/dist/runtime/composables/useIdentityDoc.d.ts +89 -0
  394. package/dist/runtime/composables/useIdentityDoc.js +349 -0
  395. package/dist/runtime/composables/useInstalledPlugins.d.ts +31 -0
  396. package/dist/runtime/composables/useInstalledPlugins.js +58 -0
  397. package/dist/runtime/composables/useInvites.d.ts +56 -0
  398. package/dist/runtime/composables/useInvites.js +78 -0
  399. package/dist/runtime/composables/useJoinLink.d.ts +25 -0
  400. package/dist/runtime/composables/useJoinLink.js +58 -0
  401. package/dist/runtime/composables/useMediaExtractor.d.ts +31 -0
  402. package/dist/runtime/composables/useMediaExtractor.js +46 -0
  403. package/dist/runtime/composables/useMediaPlayback.d.ts +43 -0
  404. package/dist/runtime/composables/useMediaPlayback.js +465 -0
  405. package/dist/runtime/composables/useNodeContextMenu.d.ts +26 -0
  406. package/dist/runtime/composables/useNodeContextMenu.js +99 -0
  407. package/dist/runtime/composables/useNodePanel.d.ts +20 -0
  408. package/dist/runtime/composables/useNodePanel.js +89 -0
  409. package/dist/runtime/composables/useNodePanelFollow.d.ts +2 -0
  410. package/dist/runtime/composables/useNodePanelFollow.js +37 -0
  411. package/dist/runtime/composables/useNotifications.d.ts +1 -0
  412. package/dist/runtime/composables/useNotifications.js +9 -2
  413. package/dist/runtime/composables/usePasskeyAccounts.js +4 -2
  414. package/dist/runtime/composables/usePluginRegistry.js +1 -0
  415. package/dist/runtime/composables/useRendererBase.d.ts +16 -1
  416. package/dist/runtime/composables/useRendererBase.js +10 -1
  417. package/dist/runtime/composables/useSearchIndex.d.ts +1 -0
  418. package/dist/runtime/composables/useSearchIndex.js +15 -5
  419. package/dist/runtime/composables/useServerInfo.d.ts +31 -0
  420. package/dist/runtime/composables/useServerInfo.js +80 -0
  421. package/dist/runtime/composables/useSettingsModal.d.ts +18 -0
  422. package/dist/runtime/composables/useSettingsModal.js +30 -0
  423. package/dist/runtime/composables/useSlideoverSwipe.d.ts +39 -0
  424. package/dist/runtime/composables/useSlideoverSwipe.js +48 -0
  425. package/dist/runtime/composables/useSlugRoute.d.ts +6 -0
  426. package/dist/runtime/composables/useSlugRoute.js +21 -0
  427. package/dist/runtime/composables/useSpaces.d.ts +37 -0
  428. package/dist/runtime/composables/useSpaces.js +85 -0
  429. package/dist/runtime/composables/useSpatialCamera.d.ts +16 -0
  430. package/dist/runtime/composables/useSpatialCamera.js +175 -0
  431. package/dist/runtime/composables/useSpatialDrag.d.ts +14 -0
  432. package/dist/runtime/composables/useSpatialDrag.js +137 -0
  433. package/dist/runtime/composables/useTableView.d.ts +29 -0
  434. package/dist/runtime/composables/useTableView.js +184 -0
  435. package/dist/runtime/composables/useTimelineView.d.ts +55 -0
  436. package/dist/runtime/composables/useTimelineView.js +434 -0
  437. package/dist/runtime/composables/useTiptapDragState.d.ts +8 -0
  438. package/dist/runtime/composables/useTiptapDragState.js +5 -0
  439. package/dist/runtime/composables/useTouchDrag.d.ts +36 -0
  440. package/dist/runtime/composables/useTouchDrag.js +194 -0
  441. package/dist/runtime/composables/useTrash.d.ts +5 -1
  442. package/dist/runtime/composables/useTrash.js +12 -6
  443. package/dist/runtime/composables/useTreeUndoManager.d.ts +22 -0
  444. package/dist/runtime/composables/useTreeUndoManager.js +45 -0
  445. package/dist/runtime/composables/useUndoRedo.d.ts +37 -0
  446. package/dist/runtime/composables/useUndoRedo.js +115 -0
  447. package/dist/runtime/composables/useVoice.js +2 -0
  448. package/dist/runtime/composables/useWebRTC.d.ts +50 -0
  449. package/dist/runtime/composables/useWebRTC.js +179 -0
  450. package/dist/runtime/composables/useWindowManager.d.ts +2 -0
  451. package/dist/runtime/composables/useWindowManager.js +63 -1
  452. package/dist/runtime/extensions/code-preview.d.ts +2 -0
  453. package/dist/runtime/extensions/code-preview.js +17 -0
  454. package/dist/runtime/extensions/code-tree.d.ts +2 -0
  455. package/dist/runtime/extensions/code-tree.js +33 -0
  456. package/dist/runtime/extensions/doc-embed.d.ts +12 -0
  457. package/dist/runtime/extensions/doc-embed.js +63 -0
  458. package/dist/runtime/extensions/doc-link-drop.d.ts +3 -0
  459. package/dist/runtime/extensions/doc-link-drop.js +63 -0
  460. package/dist/runtime/extensions/document-header.js +1 -1
  461. package/dist/runtime/extensions/field.d.ts +3 -0
  462. package/dist/runtime/extensions/field.js +53 -0
  463. package/dist/runtime/extensions/mention-drop.d.ts +8 -0
  464. package/dist/runtime/extensions/mention-drop.js +47 -0
  465. package/dist/runtime/extensions/meta-field.d.ts +4 -1
  466. package/dist/runtime/extensions/meta-field.js +2 -0
  467. package/dist/runtime/extensions/selection-drag.d.ts +13 -0
  468. package/dist/runtime/extensions/selection-drag.js +126 -0
  469. package/dist/runtime/extensions/steps.js +1 -1
  470. package/dist/runtime/extensions/views/AccordionItemView.vue +14 -3
  471. package/dist/runtime/extensions/views/AccordionView.vue +4 -1
  472. package/dist/runtime/extensions/views/BadgeView.vue +12 -2
  473. package/dist/runtime/extensions/views/CalloutView.vue +4 -1
  474. package/dist/runtime/extensions/views/CardGroupView.vue +4 -1
  475. package/dist/runtime/extensions/views/CardView.vue +18 -3
  476. package/dist/runtime/extensions/views/CodeCollapseView.vue +1 -0
  477. package/dist/runtime/extensions/views/CodeGroupView.vue +5 -1
  478. package/dist/runtime/extensions/views/CodePreviewView.d.vue.ts +4 -0
  479. package/dist/runtime/extensions/views/CodePreviewView.vue +48 -0
  480. package/dist/runtime/extensions/views/CodePreviewView.vue.d.ts +4 -0
  481. package/dist/runtime/extensions/views/CodeTreeView.d.vue.ts +4 -0
  482. package/dist/runtime/extensions/views/CodeTreeView.vue +88 -0
  483. package/dist/runtime/extensions/views/CodeTreeView.vue.d.ts +4 -0
  484. package/dist/runtime/extensions/views/CollapsibleView.vue +9 -2
  485. package/dist/runtime/extensions/views/DocEmbedView.d.vue.ts +4 -0
  486. package/dist/runtime/extensions/views/DocEmbedView.vue +198 -0
  487. package/dist/runtime/extensions/views/DocEmbedView.vue.d.ts +4 -0
  488. package/dist/runtime/extensions/views/FieldGroupView.d.vue.ts +4 -0
  489. package/dist/runtime/extensions/views/FieldGroupView.vue +25 -0
  490. package/dist/runtime/extensions/views/FieldGroupView.vue.d.ts +4 -0
  491. package/dist/runtime/extensions/views/FieldView.d.vue.ts +4 -0
  492. package/dist/runtime/extensions/views/FieldView.vue +53 -0
  493. package/dist/runtime/extensions/views/FieldView.vue.d.ts +4 -0
  494. package/dist/runtime/extensions/views/FileNodeView.vue +34 -8
  495. package/dist/runtime/extensions/views/KbdView.vue +9 -2
  496. package/dist/runtime/extensions/views/MetaFieldView.vue +276 -48
  497. package/dist/runtime/extensions/views/ProseIconView.vue +9 -2
  498. package/dist/runtime/extensions/views/StepsView.vue +1 -0
  499. package/dist/runtime/extensions/views/TabsView.vue +18 -4
  500. package/dist/runtime/locale.d.ts +136 -0
  501. package/dist/runtime/locale.js +137 -1
  502. package/dist/runtime/middleware/abracadabra-auth.d.ts +1 -10
  503. package/dist/runtime/middleware/abracadabra-auth.js +2 -0
  504. package/dist/runtime/plugin-abracadabra.client.d.ts +1 -1
  505. package/dist/runtime/plugin-abracadabra.client.js +127 -55
  506. package/dist/runtime/plugin-abracadabra.server.d.ts +1 -1
  507. package/dist/runtime/plugin-abracadabra.server.js +4 -0
  508. package/dist/runtime/plugin-shared-globals.client.d.ts +1 -1
  509. package/dist/runtime/plugin-shared-globals.client.js +1 -0
  510. package/dist/runtime/plugins/core.plugin.js +40 -4
  511. package/dist/runtime/server/api/_abracadabra/render/[docId].get.d.ts +19 -17
  512. package/dist/runtime/server/api/_abracadabra/render/[docId].get.js +33 -4
  513. package/dist/runtime/server/api/_abracadabra/resolve/[...slug].get.d.ts +12 -0
  514. package/dist/runtime/server/api/_abracadabra/resolve/[...slug].get.js +44 -0
  515. package/dist/runtime/server/api/_abracadabra/slugs.get.d.ts +2 -0
  516. package/dist/runtime/server/api/_abracadabra/slugs.get.js +8 -0
  517. package/dist/runtime/server/api/_abracadabra/spaces.get.d.ts +1 -10
  518. package/dist/runtime/server/api/_abracadabra/spaces.get.js +3 -0
  519. package/dist/runtime/server/plugins/abracadabra-service.js +29 -12
  520. package/dist/runtime/server/runners/doc-tree-cache.js +4 -0
  521. package/dist/runtime/server/utils/docCache.d.ts +8 -6
  522. package/dist/runtime/server/utils/docCache.js +3 -3
  523. package/dist/runtime/server/utils/serverPluginLoader.d.ts +20 -0
  524. package/dist/runtime/server/utils/serverPluginLoader.js +42 -0
  525. package/dist/runtime/server/utils/serverRunner.d.ts +11 -2
  526. package/dist/runtime/server/utils/serverRunner.js +21 -10
  527. package/dist/runtime/server/utils/slugMap.d.ts +32 -0
  528. package/dist/runtime/server/utils/slugMap.js +58 -0
  529. package/dist/runtime/server/utils/spaceManager.d.ts +25 -0
  530. package/dist/runtime/server/utils/spaceManager.js +188 -0
  531. package/dist/runtime/types.d.ts +129 -30
  532. package/dist/runtime/types.js +17 -17
  533. package/dist/runtime/utils/chatContent.d.ts +41 -0
  534. package/dist/runtime/utils/chatContent.js +65 -0
  535. package/dist/runtime/utils/colorPalettes.js +12 -6
  536. package/dist/runtime/utils/coverCache.d.ts +12 -0
  537. package/dist/runtime/utils/coverCache.js +14 -0
  538. package/dist/runtime/utils/docReferenceEdges.d.ts +26 -0
  539. package/dist/runtime/utils/docReferenceEdges.js +122 -0
  540. package/dist/runtime/utils/docTypes.d.ts +34 -1
  541. package/dist/runtime/utils/docTypes.js +129 -1
  542. package/dist/runtime/utils/duplicateDocContent.d.ts +19 -0
  543. package/dist/runtime/utils/duplicateDocContent.js +68 -0
  544. package/dist/runtime/utils/extractFileMetadata.d.ts +13 -0
  545. package/dist/runtime/utils/extractFileMetadata.js +94 -0
  546. package/dist/runtime/utils/getMetaColor.d.ts +6 -0
  547. package/dist/runtime/utils/getMetaColor.js +12 -0
  548. package/dist/runtime/utils/htmlToYjs.d.ts +19 -0
  549. package/dist/runtime/utils/htmlToYjs.js +235 -0
  550. package/dist/runtime/utils/markdownToYjs.js +5 -5
  551. package/dist/runtime/utils/metaFieldDefinitions.js +9 -0
  552. package/dist/runtime/utils/notificationRenderers.d.ts +13 -0
  553. package/dist/runtime/utils/notificationRenderers.js +41 -0
  554. package/dist/runtime/utils/sdkRef.d.ts +12 -0
  555. package/dist/runtime/utils/sdkRef.js +7 -0
  556. package/dist/runtime/utils/slugify.d.ts +40 -0
  557. package/dist/runtime/utils/slugify.js +36 -0
  558. package/dist/types.d.mts +18 -0
  559. package/package.json +44 -32
@@ -1,4 +1,5 @@
1
1
  import { shallowRef, ref, computed, watch } from "vue";
2
+ import { defineNuxtPlugin, useRuntimeConfig, useAppConfig, navigateTo } from "#imports";
2
3
  import * as Y from "yjs";
3
4
  import { PluginRegistry } from "./plugin-registry.js";
4
5
  import { corePlugin } from "./plugins/core.plugin.js";
@@ -14,6 +15,7 @@ import {
14
15
  } from "./composables/useBackgroundSync.js";
15
16
  import {
16
17
  _initFileBlobStore,
18
+ _getFileBlobStore,
17
19
  _destroyFileBlobStore
18
20
  } from "./composables/useFileBlobStore.js";
19
21
  import {
@@ -34,6 +36,19 @@ import {
34
36
  _initFileIndex,
35
37
  _destroyFileIndex
36
38
  } from "./composables/useFileIndex.js";
39
+ import {
40
+ _initBroadcastSync,
41
+ _destroyBroadcastSync,
42
+ useBroadcastSync
43
+ } from "./composables/useBroadcastSync.js";
44
+ import {
45
+ _destroyWebRTC
46
+ } from "./composables/useWebRTC.js";
47
+ import {
48
+ _initServerInfo,
49
+ _destroyServerInfo
50
+ } from "./composables/useServerInfo.js";
51
+ import { setSdkModule } from "./utils/sdkRef.js";
37
52
  const NUXT_UI_PRIMARY_COLORS = /* @__PURE__ */ new Set([
38
53
  "red",
39
54
  "orange",
@@ -176,8 +191,9 @@ export default defineNuxtPlugin({
176
191
  }
177
192
  } catch (e) {
178
193
  console.error(`[abracadabra] Failed to load plugin from ${entry.url}:`, e);
194
+ const errMsg = e instanceof Error ? e.message : String(e);
179
195
  const updated = storedExternal.map(
180
- (en) => en.url === entry.url ? { ...en, error: e?.message ?? String(e) } : en
196
+ (en) => en.url === entry.url ? { ...en, error: errMsg } : en
181
197
  );
182
198
  localStorage.setItem(STORAGE_KEY_EXTERNAL_PLUGINS, JSON.stringify(updated));
183
199
  }
@@ -196,13 +212,18 @@ export default defineNuxtPlugin({
196
212
  const isReady = ref(false);
197
213
  const publicKeyB64 = ref("");
198
214
  const connectionError = ref(null);
199
- const isClaimed = ref(false);
200
- const identityLost = ref(false);
201
- const needsReauth = ref(false);
215
+ const identityState = ref("initializing");
216
+ let _identityStateBeforeBlock = "initializing";
217
+ const isClaimed = computed(() => identityState.value === "claimed");
218
+ const identityLost = computed(() => identityState.value === "identityLost");
219
+ const needsReauth = computed(() => identityState.value === "needsReauth");
220
+ const isConnectionBlocked = computed(() => identityState.value === "connectionBlocked");
202
221
  const requirePasskeyOnLogin = ref(false);
203
- const isConnectionBlocked = ref(false);
204
222
  const userCount = ref(1);
205
223
  const pendingInviteCode = ref(null);
224
+ const effectiveRole = ref(null);
225
+ const unsyncedChanges = ref(0);
226
+ const spaceDocId = ref(null);
206
227
  const userName = ref(localStorage.getItem("abracadabra_username") || randomName(abraConfig));
207
228
  const userColor = ref("hsl(217, 70%, 75%)");
208
229
  const userColorName = ref("blue");
@@ -217,7 +238,10 @@ export default defineNuxtPlugin({
217
238
  let lastClientIds = /* @__PURE__ */ new Set();
218
239
  const clientNameCache = /* @__PURE__ */ new Map();
219
240
  function addLog(message, type = "system") {
220
- logs.value = [...logs.value.slice(-200), { time: ts(), message, type }];
241
+ logs.value.push({ time: ts(), message, type });
242
+ if (logs.value.length > 250) {
243
+ logs.value = logs.value.slice(-200);
244
+ }
221
245
  }
222
246
  function loadServers() {
223
247
  if (_serversLoaded) return;
@@ -331,7 +355,9 @@ export default defineNuxtPlugin({
331
355
  function reconnect() {
332
356
  if (!_wsp) return;
333
357
  authFailureCount = 0;
334
- isConnectionBlocked.value = false;
358
+ if (identityState.value === "connectionBlocked") {
359
+ identityState.value = _identityStateBeforeBlock;
360
+ }
335
361
  connectionError.value = null;
336
362
  _wsp.connect();
337
363
  }
@@ -345,7 +371,6 @@ export default defineNuxtPlugin({
345
371
  provider.value.destroy();
346
372
  } catch {
347
373
  }
348
- ;
349
374
  provider.value = null;
350
375
  }
351
376
  client.value = null;
@@ -353,7 +378,9 @@ export default defineNuxtPlugin({
353
378
  isReady.value = false;
354
379
  synced.value = false;
355
380
  status.value = "disconnected";
356
- isConnectionBlocked.value = false;
381
+ if (identityState.value === "connectionBlocked") {
382
+ identityState.value = _identityStateBeforeBlock;
383
+ }
357
384
  connectionError.value = null;
358
385
  authFailureCount = 0;
359
386
  lastClientIds = /* @__PURE__ */ new Set();
@@ -365,6 +392,9 @@ export default defineNuxtPlugin({
365
392
  _destroyNotifications();
366
393
  _destroyChat();
367
394
  _destroyFileIndex();
395
+ _destroyBroadcastSync();
396
+ _destroyWebRTC();
397
+ _destroyServerInfo();
368
398
  }
369
399
  async function switchServer(url) {
370
400
  if (url === currentServerUrl.value) return;
@@ -378,9 +408,9 @@ export default defineNuxtPlugin({
378
408
  _initPromise = init(url);
379
409
  await _initPromise;
380
410
  }
381
- async function switchSpace(serverUrl, spaceDocId) {
411
+ async function switchSpace(serverUrl, spaceDocId2) {
382
412
  if (serverUrl !== currentServerUrl.value) await switchServer(serverUrl);
383
- await navigateTo(`${abraConfig.docBasePath ?? "/doc"}/${spaceDocId}`);
413
+ await navigateTo(`${abraConfig.docBasePath ?? "/doc"}/${spaceDocId2}`);
384
414
  }
385
415
  async function claimAccount() {
386
416
  if (!client.value || !keystore.value) {
@@ -400,15 +430,14 @@ export default defineNuxtPlugin({
400
430
  deviceName: "Hardware Auth (" + (navigator.platform || "Device") + ")"
401
431
  });
402
432
  publicKeyB64.value = newPubKey;
403
- isClaimed.value = true;
404
- identityLost.value = false;
433
+ identityState.value = "claimed";
405
434
  localStorage.removeItem("abracadabra_privkey");
406
435
  localStorage.setItem(CLAIMED_FLAG_KEY, "1");
407
436
  localStorage.setItem(PUBKEY_KEY, newPubKey);
408
437
  addLog("Account protected by hardware/biometrics", "auth");
409
438
  return true;
410
439
  } catch (e) {
411
- addLog(`Claim failed: ${e.message}`, "auth");
440
+ addLog(`Claim failed: ${e instanceof Error ? e.message : String(e)}`, "auth");
412
441
  throw e;
413
442
  }
414
443
  }
@@ -430,9 +459,8 @@ export default defineNuxtPlugin({
430
459
  pubKey = hasPk ? await keystore.value.getPublicKey() : null;
431
460
  }
432
461
  if (!hasPk || !pubKey) throw new Error("No passkey found on this device.");
433
- if (identityLost.value) {
434
- identityLost.value = false;
435
- isClaimed.value = true;
462
+ if (identityState.value === "identityLost") {
463
+ identityState.value = "claimed";
436
464
  localStorage.setItem(CLAIMED_FLAG_KEY, "1");
437
465
  localStorage.setItem(PUBKEY_KEY, pubKey);
438
466
  addLog("Identity recovered via hardware key \u2014 reinitializing", "auth");
@@ -446,8 +474,7 @@ export default defineNuxtPlugin({
446
474
  const oldPubKey = publicKeyB64.value;
447
475
  await client.value.loginWithKey(pubKey, (ch) => keystore.value.sign(ch));
448
476
  publicKeyB64.value = pubKey;
449
- isClaimed.value = true;
450
- needsReauth.value = false;
477
+ identityState.value = "claimed";
451
478
  localStorage.setItem(CLAIMED_FLAG_KEY, "1");
452
479
  localStorage.setItem(PUBKEY_KEY, pubKey);
453
480
  addLog("Re-authenticated via hardware key", "auth");
@@ -462,7 +489,7 @@ export default defineNuxtPlugin({
462
489
  }
463
490
  return true;
464
491
  } catch (e) {
465
- addLog(`Hardware login failed: ${e.message}`, "auth");
492
+ addLog(`Hardware login failed: ${e instanceof Error ? e.message : String(e)}`, "auth");
466
493
  throw e;
467
494
  }
468
495
  }
@@ -516,6 +543,31 @@ export default defineNuxtPlugin({
516
543
  if (!client.value) throw new Error("Not connected");
517
544
  return client.value.revokeInvite(code);
518
545
  }
546
+ async function recoverIdentity() {
547
+ if (identityState.value !== "identityLost" && identityState.value !== "needsReauth") {
548
+ return false;
549
+ }
550
+ if (keystore.value) {
551
+ try {
552
+ const hasPk = await keystore.value.hasIdentity();
553
+ if (hasPk) {
554
+ const result = await loginWithHardware();
555
+ return result;
556
+ }
557
+ } catch (e) {
558
+ addLog(`Silent passkey recovery failed: ${e instanceof Error ? e.message : String(e)}`, "auth");
559
+ }
560
+ }
561
+ return false;
562
+ }
563
+ function unblockConnection() {
564
+ authFailureCount = 0;
565
+ if (identityState.value === "connectionBlocked") {
566
+ identityState.value = _identityStateBeforeBlock;
567
+ }
568
+ connectionError.value = null;
569
+ if (_wsp) _wsp.connect();
570
+ }
519
571
  async function init(serverUrl) {
520
572
  currentServerUrl.value = serverUrl;
521
573
  addLog("Initializing Abracadabra...", "system");
@@ -530,7 +582,7 @@ export default defineNuxtPlugin({
530
582
  }
531
583
  try {
532
584
  const [
533
- { AbracadabraClient, AbracadabraProvider, HocuspocusProviderWebsocket, CryptoIdentityKeystore },
585
+ sdkModule,
534
586
  ed,
535
587
  { sha512 }
536
588
  ] = await Promise.all([
@@ -538,7 +590,9 @@ export default defineNuxtPlugin({
538
590
  import("@noble/ed25519"),
539
591
  import("@noble/hashes/sha512")
540
592
  ]);
541
- ed.etc.sha512Sync = (m) => sha512(m);
593
+ setSdkModule(sdkModule);
594
+ const { AbracadabraClient, AbracadabraProvider, AbracadabraWS, CryptoIdentityKeystore } = sdkModule;
595
+ ed.hashes.sha512 = (m) => sha512(m);
542
596
  const ks = new CryptoIdentityKeystore();
543
597
  keystore.value = ks;
544
598
  let privKey = null;
@@ -551,12 +605,10 @@ export default defineNuxtPlugin({
551
605
  requirePasskeyOnLogin.value = localStorage.getItem(REQUIRE_PASSKEY_KEY) === "1";
552
606
  if (wasPreviouslyClaimed && storedPubKey) {
553
607
  pubKey = storedPubKey;
554
- isClaimed.value = true;
555
- identityLost.value = false;
608
+ identityState.value = "claimed";
556
609
  addLog("Restored claimed identity from cache", "auth");
557
610
  } else if (wasPreviouslyClaimed && !storedPubKey) {
558
- identityLost.value = true;
559
- isClaimed.value = false;
611
+ identityState.value = "identityLost";
560
612
  addLog("Previously claimed account \u2014 cached key missing, waiting for recovery", "auth");
561
613
  publicKeyB64.value = "";
562
614
  return;
@@ -566,12 +618,11 @@ export default defineNuxtPlugin({
566
618
  privKey = fromBase64Url(storedPrivKey);
567
619
  addLog("Using guest identity (soft key)", "auth");
568
620
  } else {
569
- privKey = ed.utils.randomPrivateKey();
621
+ privKey = ed.utils.randomSecretKey();
570
622
  localStorage.setItem("abracadabra_privkey", toBase64Url(privKey));
571
623
  addLog("Created new guest identity (soft key)", "auth");
572
624
  }
573
- isClaimed.value = false;
574
- identityLost.value = false;
625
+ identityState.value = "guest";
575
626
  const pubKeyBytes = ed.getPublicKey(privKey);
576
627
  pubKey = toBase64Url(pubKeyBytes);
577
628
  }
@@ -612,13 +663,12 @@ export default defineNuxtPlugin({
612
663
  const _client = new AbracadabraClient({ url: serverUrl, persistAuth, storageKey: authStorageKey });
613
664
  client.value = _client;
614
665
  addLog(`Server: ${serverUrl}`, "connection");
615
- if (_client.isAuthenticated && isClaimed.value) {
666
+ if (_client.isTokenValid() && identityState.value === "claimed") {
616
667
  addLog("Resumed session from persisted token", "auth");
617
- } else if (isClaimed.value && !requirePasskeyOnLogin.value) {
618
- needsReauth.value = true;
668
+ } else if (identityState.value === "claimed" && !requirePasskeyOnLogin.value) {
669
+ identityState.value = "needsReauth";
619
670
  addLog("Session expired \u2014 passkey sign-in available", "auth");
620
671
  } else {
621
- needsReauth.value = false;
622
672
  try {
623
673
  await _client.registerWithKey({
624
674
  publicKey: pubKey,
@@ -631,14 +681,15 @@ export default defineNuxtPlugin({
631
681
  pendingInviteCode.value = null;
632
682
  }
633
683
  } catch (e) {
634
- if (!e.message?.includes("already exists")) addLog(`Register: ${e.message}`, "auth");
684
+ const msg = e instanceof Error ? e.message : String(e);
685
+ if (!msg.includes("already exists")) addLog(`Register: ${msg}`, "auth");
635
686
  }
636
687
  try {
637
688
  const token = await _client.loginWithKey(pubKey, (ch) => signChallengeFn(ch));
638
689
  addLog("Authenticated via Ed25519 challenge-response", "auth");
639
690
  addLog(`JWT obtained (${token.slice(0, 12)}...)`, "auth");
640
691
  } catch (e) {
641
- addLog(`Login failed: ${e.message}`, "auth");
692
+ addLog(`Login failed: ${e instanceof Error ? e.message : String(e)}`, "auth");
642
693
  }
643
694
  }
644
695
  _client.updateMe({ displayName: userName.value }).catch(() => {
@@ -662,21 +713,22 @@ export default defineNuxtPlugin({
662
713
  }
663
714
  }
664
715
  const server = savedServers.value.find((s) => s.url === serverUrl);
665
- let docId = configEntryDocId ?? server?.hubDocId ?? spacesInfo?.hubDocId ?? server?.cachedSpaces?.[0]?.doc_id ?? spacesInfo?.spaces?.[0]?.doc_id ?? server?.entryDocId ?? info.index_doc_id ?? void 0;
716
+ const docId = configEntryDocId ?? server?.hubDocId ?? spacesInfo?.hubDocId ?? server?.cachedSpaces?.[0]?.doc_id ?? spacesInfo?.spaces?.[0]?.doc_id ?? server?.entryDocId ?? info.index_doc_id ?? void 0;
666
717
  if (!docId) {
667
718
  connectionError.value = "No entry document found. Configure entryDocId or ensure the server has spaces or an index document.";
668
719
  addLog("No entry document \u2014 cannot connect", "system");
669
720
  try {
670
- const { useToast } = await import("#imports");
671
- useToast().add({ title: "Server not configured", description: "No entry document found. Set entryDocId in your abracadabra module config.", color: "error" });
721
+ const imports = await import("#imports");
722
+ imports.useToast().add({ title: "Server not configured", description: "No entry document found. Set entryDocId in your abracadabra module config.", color: "error" });
672
723
  } catch {
673
724
  }
674
725
  return;
675
726
  }
676
727
  addLog(`Using document: ${docId}`, "data");
728
+ spaceDocId.value = docId;
677
729
  const wsUrl = _client.wsUrl;
678
730
  addLog(`WebSocket: ${wsUrl}`, "connection");
679
- const wsp = new HocuspocusProviderWebsocket({
731
+ const wsp = new AbracadabraWS({
680
732
  url: wsUrl,
681
733
  delay: 1e3,
682
734
  minDelay: 1e3,
@@ -715,8 +767,8 @@ export default defineNuxtPlugin({
715
767
  if (wasConnected && !wasSynced) {
716
768
  addLog("Reconnected", "connection");
717
769
  try {
718
- import("#imports").then(({ useToast }) => {
719
- useToast().add({ title: "Reconnected", color: "success", duration: 2e3 });
770
+ import("#imports").then((imports) => {
771
+ imports.useToast().add({ title: "Reconnected", color: "success", duration: 2e3 });
720
772
  }).catch(() => {
721
773
  });
722
774
  } catch {
@@ -726,8 +778,9 @@ export default defineNuxtPlugin({
726
778
  if (!wasSynced && features.backgroundSync !== false) {
727
779
  import("@abraca/dabra").then(({ BackgroundSyncManager }) => {
728
780
  if (_client && _provider) {
729
- const manager = new BackgroundSyncManager(_client, _provider);
781
+ const manager = new BackgroundSyncManager(_provider, _client, _getFileBlobStore());
730
782
  _initBackgroundSync(manager);
783
+ manager.syncAll().catch(() => null);
731
784
  if (features.search !== false) {
732
785
  _initSearchIndex(serverUrl);
733
786
  _initFileIndex();
@@ -736,6 +789,12 @@ export default defineNuxtPlugin({
736
789
  }).catch(() => {
737
790
  });
738
791
  }
792
+ if (features.broadcastSync !== false) {
793
+ const { BroadcastChannelSync } = sdkModule ?? {};
794
+ if (BroadcastChannelSync && _provider && _doc) {
795
+ _initBroadcastSync(BroadcastChannelSync, _doc, docId, _provider.awareness);
796
+ }
797
+ }
739
798
  try {
740
799
  _provider.sendStateless?.(JSON.stringify({ type: "notify:fetch", limit: 20 }));
741
800
  } catch {
@@ -754,11 +813,13 @@ export default defineNuxtPlugin({
754
813
  const cutoff = Date.now() - purgeDays * 24 * 60 * 60 * 1e3;
755
814
  const expired = [];
756
815
  trashMap.forEach((val, key) => {
757
- if (val?.deletedAt < cutoff) expired.push(key);
758
- });
759
- if (expired.length) _doc.transact(() => {
760
- for (const id of expired) trashMap.delete(id);
816
+ if (val && typeof val === "object" && "deletedAt" in val && typeof val.deletedAt === "number" && val.deletedAt < cutoff) expired.push(key);
761
817
  });
818
+ if (expired.length) {
819
+ _doc.transact(() => {
820
+ for (const id of expired) trashMap.delete(id);
821
+ });
822
+ }
762
823
  }
763
824
  } catch {
764
825
  }
@@ -766,6 +827,7 @@ export default defineNuxtPlugin({
766
827
  },
767
828
  onAuthenticated({ scope }) {
768
829
  addLog(`Scope: ${scope}`, "auth");
830
+ effectiveRole.value = scope;
769
831
  connectionError.value = null;
770
832
  authFailureCount = 0;
771
833
  },
@@ -774,7 +836,8 @@ export default defineNuxtPlugin({
774
836
  const msg = reason || "Authentication failed";
775
837
  const isPermanent = /disabled|not allowed|forbidden|revoked/i.test(msg);
776
838
  if (isPermanent || authFailureCount >= AUTH_FAILURE_LIMIT) {
777
- isConnectionBlocked.value = true;
839
+ _identityStateBeforeBlock = identityState.value;
840
+ identityState.value = "connectionBlocked";
778
841
  connectionError.value = `${msg} \u2014 reconnection paused`;
779
842
  addLog(`Auth denied \u2014 pausing reconnect: ${msg}`, "auth");
780
843
  wsp.disconnect();
@@ -810,22 +873,24 @@ export default defineNuxtPlugin({
810
873
  }
811
874
  });
812
875
  _provider.setAwarenessField("user", { name: userName.value, color: userColor.value, publicKey: publicKeyB64.value });
876
+ _provider.on("unsyncedChanges", ({ number }) => {
877
+ unsyncedChanges.value = number;
878
+ });
813
879
  _provider.attach();
814
880
  provider.value = _provider;
815
881
  try {
816
882
  const { FileBlobStore } = await import("@abraca/dabra");
817
- const blobStore = new FileBlobStore(_client);
883
+ const blobStore = new FileBlobStore(serverUrl, _client);
818
884
  _initFileBlobStore(blobStore);
819
885
  } catch {
820
886
  }
887
+ _initServerInfo(_client);
821
888
  _initNotifications(publicKeyB64);
822
889
  _initChat(publicKeyB64, userName);
823
- if (_provider.onStateless !== void 0) {
824
- _provider.onStateless = (payload) => {
825
- _handleStatelessNotification(payload);
826
- _handleStatelessChat(payload);
827
- };
828
- }
890
+ _provider.on("stateless", ({ payload }) => {
891
+ _handleStatelessNotification(payload);
892
+ _handleStatelessChat(payload);
893
+ });
829
894
  _provider.ready.then(() => {
830
895
  isReady.value = true;
831
896
  }, () => null);
@@ -838,12 +903,13 @@ export default defineNuxtPlugin({
838
903
  );
839
904
  addLog("Provider attached, connecting...", "connection");
840
905
  } catch (e) {
841
- addLog(`Error: ${e.message}`, "system");
906
+ addLog(`Error: ${e instanceof Error ? e.message : String(e)}`, "system");
842
907
  console.error("[abracadabra] init error:", e);
843
908
  }
844
909
  }
845
910
  const abra = {
846
911
  doc,
912
+ spaceDocId,
847
913
  provider,
848
914
  client,
849
915
  keystore,
@@ -858,9 +924,12 @@ export default defineNuxtPlugin({
858
924
  userCount,
859
925
  publicKeyB64,
860
926
  connectionError,
927
+ identityState,
861
928
  isClaimed,
862
929
  identityLost,
863
930
  needsReauth,
931
+ effectiveRole,
932
+ unsyncedChanges,
864
933
  requirePasskeyOnLogin,
865
934
  isConnectionBlocked,
866
935
  currentServerUrl,
@@ -890,6 +959,9 @@ export default defineNuxtPlugin({
890
959
  createInvite,
891
960
  listInvites,
892
961
  revokeInvite,
962
+ recoverIdentity,
963
+ unblockConnection,
964
+ broadcastSyncActive: useBroadcastSync().isActive,
893
965
  init
894
966
  };
895
967
  nuxtApp.provide("abracadabra", abra);
@@ -1,2 +1,2 @@
1
- declare const _default: any;
1
+ declare const _default: import("#app").Plugin<Record<string, unknown>> & import("#app").ObjectPlugin<Record<string, unknown>>;
2
2
  export default _default;
@@ -1,4 +1,5 @@
1
1
  import { shallowRef, ref, computed } from "vue";
2
+ import { defineNuxtPlugin } from "#imports";
2
3
  import { PluginRegistry } from "./plugin-registry.js";
3
4
  export default defineNuxtPlugin({
4
5
  name: "abracadabra:server-stub",
@@ -13,6 +14,7 @@ export default defineNuxtPlugin({
13
14
  nuxtApp.provide("abracadabra", {
14
15
  // CRDT objects — null on server
15
16
  doc: shallowRef(null),
17
+ spaceDocId: ref(null),
16
18
  provider: shallowRef(null),
17
19
  client: shallowRef(null),
18
20
  keystore: shallowRef(null),
@@ -43,6 +45,8 @@ export default defineNuxtPlugin({
43
45
  logs: ref([]),
44
46
  // Plugin registry (empty, frozen)
45
47
  registry,
48
+ // Sync state
49
+ broadcastSyncActive: ref(false),
46
50
  // Methods — all no-ops on server
47
51
  addLog: noop,
48
52
  setUserName: noop,
@@ -1,2 +1,2 @@
1
- declare const _default: any;
1
+ declare const _default: import("#app").Plugin<Record<string, unknown>> & import("#app").ObjectPlugin<Record<string, unknown>>;
2
2
  export default _default;
@@ -1,5 +1,6 @@
1
1
  import * as Vue from "vue";
2
2
  import * as Yjs from "yjs";
3
+ import { defineNuxtPlugin } from "#imports";
3
4
  export default defineNuxtPlugin({
4
5
  name: "abracadabra:shared-globals",
5
6
  enforce: "pre",
@@ -33,7 +33,14 @@ async function loadClientExtensions() {
33
33
  { Kbd },
34
34
  { ProseIcon },
35
35
  { FileBlock },
36
- { MetaField }
36
+ { MetaField },
37
+ { DocEmbed },
38
+ { DocLinkDrop },
39
+ { MentionDrop },
40
+ { SelectionDrag },
41
+ { Field, FieldGroup },
42
+ { CodePreview },
43
+ { CodeTree }
37
44
  ] = await Promise.all([
38
45
  import("@tiptap/extension-task-list"),
39
46
  import("@tiptap/extension-task-item"),
@@ -67,10 +74,17 @@ async function loadClientExtensions() {
67
74
  import("../extensions/kbd.js"),
68
75
  import("../extensions/prose-icon.js"),
69
76
  import("../extensions/file-block.js"),
70
- import("../extensions/meta-field.js")
77
+ import("../extensions/meta-field.js"),
78
+ import("../extensions/doc-embed.js"),
79
+ import("../extensions/doc-link-drop.js"),
80
+ import("../extensions/mention-drop.js"),
81
+ import("../extensions/selection-drag.js"),
82
+ import("../extensions/field.js"),
83
+ import("../extensions/code-preview.js"),
84
+ import("../extensions/code-tree.js")
71
85
  ]);
72
86
  const lowlight = createLowlight(common);
73
- return [
87
+ const extensions = [
74
88
  TaskList,
75
89
  TaskItem.configure({ nested: true }),
76
90
  Table.configure({ resizable: true }),
@@ -112,8 +126,29 @@ async function loadClientExtensions() {
112
126
  // File block
113
127
  FileBlock,
114
128
  // Meta field chips (inline properties in documentMeta)
115
- MetaField
129
+ MetaField,
130
+ // Document embeds & linking
131
+ DocEmbed,
132
+ DocLinkDrop,
133
+ MentionDrop,
134
+ SelectionDrag,
135
+ // Structured data fields
136
+ Field,
137
+ FieldGroup,
138
+ // Advanced code blocks
139
+ CodePreview,
140
+ CodeTree
116
141
  ];
142
+ try {
143
+ const emojiPkg = "@tiptap/extension-emoji";
144
+ const { Emoji } = await import(
145
+ /* @vite-ignore */
146
+ emojiPkg
147
+ );
148
+ if (Emoji) extensions.push(Emoji);
149
+ } catch {
150
+ }
151
+ return extensions;
117
152
  }
118
153
  async function loadServerExtensions() {
119
154
  const [
@@ -136,6 +171,7 @@ async function loadServerExtensions() {
136
171
  const lowlight = createLowlight(common);
137
172
  return [
138
173
  StarterKit.configure({
174
+ // @ts-expect-error StarterKit accepts history option at runtime
139
175
  history: false,
140
176
  codeBlock: false,
141
177
  document: false
@@ -1,18 +1,20 @@
1
- /**
2
- * GET /api/_abracadabra/render/:docId
3
- *
4
- * SSR-friendly endpoint that returns document HTML + metadata.
5
- *
6
- * Strategy (fastest first):
7
- * 1. CRDT cache — if the service provider is running, documents are kept
8
- * pre-rendered in Nitro storage with 2s debounce on each update.
9
- * This path is effectively instant and always fresh.
10
- * 2. REST fallback — fetches HTML + metadata from the Abracadabra REST API.
11
- * Used when the service provider is not configured or for uncached docs.
12
- *
13
- * Usage in a Nuxt page:
14
- * const { data } = await useFetch(`/api/_abracadabra/render/${docId}`)
15
- * // data.value: { html, title, type, meta, docId, source }
16
- */
17
- declare const _default: any;
1
+ declare const _default: import("h3").EventHandler<Omit<import("h3").EventHandlerRequest, "body">, Promise<{
2
+ docId: string;
3
+ html: string;
4
+ title: any;
5
+ type: any;
6
+ meta: any;
7
+ description: any;
8
+ ogImage: any;
9
+ source: "crdt-cache";
10
+ } | {
11
+ docId: string;
12
+ html: string;
13
+ title: string;
14
+ type: string;
15
+ meta: Record<string, unknown>;
16
+ description: any;
17
+ ogImage: any;
18
+ source: "rest";
19
+ }>>;
18
20
  export default _default;
@@ -1,3 +1,25 @@
1
+ import { createError, getRouterParam, getHeader } from "h3";
2
+ import { defineCachedEventHandler } from "nitropack/runtime";
3
+ import { useRuntimeConfig } from "nitropack/runtime/config";
4
+ import { useStorage } from "nitropack/runtime/storage";
5
+ function extractFirstParagraph(html) {
6
+ if (!html) return "";
7
+ const pMatch = html.match(/<p[^>]*>(.*?)<\/p>/is);
8
+ const raw = pMatch?.[1] ?? html;
9
+ const text = raw.replace(/<[^>]+>/g, "").replace(/&[a-z]+;/gi, " ").trim();
10
+ if (!text) return "";
11
+ return text.length > 160 ? text.slice(0, 157) + "..." : text;
12
+ }
13
+ function extractFirstImage(html) {
14
+ if (!html) return "";
15
+ const match = html.match(/<img[^>]+src=["']([^"']+)["']/i);
16
+ return match?.[1] ?? "";
17
+ }
18
+ let _maxAge = 60;
19
+ try {
20
+ _maxAge = useRuntimeConfig().public?.abracadabra?.server?.cacheMaxAge ?? 60;
21
+ } catch {
22
+ }
1
23
  export default defineCachedEventHandler(async (event) => {
2
24
  const config = useRuntimeConfig();
3
25
  const baseUrl = config.public?.abracadabra?.url;
@@ -15,12 +37,15 @@ export default defineCachedEventHandler(async (event) => {
15
37
  ]);
16
38
  if (cachedHtml !== null) {
17
39
  const treeEntry = cachedJson?.["doc-tree"]?.[docId] ?? {};
40
+ const html2 = cachedHtml ?? "";
18
41
  return {
19
42
  docId,
20
- html: cachedHtml ?? "",
43
+ html: html2,
21
44
  title: treeEntry.label ?? "",
22
45
  type: treeEntry.type ?? "doc",
23
46
  meta: treeEntry.meta ?? {},
47
+ description: treeEntry.meta?.note ?? treeEntry.meta?.description ?? extractFirstParagraph(html2),
48
+ ogImage: treeEntry.meta?.coverImage ?? extractFirstImage(html2),
24
49
  source: "crdt-cache"
25
50
  };
26
51
  }
@@ -37,15 +62,19 @@ export default defineCachedEventHandler(async (event) => {
37
62
  { headers }
38
63
  ).catch(() => null)
39
64
  ]);
65
+ const html = exportRes?.html ?? "";
66
+ const meta = metaRes?.meta ?? {};
40
67
  return {
41
68
  docId,
42
- html: exportRes?.html ?? "",
69
+ html,
43
70
  title: metaRes?.label ?? "",
44
71
  type: metaRes?.type ?? "doc",
45
- meta: metaRes?.meta ?? {},
72
+ meta,
73
+ description: meta?.note ?? meta?.description ?? extractFirstParagraph(html),
74
+ ogImage: meta?.coverImage ?? extractFirstImage(html),
46
75
  source: "rest"
47
76
  };
48
77
  }, {
49
- maxAge: 60,
78
+ maxAge: _maxAge,
50
79
  getKey: (event) => `abra:render:${getRouterParam(event, "docId")}`
51
80
  });