@abraca/nuxt 1.8.2 → 2.0.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 (475) hide show
  1. package/README.md +27 -2
  2. package/dist/module.d.mts +4 -3
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +50 -4
  5. package/dist/runtime/components/ADocumentTree.vue +1 -1
  6. package/dist/runtime/components/AEditor.d.vue.ts +26 -1
  7. package/dist/runtime/components/AEditor.vue +153 -4
  8. package/dist/runtime/components/AEditor.vue.d.ts +26 -1
  9. package/dist/runtime/components/AIdentityModal.d.vue.ts +46 -0
  10. package/dist/runtime/components/AIdentityModal.vue +157 -0
  11. package/dist/runtime/components/AIdentityModal.vue.d.ts +46 -0
  12. package/dist/runtime/components/AMnemonicLoginModal.d.vue.ts +35 -0
  13. package/dist/runtime/components/AMnemonicLoginModal.vue +173 -0
  14. package/dist/runtime/components/AMnemonicLoginModal.vue.d.ts +35 -0
  15. package/dist/runtime/components/ANodePanel.d.vue.ts +29 -2
  16. package/dist/runtime/components/ANodePanel.vue +148 -27
  17. package/dist/runtime/components/ANodePanel.vue.d.ts +29 -2
  18. package/dist/runtime/components/ANodePanelHeader.d.vue.ts +64 -0
  19. package/dist/runtime/components/ANodePanelHeader.vue +105 -0
  20. package/dist/runtime/components/ANodePanelHeader.vue.d.ts +64 -0
  21. package/dist/runtime/components/ANodeSettingsPanel.d.vue.ts +49 -0
  22. package/dist/runtime/components/ANodeSettingsPanel.vue +59 -0
  23. package/dist/runtime/components/ANodeSettingsPanel.vue.d.ts +49 -0
  24. package/dist/runtime/components/ANotificationBell.d.vue.ts +26 -0
  25. package/dist/runtime/components/ANotificationBell.vue +55 -0
  26. package/dist/runtime/components/ANotificationBell.vue.d.ts +26 -0
  27. package/dist/runtime/components/AOfflineSync.d.vue.ts +11 -0
  28. package/dist/runtime/components/AOfflineSync.vue +217 -0
  29. package/dist/runtime/components/AOfflineSync.vue.d.ts +11 -0
  30. package/dist/runtime/components/ARecoveryPhraseDisplay.d.vue.ts +26 -0
  31. package/dist/runtime/components/ARecoveryPhraseDisplay.vue +94 -0
  32. package/dist/runtime/components/ARecoveryPhraseDisplay.vue.d.ts +26 -0
  33. package/dist/runtime/components/AServerInfoModal.d.vue.ts +43 -0
  34. package/dist/runtime/components/AServerInfoModal.vue +150 -0
  35. package/dist/runtime/components/AServerInfoModal.vue.d.ts +43 -0
  36. package/dist/runtime/components/ASpaceFormModal.vue +1 -1
  37. package/dist/runtime/components/aware/AAccordion.d.vue.ts +25 -0
  38. package/dist/runtime/components/aware/AAccordion.vue +107 -0
  39. package/dist/runtime/components/aware/AAccordion.vue.d.ts +25 -0
  40. package/dist/runtime/components/aware/AArea.vue +24 -11
  41. package/dist/runtime/components/aware/AAvatar.d.vue.ts +6 -0
  42. package/dist/runtime/components/aware/AAvatar.vue +33 -3
  43. package/dist/runtime/components/aware/AAvatar.vue.d.ts +6 -0
  44. package/dist/runtime/components/aware/AAvatarGroup.d.vue.ts +10 -0
  45. package/dist/runtime/components/aware/AAvatarGroup.vue +30 -0
  46. package/dist/runtime/components/aware/AAvatarGroup.vue.d.ts +10 -0
  47. package/dist/runtime/components/aware/AButton.d.vue.ts +4 -2
  48. package/dist/runtime/components/aware/AButton.vue +46 -14
  49. package/dist/runtime/components/aware/AButton.vue.d.ts +4 -2
  50. package/dist/runtime/components/aware/ACalendar.d.vue.ts +17 -0
  51. package/dist/runtime/components/aware/ACalendar.vue +145 -0
  52. package/dist/runtime/components/aware/ACalendar.vue.d.ts +17 -0
  53. package/dist/runtime/components/aware/ACarousel.d.vue.ts +25 -0
  54. package/dist/runtime/components/aware/ACarousel.vue +39 -0
  55. package/dist/runtime/components/aware/ACarousel.vue.d.ts +25 -0
  56. package/dist/runtime/components/aware/ACheckbox.d.vue.ts +11 -0
  57. package/dist/runtime/components/aware/ACheckbox.vue +74 -0
  58. package/dist/runtime/components/aware/ACheckbox.vue.d.ts +11 -0
  59. package/dist/runtime/components/aware/ACheckboxGroup.d.vue.ts +27 -0
  60. package/dist/runtime/components/aware/ACheckboxGroup.vue +79 -0
  61. package/dist/runtime/components/aware/ACheckboxGroup.vue.d.ts +27 -0
  62. package/dist/runtime/components/aware/ACollapsible.d.vue.ts +25 -0
  63. package/dist/runtime/components/aware/ACollapsible.vue +45 -0
  64. package/dist/runtime/components/aware/ACollapsible.vue.d.ts +25 -0
  65. package/dist/runtime/components/aware/AColorPicker.d.vue.ts +15 -0
  66. package/dist/runtime/components/aware/AColorPicker.vue +48 -0
  67. package/dist/runtime/components/aware/AColorPicker.vue.d.ts +15 -0
  68. package/dist/runtime/components/aware/ACommandPalette.d.vue.ts +33 -0
  69. package/dist/runtime/components/aware/ACommandPalette.vue +123 -0
  70. package/dist/runtime/components/aware/ACommandPalette.vue.d.ts +33 -0
  71. package/dist/runtime/components/aware/AContextMenu.d.vue.ts +25 -0
  72. package/dist/runtime/components/aware/AContextMenu.vue +63 -0
  73. package/dist/runtime/components/aware/AContextMenu.vue.d.ts +25 -0
  74. package/dist/runtime/components/aware/ADrawer.d.vue.ts +25 -0
  75. package/dist/runtime/components/aware/ADrawer.vue +57 -0
  76. package/dist/runtime/components/aware/ADrawer.vue.d.ts +25 -0
  77. package/dist/runtime/components/aware/ADropdownMenu.d.vue.ts +25 -0
  78. package/dist/runtime/components/aware/ADropdownMenu.vue +63 -0
  79. package/dist/runtime/components/aware/ADropdownMenu.vue.d.ts +25 -0
  80. package/dist/runtime/components/aware/AFileUpload.d.vue.ts +27 -0
  81. package/dist/runtime/components/aware/AFileUpload.vue +67 -0
  82. package/dist/runtime/components/aware/AFileUpload.vue.d.ts +27 -0
  83. package/dist/runtime/components/aware/AFollowBar.d.vue.ts +21 -0
  84. package/dist/runtime/components/aware/AFollowBar.vue +62 -0
  85. package/dist/runtime/components/aware/AFollowBar.vue.d.ts +21 -0
  86. package/dist/runtime/components/aware/AFollowScroll.d.vue.ts +7 -0
  87. package/dist/runtime/components/aware/AFollowScroll.vue +17 -0
  88. package/dist/runtime/components/aware/AFollowScroll.vue.d.ts +7 -0
  89. package/dist/runtime/components/aware/AFormSync.d.vue.ts +21 -0
  90. package/dist/runtime/components/aware/AFormSync.vue +52 -0
  91. package/dist/runtime/components/aware/AFormSync.vue.d.ts +21 -0
  92. package/dist/runtime/components/aware/AGlobalFocusLayer.d.vue.ts +3 -0
  93. package/dist/runtime/components/aware/AGlobalFocusLayer.vue +90 -0
  94. package/dist/runtime/components/aware/AGlobalFocusLayer.vue.d.ts +3 -0
  95. package/dist/runtime/components/aware/AHoverItem.d.vue.ts +27 -0
  96. package/dist/runtime/components/aware/AHoverItem.vue +124 -0
  97. package/dist/runtime/components/aware/AHoverItem.vue.d.ts +27 -0
  98. package/dist/runtime/components/aware/AInput.d.vue.ts +12 -2
  99. package/dist/runtime/components/aware/AInput.vue +72 -19
  100. package/dist/runtime/components/aware/AInput.vue.d.ts +12 -2
  101. package/dist/runtime/components/aware/AInputMenu.d.vue.ts +17 -0
  102. package/dist/runtime/components/aware/AInputMenu.vue +138 -0
  103. package/dist/runtime/components/aware/AInputMenu.vue.d.ts +17 -0
  104. package/dist/runtime/components/aware/AInputNumber.d.vue.ts +15 -0
  105. package/dist/runtime/components/aware/AInputNumber.vue +67 -0
  106. package/dist/runtime/components/aware/AInputNumber.vue.d.ts +15 -0
  107. package/dist/runtime/components/aware/AInputTags.d.vue.ts +15 -0
  108. package/dist/runtime/components/aware/AInputTags.vue +67 -0
  109. package/dist/runtime/components/aware/AInputTags.vue.d.ts +15 -0
  110. package/dist/runtime/components/aware/AKeyHint.d.vue.ts +3 -0
  111. package/dist/runtime/components/aware/AKeyHint.vue +23 -0
  112. package/dist/runtime/components/aware/AKeyHint.vue.d.ts +3 -0
  113. package/dist/runtime/components/aware/AMedia.d.vue.ts +19 -0
  114. package/dist/runtime/components/aware/AMedia.vue +85 -0
  115. package/dist/runtime/components/aware/AMedia.vue.d.ts +19 -0
  116. package/dist/runtime/components/aware/AModal.d.vue.ts +33 -0
  117. package/dist/runtime/components/aware/AModal.vue +110 -0
  118. package/dist/runtime/components/aware/AModal.vue.d.ts +33 -0
  119. package/dist/runtime/components/aware/ANavigationMenu.d.vue.ts +25 -0
  120. package/dist/runtime/components/aware/ANavigationMenu.vue +82 -0
  121. package/dist/runtime/components/aware/ANavigationMenu.vue.d.ts +25 -0
  122. package/dist/runtime/components/aware/APagination.d.vue.ts +13 -0
  123. package/dist/runtime/components/aware/APagination.vue +53 -0
  124. package/dist/runtime/components/aware/APagination.vue.d.ts +13 -0
  125. package/dist/runtime/components/aware/APeerCaretLayer.d.vue.ts +10 -0
  126. package/dist/runtime/components/aware/APeerCaretLayer.vue +133 -0
  127. package/dist/runtime/components/aware/APeerCaretLayer.vue.d.ts +10 -0
  128. package/dist/runtime/components/aware/APinInput.d.vue.ts +15 -0
  129. package/dist/runtime/components/aware/APinInput.vue +48 -0
  130. package/dist/runtime/components/aware/APinInput.vue.d.ts +15 -0
  131. package/dist/runtime/components/aware/APopover.d.vue.ts +25 -0
  132. package/dist/runtime/components/aware/APopover.vue +57 -0
  133. package/dist/runtime/components/aware/APopover.vue.d.ts +25 -0
  134. package/dist/runtime/components/aware/APresenceBlobs.d.vue.ts +3 -0
  135. package/dist/runtime/components/aware/APresenceBlobs.vue +69 -0
  136. package/dist/runtime/components/aware/APresenceBlobs.vue.d.ts +3 -0
  137. package/dist/runtime/components/aware/APresenceCursors.d.vue.ts +20 -0
  138. package/dist/runtime/components/aware/APresenceCursors.vue +47 -0
  139. package/dist/runtime/components/aware/APresenceCursors.vue.d.ts +20 -0
  140. package/dist/runtime/components/aware/ARadioGroup.d.vue.ts +27 -0
  141. package/dist/runtime/components/aware/ARadioGroup.vue +86 -0
  142. package/dist/runtime/components/aware/ARadioGroup.vue.d.ts +27 -0
  143. package/dist/runtime/components/aware/AScroll.d.vue.ts +25 -0
  144. package/dist/runtime/components/aware/AScroll.vue +87 -0
  145. package/dist/runtime/components/aware/AScroll.vue.d.ts +25 -0
  146. package/dist/runtime/components/aware/ASelect.d.vue.ts +12 -2
  147. package/dist/runtime/components/aware/ASelect.vue +146 -22
  148. package/dist/runtime/components/aware/ASelect.vue.d.ts +12 -2
  149. package/dist/runtime/components/aware/ASelectMenu.d.vue.ts +17 -0
  150. package/dist/runtime/components/aware/ASelectMenu.vue +139 -0
  151. package/dist/runtime/components/aware/ASelectMenu.vue.d.ts +17 -0
  152. package/dist/runtime/components/aware/ASlideover.d.vue.ts +33 -0
  153. package/dist/runtime/components/aware/ASlideover.vue +110 -0
  154. package/dist/runtime/components/aware/ASlideover.vue.d.ts +33 -0
  155. package/dist/runtime/components/aware/ASlider.d.vue.ts +19 -0
  156. package/dist/runtime/components/aware/ASlider.vue +77 -0
  157. package/dist/runtime/components/aware/ASlider.vue.d.ts +19 -0
  158. package/dist/runtime/components/aware/AStepper.d.vue.ts +25 -0
  159. package/dist/runtime/components/aware/AStepper.vue +82 -0
  160. package/dist/runtime/components/aware/AStepper.vue.d.ts +25 -0
  161. package/dist/runtime/components/aware/ASwitch.d.vue.ts +11 -0
  162. package/dist/runtime/components/aware/ASwitch.vue +75 -0
  163. package/dist/runtime/components/aware/ASwitch.vue.d.ts +11 -0
  164. package/dist/runtime/components/aware/ATable.d.vue.ts +23 -0
  165. package/dist/runtime/components/aware/ATable.vue +97 -0
  166. package/dist/runtime/components/aware/ATable.vue.d.ts +23 -0
  167. package/dist/runtime/components/aware/ATabs.d.vue.ts +27 -0
  168. package/dist/runtime/components/aware/ATabs.vue +128 -0
  169. package/dist/runtime/components/aware/ATabs.vue.d.ts +27 -0
  170. package/dist/runtime/components/aware/ATextarea.d.vue.ts +12 -2
  171. package/dist/runtime/components/aware/ATextarea.vue +72 -19
  172. package/dist/runtime/components/aware/ATextarea.vue.d.ts +12 -2
  173. package/dist/runtime/components/aware/AToggleGroup.d.vue.ts +27 -0
  174. package/dist/runtime/components/aware/AToggleGroup.vue +79 -0
  175. package/dist/runtime/components/aware/AToggleGroup.vue.d.ts +27 -0
  176. package/dist/runtime/components/aware/ATree.d.vue.ts +27 -0
  177. package/dist/runtime/components/aware/ATree.vue +111 -0
  178. package/dist/runtime/components/aware/ATree.vue.d.ts +27 -0
  179. package/dist/runtime/components/chat/AChatPanel.d.vue.ts +6 -6
  180. package/dist/runtime/components/chat/AChatPanel.vue.d.ts +6 -6
  181. package/dist/runtime/components/chat/ANodeChatPanel.d.vue.ts +42 -0
  182. package/dist/runtime/components/chat/ANodeChatPanel.vue +53 -0
  183. package/dist/runtime/components/chat/ANodeChatPanel.vue.d.ts +42 -0
  184. package/dist/runtime/components/docs/ADocsNavigation.d.vue.ts +155 -0
  185. package/dist/runtime/components/docs/ADocsNavigation.vue +154 -0
  186. package/dist/runtime/components/docs/ADocsNavigation.vue.d.ts +155 -0
  187. package/dist/runtime/components/docs/ADocsSearch.d.vue.ts +249 -0
  188. package/dist/runtime/components/docs/ADocsSearch.vue +187 -0
  189. package/dist/runtime/components/docs/ADocsSearch.vue.d.ts +249 -0
  190. package/dist/runtime/components/docs/ADocsSearchButton.d.vue.ts +253 -0
  191. package/dist/runtime/components/docs/ADocsSearchButton.vue +99 -0
  192. package/dist/runtime/components/docs/ADocsSearchButton.vue.d.ts +253 -0
  193. package/dist/runtime/components/docs/ADocsSurround.d.vue.ts +56 -0
  194. package/dist/runtime/components/docs/ADocsSurround.vue +68 -0
  195. package/dist/runtime/components/docs/ADocsSurround.vue.d.ts +56 -0
  196. package/dist/runtime/components/docs/ADocsToc.d.vue.ts +117 -0
  197. package/dist/runtime/components/docs/ADocsToc.vue +194 -0
  198. package/dist/runtime/components/docs/ADocsToc.vue.d.ts +117 -0
  199. package/dist/runtime/components/editor/ADocLinkPopover.vue +1 -5
  200. package/dist/runtime/components/editor/AEditorRedoButton.d.vue.ts +26 -0
  201. package/dist/runtime/components/editor/AEditorRedoButton.vue +38 -0
  202. package/dist/runtime/components/editor/AEditorRedoButton.vue.d.ts +26 -0
  203. package/dist/runtime/components/editor/AEditorUndoButton.d.vue.ts +26 -0
  204. package/dist/runtime/components/editor/AEditorUndoButton.vue +38 -0
  205. package/dist/runtime/components/editor/AEditorUndoButton.vue.d.ts +26 -0
  206. package/dist/runtime/components/editor/AIconPickerPopover.d.vue.ts +24 -0
  207. package/dist/runtime/components/editor/AIconPickerPopover.vue +113 -0
  208. package/dist/runtime/components/editor/AIconPickerPopover.vue.d.ts +24 -0
  209. package/dist/runtime/components/editor/ANodeInlineLabel.d.vue.ts +24 -0
  210. package/dist/runtime/components/editor/ANodeInlineLabel.vue +101 -0
  211. package/dist/runtime/components/editor/ANodeInlineLabel.vue.d.ts +24 -0
  212. package/dist/runtime/components/renderers/ADocLoadError.d.vue.ts +3 -0
  213. package/dist/runtime/components/renderers/ADocLoadError.vue +11 -0
  214. package/dist/runtime/components/renderers/ADocLoadError.vue.d.ts +3 -0
  215. package/dist/runtime/components/renderers/ADocLoadingSkeleton.d.vue.ts +3 -0
  216. package/dist/runtime/components/renderers/ADocLoadingSkeleton.vue +5 -0
  217. package/dist/runtime/components/renderers/ADocLoadingSkeleton.vue.d.ts +3 -0
  218. package/dist/runtime/components/renderers/AMediaRenderer.vue +1 -1
  219. package/dist/runtime/components/renderers/AOverviewRenderer.d.vue.ts +22 -0
  220. package/dist/runtime/components/renderers/AOverviewRenderer.vue +1041 -0
  221. package/dist/runtime/components/renderers/AOverviewRenderer.vue.d.ts +22 -0
  222. package/dist/runtime/components/renderers/AProseRenderer.d.vue.ts +23 -0
  223. package/dist/runtime/components/renderers/AProseRenderer.vue +31 -0
  224. package/dist/runtime/components/renderers/AProseRenderer.vue.d.ts +23 -0
  225. package/dist/runtime/components/renderers/ASheetsRenderer.client.d.vue.ts +19 -0
  226. package/dist/runtime/components/renderers/ASheetsRenderer.client.vue +865 -0
  227. package/dist/runtime/components/renderers/ASheetsRenderer.client.vue.d.ts +19 -0
  228. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.d.vue.ts +14 -0
  229. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue +45 -15
  230. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue.d.ts +14 -0
  231. package/dist/runtime/components/renderers/calendar/ACalendarDayView.d.vue.ts +15 -0
  232. package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue +93 -20
  233. package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue.d.ts +15 -0
  234. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.d.vue.ts +9 -0
  235. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue +31 -2
  236. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue.d.ts +9 -0
  237. package/dist/runtime/components/renderers/calendar/ACalendarToolbar.d.vue.ts +4 -4
  238. package/dist/runtime/components/renderers/calendar/ACalendarToolbar.vue.d.ts +4 -4
  239. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.d.vue.ts +15 -0
  240. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue +94 -21
  241. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue.d.ts +15 -0
  242. package/dist/runtime/components/renderers/media/MediaTransportBar.d.vue.ts +2 -2
  243. package/dist/runtime/components/renderers/media/MediaTransportBar.vue.d.ts +2 -2
  244. package/dist/runtime/components/renderers/sheets/ASheetsCell.d.vue.ts +45 -0
  245. package/dist/runtime/components/renderers/sheets/ASheetsCell.vue +123 -0
  246. package/dist/runtime/components/renderers/sheets/ASheetsCell.vue.d.ts +45 -0
  247. package/dist/runtime/components/renderers/sheets/ASheetsGrid.d.vue.ts +111 -0
  248. package/dist/runtime/components/renderers/sheets/ASheetsGrid.vue +737 -0
  249. package/dist/runtime/components/renderers/sheets/ASheetsGrid.vue.d.ts +111 -0
  250. package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.d.vue.ts +26 -0
  251. package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.vue +100 -0
  252. package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.vue.d.ts +26 -0
  253. package/dist/runtime/components/renderers/sheets/ASheetsToolbar.d.vue.ts +48 -0
  254. package/dist/runtime/components/renderers/sheets/ASheetsToolbar.vue +243 -0
  255. package/dist/runtime/components/renderers/sheets/ASheetsToolbar.vue.d.ts +48 -0
  256. package/dist/runtime/components/renderers/table/cells/ATableCellColor.d.vue.ts +1 -0
  257. package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue +13 -32
  258. package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue.d.ts +1 -0
  259. package/dist/runtime/components/renderers/timeline/ATimelineBar.d.vue.ts +6 -0
  260. package/dist/runtime/components/renderers/timeline/ATimelineBar.vue +34 -4
  261. package/dist/runtime/components/renderers/timeline/ATimelineBar.vue.d.ts +6 -0
  262. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.d.vue.ts +16 -0
  263. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue +14 -3
  264. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue.d.ts +16 -0
  265. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.d.vue.ts +13 -1
  266. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue +114 -47
  267. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue.d.ts +13 -1
  268. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.d.vue.ts +4 -0
  269. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue +21 -4
  270. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue.d.ts +4 -0
  271. package/dist/runtime/components/renderers/timeline/ATimelineToolbar.d.vue.ts +2 -2
  272. package/dist/runtime/components/renderers/timeline/ATimelineToolbar.vue.d.ts +2 -2
  273. package/dist/runtime/components/settings/ASettingsSpacesPanel.vue +7 -25
  274. package/dist/runtime/components/shell/ADocPanelSettings.d.vue.ts +34 -4
  275. package/dist/runtime/components/shell/ADocPanelSettings.vue +289 -2
  276. package/dist/runtime/components/shell/ADocPanelSettings.vue.d.ts +34 -4
  277. package/dist/runtime/components/shell/ASyncStatus.d.vue.ts +1 -1
  278. package/dist/runtime/components/shell/ASyncStatus.vue.d.ts +1 -1
  279. package/dist/runtime/components/shell/AUserMenu.d.vue.ts +2 -2
  280. package/dist/runtime/components/shell/AUserMenu.vue.d.ts +2 -2
  281. package/dist/runtime/components/shell/AWelcomeScreen.d.vue.ts +1 -1
  282. package/dist/runtime/components/shell/AWelcomeScreen.vue.d.ts +1 -1
  283. package/dist/runtime/composables/useAACaret.d.ts +29 -0
  284. package/dist/runtime/composables/useAACaret.js +64 -0
  285. package/dist/runtime/composables/useAAEphemeral.d.ts +32 -0
  286. package/dist/runtime/composables/useAAEphemeral.js +33 -0
  287. package/dist/runtime/composables/useAAField.d.ts +10 -2
  288. package/dist/runtime/composables/useAAField.js +31 -2
  289. package/dist/runtime/composables/useAAFieldValue.d.ts +26 -0
  290. package/dist/runtime/composables/useAAFieldValue.js +32 -0
  291. package/dist/runtime/composables/useAAFocus.d.ts +68 -0
  292. package/dist/runtime/composables/useAAFocus.js +174 -0
  293. package/dist/runtime/composables/useAAFollowAnchor.d.ts +25 -0
  294. package/dist/runtime/composables/useAAFollowAnchor.js +69 -0
  295. package/dist/runtime/composables/useAAFollowPeer.d.ts +29 -0
  296. package/dist/runtime/composables/useAAFollowPeer.js +75 -0
  297. package/dist/runtime/composables/useAAKey.d.ts +22 -0
  298. package/dist/runtime/composables/useAAKey.js +24 -0
  299. package/dist/runtime/composables/useAAPointer.d.ts +30 -0
  300. package/dist/runtime/composables/useAAPointer.js +53 -0
  301. package/dist/runtime/composables/useAAUIState.d.ts +29 -0
  302. package/dist/runtime/composables/useAAUIState.js +28 -0
  303. package/dist/runtime/composables/useAAViewport.d.ts +22 -0
  304. package/dist/runtime/composables/useAAViewport.js +50 -0
  305. package/dist/runtime/composables/useAbraAdmin.d.ts +54 -0
  306. package/dist/runtime/composables/useAbraAdmin.js +115 -0
  307. package/dist/runtime/composables/useAbracadabraAuth.d.ts +8 -0
  308. package/dist/runtime/composables/useAbracadabraAuth.js +8 -0
  309. package/dist/runtime/composables/useAggregatedPresence.d.ts +23 -0
  310. package/dist/runtime/composables/useAggregatedPresence.js +140 -0
  311. package/dist/runtime/composables/useChat.d.ts +16 -2
  312. package/dist/runtime/composables/useChat.js +257 -66
  313. package/dist/runtime/composables/useChatUsers.d.ts +2 -0
  314. package/dist/runtime/composables/useChatUsers.js +2 -1
  315. package/dist/runtime/composables/useDocLookup.d.ts +4 -0
  316. package/dist/runtime/composables/useDocLookup.js +25 -0
  317. package/dist/runtime/composables/useDocSnapshots.d.ts +79 -0
  318. package/dist/runtime/composables/useDocSnapshots.js +234 -0
  319. package/dist/runtime/composables/useDocsSearch.d.ts +24 -0
  320. package/dist/runtime/composables/useDocsSearch.js +34 -0
  321. package/dist/runtime/composables/useEditorDragHandle.d.ts +7 -0
  322. package/dist/runtime/composables/useEditorDragHandle.js +19 -1
  323. package/dist/runtime/composables/useEditorSuggestions.js +26 -1
  324. package/dist/runtime/composables/useEditorToolbar.js +9 -1
  325. package/dist/runtime/composables/useEmailVerification.d.ts +33 -0
  326. package/dist/runtime/composables/useEmailVerification.js +58 -0
  327. package/dist/runtime/composables/useIdentityDoc.js +0 -3
  328. package/dist/runtime/composables/useItemPresence.d.ts +47 -0
  329. package/dist/runtime/composables/useItemPresence.js +73 -0
  330. package/dist/runtime/composables/useResizableWidth.d.ts +24 -0
  331. package/dist/runtime/composables/useResizableWidth.js +87 -0
  332. package/dist/runtime/composables/useServerInfo.d.ts +17 -2
  333. package/dist/runtime/composables/useServerInfo.js +30 -6
  334. package/dist/runtime/composables/useServerSearch.d.ts +36 -0
  335. package/dist/runtime/composables/useServerSearch.js +91 -0
  336. package/dist/runtime/composables/useServerTrash.d.ts +67 -0
  337. package/dist/runtime/composables/useServerTrash.js +128 -0
  338. package/dist/runtime/composables/useSheetsClipboard.d.ts +42 -0
  339. package/dist/runtime/composables/useSheetsClipboard.js +109 -0
  340. package/dist/runtime/composables/useSheetsFormulas.d.ts +38 -0
  341. package/dist/runtime/composables/useSheetsFormulas.js +725 -0
  342. package/dist/runtime/composables/useSheetsSelection.d.ts +68 -0
  343. package/dist/runtime/composables/useSheetsSelection.js +390 -0
  344. package/dist/runtime/composables/useSheetsView.d.ts +31 -0
  345. package/dist/runtime/composables/useSheetsView.js +77 -0
  346. package/dist/runtime/composables/useSpaceConnections.d.ts +43 -0
  347. package/dist/runtime/composables/useSpaceConnections.js +72 -0
  348. package/dist/runtime/composables/useSpaces.d.ts +1 -3
  349. package/dist/runtime/composables/useSpaces.js +2 -5
  350. package/dist/runtime/composables/useTiptapHistory.d.ts +22 -0
  351. package/dist/runtime/composables/useTiptapHistory.js +12 -0
  352. package/dist/runtime/composables/useTreeExpansion.d.ts +28 -0
  353. package/dist/runtime/composables/useTreeExpansion.js +94 -0
  354. package/dist/runtime/composables/useYDoc.js +12 -1
  355. package/dist/runtime/extensions/button.d.ts +3 -0
  356. package/dist/runtime/extensions/button.js +62 -0
  357. package/dist/runtime/extensions/color-swatch.d.ts +2 -0
  358. package/dist/runtime/extensions/color-swatch.js +34 -0
  359. package/dist/runtime/extensions/diff.d.ts +2 -0
  360. package/dist/runtime/extensions/diff.js +40 -0
  361. package/dist/runtime/extensions/divider.d.ts +2 -0
  362. package/dist/runtime/extensions/divider.js +33 -0
  363. package/dist/runtime/extensions/doc-embed.js +2 -1
  364. package/dist/runtime/extensions/doc-link-drop.js +4 -4
  365. package/dist/runtime/extensions/doc-link.d.ts +12 -0
  366. package/dist/runtime/extensions/doc-link.js +60 -0
  367. package/dist/runtime/extensions/embed.d.ts +2 -0
  368. package/dist/runtime/extensions/embed.js +40 -0
  369. package/dist/runtime/extensions/figure.d.ts +2 -0
  370. package/dist/runtime/extensions/figure.js +49 -0
  371. package/dist/runtime/extensions/math.d.ts +15 -0
  372. package/dist/runtime/extensions/math.js +66 -0
  373. package/dist/runtime/extensions/progress.d.ts +2 -0
  374. package/dist/runtime/extensions/progress.js +43 -0
  375. package/dist/runtime/extensions/quote.d.ts +2 -0
  376. package/dist/runtime/extensions/quote.js +39 -0
  377. package/dist/runtime/extensions/spoiler.d.ts +2 -0
  378. package/dist/runtime/extensions/spoiler.js +36 -0
  379. package/dist/runtime/extensions/stat.d.ts +3 -0
  380. package/dist/runtime/extensions/stat.js +58 -0
  381. package/dist/runtime/extensions/video.d.ts +2 -0
  382. package/dist/runtime/extensions/video.js +40 -0
  383. package/dist/runtime/extensions/views/ButtonGroupView.d.vue.ts +4 -0
  384. package/dist/runtime/extensions/views/ButtonGroupView.vue +25 -0
  385. package/dist/runtime/extensions/views/ButtonGroupView.vue.d.ts +4 -0
  386. package/dist/runtime/extensions/views/ButtonView.d.vue.ts +4 -0
  387. package/dist/runtime/extensions/views/ButtonView.vue +171 -0
  388. package/dist/runtime/extensions/views/ButtonView.vue.d.ts +4 -0
  389. package/dist/runtime/extensions/views/ColorSwatchView.d.vue.ts +4 -0
  390. package/dist/runtime/extensions/views/ColorSwatchView.vue +134 -0
  391. package/dist/runtime/extensions/views/ColorSwatchView.vue.d.ts +4 -0
  392. package/dist/runtime/extensions/views/DiffView.d.vue.ts +4 -0
  393. package/dist/runtime/extensions/views/DiffView.vue +163 -0
  394. package/dist/runtime/extensions/views/DiffView.vue.d.ts +4 -0
  395. package/dist/runtime/extensions/views/DividerView.d.vue.ts +4 -0
  396. package/dist/runtime/extensions/views/DividerView.vue +40 -0
  397. package/dist/runtime/extensions/views/DividerView.vue.d.ts +4 -0
  398. package/dist/runtime/extensions/views/DocEmbedView.vue +18 -3
  399. package/dist/runtime/extensions/views/DocLinkView.d.vue.ts +4 -0
  400. package/dist/runtime/extensions/views/DocLinkView.vue +71 -0
  401. package/dist/runtime/extensions/views/DocLinkView.vue.d.ts +4 -0
  402. package/dist/runtime/extensions/views/EmbedView.d.vue.ts +4 -0
  403. package/dist/runtime/extensions/views/EmbedView.vue +166 -0
  404. package/dist/runtime/extensions/views/EmbedView.vue.d.ts +4 -0
  405. package/dist/runtime/extensions/views/FigureView.d.vue.ts +4 -0
  406. package/dist/runtime/extensions/views/FigureView.vue +122 -0
  407. package/dist/runtime/extensions/views/FigureView.vue.d.ts +4 -0
  408. package/dist/runtime/extensions/views/FileNodeView.vue +21 -24
  409. package/dist/runtime/extensions/views/MathBlockView.d.vue.ts +4 -0
  410. package/dist/runtime/extensions/views/MathBlockView.vue +151 -0
  411. package/dist/runtime/extensions/views/MathBlockView.vue.d.ts +4 -0
  412. package/dist/runtime/extensions/views/MathInlineView.d.vue.ts +4 -0
  413. package/dist/runtime/extensions/views/MathInlineView.vue +149 -0
  414. package/dist/runtime/extensions/views/MathInlineView.vue.d.ts +4 -0
  415. package/dist/runtime/extensions/views/MetaFieldView.vue +1129 -550
  416. package/dist/runtime/extensions/views/ProgressView.d.vue.ts +4 -0
  417. package/dist/runtime/extensions/views/ProgressView.vue +156 -0
  418. package/dist/runtime/extensions/views/ProgressView.vue.d.ts +4 -0
  419. package/dist/runtime/extensions/views/QuoteView.d.vue.ts +4 -0
  420. package/dist/runtime/extensions/views/QuoteView.vue +128 -0
  421. package/dist/runtime/extensions/views/QuoteView.vue.d.ts +4 -0
  422. package/dist/runtime/extensions/views/SpoilerView.d.vue.ts +4 -0
  423. package/dist/runtime/extensions/views/SpoilerView.vue +62 -0
  424. package/dist/runtime/extensions/views/SpoilerView.vue.d.ts +4 -0
  425. package/dist/runtime/extensions/views/StatGroupView.d.vue.ts +4 -0
  426. package/dist/runtime/extensions/views/StatGroupView.vue +25 -0
  427. package/dist/runtime/extensions/views/StatGroupView.vue.d.ts +4 -0
  428. package/dist/runtime/extensions/views/StatView.d.vue.ts +4 -0
  429. package/dist/runtime/extensions/views/StatView.vue +89 -0
  430. package/dist/runtime/extensions/views/StatView.vue.d.ts +4 -0
  431. package/dist/runtime/extensions/views/VideoView.d.vue.ts +4 -0
  432. package/dist/runtime/extensions/views/VideoView.vue +190 -0
  433. package/dist/runtime/extensions/views/VideoView.vue.d.ts +4 -0
  434. package/dist/runtime/locale.d.ts +133 -0
  435. package/dist/runtime/locale.js +121 -2
  436. package/dist/runtime/plugin-abracadabra.client.js +251 -38
  437. package/dist/runtime/plugin-abracadabra.server.js +0 -1
  438. package/dist/runtime/plugins/core.plugin.js +76 -4
  439. package/dist/runtime/server/plugins/abracadabra-service.js +4 -2
  440. package/dist/runtime/server/utils/rpcHandler.d.ts +74 -0
  441. package/dist/runtime/server/utils/rpcHandler.js +74 -0
  442. package/dist/runtime/server/utils/spaceManager.js +10 -9
  443. package/dist/runtime/theme/content/_shared.d.ts +6 -0
  444. package/dist/runtime/theme/content/_shared.js +6 -0
  445. package/dist/runtime/theme/content/content-navigation.d.ts +120 -0
  446. package/dist/runtime/theme/content/content-navigation.js +155 -0
  447. package/dist/runtime/theme/content/content-search-button.d.ts +16 -0
  448. package/dist/runtime/theme/content/content-search-button.js +15 -0
  449. package/dist/runtime/theme/content/content-search.d.ts +24 -0
  450. package/dist/runtime/theme/content/content-search.js +23 -0
  451. package/dist/runtime/theme/content/content-surround.d.ts +22 -0
  452. package/dist/runtime/theme/content/content-surround.js +23 -0
  453. package/dist/runtime/theme/content/content-toc.d.ts +84 -0
  454. package/dist/runtime/theme/content/content-toc.js +94 -0
  455. package/dist/runtime/theme/content/index.d.ts +5 -0
  456. package/dist/runtime/theme/content/index.js +5 -0
  457. package/dist/runtime/types.d.ts +63 -10
  458. package/dist/runtime/utils/awareRingStyle.d.ts +22 -0
  459. package/dist/runtime/utils/awareRingStyle.js +16 -0
  460. package/dist/runtime/utils/caretCoordinates.d.ts +41 -0
  461. package/dist/runtime/utils/caretCoordinates.js +126 -0
  462. package/dist/runtime/utils/content.d.ts +19 -0
  463. package/dist/runtime/utils/content.js +23 -0
  464. package/dist/runtime/utils/docReferenceEdges.js +1 -1
  465. package/dist/runtime/utils/docTypes.js +44 -13
  466. package/dist/runtime/utils/domPath.d.ts +42 -0
  467. package/dist/runtime/utils/domPath.js +89 -0
  468. package/dist/runtime/utils/loadKatex.d.ts +1 -0
  469. package/dist/runtime/utils/loadKatex.js +29 -0
  470. package/dist/runtime/utils/lucideIcons.d.ts +16 -0
  471. package/dist/runtime/utils/lucideIcons.js +451 -0
  472. package/dist/runtime/utils/time.d.ts +15 -0
  473. package/dist/runtime/utils/time.js +5 -0
  474. package/dist/types.d.mts +4 -0
  475. package/package.json +38 -20
