@abraca/nuxt 0.3.0 → 1.6.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 (507) hide show
  1. package/dist/module.d.mts +26 -0
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +51 -8
  4. package/dist/runtime/components/AAccountSwitcherModal.d.vue.ts +10 -0
  5. package/dist/runtime/components/AAccountSwitcherModal.vue +158 -0
  6. package/dist/runtime/components/AAccountSwitcherModal.vue.d.ts +10 -0
  7. package/dist/runtime/components/AClaimAccountModal.d.vue.ts +10 -0
  8. package/dist/runtime/components/AClaimAccountModal.vue +230 -0
  9. package/dist/runtime/components/AClaimAccountModal.vue.d.ts +10 -0
  10. package/dist/runtime/components/ACollaborationUsers.vue +1 -0
  11. package/dist/runtime/components/AColorPicker.vue +4 -2
  12. package/dist/runtime/components/ACommandPalette.vue +4 -2
  13. package/dist/runtime/components/AConnectServerModal.d.vue.ts +12 -0
  14. package/dist/runtime/components/AConnectServerModal.vue +200 -0
  15. package/dist/runtime/components/AConnectServerModal.vue.d.ts +12 -0
  16. package/dist/runtime/components/AConnectionStatus.vue +1 -0
  17. package/dist/runtime/components/ADocPickModal.d.vue.ts +13 -0
  18. package/dist/runtime/components/ADocPickModal.vue +71 -0
  19. package/dist/runtime/components/ADocPickModal.vue.d.ts +13 -0
  20. package/dist/runtime/components/ADocRenderer.d.vue.ts +1 -1
  21. package/dist/runtime/components/ADocRenderer.vue +6 -0
  22. package/dist/runtime/components/ADocRenderer.vue.d.ts +1 -1
  23. package/dist/runtime/components/ADocTypeSelect.vue +4 -3
  24. package/dist/runtime/components/ADocumentTree.d.vue.ts +3 -3
  25. package/dist/runtime/components/ADocumentTree.vue +118 -10
  26. package/dist/runtime/components/ADocumentTree.vue.d.ts +3 -3
  27. package/dist/runtime/components/AEditor.d.vue.ts +4 -4
  28. package/dist/runtime/components/AEditor.vue +16 -1
  29. package/dist/runtime/components/AEditor.vue.d.ts +4 -4
  30. package/dist/runtime/components/AFloatingWindow.d.vue.ts +54 -2
  31. package/dist/runtime/components/AFloatingWindow.vue +15 -14
  32. package/dist/runtime/components/AFloatingWindow.vue.d.ts +54 -2
  33. package/dist/runtime/components/AIconPicker.vue +2 -0
  34. package/dist/runtime/components/AInviteRedeemModal.d.vue.ts +10 -0
  35. package/dist/runtime/components/AInviteRedeemModal.vue +122 -0
  36. package/dist/runtime/components/AInviteRedeemModal.vue.d.ts +10 -0
  37. package/dist/runtime/components/ANodePanel.vue +10 -2
  38. package/dist/runtime/components/ANotifications.vue +3 -1
  39. package/dist/runtime/components/APermissionGuard.vue +1 -0
  40. package/dist/runtime/components/APresence.vue +1 -0
  41. package/dist/runtime/components/AProvider.d.vue.ts +0 -1
  42. package/dist/runtime/components/AProvider.vue +17 -4
  43. package/dist/runtime/components/AProvider.vue.d.ts +0 -1
  44. package/dist/runtime/components/ARoleBadge.vue +1 -0
  45. package/dist/runtime/components/ASpaceFormModal.d.vue.ts +16 -0
  46. package/dist/runtime/components/ASpaceFormModal.vue +182 -0
  47. package/dist/runtime/components/ASpaceFormModal.vue.d.ts +16 -0
  48. package/dist/runtime/components/AVoiceBar.vue +3 -1
  49. package/dist/runtime/components/AVoiceTile.vue +1 -0
  50. package/dist/runtime/components/AWindowLayer.vue +1 -0
  51. package/dist/runtime/components/aware/AArea.d.vue.ts +1 -1
  52. package/dist/runtime/components/aware/AArea.vue +2 -1
  53. package/dist/runtime/components/aware/AArea.vue.d.ts +1 -1
  54. package/dist/runtime/components/aware/AAvatar.vue +2 -0
  55. package/dist/runtime/components/aware/AButton.vue +2 -1
  56. package/dist/runtime/components/aware/ACursorLabel.vue +1 -0
  57. package/dist/runtime/components/aware/ADocBadge.vue +2 -0
  58. package/dist/runtime/components/aware/AFacepile.vue +2 -0
  59. package/dist/runtime/components/aware/AInput.vue +3 -2
  60. package/dist/runtime/components/aware/ASelect.vue +3 -2
  61. package/dist/runtime/components/aware/ATextarea.vue +3 -2
  62. package/dist/runtime/components/aware/AUserList.vue +2 -0
  63. package/dist/runtime/components/chat/AChatAgentStatus.d.vue.ts +15 -0
  64. package/dist/runtime/components/chat/AChatAgentStatus.vue +95 -0
  65. package/dist/runtime/components/chat/AChatAgentStatus.vue.d.ts +15 -0
  66. package/dist/runtime/components/chat/AChatDocLink.d.vue.ts +18 -0
  67. package/dist/runtime/components/chat/AChatDocLink.vue +29 -0
  68. package/dist/runtime/components/chat/AChatDocLink.vue.d.ts +18 -0
  69. package/dist/runtime/components/chat/AChatDocQuote.d.vue.ts +26 -0
  70. package/dist/runtime/components/chat/AChatDocQuote.vue +47 -0
  71. package/dist/runtime/components/chat/AChatDocQuote.vue.d.ts +26 -0
  72. package/dist/runtime/components/chat/AChatInput.d.vue.ts +45 -0
  73. package/dist/runtime/components/chat/AChatInput.vue +219 -0
  74. package/dist/runtime/components/chat/AChatInput.vue.d.ts +45 -0
  75. package/dist/runtime/components/chat/AChatList.d.vue.ts +59 -0
  76. package/dist/runtime/components/chat/AChatList.vue +184 -0
  77. package/dist/runtime/components/chat/AChatList.vue.d.ts +59 -0
  78. package/dist/runtime/components/chat/AChatMemberList.d.vue.ts +24 -0
  79. package/dist/runtime/components/chat/AChatMemberList.vue +97 -0
  80. package/dist/runtime/components/chat/AChatMemberList.vue.d.ts +24 -0
  81. package/dist/runtime/components/chat/AChatMessages.d.vue.ts +31 -0
  82. package/dist/runtime/components/chat/AChatMessages.vue +161 -0
  83. package/dist/runtime/components/chat/AChatMessages.vue.d.ts +31 -0
  84. package/dist/runtime/components/chat/AChatPanel.d.vue.ts +84 -0
  85. package/dist/runtime/components/chat/AChatPanel.vue +89 -0
  86. package/dist/runtime/components/chat/AChatPanel.vue.d.ts +84 -0
  87. package/dist/runtime/components/chat/AChatTypingIndicator.d.vue.ts +11 -0
  88. package/dist/runtime/components/chat/AChatTypingIndicator.vue +58 -0
  89. package/dist/runtime/components/chat/AChatTypingIndicator.vue.d.ts +11 -0
  90. package/dist/runtime/components/editor/AColorPalettePopover.d.vue.ts +23 -0
  91. package/dist/runtime/components/editor/AColorPalettePopover.vue +71 -0
  92. package/dist/runtime/components/editor/AColorPalettePopover.vue.d.ts +23 -0
  93. package/dist/runtime/components/editor/ADocLinkPopover.d.vue.ts +7 -0
  94. package/dist/runtime/components/editor/ADocLinkPopover.vue +74 -0
  95. package/dist/runtime/components/editor/ADocLinkPopover.vue.d.ts +7 -0
  96. package/dist/runtime/components/editor/AFileAudioPlayer.d.vue.ts +10 -0
  97. package/dist/runtime/components/editor/AFileAudioPlayer.vue +353 -0
  98. package/dist/runtime/components/editor/AFileAudioPlayer.vue.d.ts +10 -0
  99. package/dist/runtime/components/editor/AFileGlbViewer.d.vue.ts +13 -0
  100. package/dist/runtime/components/editor/AFileGlbViewer.vue +187 -0
  101. package/dist/runtime/components/editor/AFileGlbViewer.vue.d.ts +13 -0
  102. package/dist/runtime/components/editor/AFileVideoPlayer.d.vue.ts +7 -0
  103. package/dist/runtime/components/editor/AFileVideoPlayer.vue +62 -0
  104. package/dist/runtime/components/editor/AFileVideoPlayer.vue.d.ts +7 -0
  105. package/dist/runtime/components/editor/ALinkPopover.d.vue.ts +8 -0
  106. package/dist/runtime/components/editor/ALinkPopover.vue +149 -0
  107. package/dist/runtime/components/editor/ALinkPopover.vue.d.ts +8 -0
  108. package/dist/runtime/components/editor/ALocationPickerPopover.d.vue.ts +28 -0
  109. package/dist/runtime/components/editor/ALocationPickerPopover.vue +232 -0
  110. package/dist/runtime/components/editor/ALocationPickerPopover.vue.d.ts +28 -0
  111. package/dist/runtime/components/renderers/ACalendarRenderer.d.vue.ts +2 -0
  112. package/dist/runtime/components/renderers/ACalendarRenderer.vue +207 -327
  113. package/dist/runtime/components/renderers/ACalendarRenderer.vue.d.ts +2 -0
  114. package/dist/runtime/components/renderers/ACallRenderer.vue +3 -0
  115. package/dist/runtime/components/renderers/AChecklistRenderer.vue +1 -0
  116. package/dist/runtime/components/renderers/ADashboardRenderer.vue +14 -12
  117. package/dist/runtime/components/renderers/AGalleryRenderer.vue +120 -12
  118. package/dist/runtime/components/renderers/AGraphRenderer.vue +5 -2
  119. package/dist/runtime/components/renderers/AKanbanRenderer.vue +21 -5
  120. package/dist/runtime/components/renderers/AMapRenderer.vue +2 -0
  121. package/dist/runtime/components/renderers/AMediaRenderer.d.vue.ts +19 -0
  122. package/dist/runtime/components/renderers/AMediaRenderer.vue +224 -0
  123. package/dist/runtime/components/renderers/AMediaRenderer.vue.d.ts +19 -0
  124. package/dist/runtime/components/renderers/AOutlineRenderer.vue +1 -0
  125. package/dist/runtime/components/renderers/ASpatialRenderer.d.vue.ts +19 -0
  126. package/dist/runtime/components/renderers/ASpatialRenderer.vue +436 -0
  127. package/dist/runtime/components/renderers/ASpatialRenderer.vue.d.ts +19 -0
  128. package/dist/runtime/components/renderers/ATableRenderer.vue +65 -45
  129. package/dist/runtime/components/renderers/ATimelineRenderer.vue +282 -260
  130. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.d.vue.ts +41 -0
  131. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue +109 -0
  132. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue.d.ts +41 -0
  133. package/dist/runtime/components/renderers/calendar/ACalendarDayView.d.vue.ts +49 -0
  134. package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue +152 -0
  135. package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue.d.ts +49 -0
  136. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.d.vue.ts +39 -0
  137. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue +101 -0
  138. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue.d.ts +39 -0
  139. package/dist/runtime/components/renderers/calendar/ACalendarMonthView.d.vue.ts +43 -0
  140. package/dist/runtime/components/renderers/calendar/ACalendarMonthView.vue +87 -0
  141. package/dist/runtime/components/renderers/calendar/ACalendarMonthView.vue.d.ts +43 -0
  142. package/dist/runtime/components/renderers/calendar/ACalendarToolbar.d.vue.ts +38 -0
  143. package/dist/runtime/components/renderers/calendar/ACalendarToolbar.vue +206 -0
  144. package/dist/runtime/components/renderers/calendar/ACalendarToolbar.vue.d.ts +38 -0
  145. package/dist/runtime/components/renderers/calendar/ACalendarUnscheduled.d.vue.ts +28 -0
  146. package/dist/runtime/components/renderers/calendar/ACalendarUnscheduled.vue +33 -0
  147. package/dist/runtime/components/renderers/calendar/ACalendarUnscheduled.vue.d.ts +28 -0
  148. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.d.vue.ts +50 -0
  149. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue +188 -0
  150. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue.d.ts +50 -0
  151. package/dist/runtime/components/renderers/media/MediaPlaylist.d.vue.ts +25 -0
  152. package/dist/runtime/components/renderers/media/MediaPlaylist.vue +115 -0
  153. package/dist/runtime/components/renderers/media/MediaPlaylist.vue.d.ts +25 -0
  154. package/dist/runtime/components/renderers/media/MediaSyncBar.d.vue.ts +21 -0
  155. package/dist/runtime/components/renderers/media/MediaSyncBar.vue +61 -0
  156. package/dist/runtime/components/renderers/media/MediaSyncBar.vue.d.ts +21 -0
  157. package/dist/runtime/components/renderers/media/MediaTransportBar.d.vue.ts +22 -0
  158. package/dist/runtime/components/renderers/media/MediaTransportBar.vue +98 -0
  159. package/dist/runtime/components/renderers/media/MediaTransportBar.vue.d.ts +22 -0
  160. package/dist/runtime/components/renderers/spatial/SpatialGround.d.vue.ts +20 -0
  161. package/dist/runtime/components/renderers/spatial/SpatialGround.vue +26 -0
  162. package/dist/runtime/components/renderers/spatial/SpatialGround.vue.d.ts +20 -0
  163. package/dist/runtime/components/renderers/spatial/SpatialObject.d.vue.ts +17 -0
  164. package/dist/runtime/components/renderers/spatial/SpatialObject.vue +257 -0
  165. package/dist/runtime/components/renderers/spatial/SpatialObject.vue.d.ts +17 -0
  166. package/dist/runtime/components/renderers/spatial/SpatialSceneBridge.d.vue.ts +15 -0
  167. package/dist/runtime/components/renderers/spatial/SpatialSceneBridge.vue +18 -0
  168. package/dist/runtime/components/renderers/spatial/SpatialSceneBridge.vue.d.ts +15 -0
  169. package/dist/runtime/components/renderers/spatial/SpatialUserAvatar.d.vue.ts +8 -0
  170. package/dist/runtime/components/renderers/spatial/SpatialUserAvatar.vue +53 -0
  171. package/dist/runtime/components/renderers/spatial/SpatialUserAvatar.vue.d.ts +8 -0
  172. package/dist/runtime/components/renderers/table/ATableColumnHeader.d.vue.ts +25 -0
  173. package/dist/runtime/components/renderers/table/ATableColumnHeader.vue +129 -0
  174. package/dist/runtime/components/renderers/table/ATableColumnHeader.vue.d.ts +25 -0
  175. package/dist/runtime/components/renderers/table/ATableFlatMode.d.vue.ts +21 -0
  176. package/dist/runtime/components/renderers/table/ATableFlatMode.vue +370 -0
  177. package/dist/runtime/components/renderers/table/ATableFlatMode.vue.d.ts +21 -0
  178. package/dist/runtime/components/renderers/table/ATableToolbar.d.vue.ts +22 -0
  179. package/dist/runtime/components/renderers/table/ATableToolbar.vue +106 -0
  180. package/dist/runtime/components/renderers/table/ATableToolbar.vue.d.ts +22 -0
  181. package/dist/runtime/components/renderers/table/cells/ATableCell.d.vue.ts +18 -0
  182. package/dist/runtime/components/renderers/table/cells/ATableCell.vue +54 -0
  183. package/dist/runtime/components/renderers/table/cells/ATableCell.vue.d.ts +18 -0
  184. package/dist/runtime/components/renderers/table/cells/ATableCellColor.d.vue.ts +14 -0
  185. package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue +67 -0
  186. package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue.d.ts +14 -0
  187. package/dist/runtime/components/renderers/table/cells/ATableCellDate.d.vue.ts +16 -0
  188. package/dist/runtime/components/renderers/table/cells/ATableCellDate.vue +91 -0
  189. package/dist/runtime/components/renderers/table/cells/ATableCellDate.vue.d.ts +16 -0
  190. package/dist/runtime/components/renderers/table/cells/ATableCellMembers.d.vue.ts +6 -0
  191. package/dist/runtime/components/renderers/table/cells/ATableCellMembers.vue +30 -0
  192. package/dist/runtime/components/renderers/table/cells/ATableCellMembers.vue.d.ts +6 -0
  193. package/dist/runtime/components/renderers/table/cells/ATableCellMultiSelect.d.vue.ts +17 -0
  194. package/dist/runtime/components/renderers/table/cells/ATableCellMultiSelect.vue +76 -0
  195. package/dist/runtime/components/renderers/table/cells/ATableCellMultiSelect.vue.d.ts +17 -0
  196. package/dist/runtime/components/renderers/table/cells/ATableCellNumber.d.vue.ts +17 -0
  197. package/dist/runtime/components/renderers/table/cells/ATableCellNumber.vue +54 -0
  198. package/dist/runtime/components/renderers/table/cells/ATableCellNumber.vue.d.ts +17 -0
  199. package/dist/runtime/components/renderers/table/cells/ATableCellRating.d.vue.ts +16 -0
  200. package/dist/runtime/components/renderers/table/cells/ATableCellRating.vue +35 -0
  201. package/dist/runtime/components/renderers/table/cells/ATableCellRating.vue.d.ts +16 -0
  202. package/dist/runtime/components/renderers/table/cells/ATableCellSelect.d.vue.ts +18 -0
  203. package/dist/runtime/components/renderers/table/cells/ATableCellSelect.vue +111 -0
  204. package/dist/runtime/components/renderers/table/cells/ATableCellSelect.vue.d.ts +18 -0
  205. package/dist/runtime/components/renderers/table/cells/ATableCellSlider.d.vue.ts +16 -0
  206. package/dist/runtime/components/renderers/table/cells/ATableCellSlider.vue +35 -0
  207. package/dist/runtime/components/renderers/table/cells/ATableCellSlider.vue.d.ts +16 -0
  208. package/dist/runtime/components/renderers/table/cells/ATableCellTags.d.vue.ts +15 -0
  209. package/dist/runtime/components/renderers/table/cells/ATableCellTags.vue +92 -0
  210. package/dist/runtime/components/renderers/table/cells/ATableCellTags.vue.d.ts +15 -0
  211. package/dist/runtime/components/renderers/table/cells/ATableCellText.d.vue.ts +15 -0
  212. package/dist/runtime/components/renderers/table/cells/ATableCellText.vue +44 -0
  213. package/dist/runtime/components/renderers/table/cells/ATableCellText.vue.d.ts +15 -0
  214. package/dist/runtime/components/renderers/table/cells/ATableCellToggle.d.vue.ts +14 -0
  215. package/dist/runtime/components/renderers/table/cells/ATableCellToggle.vue +31 -0
  216. package/dist/runtime/components/renderers/table/cells/ATableCellToggle.vue.d.ts +14 -0
  217. package/dist/runtime/components/renderers/table/cells/ATableCellUrl.d.vue.ts +15 -0
  218. package/dist/runtime/components/renderers/table/cells/ATableCellUrl.vue +63 -0
  219. package/dist/runtime/components/renderers/table/cells/ATableCellUrl.vue.d.ts +15 -0
  220. package/dist/runtime/components/renderers/timeline/ATimelineAxis.d.vue.ts +9 -0
  221. package/dist/runtime/components/renderers/timeline/ATimelineAxis.vue +53 -0
  222. package/dist/runtime/components/renderers/timeline/ATimelineAxis.vue.d.ts +9 -0
  223. package/dist/runtime/components/renderers/timeline/ATimelineBar.d.vue.ts +26 -0
  224. package/dist/runtime/components/renderers/timeline/ATimelineBar.vue +59 -0
  225. package/dist/runtime/components/renderers/timeline/ATimelineBar.vue.d.ts +26 -0
  226. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.d.vue.ts +28 -0
  227. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue +109 -0
  228. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue.d.ts +28 -0
  229. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.d.vue.ts +43 -0
  230. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue +168 -0
  231. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue.d.ts +43 -0
  232. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.d.vue.ts +24 -0
  233. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue +46 -0
  234. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue.d.ts +24 -0
  235. package/dist/runtime/components/renderers/timeline/ATimelineToolbar.d.vue.ts +34 -0
  236. package/dist/runtime/components/renderers/timeline/ATimelineToolbar.vue +193 -0
  237. package/dist/runtime/components/renderers/timeline/ATimelineToolbar.vue.d.ts +34 -0
  238. package/dist/runtime/components/settings/ASettingsAdminPanel.d.vue.ts +3 -0
  239. package/dist/runtime/components/settings/ASettingsAdminPanel.vue +159 -0
  240. package/dist/runtime/components/settings/ASettingsAdminPanel.vue.d.ts +3 -0
  241. package/dist/runtime/components/settings/ASettingsConnectionPanel.d.vue.ts +3 -0
  242. package/dist/runtime/components/settings/ASettingsConnectionPanel.vue +146 -0
  243. package/dist/runtime/components/settings/ASettingsConnectionPanel.vue.d.ts +3 -0
  244. package/dist/runtime/components/settings/ASettingsInvitesPanel.d.vue.ts +3 -0
  245. package/dist/runtime/components/settings/ASettingsInvitesPanel.vue +157 -0
  246. package/dist/runtime/components/settings/ASettingsInvitesPanel.vue.d.ts +3 -0
  247. package/dist/runtime/components/settings/ASettingsMembersPanel.d.vue.ts +3 -0
  248. package/dist/runtime/components/settings/ASettingsMembersPanel.vue +134 -0
  249. package/dist/runtime/components/settings/ASettingsMembersPanel.vue.d.ts +3 -0
  250. package/dist/runtime/components/settings/ASettingsModal.d.vue.ts +3 -0
  251. package/dist/runtime/components/settings/ASettingsModal.vue +176 -0
  252. package/dist/runtime/components/settings/ASettingsModal.vue.d.ts +3 -0
  253. package/dist/runtime/components/settings/ASettingsOfflinePanel.d.vue.ts +3 -0
  254. package/dist/runtime/components/settings/ASettingsOfflinePanel.vue +170 -0
  255. package/dist/runtime/components/settings/ASettingsOfflinePanel.vue.d.ts +3 -0
  256. package/dist/runtime/components/settings/ASettingsPluginsPanel.d.vue.ts +3 -0
  257. package/dist/runtime/components/settings/ASettingsPluginsPanel.vue +96 -0
  258. package/dist/runtime/components/settings/ASettingsPluginsPanel.vue.d.ts +3 -0
  259. package/dist/runtime/components/settings/ASettingsProfilePanel.d.vue.ts +3 -0
  260. package/dist/runtime/components/settings/ASettingsProfilePanel.vue +223 -0
  261. package/dist/runtime/components/settings/ASettingsProfilePanel.vue.d.ts +3 -0
  262. package/dist/runtime/components/settings/ASettingsSecurityPanel.d.vue.ts +3 -0
  263. package/dist/runtime/components/settings/ASettingsSecurityPanel.vue +312 -0
  264. package/dist/runtime/components/settings/ASettingsSecurityPanel.vue.d.ts +3 -0
  265. package/dist/runtime/components/settings/ASettingsSpacesPanel.d.vue.ts +3 -0
  266. package/dist/runtime/components/settings/ASettingsSpacesPanel.vue +195 -0
  267. package/dist/runtime/components/settings/ASettingsSpacesPanel.vue.d.ts +3 -0
  268. package/dist/runtime/components/settings/ASettingsTrashPanel.d.vue.ts +3 -0
  269. package/dist/runtime/components/settings/ASettingsTrashPanel.vue +135 -0
  270. package/dist/runtime/components/settings/ASettingsTrashPanel.vue.d.ts +3 -0
  271. package/dist/runtime/components/shell/AChildContextMenu.d.vue.ts +30 -0
  272. package/dist/runtime/components/shell/AChildContextMenu.vue +48 -0
  273. package/dist/runtime/components/shell/AChildContextMenu.vue.d.ts +30 -0
  274. package/dist/runtime/components/shell/ACursorOverlay.d.vue.ts +11 -0
  275. package/dist/runtime/components/shell/ACursorOverlay.vue +55 -0
  276. package/dist/runtime/components/shell/ACursorOverlay.vue.d.ts +11 -0
  277. package/dist/runtime/components/shell/ADocDragGhost.d.vue.ts +3 -0
  278. package/dist/runtime/components/shell/ADocDragGhost.vue +58 -0
  279. package/dist/runtime/components/shell/ADocDragGhost.vue.d.ts +3 -0
  280. package/dist/runtime/components/shell/ADocPanelSettings.d.vue.ts +111 -0
  281. package/dist/runtime/components/shell/ADocPanelSettings.vue +621 -0
  282. package/dist/runtime/components/shell/ADocPanelSettings.vue.d.ts +111 -0
  283. package/dist/runtime/components/shell/AFavoritesList.d.vue.ts +27 -0
  284. package/dist/runtime/components/shell/AFavoritesList.vue +83 -0
  285. package/dist/runtime/components/shell/AFavoritesList.vue.d.ts +27 -0
  286. package/dist/runtime/components/shell/ANodeContextMenu.d.vue.ts +17 -0
  287. package/dist/runtime/components/shell/ANodeContextMenu.vue +14 -0
  288. package/dist/runtime/components/shell/ANodeContextMenu.vue.d.ts +17 -0
  289. package/dist/runtime/components/shell/ASidebar.d.vue.ts +54 -0
  290. package/dist/runtime/components/shell/ASidebar.vue +92 -0
  291. package/dist/runtime/components/shell/ASidebar.vue.d.ts +54 -0
  292. package/dist/runtime/components/shell/ASidebarToggle.d.vue.ts +7 -0
  293. package/dist/runtime/components/shell/ASidebarToggle.vue +23 -0
  294. package/dist/runtime/components/shell/ASidebarToggle.vue.d.ts +7 -0
  295. package/dist/runtime/components/shell/ASpaceSwitcher.d.vue.ts +32 -0
  296. package/dist/runtime/components/shell/ASpaceSwitcher.vue +63 -0
  297. package/dist/runtime/components/shell/ASpaceSwitcher.vue.d.ts +32 -0
  298. package/dist/runtime/components/shell/ASyncStatus.d.vue.ts +25 -0
  299. package/dist/runtime/components/shell/ASyncStatus.vue +96 -0
  300. package/dist/runtime/components/shell/ASyncStatus.vue.d.ts +25 -0
  301. package/dist/runtime/components/shell/AUserMenu.d.vue.ts +28 -0
  302. package/dist/runtime/components/shell/AUserMenu.vue +79 -0
  303. package/dist/runtime/components/shell/AUserMenu.vue.d.ts +28 -0
  304. package/dist/runtime/components/shell/AUserProfilePopover.d.vue.ts +54 -0
  305. package/dist/runtime/components/shell/AUserProfilePopover.vue +176 -0
  306. package/dist/runtime/components/shell/AUserProfilePopover.vue.d.ts +54 -0
  307. package/dist/runtime/components/shell/AWelcomeScreen.d.vue.ts +96 -0
  308. package/dist/runtime/components/shell/AWelcomeScreen.vue +422 -0
  309. package/dist/runtime/components/shell/AWelcomeScreen.vue.d.ts +96 -0
  310. package/dist/runtime/composables/useAAField.js +2 -0
  311. package/dist/runtime/composables/useAbraLocale.js +1 -0
  312. package/dist/runtime/composables/useAbracadabra.js +1 -0
  313. package/dist/runtime/composables/useAbracadabraAuth.d.ts +3 -4
  314. package/dist/runtime/composables/useAbracadabraAuth.js +4 -0
  315. package/dist/runtime/composables/useAwareness.js +1 -0
  316. package/dist/runtime/composables/useAwarenessPeers.js +1 -0
  317. package/dist/runtime/composables/useBackgroundSync.d.ts +5 -0
  318. package/dist/runtime/composables/useBackgroundSync.js +24 -3
  319. package/dist/runtime/composables/useCalendarView.d.ts +86 -0
  320. package/dist/runtime/composables/useCalendarView.js +316 -0
  321. package/dist/runtime/composables/useChat.d.ts +2 -1
  322. package/dist/runtime/composables/useChat.js +17 -10
  323. package/dist/runtime/composables/useChatUsers.js +1 -0
  324. package/dist/runtime/composables/useChildTree.d.ts +4 -2
  325. package/dist/runtime/composables/useChildTree.js +31 -21
  326. package/dist/runtime/composables/useCommandPalette.js +16 -17
  327. package/dist/runtime/composables/useConnectionStatus.d.ts +1 -1
  328. package/dist/runtime/composables/useConnectionStatus.js +1 -1
  329. package/dist/runtime/composables/useCrossWindowSync.d.ts +11 -0
  330. package/dist/runtime/composables/useCrossWindowSync.js +38 -0
  331. package/dist/runtime/composables/useDashboard.js +17 -9
  332. package/dist/runtime/composables/useDevicePairing.js +2 -0
  333. package/dist/runtime/composables/useDocDragBus.d.ts +28 -0
  334. package/dist/runtime/composables/useDocDragBus.js +22 -0
  335. package/dist/runtime/composables/useDocDropZone.d.ts +51 -0
  336. package/dist/runtime/composables/useDocDropZone.js +84 -0
  337. package/dist/runtime/composables/useDocExport.js +2 -0
  338. package/dist/runtime/composables/useDocImport.js +1 -0
  339. package/dist/runtime/composables/useDocLabels.d.ts +22 -0
  340. package/dist/runtime/composables/useDocLabels.js +11 -0
  341. package/dist/runtime/composables/useDocLinkPick.d.ts +18 -0
  342. package/dist/runtime/composables/useDocLinkPick.js +22 -0
  343. package/dist/runtime/composables/useDocSeo.js +3 -2
  344. package/dist/runtime/composables/useDocSlugs.js +3 -0
  345. package/dist/runtime/composables/useDocTree.d.ts +1 -0
  346. package/dist/runtime/composables/useDocTree.js +6 -2
  347. package/dist/runtime/composables/useEditor.js +1 -0
  348. package/dist/runtime/composables/useEditorDragHandle.js +2 -0
  349. package/dist/runtime/composables/useEditorEmojis.d.ts +22 -0
  350. package/dist/runtime/composables/useEditorEmojis.js +57 -0
  351. package/dist/runtime/composables/useEditorMentions.d.ts +10 -3
  352. package/dist/runtime/composables/useEditorMentions.js +31 -3
  353. package/dist/runtime/composables/useEditorSuggestions.d.ts +2 -2
  354. package/dist/runtime/composables/useEditorSuggestions.js +27 -19
  355. package/dist/runtime/composables/useEditorToolbar.d.ts +1 -1
  356. package/dist/runtime/composables/useEditorToolbar.js +3 -0
  357. package/dist/runtime/composables/useFavorites.d.ts +13 -0
  358. package/dist/runtime/composables/useFavorites.js +42 -0
  359. package/dist/runtime/composables/useFileIndex.js +2 -0
  360. package/dist/runtime/composables/useFileTransfer.js +13 -1
  361. package/dist/runtime/composables/useFollowUser.js +2 -0
  362. package/dist/runtime/composables/useIdentityDoc.d.ts +89 -0
  363. package/dist/runtime/composables/useIdentityDoc.js +349 -0
  364. package/dist/runtime/composables/useInstalledPlugins.d.ts +31 -0
  365. package/dist/runtime/composables/useInstalledPlugins.js +58 -0
  366. package/dist/runtime/composables/useInvites.js +1 -0
  367. package/dist/runtime/composables/useJoinLink.d.ts +25 -0
  368. package/dist/runtime/composables/useJoinLink.js +58 -0
  369. package/dist/runtime/composables/useMediaExtractor.d.ts +31 -0
  370. package/dist/runtime/composables/useMediaExtractor.js +46 -0
  371. package/dist/runtime/composables/useMediaPlayback.d.ts +43 -0
  372. package/dist/runtime/composables/useMediaPlayback.js +465 -0
  373. package/dist/runtime/composables/useNodeContextMenu.d.ts +26 -0
  374. package/dist/runtime/composables/useNodeContextMenu.js +99 -0
  375. package/dist/runtime/composables/useNodePanel.d.ts +7 -1
  376. package/dist/runtime/composables/useNodePanel.js +45 -8
  377. package/dist/runtime/composables/useNodePanelFollow.d.ts +2 -0
  378. package/dist/runtime/composables/useNodePanelFollow.js +37 -0
  379. package/dist/runtime/composables/useNotifications.d.ts +1 -0
  380. package/dist/runtime/composables/useNotifications.js +7 -2
  381. package/dist/runtime/composables/usePluginRegistry.js +1 -0
  382. package/dist/runtime/composables/useRendererBase.d.ts +16 -1
  383. package/dist/runtime/composables/useRendererBase.js +10 -1
  384. package/dist/runtime/composables/useSearchIndex.js +2 -0
  385. package/dist/runtime/composables/useSettingsModal.d.ts +18 -0
  386. package/dist/runtime/composables/useSettingsModal.js +30 -0
  387. package/dist/runtime/composables/useSlideoverSwipe.d.ts +39 -0
  388. package/dist/runtime/composables/useSlideoverSwipe.js +48 -0
  389. package/dist/runtime/composables/useSlugRoute.js +2 -0
  390. package/dist/runtime/composables/useSpaces.js +2 -0
  391. package/dist/runtime/composables/useSpatialCamera.d.ts +16 -0
  392. package/dist/runtime/composables/useSpatialCamera.js +175 -0
  393. package/dist/runtime/composables/useSpatialDrag.d.ts +14 -0
  394. package/dist/runtime/composables/useSpatialDrag.js +137 -0
  395. package/dist/runtime/composables/useTableView.d.ts +29 -0
  396. package/dist/runtime/composables/useTableView.js +184 -0
  397. package/dist/runtime/composables/useTimelineView.d.ts +55 -0
  398. package/dist/runtime/composables/useTimelineView.js +434 -0
  399. package/dist/runtime/composables/useTiptapDragState.d.ts +8 -0
  400. package/dist/runtime/composables/useTiptapDragState.js +5 -0
  401. package/dist/runtime/composables/useTouchDrag.d.ts +2 -0
  402. package/dist/runtime/composables/useTouchDrag.js +3 -0
  403. package/dist/runtime/composables/useTrash.d.ts +4 -0
  404. package/dist/runtime/composables/useTrash.js +6 -3
  405. package/dist/runtime/composables/useTreeUndoManager.d.ts +22 -0
  406. package/dist/runtime/composables/useTreeUndoManager.js +45 -0
  407. package/dist/runtime/composables/useUndoRedo.d.ts +37 -0
  408. package/dist/runtime/composables/useUndoRedo.js +115 -0
  409. package/dist/runtime/composables/useVoice.js +2 -0
  410. package/dist/runtime/composables/useWebRTC.js +2 -0
  411. package/dist/runtime/composables/useWindowManager.d.ts +2 -0
  412. package/dist/runtime/composables/useWindowManager.js +63 -1
  413. package/dist/runtime/extensions/code-preview.d.ts +2 -0
  414. package/dist/runtime/extensions/code-preview.js +17 -0
  415. package/dist/runtime/extensions/code-tree.d.ts +2 -0
  416. package/dist/runtime/extensions/code-tree.js +33 -0
  417. package/dist/runtime/extensions/doc-embed.d.ts +12 -0
  418. package/dist/runtime/extensions/doc-embed.js +63 -0
  419. package/dist/runtime/extensions/doc-link-drop.d.ts +3 -0
  420. package/dist/runtime/extensions/doc-link-drop.js +63 -0
  421. package/dist/runtime/extensions/document-header.js +1 -1
  422. package/dist/runtime/extensions/field.d.ts +3 -0
  423. package/dist/runtime/extensions/field.js +53 -0
  424. package/dist/runtime/extensions/mention-drop.d.ts +8 -0
  425. package/dist/runtime/extensions/mention-drop.js +47 -0
  426. package/dist/runtime/extensions/meta-field.js +2 -0
  427. package/dist/runtime/extensions/selection-drag.d.ts +13 -0
  428. package/dist/runtime/extensions/selection-drag.js +126 -0
  429. package/dist/runtime/extensions/views/AccordionItemView.vue +1 -0
  430. package/dist/runtime/extensions/views/BadgeView.vue +1 -0
  431. package/dist/runtime/extensions/views/CardView.vue +1 -0
  432. package/dist/runtime/extensions/views/CodeCollapseView.vue +1 -0
  433. package/dist/runtime/extensions/views/CodeGroupView.vue +1 -0
  434. package/dist/runtime/extensions/views/CodePreviewView.d.vue.ts +4 -0
  435. package/dist/runtime/extensions/views/CodePreviewView.vue +48 -0
  436. package/dist/runtime/extensions/views/CodePreviewView.vue.d.ts +4 -0
  437. package/dist/runtime/extensions/views/CodeTreeView.d.vue.ts +4 -0
  438. package/dist/runtime/extensions/views/CodeTreeView.vue +88 -0
  439. package/dist/runtime/extensions/views/CodeTreeView.vue.d.ts +4 -0
  440. package/dist/runtime/extensions/views/CollapsibleView.vue +1 -0
  441. package/dist/runtime/extensions/views/DocEmbedView.d.vue.ts +4 -0
  442. package/dist/runtime/extensions/views/DocEmbedView.vue +198 -0
  443. package/dist/runtime/extensions/views/DocEmbedView.vue.d.ts +4 -0
  444. package/dist/runtime/extensions/views/FieldGroupView.d.vue.ts +4 -0
  445. package/dist/runtime/extensions/views/FieldGroupView.vue +25 -0
  446. package/dist/runtime/extensions/views/FieldGroupView.vue.d.ts +4 -0
  447. package/dist/runtime/extensions/views/FieldView.d.vue.ts +4 -0
  448. package/dist/runtime/extensions/views/FieldView.vue +53 -0
  449. package/dist/runtime/extensions/views/FieldView.vue.d.ts +4 -0
  450. package/dist/runtime/extensions/views/FileNodeView.vue +2 -0
  451. package/dist/runtime/extensions/views/KbdView.vue +1 -0
  452. package/dist/runtime/extensions/views/MetaFieldView.vue +68 -2
  453. package/dist/runtime/extensions/views/ProseIconView.vue +1 -0
  454. package/dist/runtime/extensions/views/StepsView.vue +1 -0
  455. package/dist/runtime/extensions/views/TabsView.vue +1 -0
  456. package/dist/runtime/locale.d.ts +65 -0
  457. package/dist/runtime/locale.js +67 -2
  458. package/dist/runtime/middleware/abracadabra-auth.d.ts +1 -10
  459. package/dist/runtime/middleware/abracadabra-auth.js +2 -0
  460. package/dist/runtime/plugin-abracadabra.client.d.ts +1 -1
  461. package/dist/runtime/plugin-abracadabra.client.js +99 -53
  462. package/dist/runtime/plugin-abracadabra.server.d.ts +1 -1
  463. package/dist/runtime/plugin-abracadabra.server.js +2 -0
  464. package/dist/runtime/plugin-shared-globals.client.d.ts +1 -1
  465. package/dist/runtime/plugin-shared-globals.client.js +1 -0
  466. package/dist/runtime/plugins/core.plugin.js +40 -4
  467. package/dist/runtime/server/api/_abracadabra/render/[docId].get.d.ts +19 -17
  468. package/dist/runtime/server/api/_abracadabra/render/[docId].get.js +4 -0
  469. package/dist/runtime/server/api/_abracadabra/resolve/[...slug].get.d.ts +11 -1
  470. package/dist/runtime/server/api/_abracadabra/resolve/[...slug].get.js +1 -0
  471. package/dist/runtime/server/api/_abracadabra/slugs.get.js +1 -0
  472. package/dist/runtime/server/api/_abracadabra/spaces.get.d.ts +1 -10
  473. package/dist/runtime/server/api/_abracadabra/spaces.get.js +3 -0
  474. package/dist/runtime/server/plugins/abracadabra-service.js +24 -12
  475. package/dist/runtime/server/utils/docCache.d.ts +8 -6
  476. package/dist/runtime/server/utils/docCache.js +3 -3
  477. package/dist/runtime/server/utils/serverPluginLoader.d.ts +20 -0
  478. package/dist/runtime/server/utils/serverPluginLoader.js +42 -0
  479. package/dist/runtime/server/utils/serverRunner.d.ts +11 -2
  480. package/dist/runtime/server/utils/serverRunner.js +21 -10
  481. package/dist/runtime/server/utils/spaceManager.d.ts +25 -0
  482. package/dist/runtime/server/utils/spaceManager.js +188 -0
  483. package/dist/runtime/types.d.ts +128 -30
  484. package/dist/runtime/types.js +17 -17
  485. package/dist/runtime/utils/chatContent.d.ts +41 -0
  486. package/dist/runtime/utils/chatContent.js +65 -0
  487. package/dist/runtime/utils/colorPalettes.js +12 -6
  488. package/dist/runtime/utils/coverCache.d.ts +12 -0
  489. package/dist/runtime/utils/coverCache.js +14 -0
  490. package/dist/runtime/utils/docReferenceEdges.d.ts +26 -0
  491. package/dist/runtime/utils/docReferenceEdges.js +122 -0
  492. package/dist/runtime/utils/docTypes.d.ts +6 -1
  493. package/dist/runtime/utils/duplicateDocContent.d.ts +19 -0
  494. package/dist/runtime/utils/duplicateDocContent.js +68 -0
  495. package/dist/runtime/utils/extractFileMetadata.d.ts +13 -0
  496. package/dist/runtime/utils/extractFileMetadata.js +94 -0
  497. package/dist/runtime/utils/getMetaColor.d.ts +6 -0
  498. package/dist/runtime/utils/getMetaColor.js +12 -0
  499. package/dist/runtime/utils/htmlToYjs.d.ts +19 -0
  500. package/dist/runtime/utils/htmlToYjs.js +235 -0
  501. package/dist/runtime/utils/markdownToYjs.js +3 -3
  502. package/dist/runtime/utils/metaFieldDefinitions.js +9 -0
  503. package/dist/runtime/utils/notificationRenderers.d.ts +13 -0
  504. package/dist/runtime/utils/notificationRenderers.js +41 -0
  505. package/dist/runtime/utils/sdkRef.d.ts +12 -2
  506. package/dist/types.d.mts +12 -0
  507. package/package.json +26 -27
