@abraca/nuxt 1.9.1 → 2.0.1

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 (440) hide show
  1. package/dist/module.d.mts +4 -3
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +9 -1
  4. package/dist/runtime/components/ADocumentTree.vue +1 -1
  5. package/dist/runtime/components/AEditor.d.vue.ts +26 -1
  6. package/dist/runtime/components/AEditor.vue +158 -4
  7. package/dist/runtime/components/AEditor.vue.d.ts +26 -1
  8. package/dist/runtime/components/AIdentityModal.d.vue.ts +46 -0
  9. package/dist/runtime/components/AIdentityModal.vue +157 -0
  10. package/dist/runtime/components/AIdentityModal.vue.d.ts +46 -0
  11. package/dist/runtime/components/AMnemonicLoginModal.d.vue.ts +35 -0
  12. package/dist/runtime/components/AMnemonicLoginModal.vue +173 -0
  13. package/dist/runtime/components/AMnemonicLoginModal.vue.d.ts +35 -0
  14. package/dist/runtime/components/ANodePanel.d.vue.ts +29 -2
  15. package/dist/runtime/components/ANodePanel.vue +148 -27
  16. package/dist/runtime/components/ANodePanel.vue.d.ts +29 -2
  17. package/dist/runtime/components/ANodePanelHeader.d.vue.ts +64 -0
  18. package/dist/runtime/components/ANodePanelHeader.vue +105 -0
  19. package/dist/runtime/components/ANodePanelHeader.vue.d.ts +64 -0
  20. package/dist/runtime/components/ANodeSettingsPanel.d.vue.ts +49 -0
  21. package/dist/runtime/components/ANodeSettingsPanel.vue +59 -0
  22. package/dist/runtime/components/ANodeSettingsPanel.vue.d.ts +49 -0
  23. package/dist/runtime/components/ANotificationBell.d.vue.ts +26 -0
  24. package/dist/runtime/components/ANotificationBell.vue +55 -0
  25. package/dist/runtime/components/ANotificationBell.vue.d.ts +26 -0
  26. package/dist/runtime/components/AOfflineSync.d.vue.ts +11 -0
  27. package/dist/runtime/components/AOfflineSync.vue +217 -0
  28. package/dist/runtime/components/AOfflineSync.vue.d.ts +11 -0
  29. package/dist/runtime/components/ARecoveryPhraseDisplay.d.vue.ts +26 -0
  30. package/dist/runtime/components/ARecoveryPhraseDisplay.vue +94 -0
  31. package/dist/runtime/components/ARecoveryPhraseDisplay.vue.d.ts +26 -0
  32. package/dist/runtime/components/AServerInfoModal.d.vue.ts +43 -0
  33. package/dist/runtime/components/AServerInfoModal.vue +150 -0
  34. package/dist/runtime/components/AServerInfoModal.vue.d.ts +43 -0
  35. package/dist/runtime/components/ASpaceFormModal.vue +1 -1
  36. package/dist/runtime/components/ASubPageList.d.vue.ts +66 -0
  37. package/dist/runtime/components/ASubPageList.vue +147 -0
  38. package/dist/runtime/components/ASubPageList.vue.d.ts +66 -0
  39. package/dist/runtime/components/aware/AAccordion.d.vue.ts +25 -0
  40. package/dist/runtime/components/aware/AAccordion.vue +107 -0
  41. package/dist/runtime/components/aware/AAccordion.vue.d.ts +25 -0
  42. package/dist/runtime/components/aware/AArea.vue +24 -11
  43. package/dist/runtime/components/aware/AAvatar.d.vue.ts +6 -0
  44. package/dist/runtime/components/aware/AAvatar.vue +33 -3
  45. package/dist/runtime/components/aware/AAvatar.vue.d.ts +6 -0
  46. package/dist/runtime/components/aware/AAvatarGroup.d.vue.ts +10 -0
  47. package/dist/runtime/components/aware/AAvatarGroup.vue +30 -0
  48. package/dist/runtime/components/aware/AAvatarGroup.vue.d.ts +10 -0
  49. package/dist/runtime/components/aware/AButton.d.vue.ts +4 -2
  50. package/dist/runtime/components/aware/AButton.vue +46 -14
  51. package/dist/runtime/components/aware/AButton.vue.d.ts +4 -2
  52. package/dist/runtime/components/aware/ACalendar.d.vue.ts +17 -0
  53. package/dist/runtime/components/aware/ACalendar.vue +145 -0
  54. package/dist/runtime/components/aware/ACalendar.vue.d.ts +17 -0
  55. package/dist/runtime/components/aware/ACarousel.d.vue.ts +25 -0
  56. package/dist/runtime/components/aware/ACarousel.vue +39 -0
  57. package/dist/runtime/components/aware/ACarousel.vue.d.ts +25 -0
  58. package/dist/runtime/components/aware/ACheckbox.d.vue.ts +11 -0
  59. package/dist/runtime/components/aware/ACheckbox.vue +74 -0
  60. package/dist/runtime/components/aware/ACheckbox.vue.d.ts +11 -0
  61. package/dist/runtime/components/aware/ACheckboxGroup.d.vue.ts +27 -0
  62. package/dist/runtime/components/aware/ACheckboxGroup.vue +79 -0
  63. package/dist/runtime/components/aware/ACheckboxGroup.vue.d.ts +27 -0
  64. package/dist/runtime/components/aware/ACollapsible.d.vue.ts +25 -0
  65. package/dist/runtime/components/aware/ACollapsible.vue +45 -0
  66. package/dist/runtime/components/aware/ACollapsible.vue.d.ts +25 -0
  67. package/dist/runtime/components/aware/AColorPicker.d.vue.ts +15 -0
  68. package/dist/runtime/components/aware/AColorPicker.vue +48 -0
  69. package/dist/runtime/components/aware/AColorPicker.vue.d.ts +15 -0
  70. package/dist/runtime/components/aware/ACommandPalette.d.vue.ts +33 -0
  71. package/dist/runtime/components/aware/ACommandPalette.vue +123 -0
  72. package/dist/runtime/components/aware/ACommandPalette.vue.d.ts +33 -0
  73. package/dist/runtime/components/aware/AContextMenu.d.vue.ts +25 -0
  74. package/dist/runtime/components/aware/AContextMenu.vue +63 -0
  75. package/dist/runtime/components/aware/AContextMenu.vue.d.ts +25 -0
  76. package/dist/runtime/components/aware/ADrawer.d.vue.ts +25 -0
  77. package/dist/runtime/components/aware/ADrawer.vue +57 -0
  78. package/dist/runtime/components/aware/ADrawer.vue.d.ts +25 -0
  79. package/dist/runtime/components/aware/ADropdownMenu.d.vue.ts +25 -0
  80. package/dist/runtime/components/aware/ADropdownMenu.vue +63 -0
  81. package/dist/runtime/components/aware/ADropdownMenu.vue.d.ts +25 -0
  82. package/dist/runtime/components/aware/AFileUpload.d.vue.ts +27 -0
  83. package/dist/runtime/components/aware/AFileUpload.vue +67 -0
  84. package/dist/runtime/components/aware/AFileUpload.vue.d.ts +27 -0
  85. package/dist/runtime/components/aware/AFollowBar.d.vue.ts +21 -0
  86. package/dist/runtime/components/aware/AFollowBar.vue +62 -0
  87. package/dist/runtime/components/aware/AFollowBar.vue.d.ts +21 -0
  88. package/dist/runtime/components/aware/AFollowScroll.d.vue.ts +7 -0
  89. package/dist/runtime/components/aware/AFollowScroll.vue +17 -0
  90. package/dist/runtime/components/aware/AFollowScroll.vue.d.ts +7 -0
  91. package/dist/runtime/components/aware/AFormSync.d.vue.ts +21 -0
  92. package/dist/runtime/components/aware/AFormSync.vue +52 -0
  93. package/dist/runtime/components/aware/AFormSync.vue.d.ts +21 -0
  94. package/dist/runtime/components/aware/AGlobalFocusLayer.d.vue.ts +3 -0
  95. package/dist/runtime/components/aware/AGlobalFocusLayer.vue +90 -0
  96. package/dist/runtime/components/aware/AGlobalFocusLayer.vue.d.ts +3 -0
  97. package/dist/runtime/components/aware/AHoverItem.d.vue.ts +27 -0
  98. package/dist/runtime/components/aware/AHoverItem.vue +124 -0
  99. package/dist/runtime/components/aware/AHoverItem.vue.d.ts +27 -0
  100. package/dist/runtime/components/aware/AInput.d.vue.ts +12 -2
  101. package/dist/runtime/components/aware/AInput.vue +72 -19
  102. package/dist/runtime/components/aware/AInput.vue.d.ts +12 -2
  103. package/dist/runtime/components/aware/AInputMenu.d.vue.ts +17 -0
  104. package/dist/runtime/components/aware/AInputMenu.vue +138 -0
  105. package/dist/runtime/components/aware/AInputMenu.vue.d.ts +17 -0
  106. package/dist/runtime/components/aware/AInputNumber.d.vue.ts +15 -0
  107. package/dist/runtime/components/aware/AInputNumber.vue +67 -0
  108. package/dist/runtime/components/aware/AInputNumber.vue.d.ts +15 -0
  109. package/dist/runtime/components/aware/AInputTags.d.vue.ts +15 -0
  110. package/dist/runtime/components/aware/AInputTags.vue +67 -0
  111. package/dist/runtime/components/aware/AInputTags.vue.d.ts +15 -0
  112. package/dist/runtime/components/aware/AKeyHint.d.vue.ts +3 -0
  113. package/dist/runtime/components/aware/AKeyHint.vue +23 -0
  114. package/dist/runtime/components/aware/AKeyHint.vue.d.ts +3 -0
  115. package/dist/runtime/components/aware/AMedia.d.vue.ts +19 -0
  116. package/dist/runtime/components/aware/AMedia.vue +85 -0
  117. package/dist/runtime/components/aware/AMedia.vue.d.ts +19 -0
  118. package/dist/runtime/components/aware/AModal.d.vue.ts +33 -0
  119. package/dist/runtime/components/aware/AModal.vue +110 -0
  120. package/dist/runtime/components/aware/AModal.vue.d.ts +33 -0
  121. package/dist/runtime/components/aware/ANavigationMenu.d.vue.ts +25 -0
  122. package/dist/runtime/components/aware/ANavigationMenu.vue +82 -0
  123. package/dist/runtime/components/aware/ANavigationMenu.vue.d.ts +25 -0
  124. package/dist/runtime/components/aware/APagination.d.vue.ts +13 -0
  125. package/dist/runtime/components/aware/APagination.vue +53 -0
  126. package/dist/runtime/components/aware/APagination.vue.d.ts +13 -0
  127. package/dist/runtime/components/aware/APeerCaretLayer.d.vue.ts +10 -0
  128. package/dist/runtime/components/aware/APeerCaretLayer.vue +133 -0
  129. package/dist/runtime/components/aware/APeerCaretLayer.vue.d.ts +10 -0
  130. package/dist/runtime/components/aware/APinInput.d.vue.ts +15 -0
  131. package/dist/runtime/components/aware/APinInput.vue +48 -0
  132. package/dist/runtime/components/aware/APinInput.vue.d.ts +15 -0
  133. package/dist/runtime/components/aware/APopover.d.vue.ts +25 -0
  134. package/dist/runtime/components/aware/APopover.vue +57 -0
  135. package/dist/runtime/components/aware/APopover.vue.d.ts +25 -0
  136. package/dist/runtime/components/aware/APresenceBlobs.d.vue.ts +3 -0
  137. package/dist/runtime/components/aware/APresenceBlobs.vue +69 -0
  138. package/dist/runtime/components/aware/APresenceBlobs.vue.d.ts +3 -0
  139. package/dist/runtime/components/aware/APresenceCursors.d.vue.ts +20 -0
  140. package/dist/runtime/components/aware/APresenceCursors.vue +47 -0
  141. package/dist/runtime/components/aware/APresenceCursors.vue.d.ts +20 -0
  142. package/dist/runtime/components/aware/ARadioGroup.d.vue.ts +27 -0
  143. package/dist/runtime/components/aware/ARadioGroup.vue +86 -0
  144. package/dist/runtime/components/aware/ARadioGroup.vue.d.ts +27 -0
  145. package/dist/runtime/components/aware/AScroll.d.vue.ts +25 -0
  146. package/dist/runtime/components/aware/AScroll.vue +87 -0
  147. package/dist/runtime/components/aware/AScroll.vue.d.ts +25 -0
  148. package/dist/runtime/components/aware/ASelect.d.vue.ts +12 -2
  149. package/dist/runtime/components/aware/ASelect.vue +146 -22
  150. package/dist/runtime/components/aware/ASelect.vue.d.ts +12 -2
  151. package/dist/runtime/components/aware/ASelectMenu.d.vue.ts +17 -0
  152. package/dist/runtime/components/aware/ASelectMenu.vue +139 -0
  153. package/dist/runtime/components/aware/ASelectMenu.vue.d.ts +17 -0
  154. package/dist/runtime/components/aware/ASlideover.d.vue.ts +33 -0
  155. package/dist/runtime/components/aware/ASlideover.vue +110 -0
  156. package/dist/runtime/components/aware/ASlideover.vue.d.ts +33 -0
  157. package/dist/runtime/components/aware/ASlider.d.vue.ts +19 -0
  158. package/dist/runtime/components/aware/ASlider.vue +77 -0
  159. package/dist/runtime/components/aware/ASlider.vue.d.ts +19 -0
  160. package/dist/runtime/components/aware/AStepper.d.vue.ts +25 -0
  161. package/dist/runtime/components/aware/AStepper.vue +82 -0
  162. package/dist/runtime/components/aware/AStepper.vue.d.ts +25 -0
  163. package/dist/runtime/components/aware/ASwitch.d.vue.ts +11 -0
  164. package/dist/runtime/components/aware/ASwitch.vue +75 -0
  165. package/dist/runtime/components/aware/ASwitch.vue.d.ts +11 -0
  166. package/dist/runtime/components/aware/ATable.d.vue.ts +23 -0
  167. package/dist/runtime/components/aware/ATable.vue +97 -0
  168. package/dist/runtime/components/aware/ATable.vue.d.ts +23 -0
  169. package/dist/runtime/components/aware/ATabs.d.vue.ts +27 -0
  170. package/dist/runtime/components/aware/ATabs.vue +128 -0
  171. package/dist/runtime/components/aware/ATabs.vue.d.ts +27 -0
  172. package/dist/runtime/components/aware/ATextarea.d.vue.ts +12 -2
  173. package/dist/runtime/components/aware/ATextarea.vue +72 -19
  174. package/dist/runtime/components/aware/ATextarea.vue.d.ts +12 -2
  175. package/dist/runtime/components/aware/AToggleGroup.d.vue.ts +27 -0
  176. package/dist/runtime/components/aware/AToggleGroup.vue +79 -0
  177. package/dist/runtime/components/aware/AToggleGroup.vue.d.ts +27 -0
  178. package/dist/runtime/components/aware/ATree.d.vue.ts +27 -0
  179. package/dist/runtime/components/aware/ATree.vue +111 -0
  180. package/dist/runtime/components/aware/ATree.vue.d.ts +27 -0
  181. package/dist/runtime/components/chat/AChatPanel.d.vue.ts +6 -6
  182. package/dist/runtime/components/chat/AChatPanel.vue.d.ts +6 -6
  183. package/dist/runtime/components/chat/ANodeChatPanel.d.vue.ts +42 -0
  184. package/dist/runtime/components/chat/ANodeChatPanel.vue +53 -0
  185. package/dist/runtime/components/chat/ANodeChatPanel.vue.d.ts +42 -0
  186. package/dist/runtime/components/docs/ADocsSearch.d.vue.ts +2 -2
  187. package/dist/runtime/components/docs/ADocsSearch.vue.d.ts +2 -2
  188. package/dist/runtime/components/docs/ADocsSearchButton.d.vue.ts +3 -3
  189. package/dist/runtime/components/docs/ADocsSearchButton.vue.d.ts +3 -3
  190. package/dist/runtime/components/editor/AEditorRedoButton.d.vue.ts +26 -0
  191. package/dist/runtime/components/editor/AEditorRedoButton.vue +38 -0
  192. package/dist/runtime/components/editor/AEditorRedoButton.vue.d.ts +26 -0
  193. package/dist/runtime/components/editor/AEditorUndoButton.d.vue.ts +26 -0
  194. package/dist/runtime/components/editor/AEditorUndoButton.vue +38 -0
  195. package/dist/runtime/components/editor/AEditorUndoButton.vue.d.ts +26 -0
  196. package/dist/runtime/components/editor/AIconPickerPopover.d.vue.ts +24 -0
  197. package/dist/runtime/components/editor/AIconPickerPopover.vue +113 -0
  198. package/dist/runtime/components/editor/AIconPickerPopover.vue.d.ts +24 -0
  199. package/dist/runtime/components/editor/ANodeInlineLabel.d.vue.ts +24 -0
  200. package/dist/runtime/components/editor/ANodeInlineLabel.vue +101 -0
  201. package/dist/runtime/components/editor/ANodeInlineLabel.vue.d.ts +24 -0
  202. package/dist/runtime/components/renderers/ADocLoadError.d.vue.ts +3 -0
  203. package/dist/runtime/components/renderers/ADocLoadError.vue +11 -0
  204. package/dist/runtime/components/renderers/ADocLoadError.vue.d.ts +3 -0
  205. package/dist/runtime/components/renderers/ADocLoadingSkeleton.d.vue.ts +3 -0
  206. package/dist/runtime/components/renderers/ADocLoadingSkeleton.vue +5 -0
  207. package/dist/runtime/components/renderers/ADocLoadingSkeleton.vue.d.ts +3 -0
  208. package/dist/runtime/components/renderers/AOverviewRenderer.d.vue.ts +22 -0
  209. package/dist/runtime/components/renderers/AOverviewRenderer.vue +1041 -0
  210. package/dist/runtime/components/renderers/AOverviewRenderer.vue.d.ts +22 -0
  211. package/dist/runtime/components/renderers/AProseRenderer.d.vue.ts +23 -0
  212. package/dist/runtime/components/renderers/AProseRenderer.vue +31 -0
  213. package/dist/runtime/components/renderers/AProseRenderer.vue.d.ts +23 -0
  214. package/dist/runtime/components/renderers/ASheetsRenderer.client.d.vue.ts +19 -0
  215. package/dist/runtime/components/renderers/ASheetsRenderer.client.vue +865 -0
  216. package/dist/runtime/components/renderers/ASheetsRenderer.client.vue.d.ts +19 -0
  217. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.d.vue.ts +14 -0
  218. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue +45 -15
  219. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue.d.ts +14 -0
  220. package/dist/runtime/components/renderers/calendar/ACalendarDayView.d.vue.ts +15 -0
  221. package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue +93 -20
  222. package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue.d.ts +15 -0
  223. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.d.vue.ts +9 -0
  224. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue +31 -2
  225. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue.d.ts +9 -0
  226. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.d.vue.ts +15 -0
  227. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue +94 -21
  228. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue.d.ts +15 -0
  229. package/dist/runtime/components/renderers/sheets/ASheetsCell.d.vue.ts +45 -0
  230. package/dist/runtime/components/renderers/sheets/ASheetsCell.vue +123 -0
  231. package/dist/runtime/components/renderers/sheets/ASheetsCell.vue.d.ts +45 -0
  232. package/dist/runtime/components/renderers/sheets/ASheetsGrid.d.vue.ts +111 -0
  233. package/dist/runtime/components/renderers/sheets/ASheetsGrid.vue +737 -0
  234. package/dist/runtime/components/renderers/sheets/ASheetsGrid.vue.d.ts +111 -0
  235. package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.d.vue.ts +26 -0
  236. package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.vue +100 -0
  237. package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.vue.d.ts +26 -0
  238. package/dist/runtime/components/renderers/sheets/ASheetsToolbar.d.vue.ts +48 -0
  239. package/dist/runtime/components/renderers/sheets/ASheetsToolbar.vue +243 -0
  240. package/dist/runtime/components/renderers/sheets/ASheetsToolbar.vue.d.ts +48 -0
  241. package/dist/runtime/components/renderers/table/cells/ATableCellColor.d.vue.ts +1 -0
  242. package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue +13 -32
  243. package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue.d.ts +1 -0
  244. package/dist/runtime/components/renderers/timeline/ATimelineBar.d.vue.ts +6 -0
  245. package/dist/runtime/components/renderers/timeline/ATimelineBar.vue +34 -4
  246. package/dist/runtime/components/renderers/timeline/ATimelineBar.vue.d.ts +6 -0
  247. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.d.vue.ts +16 -0
  248. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue +14 -3
  249. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue.d.ts +16 -0
  250. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.d.vue.ts +13 -1
  251. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue +114 -47
  252. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue.d.ts +13 -1
  253. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.d.vue.ts +4 -0
  254. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue +21 -4
  255. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue.d.ts +4 -0
  256. package/dist/runtime/components/renderers/timeline/ATimelineToolbar.d.vue.ts +2 -2
  257. package/dist/runtime/components/renderers/timeline/ATimelineToolbar.vue.d.ts +2 -2
  258. package/dist/runtime/components/settings/ASettingsSpacesPanel.vue +7 -25
  259. package/dist/runtime/components/shell/ADocPanelSettings.d.vue.ts +3 -3
  260. package/dist/runtime/components/shell/ADocPanelSettings.vue.d.ts +3 -3
  261. package/dist/runtime/components/shell/ASyncStatus.d.vue.ts +1 -1
  262. package/dist/runtime/components/shell/ASyncStatus.vue.d.ts +1 -1
  263. package/dist/runtime/components/shell/AUserMenu.d.vue.ts +2 -2
  264. package/dist/runtime/components/shell/AUserMenu.vue.d.ts +2 -2
  265. package/dist/runtime/components/shell/AWelcomeScreen.d.vue.ts +1 -1
  266. package/dist/runtime/components/shell/AWelcomeScreen.vue.d.ts +1 -1
  267. package/dist/runtime/composables/useAACaret.d.ts +29 -0
  268. package/dist/runtime/composables/useAACaret.js +64 -0
  269. package/dist/runtime/composables/useAAEphemeral.d.ts +32 -0
  270. package/dist/runtime/composables/useAAEphemeral.js +33 -0
  271. package/dist/runtime/composables/useAAField.d.ts +10 -2
  272. package/dist/runtime/composables/useAAField.js +31 -2
  273. package/dist/runtime/composables/useAAFieldValue.d.ts +26 -0
  274. package/dist/runtime/composables/useAAFieldValue.js +32 -0
  275. package/dist/runtime/composables/useAAFocus.d.ts +68 -0
  276. package/dist/runtime/composables/useAAFocus.js +174 -0
  277. package/dist/runtime/composables/useAAFollowAnchor.d.ts +25 -0
  278. package/dist/runtime/composables/useAAFollowAnchor.js +69 -0
  279. package/dist/runtime/composables/useAAFollowPeer.d.ts +29 -0
  280. package/dist/runtime/composables/useAAFollowPeer.js +75 -0
  281. package/dist/runtime/composables/useAAKey.d.ts +22 -0
  282. package/dist/runtime/composables/useAAKey.js +24 -0
  283. package/dist/runtime/composables/useAAPointer.d.ts +30 -0
  284. package/dist/runtime/composables/useAAPointer.js +53 -0
  285. package/dist/runtime/composables/useAAUIState.d.ts +29 -0
  286. package/dist/runtime/composables/useAAUIState.js +28 -0
  287. package/dist/runtime/composables/useAAViewport.d.ts +22 -0
  288. package/dist/runtime/composables/useAAViewport.js +50 -0
  289. package/dist/runtime/composables/useAbraAdmin.d.ts +54 -0
  290. package/dist/runtime/composables/useAbraAdmin.js +115 -0
  291. package/dist/runtime/composables/useAbracadabraAuth.d.ts +8 -0
  292. package/dist/runtime/composables/useAbracadabraAuth.js +8 -0
  293. package/dist/runtime/composables/useAggregatedPresence.d.ts +23 -0
  294. package/dist/runtime/composables/useAggregatedPresence.js +140 -0
  295. package/dist/runtime/composables/useChat.d.ts +16 -2
  296. package/dist/runtime/composables/useChat.js +257 -66
  297. package/dist/runtime/composables/useChatUsers.d.ts +2 -0
  298. package/dist/runtime/composables/useChatUsers.js +2 -1
  299. package/dist/runtime/composables/useDocLookup.d.ts +4 -0
  300. package/dist/runtime/composables/useDocLookup.js +25 -0
  301. package/dist/runtime/composables/useDocSnapshots.d.ts +79 -0
  302. package/dist/runtime/composables/useDocSnapshots.js +234 -0
  303. package/dist/runtime/composables/useEditorDragHandle.d.ts +7 -0
  304. package/dist/runtime/composables/useEditorDragHandle.js +19 -1
  305. package/dist/runtime/composables/useEditorSuggestions.js +27 -1
  306. package/dist/runtime/composables/useEditorToolbar.js +9 -1
  307. package/dist/runtime/composables/useEmailVerification.d.ts +33 -0
  308. package/dist/runtime/composables/useEmailVerification.js +58 -0
  309. package/dist/runtime/composables/useIdentityDoc.js +0 -3
  310. package/dist/runtime/composables/useItemPresence.d.ts +47 -0
  311. package/dist/runtime/composables/useItemPresence.js +73 -0
  312. package/dist/runtime/composables/useResizableWidth.d.ts +24 -0
  313. package/dist/runtime/composables/useResizableWidth.js +87 -0
  314. package/dist/runtime/composables/useServerInfo.d.ts +17 -2
  315. package/dist/runtime/composables/useServerInfo.js +30 -6
  316. package/dist/runtime/composables/useServerSearch.d.ts +36 -0
  317. package/dist/runtime/composables/useServerSearch.js +91 -0
  318. package/dist/runtime/composables/useServerTrash.d.ts +67 -0
  319. package/dist/runtime/composables/useServerTrash.js +128 -0
  320. package/dist/runtime/composables/useSheetsClipboard.d.ts +42 -0
  321. package/dist/runtime/composables/useSheetsClipboard.js +109 -0
  322. package/dist/runtime/composables/useSheetsFormulas.d.ts +38 -0
  323. package/dist/runtime/composables/useSheetsFormulas.js +725 -0
  324. package/dist/runtime/composables/useSheetsSelection.d.ts +68 -0
  325. package/dist/runtime/composables/useSheetsSelection.js +390 -0
  326. package/dist/runtime/composables/useSheetsView.d.ts +31 -0
  327. package/dist/runtime/composables/useSheetsView.js +77 -0
  328. package/dist/runtime/composables/useSpaceConnections.d.ts +43 -0
  329. package/dist/runtime/composables/useSpaceConnections.js +72 -0
  330. package/dist/runtime/composables/useSpaces.d.ts +1 -3
  331. package/dist/runtime/composables/useSpaces.js +2 -5
  332. package/dist/runtime/composables/useTiptapHistory.d.ts +22 -0
  333. package/dist/runtime/composables/useTiptapHistory.js +12 -0
  334. package/dist/runtime/composables/useTreeExpansion.d.ts +28 -0
  335. package/dist/runtime/composables/useTreeExpansion.js +94 -0
  336. package/dist/runtime/composables/useYDoc.js +12 -1
  337. package/dist/runtime/extensions/button.d.ts +3 -0
  338. package/dist/runtime/extensions/button.js +62 -0
  339. package/dist/runtime/extensions/color-swatch.d.ts +2 -0
  340. package/dist/runtime/extensions/color-swatch.js +34 -0
  341. package/dist/runtime/extensions/diff.d.ts +2 -0
  342. package/dist/runtime/extensions/diff.js +40 -0
  343. package/dist/runtime/extensions/divider.d.ts +2 -0
  344. package/dist/runtime/extensions/divider.js +33 -0
  345. package/dist/runtime/extensions/embed.d.ts +2 -0
  346. package/dist/runtime/extensions/embed.js +40 -0
  347. package/dist/runtime/extensions/figure.d.ts +2 -0
  348. package/dist/runtime/extensions/figure.js +49 -0
  349. package/dist/runtime/extensions/math.d.ts +15 -0
  350. package/dist/runtime/extensions/math.js +66 -0
  351. package/dist/runtime/extensions/progress.d.ts +2 -0
  352. package/dist/runtime/extensions/progress.js +43 -0
  353. package/dist/runtime/extensions/quote.d.ts +2 -0
  354. package/dist/runtime/extensions/quote.js +39 -0
  355. package/dist/runtime/extensions/spoiler.d.ts +2 -0
  356. package/dist/runtime/extensions/spoiler.js +36 -0
  357. package/dist/runtime/extensions/stat.d.ts +3 -0
  358. package/dist/runtime/extensions/stat.js +58 -0
  359. package/dist/runtime/extensions/svg-embed.d.ts +23 -0
  360. package/dist/runtime/extensions/svg-embed.js +33 -0
  361. package/dist/runtime/extensions/video.d.ts +2 -0
  362. package/dist/runtime/extensions/video.js +40 -0
  363. package/dist/runtime/extensions/views/ButtonGroupView.d.vue.ts +4 -0
  364. package/dist/runtime/extensions/views/ButtonGroupView.vue +25 -0
  365. package/dist/runtime/extensions/views/ButtonGroupView.vue.d.ts +4 -0
  366. package/dist/runtime/extensions/views/ButtonView.d.vue.ts +4 -0
  367. package/dist/runtime/extensions/views/ButtonView.vue +171 -0
  368. package/dist/runtime/extensions/views/ButtonView.vue.d.ts +4 -0
  369. package/dist/runtime/extensions/views/ColorSwatchView.d.vue.ts +4 -0
  370. package/dist/runtime/extensions/views/ColorSwatchView.vue +134 -0
  371. package/dist/runtime/extensions/views/ColorSwatchView.vue.d.ts +4 -0
  372. package/dist/runtime/extensions/views/DiffView.d.vue.ts +4 -0
  373. package/dist/runtime/extensions/views/DiffView.vue +163 -0
  374. package/dist/runtime/extensions/views/DiffView.vue.d.ts +4 -0
  375. package/dist/runtime/extensions/views/DividerView.d.vue.ts +4 -0
  376. package/dist/runtime/extensions/views/DividerView.vue +40 -0
  377. package/dist/runtime/extensions/views/DividerView.vue.d.ts +4 -0
  378. package/dist/runtime/extensions/views/EmbedView.d.vue.ts +4 -0
  379. package/dist/runtime/extensions/views/EmbedView.vue +166 -0
  380. package/dist/runtime/extensions/views/EmbedView.vue.d.ts +4 -0
  381. package/dist/runtime/extensions/views/FigureView.d.vue.ts +4 -0
  382. package/dist/runtime/extensions/views/FigureView.vue +122 -0
  383. package/dist/runtime/extensions/views/FigureView.vue.d.ts +4 -0
  384. package/dist/runtime/extensions/views/FileNodeView.vue +21 -24
  385. package/dist/runtime/extensions/views/MathBlockView.d.vue.ts +4 -0
  386. package/dist/runtime/extensions/views/MathBlockView.vue +151 -0
  387. package/dist/runtime/extensions/views/MathBlockView.vue.d.ts +4 -0
  388. package/dist/runtime/extensions/views/MathInlineView.d.vue.ts +4 -0
  389. package/dist/runtime/extensions/views/MathInlineView.vue +149 -0
  390. package/dist/runtime/extensions/views/MathInlineView.vue.d.ts +4 -0
  391. package/dist/runtime/extensions/views/MetaFieldView.vue +1129 -550
  392. package/dist/runtime/extensions/views/ProgressView.d.vue.ts +4 -0
  393. package/dist/runtime/extensions/views/ProgressView.vue +156 -0
  394. package/dist/runtime/extensions/views/ProgressView.vue.d.ts +4 -0
  395. package/dist/runtime/extensions/views/QuoteView.d.vue.ts +4 -0
  396. package/dist/runtime/extensions/views/QuoteView.vue +128 -0
  397. package/dist/runtime/extensions/views/QuoteView.vue.d.ts +4 -0
  398. package/dist/runtime/extensions/views/SpoilerView.d.vue.ts +4 -0
  399. package/dist/runtime/extensions/views/SpoilerView.vue +62 -0
  400. package/dist/runtime/extensions/views/SpoilerView.vue.d.ts +4 -0
  401. package/dist/runtime/extensions/views/StatGroupView.d.vue.ts +4 -0
  402. package/dist/runtime/extensions/views/StatGroupView.vue +25 -0
  403. package/dist/runtime/extensions/views/StatGroupView.vue.d.ts +4 -0
  404. package/dist/runtime/extensions/views/StatView.d.vue.ts +4 -0
  405. package/dist/runtime/extensions/views/StatView.vue +89 -0
  406. package/dist/runtime/extensions/views/StatView.vue.d.ts +4 -0
  407. package/dist/runtime/extensions/views/SvgEmbedView.d.vue.ts +4 -0
  408. package/dist/runtime/extensions/views/SvgEmbedView.vue +120 -0
  409. package/dist/runtime/extensions/views/SvgEmbedView.vue.d.ts +4 -0
  410. package/dist/runtime/extensions/views/VideoView.d.vue.ts +4 -0
  411. package/dist/runtime/extensions/views/VideoView.vue +190 -0
  412. package/dist/runtime/extensions/views/VideoView.vue.d.ts +4 -0
  413. package/dist/runtime/locale.d.ts +133 -0
  414. package/dist/runtime/locale.js +121 -2
  415. package/dist/runtime/plugin-abracadabra.client.js +233 -36
  416. package/dist/runtime/plugin-abracadabra.server.js +0 -1
  417. package/dist/runtime/plugins/core.plugin.js +77 -4
  418. package/dist/runtime/server/plugins/abracadabra-service.js +84 -6
  419. package/dist/runtime/server/utils/rpcHandler.d.ts +74 -0
  420. package/dist/runtime/server/utils/rpcHandler.js +74 -0
  421. package/dist/runtime/server/utils/spaceManager.js +10 -9
  422. package/dist/runtime/types.d.ts +63 -10
  423. package/dist/runtime/utils/awareRingStyle.d.ts +22 -0
  424. package/dist/runtime/utils/awareRingStyle.js +16 -0
  425. package/dist/runtime/utils/caretCoordinates.d.ts +41 -0
  426. package/dist/runtime/utils/caretCoordinates.js +126 -0
  427. package/dist/runtime/utils/content.d.ts +1 -1
  428. package/dist/runtime/utils/docTypes.js +44 -13
  429. package/dist/runtime/utils/domPath.d.ts +42 -0
  430. package/dist/runtime/utils/domPath.js +89 -0
  431. package/dist/runtime/utils/loadKatex.d.ts +1 -0
  432. package/dist/runtime/utils/loadKatex.js +29 -0
  433. package/dist/runtime/utils/lucideIcons.d.ts +16 -0
  434. package/dist/runtime/utils/lucideIcons.js +451 -0
  435. package/dist/runtime/utils/sanitizeSvg.d.ts +19 -0
  436. package/dist/runtime/utils/sanitizeSvg.js +87 -0
  437. package/dist/runtime/utils/time.d.ts +15 -0
  438. package/dist/runtime/utils/time.js +5 -0
  439. package/dist/types.d.mts +4 -0
  440. package/package.json +26 -16