@@ -0,0 +1,79 @@
1
+ /**
2
+ * useDocSnapshots
3
+ *
4
+ * CRUD over a document's snapshot history with paginated fetch and a
5
+ * derived "display items" view that collapses runs of consecutive
6
+ * auto-snapshots from the same author within a 30-min window into one
7
+ * cluster (manual / unload / shutdown / labelled snapshots stay
8
+ * individual). Keeps the side-panel timeline scannable while losing
9
+ * nothing.
10
+ *
11
+ * Mirrors the `cou-sh` implementation 1-to-1 — the cou-sh version is the
12
+ * source of truth (see project memory: nuxt-module-must-match-coush). If
13
+ * this composable drifts from cou-sh's, fix it back rather than
14
+ * "improving" it here.
15
+ *
16
+ * Usage:
17
+ * const docId = computed(() => route.params.id as string)
18
+ * const snaps = useDocSnapshots(docId)
19
+ * onMounted(() => snaps.fetchList())
20
+ */
21
+ import { type ComputedRef, type InjectionKey, type Ref } from 'vue';
22
+ import type { SnapshotMeta } from '@abraca/dabra';
23
+ import type { AbracadabraLocale } from '../locale.js';
24
+ export type DocSnapshotsCtx = ReturnType<typeof useDocSnapshots>;
25
+ export declare const DOC_SNAPSHOTS_KEY: InjectionKey<DocSnapshotsCtx>;
26
+ /** Trigger badge color, matching cou-sh's mapping exactly. */
27
+ export declare function triggerBadgeColor(trigger: string): 'primary' | 'neutral' | 'warning';
28
+ /**
29
+ * Trigger label key — consumers translate via their own i18n if they
30
+ * don't use `useAbraLocale`. Returns the dot-path key cou-sh uses.
31
+ */
32
+ export declare function triggerLabelKey(trigger: string): string;
33
+ /**
34
+ * Per-row item for the side-panel list. Auto runs collapse into a
35
+ * single `cluster` item; everything else stays as its own `snap`.
36
+ */
37
+ export type SnapshotDisplayItem = {
38
+ kind: 'snap';
39
+ snap: SnapshotMeta;
40
+ } | {
41
+ kind: 'cluster';
42
+ items: SnapshotMeta[];
43
+ firstAt: number;
44
+ lastAt: number;
45
+ createdBy: string | null;
46
+ };
47
+ export declare function useDocSnapshots(docId: Ref<string> | ComputedRef<string>, overrides?: Partial<AbracadabraLocale['snapshots']> | null): {
48
+ snapshots: Ref<{
49
+ version: number;
50
+ size_bytes: number;
51
+ trigger: string;
52
+ label?: string | null | undefined;
53
+ created_by?: string | null | undefined;
54
+ created_at: number;
55
+ file_count?: number | undefined;
56
+ delta_bytes?: number | null | undefined;
57
+ }[], SnapshotMeta[] | {
58
+ version: number;
59
+ size_bytes: number;
60
+ trigger: string;
61
+ label?: string | null | undefined;
62
+ created_by?: string | null | undefined;
63
+ created_at: number;
64
+ file_count?: number | undefined;
65
+ delta_bytes?: number | null | undefined;
66
+ }[]>;
67
+ displayItems: ComputedRef<SnapshotDisplayItem[]>;
68
+ loading: Ref<boolean, boolean>;
69
+ error: Ref<string | null, string | null>;
70
+ hasMore: Ref<boolean, boolean>;
71
+ creating: Ref<boolean, boolean>;
72
+ pending: Ref<Record<number, "delete" | "restore" | "fork" | undefined>, Record<number, "delete" | "restore" | "fork" | undefined>>;
73
+ fetchList: () => Promise<void>;
74
+ loadMore: () => Promise<void>;
75
+ create: (label?: string) => Promise<void>;
76
+ remove: (version: number) => Promise<void>;
77
+ restore: (version: number) => Promise<void>;
78
+ fork: (version: number) => Promise<void>;
79
+ };
@@ -0,0 +1,234 @@
1
+ import { computed, ref } from "vue";
2
+ import { useToast, useRouter } from "#imports";
3
+ import { useAbracadabra } from "./useAbracadabra.js";
4
+ import { useAbraLocale } from "./useAbraLocale.js";
5
+ export const DOC_SNAPSHOTS_KEY = Symbol("doc-snapshots");
6
+ export function triggerBadgeColor(trigger) {
7
+ switch (trigger) {
8
+ case "manual":
9
+ return "primary";
10
+ case "unload":
11
+ case "shutdown":
12
+ return "warning";
13
+ default:
14
+ return "neutral";
15
+ }
16
+ }
17
+ export function triggerLabelKey(trigger) {
18
+ switch (trigger) {
19
+ case "manual":
20
+ return "docPanel.snapshots.triggerManual";
21
+ case "auto":
22
+ return "docPanel.snapshots.triggerAuto";
23
+ case "unload":
24
+ return "docPanel.snapshots.triggerUnload";
25
+ case "shutdown":
26
+ return "docPanel.snapshots.triggerShutdown";
27
+ default:
28
+ return "";
29
+ }
30
+ }
31
+ const PAGE_SIZE = 20;
32
+ const CLUSTER_WINDOW_S = 30 * 60;
33
+ function errMessage(e) {
34
+ return e instanceof Error ? e.message : String(e);
35
+ }
36
+ function applyTemplate(tmpl, vars) {
37
+ return tmpl.replace(/\{(\w+)\}/g, (_, k) => String(vars[k] ?? ""));
38
+ }
39
+ export function useDocSnapshots(docId, overrides) {
40
+ const { client } = useAbracadabra();
41
+ const locale = useAbraLocale("snapshots", overrides);
42
+ const toast = useToast();
43
+ const router = useRouter();
44
+ const snapshots = ref([]);
45
+ const loading = ref(false);
46
+ const error = ref(null);
47
+ const hasMore = ref(false);
48
+ const creating = ref(false);
49
+ const pending = ref({});
50
+ const displayItems = computed(() => {
51
+ const result = [];
52
+ const arr = snapshots.value;
53
+ let i = 0;
54
+ while (i < arr.length) {
55
+ const cur = arr[i];
56
+ if (cur.trigger !== "auto") {
57
+ result.push({ kind: "snap", snap: cur });
58
+ i++;
59
+ continue;
60
+ }
61
+ const cluster = [cur];
62
+ let j = i + 1;
63
+ while (j < arr.length) {
64
+ const nxt = arr[j];
65
+ if (nxt.trigger !== "auto") break;
66
+ if ((nxt.created_by ?? null) !== (cur.created_by ?? null)) break;
67
+ const last = cluster[cluster.length - 1];
68
+ if (Math.abs(last.created_at - nxt.created_at) > CLUSTER_WINDOW_S) break;
69
+ cluster.push(nxt);
70
+ j++;
71
+ }
72
+ if (cluster.length === 1) {
73
+ result.push({ kind: "snap", snap: cur });
74
+ } else {
75
+ const ts = cluster.map((c) => c.created_at);
76
+ result.push({
77
+ kind: "cluster",
78
+ items: cluster,
79
+ firstAt: Math.min(...ts),
80
+ lastAt: Math.max(...ts),
81
+ createdBy: cur.created_by ?? null
82
+ });
83
+ }
84
+ i = j;
85
+ }
86
+ return result;
87
+ });
88
+ async function fetchList() {
89
+ if (!docId.value) return;
90
+ if (!client.value) {
91
+ snapshots.value = [];
92
+ return;
93
+ }
94
+ loading.value = true;
95
+ error.value = null;
96
+ try {
97
+ const res = await client.value.listSnapshots(docId.value, { limit: PAGE_SIZE + 1 });
98
+ hasMore.value = res.length > PAGE_SIZE;
99
+ snapshots.value = res.slice(0, PAGE_SIZE);
100
+ } catch (e) {
101
+ error.value = errMessage(e);
102
+ snapshots.value = [];
103
+ } finally {
104
+ loading.value = false;
105
+ }
106
+ }
107
+ async function loadMore() {
108
+ if (!client.value || !docId.value || !hasMore.value || loading.value) return;
109
+ loading.value = true;
110
+ try {
111
+ const res = await client.value.listSnapshots(docId.value, {
112
+ limit: PAGE_SIZE + 1,
113
+ offset: snapshots.value.length
114
+ });
115
+ hasMore.value = res.length > PAGE_SIZE;
116
+ snapshots.value = [...snapshots.value, ...res.slice(0, PAGE_SIZE)];
117
+ } catch (e) {
118
+ toast.add({ title: locale.failed, description: errMessage(e), color: "error" });
119
+ } finally {
120
+ loading.value = false;
121
+ }
122
+ }
123
+ async function create(label) {
124
+ if (!client.value || !docId.value) return;
125
+ creating.value = true;
126
+ try {
127
+ const res = await client.value.createSnapshot(docId.value, label ? { label } : void 0);
128
+ toast.add({
129
+ title: locale.createdTitle,
130
+ description: applyTemplate(locale.createdDesc, { version: res.version }),
131
+ color: "success"
132
+ });
133
+ await fetchList();
134
+ } catch (e) {
135
+ toast.add({
136
+ title: locale.createFailed,
137
+ description: errMessage(e),
138
+ color: "error"
139
+ });
140
+ } finally {
141
+ creating.value = false;
142
+ }
143
+ }
144
+ async function remove(version) {
145
+ if (!client.value || !docId.value) return;
146
+ pending.value[version] = "delete";
147
+ try {
148
+ await client.value.deleteSnapshot(docId.value, version);
149
+ toast.add({
150
+ title: locale.deletedTitle,
151
+ description: applyTemplate(locale.deletedDesc, { version }),
152
+ color: "success"
153
+ });
154
+ await fetchList();
155
+ } catch (e) {
156
+ toast.add({
157
+ title: locale.deleteFailed,
158
+ description: errMessage(e),
159
+ color: "error"
160
+ });
161
+ } finally {
162
+ pending.value[version] = void 0;
163
+ }
164
+ }
165
+ async function restore(version) {
166
+ if (!client.value || !docId.value) return;
167
+ pending.value[version] = "restore";
168
+ try {
169
+ const res = await client.value.restoreSnapshot(docId.value, version);
170
+ toast.add({
171
+ title: locale.restoredTitle,
172
+ description: applyTemplate(locale.restoredDesc, {
173
+ version: res.restored_from,
174
+ bytes: res.diff_bytes
175
+ }),
176
+ color: "success"
177
+ });
178
+ } catch (e) {
179
+ toast.add({
180
+ title: locale.restoreFailed,
181
+ description: errMessage(e),
182
+ color: "error"
183
+ });
184
+ } finally {
185
+ pending.value[version] = void 0;
186
+ }
187
+ }
188
+ async function fork(version) {
189
+ if (!client.value || !docId.value) return;
190
+ pending.value[version] = "fork";
191
+ try {
192
+ const res = await client.value.forkSnapshot(docId.value, version);
193
+ toast.add({
194
+ title: locale.forkedTitle,
195
+ description: applyTemplate(locale.forkedDesc, { version }),
196
+ color: "success",
197
+ actions: [{
198
+ label: locale.openFork,
199
+ color: "neutral",
200
+ variant: "outline",
201
+ onClick: (e) => {
202
+ e?.stopPropagation();
203
+ router.push(`/doc/${res.doc_id}`);
204
+ }
205
+ }]
206
+ });
207
+ } catch (e) {
208
+ toast.add({
209
+ title: locale.forkFailed,
210
+ description: errMessage(e),
211
+ color: "error"
212
+ });
213
+ } finally {
214
+ pending.value[version] = void 0;
215
+ }
216
+ }
217
+ return {
218
+ // State
219
+ snapshots,
220
+ displayItems,
221
+ loading,
222
+ error,
223
+ hasMore,
224
+ creating,
225
+ pending,
226
+ // Actions
227
+ fetchList,
228
+ loadMore,
229
+ create,
230
+ remove,
231
+ restore,
232
+ fork
233
+ };
234
+ }
@@ -0,0 +1,24 @@
1
+ import type { ContentNavigationItem } from '../utils/content.js';
2
+ export interface DocsSearchFile {
3
+ id: string;
4
+ title: string;
5
+ titles: string[];
6
+ content: string;
7
+ level: number;
8
+ }
9
+ export interface DocsSearchItem {
10
+ prefix?: string;
11
+ label: string;
12
+ suffix: string;
13
+ to: string;
14
+ icon?: string;
15
+ level: number;
16
+ }
17
+ declare function _useDocsSearch(): {
18
+ open: import("vue").Ref<boolean, boolean>;
19
+ mapFile: (file: DocsSearchFile, link: ContentNavigationItem, parent?: ContentNavigationItem) => DocsSearchItem;
20
+ mapNavigationItems: (children: ContentNavigationItem[], files: DocsSearchFile[], parent?: ContentNavigationItem) => DocsSearchItem[];
21
+ postFilter: (query: string, items: DocsSearchItem[]) => DocsSearchItem[];
22
+ };
23
+ export declare const useDocsSearch: typeof _useDocsSearch;
24
+ export {};
@@ -0,0 +1,34 @@
1
+ import { ref } from "vue";
2
+ import { createSharedComposable } from "@vueuse/core";
3
+ import { useAppConfig } from "#imports";
4
+ function _useDocsSearch() {
5
+ const open = ref(false);
6
+ const appConfig = useAppConfig();
7
+ function mapFile(file, link, parent) {
8
+ const prefix = [...new Set([parent?.title, ...file.titles].filter(Boolean))];
9
+ return {
10
+ prefix: prefix?.length ? prefix.join(" > ") + " >" : void 0,
11
+ label: file.id === link.path ? link.title : file.title,
12
+ suffix: file.content.replaceAll("<", "&lt;").replaceAll(">", "&gt;"),
13
+ to: file.id,
14
+ icon: link.icon || parent?.icon || (file.level > 1 ? appConfig.ui.icons.hash : appConfig.ui.icons.file),
15
+ level: file.level
16
+ };
17
+ }
18
+ function mapNavigationItems(children, files, parent) {
19
+ return children.flatMap((link) => {
20
+ if (link.children?.length) {
21
+ return mapNavigationItems(link.children, files, link);
22
+ }
23
+ return files?.filter((file) => file.id === link.path || file.id.startsWith(`${link.path}#`))?.map((file) => mapFile(file, link, parent)) || [];
24
+ });
25
+ }
26
+ function postFilter(query, items) {
27
+ if (!query) {
28
+ return items?.filter((item) => item.level === 1);
29
+ }
30
+ return items;
31
+ }
32
+ return { open, mapFile, mapNavigationItems, postFilter };
33
+ }
34
+ export const useDocsSearch = /* @__PURE__ */ createSharedComposable(_useDocsSearch);
@@ -9,6 +9,13 @@ export declare function useEditorDragHandle(pageConfig?: {
9
9
  }>;
10
10
  onChangePageType?: (typeKey: string) => void;
11
11
  onInsertDocLink?: () => void;
12
+ /**
13
+ * Optional callback for "Create child document" — apps that own a doc-tree
14
+ * implement this to spawn a new child under the current node and (usually)
15
+ * link to it from the editor. Called with no args; the consumer reads the
16
+ * editor's current selection from its own state.
17
+ */
18
+ onCreateChildDoc?: () => void;
12
19
  }): {
13
20
  selectedNode: import("vue").Ref<{
14
21
  node: JSONContent | null;
@@ -29,6 +29,9 @@ export function useEditorDragHandle(pageConfig) {
29
29
  { label: "Heading 1", icon: "i-lucide-heading-1", onSelect: () => editor.chain().focus().toggleHeading({ level: 1 }).run() },
30
30
  { label: "Heading 2", icon: "i-lucide-heading-2", onSelect: () => editor.chain().focus().toggleHeading({ level: 2 }).run() },
31
31
  { label: "Heading 3", icon: "i-lucide-heading-3", onSelect: () => editor.chain().focus().toggleHeading({ level: 3 }).run() },
32
+ { label: "Heading 4", icon: "i-lucide-heading-4", onSelect: () => editor.chain().focus().toggleHeading({ level: 4 }).run() },
33
+ { label: "Heading 5", icon: "i-lucide-heading-5", onSelect: () => editor.chain().focus().toggleHeading({ level: 5 }).run() },
34
+ { label: "Heading 6", icon: "i-lucide-heading-6", onSelect: () => editor.chain().focus().toggleHeading({ level: 6 }).run() },
32
35
  { label: "Bullet List", icon: "i-lucide-list", onSelect: () => editor.chain().focus().toggleBulletList().run() },
33
36
  { label: "Ordered List", icon: "i-lucide-list-ordered", onSelect: () => editor.chain().focus().toggleOrderedList().run() },
34
37
  { label: "Task List", icon: "i-lucide-list-check", onSelect: () => editor.chain().focus().toggleTaskList().run() },
@@ -131,7 +134,22 @@ export function useEditorDragHandle(pageConfig) {
131
134
  label: "Insert doc link",
132
135
  icon: "i-lucide-file-symlink",
133
136
  onSelect: () => pageConfig.onInsertDocLink()
134
- }] : []
137
+ }] : [],
138
+ ...pageConfig?.onCreateChildDoc ? [{
139
+ label: "Create child document",
140
+ icon: "i-lucide-file-plus",
141
+ onSelect: () => pageConfig.onCreateChildDoc()
142
+ }] : [],
143
+ {
144
+ label: "Reset formatting",
145
+ icon: "i-lucide-eraser",
146
+ onSelect: () => {
147
+ if (pos === void 0) return;
148
+ const node = editor.state.doc.nodeAt(pos);
149
+ if (!node) return;
150
+ editor.chain().focus().setTextSelection({ from: pos, to: pos + node.nodeSize }).clearNodes().unsetAllMarks().run();
151
+ }
152
+ }
135
153
  ],
