@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
@@ -9,7 +9,7 @@
9
9
  * const { trashedItems, moveToTrash, restoreFromTrash, emptyTrash } = useTrash()
10
10
  */
11
11
  import type { ShallowRef } from 'vue';
12
- import * as Y from 'yjs';
12
+ import type * as Y from 'yjs';
13
13
  export interface TrashEntry {
14
14
  label: string;
15
15
  parentId: string | null;
@@ -18,6 +18,8 @@ export interface TrashEntry {
18
18
  meta?: Record<string, any>;
19
19
  deletedAt: number;
20
20
  deletedBy?: string;
21
+ /** Batch ID for grouping items deleted together (for accurate restore). */
22
+ batchId?: string;
21
23
  }
22
24
  export declare function useTrash(rootDoc?: ShallowRef<Y.Doc | null>): {
23
25
  trashMap: {
@@ -37,6 +39,8 @@ export declare function useTrash(rootDoc?: ShallowRef<Y.Doc | null>): {
37
39
  meta?: Record<string, any>;
38
40
  deletedAt: number;
39
41
  deletedBy?: string;
42
+ /** Batch ID for grouping items deleted together (for accurate restore). */
43
+ batchId?: string;
40
44
  id: string;
41
45
  }[]>;
42
46
  trashedCount: import("vue").ComputedRef<number>;
@@ -1,18 +1,21 @@
1
1
  import { computed, ref } from "vue";
2
2
  import { useSyncedMap } from "./useYDoc.js";
3
+ import { useAbracadabra } from "./useAbracadabra.js";
3
4
  const TRASH_SETTINGS_KEY = "abracadabra_trash_settings";
4
5
  function loadTrashSettings() {
5
6
  try {
6
7
  const raw = localStorage.getItem(TRASH_SETTINGS_KEY);
7
8
  if (raw) return JSON.parse(raw);
8
- } catch {
9
+ } catch (e) {
10
+ if (import.meta.dev) console.debug("[abracadabra] trash: failed to load settings from localStorage:", e);
9
11
  }
10
12
  return { autoPurgeDays: 30 };
11
13
  }
12
14
  function saveTrashSettings(settings) {
13
15
  try {
14
16
  localStorage.setItem(TRASH_SETTINGS_KEY, JSON.stringify(settings));
15
- } catch {
17
+ } catch (e) {
18
+ if (import.meta.dev) console.debug("[abracadabra] trash: failed to save settings to localStorage:", e);
16
19
  }
17
20
  }
18
21
  export function useTrash(rootDoc) {
@@ -40,6 +43,7 @@ export function useTrash(rootDoc) {
40
43
  const doc = _doc.value;
41
44
  if (!doc) return;
42
45
  const now = Date.now();
46
+ const batchId = crypto.randomUUID();
43
47
  doc.transact(() => {
44
48
  for (const id of collectDescendants(docId)) {
45
49
  const entry = treeMap.get(id);
@@ -51,7 +55,8 @@ export function useTrash(rootDoc) {
51
55
  type: entry.type,
52
56
  meta: entry.meta,
53
57
  deletedAt: now,
54
- deletedBy: deletedBy ?? userName.value
58
+ deletedBy: deletedBy ?? userName.value,
59
+ batchId
55
60
  });
56
61
  treeMap.remove(id);
57
62
  }
@@ -62,9 +67,9 @@ export function useTrash(rootDoc) {
62
67
  if (!doc) return;
63
68
  const entry = trashMap.get(docId);
64
69
  if (!entry) return;
65
- const { deletedAt } = entry;
70
+ const { deletedAt, batchId } = entry;
66
71
  doc.transact(() => {
67
- const toRestore = Object.entries(trashMap.data).filter(([, e]) => Math.abs(e.deletedAt - deletedAt) < 1e3);
72
+ const toRestore = Object.entries(trashMap.data).filter(([, e]) => batchId ? e.batchId === batchId : Math.abs(e.deletedAt - deletedAt) < 1e3);
68
73
  for (const [id, trashEntry] of toRestore) {
69
74
  const parentExists = trashEntry.parentId === null || treeMap.get(trashEntry.parentId) !== void 0 || toRestore.some(([rid]) => rid === trashEntry.parentId);
70
75
  treeMap.set(id, {
@@ -109,7 +114,8 @@ export function useTrash(rootDoc) {
109
114
  for (const db of dbs) {
110
115
  if (db.name?.includes(docId)) indexedDB.deleteDatabase(db.name);
111
116
  }
112
- } catch {
117
+ } catch (e) {
118
+ if (import.meta.dev) console.debug("[abracadabra] trash: failed to cleanup IDB for doc:", e);
113
119
  }
114
120
  }
115
121
  return {
@@ -0,0 +1,22 @@
1
+ import type { ShallowRef, Ref, InjectionKey } from 'vue';
2
+ import * as Y from 'yjs';
3
+ export interface TreeUndoContext {
4
+ canUndo: Ref<boolean>;
5
+ canRedo: Ref<boolean>;
6
+ undo: () => void;
7
+ redo: () => void;
8
+ undoManager: ShallowRef<Y.UndoManager | null>;
9
+ }
10
+ export declare const treeUndoKey: InjectionKey<TreeUndoContext>;
11
+ /**
12
+ * Creates a Y.UndoManager scoped to the root doc's "doc-tree" and "doc-trash"
13
+ * Y.Maps. Tracks only local user changes (origin === null) so remote CRDT
14
+ * updates are never reversed.
15
+ *
16
+ * Both maps are tracked because deleteEntry moves items from tree -> trash in a
17
+ * single transaction — the UndoManager must see both sides to reverse it
18
+ * atomically.
19
+ *
20
+ * Should be called once in the layout and provided via `treeUndoKey`.
21
+ */
22
+ export declare function useTreeUndoManager(rootDoc: ShallowRef<Y.Doc | null>): TreeUndoContext;
@@ -0,0 +1,45 @@
1
+ import { ref, shallowRef, watch, onBeforeUnmount } from "vue";
2
+ import * as Y from "yjs";
3
+ export const treeUndoKey = Symbol("treeUndo");
4
+ export function useTreeUndoManager(rootDoc) {
5
+ const undoManager = shallowRef(null);
6
+ const canUndo = ref(false);
7
+ const canRedo = ref(false);
8
+ function updateState() {
9
+ const um = undoManager.value;
10
+ canUndo.value = (um?.undoStack.length ?? 0) > 0;
11
+ canRedo.value = (um?.redoStack.length ?? 0) > 0;
12
+ }
13
+ watch(rootDoc, (doc, _oldDoc, onCleanup) => {
14
+ undoManager.value?.destroy();
15
+ undoManager.value = null;
16
+ canUndo.value = false;
17
+ canRedo.value = false;
18
+ if (!doc) return;
19
+ const treeMap = doc.getMap("doc-tree");
20
+ const trashMap = doc.getMap("doc-trash");
21
+ const um = new Y.UndoManager([treeMap, trashMap], {
22
+ trackedOrigins: /* @__PURE__ */ new Set([null]),
23
+ captureTimeout: 500
24
+ });
25
+ um.on("stack-item-added", updateState);
26
+ um.on("stack-item-popped", updateState);
27
+ undoManager.value = um;
28
+ onCleanup(() => {
29
+ um.off("stack-item-added", updateState);
30
+ um.off("stack-item-popped", updateState);
31
+ um.destroy();
32
+ });
33
+ }, { immediate: true });
34
+ onBeforeUnmount(() => {
35
+ undoManager.value?.destroy();
36
+ undoManager.value = null;
37
+ });
38
+ function undo() {
39
+ undoManager.value?.undo();
40
+ }
41
+ function redo() {
42
+ undoManager.value?.redo();
43
+ }
44
+ return { canUndo, canRedo, undo, redo, undoManager };
45
+ }
@@ -0,0 +1,37 @@
1
+ import type { ShallowRef, Ref, ComputedRef, InjectionKey } from 'vue';
2
+ import type { Editor } from '@tiptap/vue-3';
3
+ export interface UndoRedoContext {
4
+ /** Undo in the currently active context (editor or tree) */
5
+ undo: () => void;
6
+ /** Redo in the currently active context (editor or tree) */
7
+ redo: () => void;
8
+ /** Tree-specific undo/redo */
9
+ treeUndo: () => void;
10
+ treeRedo: () => void;
11
+ treeCanUndo: Ref<boolean>;
12
+ treeCanRedo: Ref<boolean>;
13
+ /** Editor-specific undo/redo */
14
+ editorUndo: () => void;
15
+ editorRedo: () => void;
16
+ editorCanUndo: ComputedRef<boolean>;
17
+ editorCanRedo: ComputedRef<boolean>;
18
+ /** Which domain last received focus */
19
+ activeContext: Ref<'editor' | 'tree'>;
20
+ }
21
+ export declare const undoRedoKey: InjectionKey<UndoRedoContext>;
22
+ /**
23
+ * Coordinator composable that routes undo/redo to the correct domain:
24
+ * - TipTap editor focused -> editor's built-in Y.UndoManager
25
+ * - Otherwise -> tree Y.UndoManager (doc-tree + doc-trash)
26
+ *
27
+ * Meta field values (color, dates, tags) live in the tree Y.Map but are edited
28
+ * via popups inside the TipTap editor. To handle this, we track which domain
29
+ * had the most recent mutation and use that as a tiebreaker when the editor
30
+ * has focus — so Cmd+Z after a meta field change undoes the meta change even
31
+ * though focus returned to the editor.
32
+ *
33
+ * Injects the shared tree UndoManager from the layout (via treeUndoKey).
34
+ * Installs a page-level keydown listener for Cmd+Z / Cmd+Shift+Z when
35
+ * the TipTap editor does NOT have focus.
36
+ */
37
+ export declare function useUndoRedo(editor: ShallowRef<Editor | null>): UndoRedoContext;
@@ -0,0 +1,115 @@
1
+ import { computed, onBeforeUnmount, ref, inject, watch } from "vue";
2
+ import { treeUndoKey } from "./useTreeUndoManager.js";
3
+ export const undoRedoKey = Symbol("undoRedo");
4
+ export function useUndoRedo(editor) {
5
+ const tree = inject(treeUndoKey);
6
+ const activeContext = ref("tree");
7
+ const lastMutatedDomain = ref("editor");
8
+ const lastUndoDomain = ref(null);
9
+ function editorHasFocus() {
10
+ const el = document.activeElement;
11
+ if (!el) return false;
12
+ return !!el.closest(".tiptap, .ProseMirror");
13
+ }
14
+ function editorUndo() {
15
+ editor.value?.commands.undo();
16
+ }
17
+ function editorRedo() {
18
+ editor.value?.commands.redo();
19
+ }
20
+ const editorCanUndo = computed(() => editor.value?.can().undo() ?? false);
21
+ const editorCanRedo = computed(() => editor.value?.can().redo() ?? false);
22
+ function onTreeStackAdded() {
23
+ lastMutatedDomain.value = "tree";
24
+ }
25
+ watch(() => tree.undoManager.value, (um, oldUm) => {
26
+ oldUm?.off("stack-item-added", onTreeStackAdded);
27
+ um?.on("stack-item-added", onTreeStackAdded);
28
+ }, { immediate: true });
29
+ function onEditorTransaction({ transaction }) {
30
+ if (transaction.docChanged) {
31
+ lastMutatedDomain.value = "editor";
32
+ }
33
+ }
34
+ watch(editor, (ed, oldEd) => {
35
+ oldEd?.off("transaction", onEditorTransaction);
36
+ ed?.on("transaction", onEditorTransaction);
37
+ }, { immediate: true });
38
+ function undo() {
39
+ if (!editorHasFocus() || !editor.value) {
40
+ activeContext.value = "tree";
41
+ lastUndoDomain.value = "tree";
42
+ tree.undo();
43
+ } else if (lastMutatedDomain.value === "tree" && tree.canUndo.value) {
44
+ activeContext.value = "tree";
45
+ lastUndoDomain.value = "tree";
46
+ tree.undo();
47
+ if (!tree.canUndo.value) {
48
+ lastMutatedDomain.value = "editor";
49
+ }
50
+ } else {
51
+ activeContext.value = "editor";
52
+ lastUndoDomain.value = "editor";
53
+ editorUndo();
54
+ }
55
+ }
56
+ function redo() {
57
+ if (!editorHasFocus() || !editor.value) {
58
+ activeContext.value = "tree";
59
+ tree.redo();
60
+ } else if (lastUndoDomain.value === "tree" && tree.canRedo.value) {
61
+ activeContext.value = "tree";
62
+ tree.redo();
63
+ if (!tree.canRedo.value) {
64
+ lastUndoDomain.value = null;
65
+ }
66
+ } else {
67
+ activeContext.value = "editor";
68
+ editorRedo();
69
+ }
70
+ }
71
+ function onKeydown(e) {
72
+ const mod = e.metaKey || e.ctrlKey;
73
+ if (!mod) return;
74
+ if (editorHasFocus()) return;
75
+ if (e.key === "z") {
76
+ e.preventDefault();
77
+ if (e.shiftKey) redo();
78
+ else undo();
79
+ } else if (e.key === "y") {
80
+ e.preventDefault();
81
+ redo();
82
+ }
83
+ }
84
+ function onFocusIn(e) {
85
+ const target = e.target;
86
+ if (target?.closest(".tiptap, .ProseMirror")) {
87
+ activeContext.value = "editor";
88
+ } else {
89
+ activeContext.value = "tree";
90
+ }
91
+ }
92
+ if (import.meta.client) {
93
+ window.addEventListener("keydown", onKeydown);
94
+ window.addEventListener("focusin", onFocusIn);
95
+ onBeforeUnmount(() => {
96
+ window.removeEventListener("keydown", onKeydown);
97
+ window.removeEventListener("focusin", onFocusIn);
98
+ tree.undoManager.value?.off("stack-item-added", onTreeStackAdded);
99
+ editor.value?.off("transaction", onEditorTransaction);
100
+ });
101
+ }
102
+ return {
103
+ undo,
104
+ redo,
105
+ treeUndo: tree.undo,
106
+ treeRedo: tree.redo,
107
+ treeCanUndo: tree.canUndo,
108
+ treeCanRedo: tree.canRedo,
109
+ editorUndo,
110
+ editorRedo,
111
+ editorCanUndo,
112
+ editorCanRedo,
113
+ activeContext
114
+ };
115
+ }
@@ -1,6 +1,8 @@
1
1
  import { ref, shallowRef, computed } from "vue";
2
2
  import { VoiceClient } from "../utils/VoiceClient.js";
3
3
  import { TRANSIENT_ERROR_CODES } from "../utils/voiceErrors.js";
4
+ import { useToast } from "#imports";
5
+ import { useAbracadabra } from "./useAbracadabra.js";
4
6
  const voiceStatus = ref("idle");
5
7
  const voiceRoomId = ref(null);
6
8
  const isMuted = ref(false);
@@ -0,0 +1,50 @@
1
+ /**
2
+ * useWebRTC
3
+ *
4
+ * Wraps AbracadabraWebRTC from @abraca/dabra for P2P Y.js sync, awareness,
5
+ * and file transfer over WebRTC data channels.
6
+ *
7
+ * Follows the same singleton pattern as useVoice — module-level state,
8
+ * _wireEvents for event→ref mapping, and user-driven connect/disconnect.
9
+ *
10
+ * Usage:
11
+ * const { isConnected, peers, peerCount, connect, disconnect } = useWebRTC()
12
+ */
13
+ export declare function _initWebRTC(rtc: any): void;
14
+ export declare function _destroyWebRTC(): void;
15
+ /**
16
+ * Connect to WebRTC P2P mesh.
17
+ * Uses the current provider from useAbracadabra() to create an AbracadabraWebRTC instance.
18
+ * When E2EE is enabled and the user has a claimed passkey, triggers WebAuthn prompt
19
+ * to derive X25519 private key.
20
+ */
21
+ declare function connect(options?: {
22
+ e2ee?: boolean;
23
+ }): Promise<void>;
24
+ declare function disconnect(): void;
25
+ declare function sendFile(peerId: string, file: File | Blob, filename: string): Promise<any>;
26
+ export declare function useWebRTC(): {
27
+ /** Current WebRTC connection status. */
28
+ webrtcStatus: import("vue").Ref<"idle" | "disconnected" | "connecting" | "connected", "idle" | "disconnected" | "connecting" | "connected">;
29
+ /** Whether the WebRTC signaling connection is active. */
30
+ isConnected: import("vue").Ref<boolean, boolean>;
31
+ /** Map of connected peers (peerId → PeerState). */
32
+ peers: import("vue").ShallowRef<Map<string, any>, Map<string, any>>;
33
+ /** Local peer ID assigned by the signaling server. */
34
+ localPeerId: import("vue").Ref<string | null, string | null>;
35
+ /** Whether E2EE is enabled for this connection. */
36
+ e2eeEnabled: import("vue").Ref<boolean, boolean>;
37
+ /** Set of peer IDs with established E2EE channels. */
38
+ e2eeEstablishedPeers: import("vue").ShallowRef<Set<string>, Set<string>>;
39
+ /** Array of connected peers (computed from peers map). */
40
+ peerList: import("vue").ComputedRef<any[]>;
41
+ /** Number of connected peers (computed). */
42
+ peerCount: import("vue").ComputedRef<number>;
43
+ /** Connect to WebRTC P2P mesh using the current provider. */
44
+ connect: typeof connect;
45
+ /** Disconnect and clean up WebRTC resources. */
46
+ disconnect: typeof disconnect;
47
+ /** Send a file to a specific peer. */
48
+ sendFile: typeof sendFile;
49
+ };
50
+ export {};
@@ -0,0 +1,179 @@
1
+ import { ref, shallowRef, computed } from "vue";
2
+ import { getSdkModule } from "../utils/sdkRef.js";
3
+ import { useToast, useRuntimeConfig } from "#imports";
4
+ import { useAbracadabra } from "./useAbracadabra.js";
5
+ import { _wireFileTransferEvents, _destroyFileTransfer } from "./useFileTransfer.js";
6
+ const webrtcStatus = ref("idle");
7
+ const isConnected = ref(false);
8
+ const peers = shallowRef(/* @__PURE__ */ new Map());
9
+ const localPeerId = ref(null);
10
+ const e2eeEnabled = ref(false);
11
+ const e2eeEstablishedPeers = shallowRef(/* @__PURE__ */ new Set());
12
+ let _rtc = null;
13
+ const _unbinds = [];
14
+ const peerList = computed(() => [...peers.value.values()]);
15
+ const peerCount = computed(() => peers.value.size);
16
+ function _wireEvents(rtc) {
17
+ const on = (event, handler) => {
18
+ rtc.on(event, handler);
19
+ _unbinds.push(() => rtc.off(event, handler));
20
+ };
21
+ on("connected", () => {
22
+ isConnected.value = true;
23
+ webrtcStatus.value = "connected";
24
+ localPeerId.value = rtc.localPeerId;
25
+ });
26
+ on("disconnected", () => {
27
+ isConnected.value = false;
28
+ webrtcStatus.value = "disconnected";
29
+ });
30
+ on("peerJoined", (peer) => {
31
+ const next = new Map(peers.value);
32
+ next.set(peer.peerId, peer);
33
+ peers.value = next;
34
+ });
35
+ on("peerLeft", ({ peerId }) => {
36
+ const next = new Map(peers.value);
37
+ next.delete(peerId);
38
+ peers.value = next;
39
+ const nextE2ee = new Set(e2eeEstablishedPeers.value);
40
+ nextE2ee.delete(peerId);
41
+ e2eeEstablishedPeers.value = nextE2ee;
42
+ });
43
+ on("peerConnectionState", ({ peerId, state }) => {
44
+ const existing = peers.value.get(peerId);
45
+ if (existing) {
46
+ const next = new Map(peers.value);
47
+ next.set(peerId, { ...existing, connectionState: state });
48
+ peers.value = next;
49
+ }
50
+ });
51
+ on("e2eeEstablished", ({ peerId }) => {
52
+ const next = new Set(e2eeEstablishedPeers.value);
53
+ next.add(peerId);
54
+ e2eeEstablishedPeers.value = next;
55
+ });
56
+ on("e2eeFailed", ({ peerId, error }) => {
57
+ console.warn(`[abracadabra] E2EE failed for peer ${peerId}:`, error);
58
+ try {
59
+ const toast = useToast();
60
+ toast.add({
61
+ title: "E2EE handshake failed",
62
+ description: `Could not establish encrypted channel with peer`,
63
+ color: "warning",
64
+ icon: "i-lucide-shield-alert"
65
+ });
66
+ } catch {
67
+ }
68
+ });
69
+ }
70
+ function _cleanup() {
71
+ for (const unsub of _unbinds) unsub();
72
+ _unbinds.length = 0;
73
+ _destroyFileTransfer();
74
+ if (_rtc) {
75
+ _rtc.destroy();
76
+ _rtc = null;
77
+ }
78
+ webrtcStatus.value = "idle";
79
+ isConnected.value = false;
80
+ peers.value = /* @__PURE__ */ new Map();
81
+ localPeerId.value = null;
82
+ e2eeEnabled.value = false;
83
+ e2eeEstablishedPeers.value = /* @__PURE__ */ new Set();
84
+ }
85
+ export function _initWebRTC(rtc) {
86
+ _cleanup();
87
+ _rtc = rtc;
88
+ _wireEvents(rtc);
89
+ _wireFileTransferEvents(rtc);
90
+ webrtcStatus.value = "connecting";
91
+ }
92
+ export function _destroyWebRTC() {
93
+ _cleanup();
94
+ }
95
+ function fromBase64Url(str) {
96
+ const b = atob(str.replace(/-/g, "+").replace(/_/g, "/"));
97
+ const a = new Uint8Array(b.length);
98
+ for (let i = 0; i < b.length; i++) a[i] = b.charCodeAt(i);
99
+ return a;
100
+ }
101
+ async function connect(options) {
102
+ if (_rtc && isConnected.value) return;
103
+ const { provider, keystore, isClaimed } = useAbracadabra();
104
+ if (!provider.value) return;
105
+ const config = useRuntimeConfig();
106
+ const webrtcConfig = config.public.abracadabra?.webrtc ?? {};
107
+ const sdk = getSdkModule();
108
+ if (!sdk?.AbracadabraWebRTC) {
109
+ console.error("[abracadabra] SDK not loaded \u2014 cannot connect WebRTC");
110
+ return;
111
+ }
112
+ const { AbracadabraWebRTC } = sdk;
113
+ let e2eeIdentity;
114
+ const wantE2ee = options?.e2ee ?? webrtcConfig.e2ee ?? false;
115
+ if (wantE2ee && isClaimed.value && keystore.value) {
116
+ try {
117
+ const pubKeyB64 = await keystore.value.getPublicKey();
118
+ if (pubKeyB64) {
119
+ const publicKey = fromBase64Url(pubKeyB64);
120
+ const x25519PrivateKey = await keystore.value.getX25519PrivateKey();
121
+ e2eeIdentity = { publicKey, x25519PrivateKey };
122
+ e2eeEnabled.value = true;
123
+ }
124
+ } catch (e) {
125
+ console.warn("[abracadabra] E2EE identity derivation failed:", e.message);
126
+ }
127
+ }
128
+ let resolvedIceServers = webrtcConfig.iceServers;
129
+ if (!resolvedIceServers) {
130
+ try {
131
+ const { client } = useAbracadabra();
132
+ if (client.value?.getIceServers) {
133
+ resolvedIceServers = await client.value.getIceServers();
134
+ }
135
+ } catch (e) {
136
+ if (import.meta.dev) console.debug("[abracadabra] webrtc: failed to fetch ICE servers from server:", e);
137
+ }
138
+ }
139
+ const rtc = AbracadabraWebRTC.fromProvider(provider.value, {
140
+ iceServers: resolvedIceServers,
141
+ enableFileTransfer: webrtcConfig.fileTransfer ?? false,
142
+ e2ee: e2eeIdentity
143
+ });
144
+ _initWebRTC(rtc);
145
+ await rtc.connect();
146
+ }
147
+ function disconnect() {
148
+ _cleanup();
149
+ }
150
+ async function sendFile(peerId, file, filename) {
151
+ if (!_rtc) return null;
152
+ return _rtc.sendFile(peerId, file, filename);
153
+ }
154
+ export function useWebRTC() {
155
+ return {
156
+ /** Current WebRTC connection status. */
157
+ webrtcStatus,
158
+ /** Whether the WebRTC signaling connection is active. */
159
+ isConnected,
160
+ /** Map of connected peers (peerId → PeerState). */
161
+ peers,
162
+ /** Local peer ID assigned by the signaling server. */
163
+ localPeerId,
164
+ /** Whether E2EE is enabled for this connection. */
165
+ e2eeEnabled,
166
+ /** Set of peer IDs with established E2EE channels. */
167
+ e2eeEstablishedPeers,
168
+ /** Array of connected peers (computed from peers map). */
169
+ peerList,
170
+ /** Number of connected peers (computed). */
171
+ peerCount,
172
+ /** Connect to WebRTC P2P mesh using the current provider. */
173
+ connect,
174
+ /** Disconnect and clean up WebRTC resources. */
175
+ disconnect,
176
+ /** Send a file to a specific peer. */
177
+ sendFile
178
+ };
179
+ }
@@ -119,4 +119,6 @@ export declare function useWindowManager(): {
119
119
  toggleMaximize: (id: string) => void;
120
120
  moveWindow: (id: string, x: number, y: number) => void;
121
121
  resizeWindow: (id: string, width: number, height: number, x?: number, y?: number) => void;
122
+ restoreLayout: () => void;
123
+ clearLayout: () => void;
122
124
  };
@@ -1,7 +1,9 @@
1
1
  import { reactive, ref, computed } from "vue";
2
+ const LAYOUT_STORAGE_KEY = "abracadabra_window_layout";
2
3
  const windows = reactive(/* @__PURE__ */ new Map());
3
4
  const topZIndex = ref(30);
4
5
  let cascadeOffset = 0;
6
+ let _saveDebounce = null;
5
7
  export function useWindowManager() {
6
8
  function bringToFront(id) {
7
9
  const win = windows.get(id);
@@ -62,12 +64,15 @@ export function useWindowManager() {
62
64
  initialTab: opts.initialTab,
63
65
  meta: opts.meta
64
66
  });
67
+ _saveLayout();
65
68
  }
66
69
  function closeWindow(id) {
67
70
  windows.delete(id);
71
+ _saveLayout();
68
72
  }
69
73
  function closeAll() {
70
74
  windows.clear();
75
+ clearLayout();
71
76
  }
72
77
  function minimizeWindow(id, target) {
73
78
  const win = windows.get(id);
@@ -109,6 +114,7 @@ export function useWindowManager() {
109
114
  if (!win || win.isMaximized) return;
110
115
  win.x = x;
111
116
  win.y = y;
117
+ _saveLayout();
112
118
  }
113
119
  function resizeWindow(id, width, height, x, y) {
114
120
  const win = windows.get(id);
@@ -117,6 +123,7 @@ export function useWindowManager() {
117
123
  win.height = Math.max(height, 200);
118
124
  if (x !== void 0) win.x = x;
119
125
  if (y !== void 0) win.y = y;
126
+ _saveLayout();
120
127
  }
121
128
  const activeWindows = computed(
122
129
  () => [...windows.values()].filter((w) => !w.isMinimized).sort((a, b) => a.zIndex - b.zIndex)
@@ -124,6 +131,59 @@ export function useWindowManager() {
124
131
  const minimizedWindows = computed(
125
132
  () => [...windows.values()].filter((w) => w.isMinimized)
126
133
  );
134
+ function _saveLayout() {
135
+ if (_saveDebounce) clearTimeout(_saveDebounce);
136
+ _saveDebounce = setTimeout(() => {
137
+ try {
138
+ const layout = [...windows.values()].map((w) => ({
139
+ id: w.id,
140
+ docId: w.docId,
141
+ title: w.title,
142
+ icon: w.icon,
143
+ docType: w.docType,
144
+ channelId: w.channelId,
145
+ x: w.x,
146
+ y: w.y,
147
+ width: w.width,
148
+ height: w.height,
149
+ isMinimized: w.isMinimized,
150
+ isMaximized: w.isMaximized,
151
+ initialTab: w.initialTab,
152
+ meta: w.meta
153
+ }));
154
+ localStorage.setItem(LAYOUT_STORAGE_KEY, JSON.stringify(layout));
155
+ } catch {
156
+ }
157
+ }, 500);
158
+ }
159
+ function restoreLayout() {
160
+ try {
161
+ const raw = localStorage.getItem(LAYOUT_STORAGE_KEY);
162
+ if (!raw) return;
163
+ const layout = JSON.parse(raw);
164
+ for (const entry of layout) {
165
+ if (windows.has(entry.id)) continue;
166
+ topZIndex.value++;
167
+ windows.set(entry.id, {
168
+ ...entry,
169
+ provider: null,
170
+ zIndex: topZIndex.value,
171
+ isFocused: false,
172
+ prevX: entry.x,
173
+ prevY: entry.y,
174
+ prevWidth: entry.width,
175
+ prevHeight: entry.height
176
+ });
177
+ }
178
+ } catch {
179
+ }
180
+ }
181
+ function clearLayout() {
182
+ try {
183
+ localStorage.removeItem(LAYOUT_STORAGE_KEY);
184
+ } catch {
185
+ }
186
+ }
127
187
  return {
128
188
  windows,
129
189
  activeWindows,
@@ -136,6 +196,8 @@ export function useWindowManager() {
136
196
  restoreWindow,
137
197
  toggleMaximize,
138
198
  moveWindow,
139
- resizeWindow
199
+ resizeWindow,
200
+ restoreLayout,
201
+ clearLayout
140
202
  };
141
203
  }
@@ -0,0 +1,2 @@
1
+ import { Node } from '@tiptap/core';
2
+ export declare const CodePreview: Node<any, any>;
@@ -0,0 +1,17 @@
1
+ import { Node, mergeAttributes } from "@tiptap/core";
2
+ import { VueNodeViewRenderer } from "@tiptap/vue-3";
3
+ import CodePreviewView from "./views/CodePreviewView.vue";
4
+ export const CodePreview = Node.create({
5
+ name: "codePreview",
6
+ group: "block",
7
+ content: "block+",
8
+ parseHTML() {
9
+ return [{ tag: "div[data-code-preview]" }];
10
+ },
11
+ renderHTML() {
12
+ return ["div", mergeAttributes({ "data-code-preview": "" }), 0];
13
+ },
14
+ addNodeView() {
15
+ return VueNodeViewRenderer(CodePreviewView);
16
+ }
17
+ });