@@ -0,0 +1,621 @@
1
+ <script setup>
2
+ import { ref, computed } from "vue";
3
+ import { usePluginRegistry } from "#imports";
4
+ import { resolveDocType } from "../../utils/docTypes";
5
+ const props = defineProps({
6
+ docId: { type: String, required: true },
7
+ effectiveRole: { type: [String, null], required: false, default: null },
8
+ userName: { type: String, required: false, default: "User" },
9
+ userAvatarStyle: { type: String, required: false, default: "" },
10
+ isOwner: { type: Boolean, required: false, default: false },
11
+ permissions: { type: Array, required: false, default: () => [] },
12
+ loadingPermissions: { type: Boolean, required: false, default: false },
13
+ defaultRole: { type: String, required: false, default: "viewer" },
14
+ inheritedFromLabel: { type: [String, null], required: false, default: null },
15
+ onlineNotGranted: { type: Array, required: false, default: () => [] },
16
+ syncStatusIcon: { type: String, required: false, default: "i-lucide-cloud-off" },
17
+ syncStatusColor: { type: String, required: false, default: "text-(--ui-text-dimmed)" },
18
+ syncStatusLabel: { type: String, required: false, default: "Not available offline" },
19
+ isSyncing: { type: Boolean, required: false, default: false },
20
+ lastSyncedLabel: { type: [String, null], required: false, default: null },
21
+ syncError: { type: [String, null], required: false, default: null },
22
+ docTypeKey: { type: String, required: false, default: void 0 },
23
+ docMeta: { type: [Object, null], required: false, default: null }
24
+ });
25
+ const emit = defineEmits(["grant-permission", "change-role", "revoke-permission", "create-invite", "sync-doc", "open-encryption", "user-context-menu", "update-meta"]);
26
+ const grantUserId = ref("");
27
+ const grantRole = ref("editor");
28
+ const showManualKeyInput = ref(false);
29
+ const directPermissions = computed(
30
+ () => props.permissions.filter((p) => p.source === "direct" && p.username !== props.userName)
31
+ );
32
+ const inheritedPermissions = computed(
33
+ () => props.permissions.filter((p) => p.source === "inherited" && p.username !== props.userName)
34
+ );
35
+ const hasInheritedPermissions = computed(() => inheritedPermissions.value.length > 0);
36
+ const roleItems = [
37
+ { label: "Owner", value: "owner" },
38
+ { label: "Editor", value: "editor" },
39
+ { label: "Viewer", value: "viewer" },
40
+ { label: "Observer", value: "observer" }
41
+ ];
42
+ function roleBadgeColor(role) {
43
+ switch (role) {
44
+ case "owner":
45
+ return "primary";
46
+ case "editor":
47
+ return "success";
48
+ default:
49
+ return "neutral";
50
+ }
51
+ }
52
+ function roleIcon(role) {
53
+ switch (role) {
54
+ case "owner":
55
+ return "i-lucide-crown";
56
+ case "editor":
57
+ return "i-lucide-pencil";
58
+ case "viewer":
59
+ return "i-lucide-eye";
60
+ default:
61
+ return "i-lucide-eye-off";
62
+ }
63
+ }
64
+ function permissionMenuItems(perm) {
65
+ const roleGroup = ["owner", "editor", "viewer", "observer"].filter((r) => r !== perm.role).map((r) => ({
66
+ label: r.charAt(0).toUpperCase() + r.slice(1),
67
+ icon: roleIcon(r),
68
+ onSelect: () => emit("change-role", perm.userId, r)
69
+ }));
70
+ const revokeGroup = [{
71
+ label: "Revoke access",
72
+ icon: "i-lucide-user-x",
73
+ color: "error",
74
+ onSelect: () => emit("revoke-permission", perm.userId)
75
+ }];
76
+ return [roleGroup, revokeGroup];
77
+ }
78
+ function handleGrant(userId, role) {
79
+ const id = userId ?? grantUserId.value.trim();
80
+ const r = role ?? grantRole.value;
81
+ if (!id) return;
82
+ emit("grant-permission", id, r);
83
+ grantUserId.value = "";
84
+ }
85
+ const registry = usePluginRegistry();
86
+ const metaSchema = computed(() => {
87
+ if (!props.docTypeKey) return [];
88
+ const dt = resolveDocType(props.docTypeKey, registry);
89
+ return dt.metaSchema ?? [];
90
+ });
91
+ function getMetaValue(key) {
92
+ return props.docMeta?.[key] ?? void 0;
93
+ }
94
+ function patchMeta(key, value) {
95
+ emit("update-meta", { [key]: value });
96
+ }
97
+ </script>
98
+
99
+ <template>
100
+ <div class="flex-1 overflow-y-auto px-4 py-4 space-y-5">
101
+ <!-- Access section -->
102
+ <div class="space-y-3">
103
+ <p class="text-xs font-semibold uppercase tracking-wider text-(--ui-text-muted) flex items-center gap-1.5">
104
+ <UIcon
105
+ name="i-lucide-users"
106
+ class="size-3.5"
107
+ />
108
+ Access
109
+ </p>
110
+
111
+ <!-- Your role -->
112
+ <div class="flex items-center gap-3 p-3 rounded-lg bg-(--ui-bg-elevated)">
113
+ <UAvatar
114
+ :alt="userName"
115
+ size="md"
116
+ :style="userAvatarStyle"
117
+ />
118
+ <div class="flex-1 min-w-0">
119
+ <p class="text-sm font-medium text-(--ui-text-highlighted) truncate">
120
+ {{ userName }}
121
+ </p>
122
+ <p class="text-xs text-(--ui-text-muted)">
123
+ Your access
124
+ </p>
125
+ </div>
126
+ <UBadge
127
+ :label="effectiveRole ?? 'Connecting'"
128
+ :color="roleBadgeColor(effectiveRole ?? '')"
129
+ :icon="effectiveRole ? roleIcon(effectiveRole) : void 0"
130
+ variant="subtle"
131
+ class="capitalize"
132
+ />
133
+ </div>
134
+
135
+ <!-- Inheritance banner -->
136
+ <div
137
+ v-if="hasInheritedPermissions && !loadingPermissions"
138
+ class="flex items-start gap-2 px-3 py-2.5 rounded-lg bg-(--ui-bg-elevated)/60 text-xs text-(--ui-text-muted)"
139
+ >
140
+ <UIcon
141
+ name="i-lucide-git-branch"
142
+ class="size-3.5 shrink-0 mt-0.5"
143
+ />
144
+ <div>
145
+ <p>Permissions inherited from {{ inheritedFromLabel || "parent document" }}</p>
146
+ <p class="mt-0.5">
147
+ {{ permissions.length }} people with access
148
+ </p>
149
+ </div>
150
+ </div>
151
+
152
+ <!-- Permission list -->
153
+ <Transition
154
+ name="sf"
155
+ mode="out-in"
156
+ >
157
+ <div
158
+ v-if="loadingPermissions"
159
+ key="sk"
160
+ class="space-y-0.5"
161
+ >
162
+ <div
163
+ v-for="i in 3"
164
+ :key="i"
165
+ class="flex items-center gap-3 py-2 px-3"
166
+ >
167
+ <USkeleton class="size-8 rounded-full shrink-0" />
168
+ <div class="flex-1 space-y-1.5">
169
+ <USkeleton class="h-3.5 w-28 rounded" />
170
+ <USkeleton class="h-3 w-20 rounded" />
171
+ </div>
172
+ <USkeleton class="h-5 w-14 rounded-full shrink-0" />
173
+ </div>
174
+ </div>
175
+ <div
176
+ v-else-if="permissions.length === 0"
177
+ key="empty"
178
+ class="text-sm text-(--ui-text-muted) py-4 text-center"
179
+ >
180
+ <UIcon
181
+ name="i-lucide-users"
182
+ class="size-6 mb-1 text-(--ui-text-dimmed) mx-auto block"
183
+ />
184
+ No permissions found
185
+ </div>
186
+ <div
187
+ v-else
188
+ key="list"
189
+ class="space-y-0.5"
190
+ >
191
+ <!-- Direct permissions -->
192
+ <template v-if="directPermissions.length">
193
+ <p
194
+ v-if="hasInheritedPermissions"
195
+ class="text-[10px] font-semibold uppercase tracking-wider text-(--ui-text-dimmed) px-3 pt-1"
196
+ >
197
+ Direct access
198
+ </p>
199
+ <ul class="space-y-0.5">
200
+ <li
201
+ v-for="perm in directPermissions"
202
+ :key="perm.userId"
203
+ >
204
+ <div class="flex items-center gap-3 py-2 px-3 rounded-lg hover:bg-(--ui-bg-elevated)/50 transition-colors">
205
+ <UAvatar
206
+ :alt="perm.displayName || perm.username"
207
+ size="sm"
208
+ />
209
+ <div class="flex-1 min-w-0">
210
+ <p class="text-sm font-medium text-(--ui-text-highlighted) truncate">
211
+ {{ perm.displayName || perm.username }}
212
+ </p>
213
+ </div>
214
+ <UDropdownMenu
215
+ v-if="isOwner"
216
+ :items="permissionMenuItems(perm)"
217
+ :content="{ align: 'end' }"
218
+ >
219
+ <UButton
220
+ :label="perm.role"
221
+ :color="roleBadgeColor(perm.role)"
222
+ variant="subtle"
223
+ size="xs"
224
+ trailing-icon="i-lucide-chevron-down"
225
+ class="capitalize"
226
+ />
227
+ </UDropdownMenu>
228
+ <UBadge
229
+ v-else
230
+ :label="perm.role"
231
+ :color="roleBadgeColor(perm.role)"
232
+ variant="subtle"
233
+ size="xs"
234
+ class="capitalize shrink-0"
235
+ />
236
+ </div>
237
+ </li>
238
+ </ul>
239
+ </template>
240
+
241
+ <!-- Inherited permissions -->
242
+ <template v-if="inheritedPermissions.length">
243
+ <USeparator
244
+ v-if="directPermissions.length"
245
+ class="my-2"
246
+ />
247
+ <p class="text-[10px] font-semibold uppercase tracking-wider text-(--ui-text-dimmed) px-3 pt-1 flex items-center gap-1">
248
+ <UIcon
249
+ name="i-lucide-arrow-up-right"
250
+ class="size-3"
251
+ />
252
+ Inherited access
253
+ </p>
254
+ <ul class="space-y-0.5">
255
+ <li
256
+ v-for="perm in inheritedPermissions"
257
+ :key="perm.userId"
258
+ >
259
+ <div class="flex items-center gap-3 py-2 px-3 rounded-lg hover:bg-(--ui-bg-elevated)/50 transition-colors opacity-75">
260
+ <UAvatar
261
+ :alt="perm.displayName || perm.username"
262
+ size="sm"
263
+ />
264
+ <div class="flex-1 min-w-0">
265
+ <p class="text-sm font-medium text-(--ui-text-highlighted) truncate">
266
+ {{ perm.displayName || perm.username }}
267
+ </p>
268
+ <p
269
+ v-if="perm.inheritedFromDocId"
270
+ class="text-[11px] text-(--ui-text-dimmed) truncate"
271
+ >
272
+ Inherited from {{ inheritedFromLabel || perm.inheritedFromDocId.slice(0, 8) + "\u2026" }}
273
+ </p>
274
+ </div>
275
+ <UBadge
276
+ :label="perm.role"
277
+ :color="roleBadgeColor(perm.role)"
278
+ variant="subtle"
279
+ size="xs"
280
+ class="capitalize shrink-0"
281
+ icon="i-lucide-arrow-up-right"
282
+ />
283
+ </div>
284
+ </li>
285
+ </ul>
286
+ </template>
287
+ </div>
288
+ </Transition>
289
+
290
+ <!-- Default access indicator -->
291
+ <div
292
+ v-if="!loadingPermissions"
293
+ class="flex items-center gap-2 px-3 py-2 text-xs text-(--ui-text-dimmed)"
294
+ >
295
+ <UIcon
296
+ name="i-lucide-globe"
297
+ class="size-3.5 shrink-0"
298
+ />
299
+ <span>Default access</span>
300
+ <UBadge
301
+ :label="defaultRole"
302
+ variant="subtle"
303
+ size="xs"
304
+ class="capitalize"
305
+ />
306
+ </div>
307
+
308
+ <!-- Grant access (owner only) -->
309
+ <template v-if="isOwner && !loadingPermissions">
310
+ <USeparator label="Add people" />
311
+ <div class="space-y-2">
312
+ <!-- Online users not yet granted -->
313
+ <div
314
+ v-if="onlineNotGranted.length"
315
+ class="space-y-1"
316
+ >
317
+ <p class="text-xs text-(--ui-text-dimmed) mb-1">
318
+ Online now
319
+ </p>
320
+ <div
321
+ v-for="u in onlineNotGranted"
322
+ :key="u.publicKey"
323
+ class="flex items-center gap-2.5 px-2 py-1.5 rounded-lg hover:bg-(--ui-bg-elevated)/60 transition-colors"
324
+ >
325
+ <UChip
326
+ color="success"
327
+ size="xs"
328
+ inset
329
+ >
330
+ <UAvatar
331
+ :alt="u.name"
332
+ size="xs"
333
+ />
334
+ </UChip>
335
+ <span class="text-sm flex-1 truncate text-(--ui-text-highlighted)">{{ u.name }}</span>
336
+ <div class="flex items-center gap-1.5 shrink-0">
337
+ <USelect
338
+ v-model="grantRole"
339
+ :items="roleItems"
340
+ size="xs"
341
+ class="w-24"
342
+ />
343
+ <UTooltip
344
+ text="Grant access"
345
+ :content="{ side: 'bottom' }"
346
+ >
347
+ <UButton
348
+ icon="i-lucide-user-plus"
349
+ size="xs"
350
+ color="primary"
351
+ variant="soft"
352
+ @click="handleGrant(u.publicKey, grantRole)"
353
+ />
354
+ </UTooltip>
355
+ </div>
356
+ </div>
357
+ </div>
358
+
359
+ <!-- Manual key input -->
360
+ <button
361
+ class="flex items-center gap-1.5 text-xs text-(--ui-text-muted) hover:text-(--ui-text) transition-colors"
362
+ @click="showManualKeyInput = !showManualKeyInput"
363
+ >
364
+ <UIcon
365
+ :name="showManualKeyInput ? 'i-lucide-chevron-down' : 'i-lucide-chevron-right'"
366
+ class="size-3"
367
+ />
368
+ Add by public key
369
+ </button>
370
+ <div
371
+ v-if="showManualKeyInput"
372
+ class="space-y-2"
373
+ >
374
+ <UInput
375
+ v-model="grantUserId"
376
+ placeholder="Paste public key…"
377
+ icon="i-lucide-key-round"
378
+ :ui="{ base: 'font-mono text-xs' }"
379
+ @keydown.enter="handleGrant()"
380
+ />
381
+ <div class="flex gap-2">
382
+ <USelect
383
+ v-model="grantRole"
384
+ :items="roleItems"
385
+ class="flex-1"
386
+ />
387
+ <UButton
388
+ label="Grant"
389
+ color="primary"
390
+ :disabled="!grantUserId.trim()"
391
+ icon="i-lucide-user-plus"
392
+ class="shrink-0"
393
+ @click="handleGrant()"
394
+ />
395
+ </div>
396
+ </div>
397
+ </div>
398
+ </template>
399
+ </div>
400
+
401
+ <!-- Document Properties (meta schema from doc type) -->
402
+ <template v-if="metaSchema.length">
403
+ <USeparator />
404
+ <div class="space-y-3">
405
+ <p class="text-xs font-semibold uppercase tracking-wider text-(--ui-text-muted) flex items-center gap-1.5">
406
+ <UIcon
407
+ name="i-lucide-settings-2"
408
+ class="size-3.5"
409
+ />
410
+ Properties
411
+ </p>
412
+ <div class="space-y-2">
413
+ <div
414
+ v-for="(field, idx) in metaSchema"
415
+ :key="idx"
416
+ class="space-y-1"
417
+ >
418
+ <label class="text-xs text-(--ui-text-dimmed)">{{ field.label || field.type }}</label>
419
+
420
+ <!-- Toggle -->
421
+ <div
422
+ v-if="field.type === 'toggle'"
423
+ class="flex items-center justify-between"
424
+ >
425
+ <span class="text-sm">{{ getMetaValue(field.key) ? "Yes" : "No" }}</span>
426
+ <USwitch
427
+ :model-value="!!getMetaValue(field.key)"
428
+ @update:model-value="(v) => patchMeta(field.key, v)"
429
+ />
430
+ </div>
431
+
432
+ <!-- Select -->
433
+ <USelect
434
+ v-else-if="field.type === 'select'"
435
+ :model-value="getMetaValue(field.key) || ''"
436
+ :items="(field.options ?? []).map((o) => ({ label: o, value: o }))"
437
+ size="sm"
438
+ @update:model-value="(v) => patchMeta(field.key, v)"
439
+ />
440
+
441
+ <!-- Date -->
442
+ <input
443
+ v-else-if="field.type === 'date'"
444
+ type="date"
445
+ :value="getMetaValue(field.key) || ''"
446
+ class="w-full text-sm rounded-md border border-(--ui-border) bg-transparent px-2.5 py-1.5 outline-none"
447
+ @change="(e) => patchMeta(field.key, e.target.value)"
448
+ >
449
+
450
+ <!-- Datetime -->
451
+ <input
452
+ v-else-if="field.type === 'datetime'"
453
+ type="datetime-local"
454
+ :value="getMetaValue(field.key) || ''"
455
+ class="w-full text-sm rounded-md border border-(--ui-border) bg-transparent px-2.5 py-1.5 outline-none"
456
+ @change="(e) => patchMeta(field.key, e.target.value)"
457
+ >
458
+
459
+ <!-- Date range -->
460
+ <div
461
+ v-else-if="field.type === 'daterange'"
462
+ class="flex gap-2"
463
+ >
464
+ <input
465
+ type="date"
466
+ :value="getMetaValue(field.startKey) || ''"
467
+ class="flex-1 text-sm rounded-md border border-(--ui-border) bg-transparent px-2.5 py-1.5 outline-none"
468
+ @change="(e) => patchMeta(field.startKey, e.target.value)"
469
+ >
470
+ <input
471
+ type="date"
472
+ :value="getMetaValue(field.endKey) || ''"
473
+ class="flex-1 text-sm rounded-md border border-(--ui-border) bg-transparent px-2.5 py-1.5 outline-none"
474
+ @change="(e) => patchMeta(field.endKey, e.target.value)"
475
+ >
476
+ </div>
477
+
478
+ <!-- Slider -->
479
+ <div
480
+ v-else-if="field.type === 'slider'"
481
+ class="flex items-center gap-2"
482
+ >
483
+ <USlider
484
+ :model-value="getMetaValue(field.key) ?? field.min ?? 0"
485
+ :min="field.min ?? 0"
486
+ :max="field.max ?? 100"
487
+ class="flex-1"
488
+ @update:model-value="(v) => patchMeta(field.key, v)"
489
+ />
490
+ <span class="text-xs w-8 text-right tabular-nums">{{ getMetaValue(field.key) ?? 0 }}</span>
491
+ </div>
492
+
493
+ <!-- Color preset -->
494
+ <div
495
+ v-else-if="field.type === 'colorPreset'"
496
+ class="flex flex-wrap gap-1.5"
497
+ >
498
+ <button
499
+ v-for="c in field.presets ?? []"
500
+ :key="c"
501
+ class="size-5 rounded-full border-2 cursor-pointer"
502
+ :style="`background: ${c}; border-color: ${getMetaValue(field.key) === c ? c : 'transparent'}`"
503
+ :class="getMetaValue(field.key) === c ? 'ring-2 ring-offset-1 ring-current' : ''"
504
+ @click="patchMeta(field.key, getMetaValue(field.key) === c ? '' : c)"
505
+ />
506
+ </div>
507
+
508
+ <!-- Number -->
509
+ <UInputNumber
510
+ v-else-if="field.type === 'number'"
511
+ :model-value="getMetaValue(field.key) ?? 0"
512
+ :min="field.min"
513
+ :max="field.max"
514
+ :step="field.step ?? 1"
515
+ size="sm"
516
+ @update:model-value="(v) => patchMeta(field.key, v)"
517
+ />
518
+
519
+ <!-- URL -->
520
+ <UInput
521
+ v-else-if="field.type === 'url'"
522
+ :model-value="getMetaValue(field.key) || ''"
523
+ size="sm"
524
+ placeholder="https://…"
525
+ leading-icon="i-lucide-link"
526
+ @update:model-value="(v) => patchMeta(field.key, v)"
527
+ />
528
+
529
+ <!-- Textarea -->
530
+ <UTextarea
531
+ v-else-if="field.type === 'textarea'"
532
+ :model-value="getMetaValue(field.key) || ''"
533
+ size="sm"
534
+ :rows="2"
535
+ @update:model-value="(v) => patchMeta(field.key, v)"
536
+ />
537
+
538
+ <!-- Fallback: show type name -->
539
+ <span
540
+ v-else
541
+ class="text-xs text-(--ui-text-dimmed)"
542
+ >{{ field.type }}</span>
543
+ </div>
544
+ </div>
545
+ </div>
546
+ </template>
547
+
548
+ <!-- Encryption slot -->
549
+ <template v-if="$slots.encryption">
550
+ <USeparator />
551
+ <div class="space-y-3">
552
+ <p class="text-xs font-semibold uppercase tracking-wider text-(--ui-text-muted) flex items-center gap-1.5">
553
+ <UIcon
554
+ name="i-lucide-lock-keyhole"
555
+ class="size-3.5"
556
+ />
557
+ Encryption
558
+ </p>
559
+ <slot name="encryption" />
560
+ </div>
561
+ </template>
562
+
563
+ <!-- Offline sync section -->
564
+ <USeparator />
565
+ <div class="space-y-3">
566
+ <div class="flex items-center justify-between">
567
+ <p class="text-xs font-semibold uppercase tracking-wider text-(--ui-text-muted) flex items-center gap-1.5">
568
+ <UIcon
569
+ name="i-lucide-cloud-download"
570
+ class="size-3.5"
571
+ />
572
+ Offline sync
573
+ </p>
574
+ <UTooltip
575
+ text="Sync now"
576
+ :content="{ side: 'bottom' }"
577
+ >
578
+ <UButton
579
+ icon="i-lucide-refresh-cw"
580
+ variant="ghost"
581
+ color="neutral"
582
+ size="xs"
583
+ :loading="isSyncing"
584
+ @click="emit('sync-doc')"
585
+ />
586
+ </UTooltip>
587
+ </div>
588
+ <div class="flex items-center gap-3 p-3 rounded-lg bg-(--ui-bg-elevated)">
589
+ <UIcon
590
+ :name="syncStatusIcon"
591
+ :class="syncStatusColor"
592
+ class="size-4 shrink-0"
593
+ />
594
+ <div class="flex-1 min-w-0">
595
+ <p class="text-sm text-(--ui-text)">
596
+ {{ syncStatusLabel }}
597
+ </p>
598
+ <p class="text-xs text-(--ui-text-dimmed)">
599
+ {{ lastSyncedLabel ?? "Not yet synced" }}
600
+ </p>
601
+ </div>
602
+ </div>
603
+ <p
604
+ v-if="syncError"
605
+ class="mt-1 text-xs text-(--ui-color-error-500)"
606
+ >
607
+ {{ syncError }}
608
+ </p>
609
+ </div>
610
+
611
+ <!-- Extra slots for app-specific sections -->
612
+ <template v-if="$slots.extra">
613
+ <USeparator />
614
+ <slot name="extra" />
615
+ </template>
616
+ </div>
617
+ </template>
618
+
619
+ <style scoped>
620
+ .sf-enter-active,.sf-leave-active{transition:opacity .15s ease}.sf-enter-from,.sf-leave-to{opacity:0}
621
+ </style>