@@ -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
+ }
@@ -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,24 @@ 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"] }] : [],
76
+ ...extEnabled("svgEmbed") ? [{ kind: "svgEmbed", label: "SVG embed", icon: "i-lucide-image", description: "Inline SVG (sanitized)", keywords: ["svg", "vector", "icon", "diagram"] }] : []
51
77
  ]
52
78
  ];
53
79
  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;
@@ -0,0 +1,73 @@
1
+ import { computed, watch, unref, onBeforeUnmount } from "vue";
2
+ import { useAbracadabra } from "./useAbracadabra.js";
3
+ import { useAwareness } from "./useAwareness.js";
4
+ export function useItemPresence() {
5
+ const { publicKeyB64, provider } = useAbracadabra();
6
+ const { states } = useAwareness();
7
+ const docPresence = computed(() => {
8
+ const map = /* @__PURE__ */ new Map();
9
+ const addToBucket = (docId, user) => {
10
+ const users = map.get(docId) ?? [];
11
+ if (user.publicKey && users.some((u) => u.publicKey === user.publicKey)) return;
12
+ users.push(user);
13
+ map.set(docId, users);
14
+ };
15
+ const selfPk = publicKeyB64.value;
16
+ const selfClientId = provider.value?.awareness?.clientID ?? null;
17
+ for (const [clientId, state] of states.value) {
18
+ if (selfClientId !== null && clientId === selfClientId) continue;
19
+ const userInfo = state.user;
20
+ const pk = userInfo?.publicKey;
21
+ if (pk && pk === selfPk) continue;
22
+ const docId = state.docId;
23
+ const viewingDocId = state.viewingDocId;
24
+ if (!docId && !viewingDocId) continue;
25
+ const user = {
26
+ name: userInfo?.name || "?",
27
+ color: userInfo?.color || "#888",
28
+ publicKey: pk,
29
+ clientId
30
+ };
31
+ if (docId) addToBucket(docId, user);
32
+ if (viewingDocId && viewingDocId !== docId) addToBucket(viewingDocId, user);
33
+ }
34
+ return map;
35
+ });
36
+ function getViewers(itemId) {
37
+ if (!itemId) return [];
38
+ return docPresence.value.get(itemId) ?? [];
39
+ }
40
+ function viewingColor(itemId) {
41
+ return getViewers(itemId)[0]?.color ?? null;
42
+ }
43
+ function viewingBorderLeft(itemId) {
44
+ const color = viewingColor(itemId);
45
+ if (!color) return void 0;
46
+ return { borderLeft: `4px solid ${color}` };
47
+ }
48
+ function viewingRingStyle(itemId) {
49
+ const color = viewingColor(itemId);
50
+ if (!color) return void 0;
51
+ return {
52
+ outline: `3px solid ${color}`,
53
+ boxShadow: `0 0 0 1px ${color}33`
54
+ };
55
+ }
56
+ return { getViewers, viewingColor, viewingBorderLeft, viewingRingStyle, docPresence };
57
+ }
58
+ export function useViewingBroadcast(parentDocIdRef, openNodeId) {
59
+ const { provider } = useAbracadabra();
60
+ function writeViewing(nodeId) {
61
+ const parentDocId = typeof parentDocIdRef === "function" ? parentDocIdRef() : unref(parentDocIdRef);
62
+ if (!parentDocId) return;
63
+ const awareness = provider.value?.awareness;
64
+ if (!awareness) return;
65
+ try {
66
+ const prev = awareness.getLocalState() ?? {};
67
+ awareness.setLocalState({ ...prev, viewingDocId: nodeId });
68
+ } catch {
69
+ }
70
+ }
71
+ watch(openNodeId, (id) => writeViewing(id ?? null));
72
+ onBeforeUnmount(() => writeViewing(null));
73
+ }
@@ -0,0 +1,24 @@
1
+ export interface UseResizableWidthOptions {
2
+ /** Initial width in pixels. Default: 672. */
3
+ defaultWidth?: number;
4
+ /** Minimum width in pixels. Default: 320. */
5
+ minWidth?: number;
6
+ /** Max as a fraction of viewport width. Default: 0.9. */
7
+ maxFraction?: number;
8
+ /** Cookie key to persist the width. Omit to disable persistence. */
9
+ cookieKey?: string;
10
+ /** Which edge holds the handle. 'left' grows when dragged left. Default: 'left'. */
11
+ direction?: 'left' | 'right';
12
+ }
13
+ export declare function useResizableWidth(options?: UseResizableWidthOptions): {
14
+ width: import("vue").Ref<number, number>;
15
+ isResizing: import("vue").Ref<boolean, boolean>;
16
+ style: import("vue").ComputedRef<{
17
+ maxWidth: string;
18
+ width: string;
19
+ }>;
20
+ onMouseDown: (e: MouseEvent) => void;
21
+ onTouchStart: (e: TouchEvent) => void;
22
+ onDoubleClick: () => void;
23
+ reset: () => void;
24
+ };