136
154
  [
137
155
  {
@@ -1,8 +1,17 @@
1
1
  import { computed } from "vue";
2
+ import { useRuntimeConfig } from "#imports";
2
3
  import { META_FIELD_DEFINITIONS } from "../utils/metaFieldDefinitions.js";
3
4
  import { usePluginRegistry } from "./usePluginRegistry.js";
4
5
  export function useEditorSuggestions(options = {}) {
5
6
  const registry = usePluginRegistry();
7
+ const disabledBuiltins = computed(() => {
8
+ try {
9
+ return useRuntimeConfig().public?.abracadabra?.disabledBuiltins ?? [];
10
+ } catch {
11
+ return [];
12
+ }
13
+ });
14
+ const extEnabled = (name) => !disabledBuiltins.value.includes(name);
6
15
  const items = computed(() => {
7
16
  const ctx = { docId: options.docId ?? "" };
8
17
  const base = options.onlyPlugins ? [] : [
@@ -47,7 +56,23 @@ export function useEditorSuggestions(options = {}) {
47
56
  { kind: "codeGroup", label: "Code Group", icon: "i-lucide-folder-code", description: "Tabbed code blocks", keywords: ["code", "multi", "language"] },
48
57
  { kind: "codePreview", label: "Code Preview", icon: "i-lucide-eye", description: "Live code with preview", keywords: ["demo", "preview", "live"] },
49
58
  { kind: "codeTree", label: "Code Tree", icon: "i-lucide-folder-tree", description: "File tree visualization", keywords: ["files", "directory", "structure"] },
50
- { kind: "fieldGroup", label: "Field Group", icon: "i-lucide-rows-3", description: "Group of form fields", keywords: ["form", "fields", "properties", "meta"] }
59
+ { kind: "fieldGroup", label: "Field Group", icon: "i-lucide-rows-3", description: "Group of form fields", keywords: ["form", "fields", "properties", "meta"] },
60
+ // Optional built-ins — filtered out when listed in disabledBuiltins.
61
+ ...extEnabled("divider") ? [{ kind: "divider", label: "Labelled Divider", icon: "i-lucide-separator-horizontal", description: "Section divider with optional label", keywords: ["line", "separator", "section"] }] : [],
62
+ ...extEnabled("quote") ? [{ kind: "quote", label: "Quote", icon: "i-lucide-quote", description: "Quoted text with author and avatar", keywords: ["blockquote", "citation", "testimonial"] }] : [],
63
+ ...extEnabled("figure") ? [{ kind: "figure", label: "Figure", icon: "i-lucide-image", description: "Image with caption", keywords: ["image", "picture", "photo", "caption"] }] : [],
64
+ ...extEnabled("embed") ? [{ kind: "embed", label: "Embed", icon: "i-lucide-code-xml", description: "iframe embed (CodePen, Figma, \u2026)", keywords: ["iframe", "codepen", "figma", "tweet"] }] : [],
65
+ ...extEnabled("video") ? [{ kind: "video", label: "Video", icon: "i-lucide-play-circle", description: "YouTube, Vimeo, or self-hosted video", keywords: ["youtube", "vimeo", "mp4", "movie"] }] : [],
66
+ ...extEnabled("stat") ? [{ kind: "stat", label: "Stat", icon: "i-lucide-chart-no-axes-column", description: "KPI display with label, value, and trend", keywords: ["metric", "kpi", "number", "dashboard"] }] : [],
67
+ ...extEnabled("statGroup") ? [{ kind: "statGroup", label: "Stat Group", icon: "i-lucide-grid-2x2", description: "Grid of three KPI stats", keywords: ["metrics", "kpi", "dashboard"] }] : [],
68
+ ...extEnabled("button") ? [{ kind: "button", label: "Button", icon: "i-lucide-mouse-pointer-click", description: "Call-to-action button with link", keywords: ["cta", "link", "action"] }] : [],
69
+ ...extEnabled("buttonGroup") ? [{ kind: "buttonGroup", label: "Button Group", icon: "i-lucide-square-mouse-pointer", description: "Two paired buttons", keywords: ["cta", "actions", "paired"] }] : [],
70
+ ...extEnabled("progress") ? [{ kind: "progress", label: "Progress Bar", icon: "i-lucide-bar-chart-horizontal", description: "Labeled progress bar", keywords: ["bar", "completion", "percent"] }] : [],
71
+ ...extEnabled("spoiler") ? [{ kind: "spoiler", label: "Spoiler", icon: "i-lucide-eye-off", description: "Hide-and-reveal block", keywords: ["hide", "collapse", "spoiler"] }] : [],
72
+ ...extEnabled("colorSwatch") ? [{ kind: "colorSwatch", label: "Color Swatch", icon: "i-lucide-palette", description: "Inline color chip with picker", keywords: ["color", "swatch", "token", "palette"] }] : [],
73
+ ...extEnabled("mathBlock") ? [{ kind: "mathBlock", label: "Math (block)", icon: "i-lucide-square-sigma", description: "Display-mode LaTeX equation", keywords: ["katex", "latex", "equation", "formula", "math"] }] : [],
74
+ ...extEnabled("mathInline") ? [{ kind: "mathInline", label: "Math (inline)", icon: "i-lucide-sigma", description: "Inline LaTeX expression", keywords: ["katex", "latex", "inline math"] }] : [],
75
+ ...extEnabled("diff") ? [{ kind: "diff", label: "Diff", icon: "i-lucide-git-compare", description: "Side-by-side text diff", keywords: ["compare", "changes", "git"] }] : []
51
76
  ]
52
77
  ];
53
78
  try {
@@ -43,7 +43,15 @@ export function useEditorToolbar(options = {}) {
43
43
  { kind: "mark", mark: "strike", icon: "i-lucide-strikethrough", tooltip: { text: "Strikethrough" } },
44
44
  { kind: "mark", mark: "code", icon: "i-lucide-code", tooltip: { text: "Inline code" } }
45
45
  ], [
46
- { kind: "mark", mark: "link", icon: "i-lucide-link", tooltip: { text: "Link" } }
46
+ // Slot-based items UEditorToolbar renders whatever the consumer
47
+ // supplies via <template #link>, <template #doc-link>, etc. AEditor
48
+ // provides defaults for `link` and `doc-link` (the popover primitives);
49
+ // `create-child-doc` and `send-to-chat` render nothing unless the
50
+ // consuming app fills the slot.
51
+ { slot: "link" },
52
+ { slot: "doc-link" },
53
+ { slot: "create-child-doc" },
54
+ { slot: "send-to-chat" }
47
55
  ]];
48
56
  try {
49
57
  const pluginGroups = registry.getAllToolbarItems(ctx);
@@ -0,0 +1,33 @@
1
+ /**
2
+ * useEmailVerification
3
+ *
4
+ * Wraps the email-verification half of the auth lifecycle.
5
+ * - `request()` triggers a verification email (rate-limited 1/min, 10/day).
6
+ * - `confirm(token)` consumes the token from the email link; no auth needed.
7
+ *
8
+ * `verified` mirrors the most recent local result of `confirm()` — the
9
+ * server doesn't currently expose `email_verified_at` on `getMe()`, so
10
+ * the canonical signal is "did `confirm()` succeed in this session".
11
+ *
12
+ * Usage:
13
+ * const { verified, isRequesting, isConfirming, error, request, confirm } = useEmailVerification()
14
+ */
15
+ declare function request(): Promise<void>;
16
+ declare function confirm(token: string): Promise<void>;
17
+ export declare function useEmailVerification(): {
18
+ /** True after a successful `confirm()` in the current session. */
19
+ verified: import("vue").Ref<boolean, boolean>;
20
+ /** Whether a `request()` is in flight. */
21
+ isRequesting: import("vue").Ref<boolean, boolean>;
22
+ /** Whether a `confirm()` is in flight. */
23
+ isConfirming: import("vue").Ref<boolean, boolean>;
24
+ /** Last error message, or null. */
25
+ error: import("vue").Ref<string | null, string | null>;
26
+ /** Epoch ms of the last successful `request()`, or null. */
27
+ lastSentAt: import("vue").Ref<number | null, number | null>;
28
+ /** Send a verification email to the current user. Requires auth. */
29
+ request: typeof request;
30
+ /** Confirm a verification token from the email link. No auth required. */
31
+ confirm: typeof confirm;
32
+ };
33
+ export {};
@@ -0,0 +1,58 @@
1
+ import { ref } from "vue";
2
+ import { useAbracadabra } from "#imports";
3
+ const verified = ref(false);
4
+ const isRequesting = ref(false);
5
+ const isConfirming = ref(false);
6
+ const error = ref(null);
7
+ const lastSentAt = ref(null);
8
+ async function request() {
9
+ const abra = useAbracadabra();
10
+ const client = abra.client.value;
11
+ if (!client) throw new Error("Not connected");
12
+ isRequesting.value = true;
13
+ error.value = null;
14
+ try {
15
+ await client.requestEmailVerification();
16
+ lastSentAt.value = Date.now();
17
+ } catch (e) {
18
+ error.value = e instanceof Error ? e.message : "Failed to send verification email";
19
+ throw e;
20
+ } finally {
21
+ isRequesting.value = false;
22
+ }
23
+ }
24
+ async function confirm(token) {
25
+ const abra = useAbracadabra();
26
+ const client = abra.client.value;
27
+ if (!client) throw new Error("Not connected");
28
+ isConfirming.value = true;
29
+ error.value = null;
30
+ try {
31
+ await client.confirmEmailVerification(token);
32
+ verified.value = true;
33
+ } catch (e) {
34
+ error.value = e instanceof Error ? e.message : "Verification failed";
35
+ verified.value = false;
36
+ throw e;
37
+ } finally {
38
+ isConfirming.value = false;
39
+ }
40
+ }
41
+ export function useEmailVerification() {
42
+ return {
43
+ /** True after a successful `confirm()` in the current session. */
44
+ verified,
45
+ /** Whether a `request()` is in flight. */
46
+ isRequesting,
47
+ /** Whether a `confirm()` is in flight. */
48
+ isConfirming,
49
+ /** Last error message, or null. */
50
+ error,
51
+ /** Epoch ms of the last successful `request()`, or null. */
52
+ lastSentAt,
53
+ /** Send a verification email to the current user. Requires auth. */
54
+ request,
55
+ /** Confirm a verification token from the email link. No auth required. */
56
+ confirm
57
+ };
58
+ }
@@ -71,9 +71,7 @@ function _migrateFromLocalStorage(provider) {
71
71
  const { Y: YModule } = provider;
72
72
  const entry = new YModule.Map();
73
73
  entry.set("label", server.label);
74
- if (server.hubDocId) entry.set("hubDocId", server.hubDocId);
75
74
  if (server.entryDocId) entry.set("entryDocId", server.entryDocId);
76
- if (server.spacesEnabled) entry.set("spacesEnabled", server.spacesEnabled);
77
75
  entry.set("addedAt", Date.now());
78
76
  serversMap.set(server.url, entry);
79
77
  }
@@ -96,7 +94,6 @@ function _migrateFromLocalStorage(provider) {
96
94
  yMap.set("docId", space.docId);
97
95
  if (space.remoteSpaceId) yMap.set("remoteSpaceId", space.remoteSpaceId);
98
96
  yMap.set("visibility", space.visibility);
99
- yMap.set("isHub", space.isHub);
100
97
  yMap.set("order", space.order);
101
98
  if (space.lastSyncedAt) yMap.set("lastSyncedAt", space.lastSyncedAt);
102
99
  yMap.set("createdAt", space.createdAt);
@@ -0,0 +1,47 @@
1
+ import { type Ref, type MaybeRefOrGetter } from 'vue';
2
+ export interface PresenceUser {
3
+ name: string;
4
+ color: string;
5
+ publicKey?: string;
6
+ clientId: number;
7
+ }
8
+ /**
9
+ * Renderer-facing helper for "who is currently viewing this item" indicators.
10
+ *
11
+ * Derives a `docId → users` map from awareness states (both `state.docId`
12
+ * for full-page navigation and `state.viewingDocId` for slideover-opened
13
+ * docs), so a user with a side panel open shows up on both the parent doc
14
+ * and the panel doc.
15
+ *
16
+ * Renderers iterate their items and call `getViewers(item.id)` to render
17
+ * avatars and a viewing-style accent. Hover-style accents remain
18
+ * renderer-local; viewing is always sourced from this shared map so it
19
+ * stays consistent across renderers.
20
+ *
21
+ * Ported from cou-sh/app/composables/useItemPresence.ts. The cou-sh version
22
+ * aggregates across all connected `useSpaceConnections` providers; this
23
+ * single-space port reads from the active provider only. Multi-space
24
+ * aggregation is deferred until `useAggregatedPresence` /
25
+ * `useSpaceConnections` are ported (~1200 LOC, see _NEXT_ROUND_BLOCKERS.md).
26
+ */
27
+ export declare function useItemPresence(): {
28
+ getViewers: (itemId: string | undefined | null) => PresenceUser[];
29
+ viewingColor: (itemId: string | undefined | null) => string | null;
30
+ viewingBorderLeft: (itemId: string | undefined | null) => {
31
+ borderLeft: string;
32
+ } | undefined;
33
+ viewingRingStyle: (itemId: string | undefined | null) => {
34
+ boxShadow: string;
35
+ outline: string;
36
+ } | undefined;
37
+ docPresence: import("vue").ComputedRef<Map<string, PresenceUser[]>>;
38
+ };
39
+ /**
40
+ * Broadcasts "this user has a slideover open on `nodeId`" to the active
41
+ * provider's awareness, where it lands on `state.viewingDocId`. This is the
42
+ * write-side counterpart to `useItemPresence().getViewers()`.
43
+ *
44
+ * Single-space port: writes only to the current provider's awareness. The
45
+ * cou-sh version routes by `spaceId` lookup across multi-space connections.
46
+ */
47
+ export declare function useViewingBroadcast(parentDocIdRef: MaybeRefOrGetter<string>, openNodeId: Ref<string | null>): void;