@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,25 @@
1
+ type __VLS_Props = {
2
+ fieldKey: string;
3
+ awareness?: boolean;
4
+ live?: boolean;
5
+ total?: boolean;
6
+ };
7
+ declare var __VLS_10: string, __VLS_11: any, __VLS_29: string, __VLS_30: any;
8
+ type __VLS_Slots = {} & {
9
+ [K in NonNullable<typeof __VLS_10>]?: (props: typeof __VLS_11) => any;
10
+ } & {
11
+ [K in NonNullable<typeof __VLS_29>]?: (props: typeof __VLS_30) => any;
12
+ };
13
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
14
+ awareness: boolean;
15
+ live: boolean;
16
+ total: boolean;
17
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
19
+ declare const _default: typeof __VLS_export;
20
+ export default _default;
21
+ type __VLS_WithSlots<T, S> = T & {
22
+ new (): {
23
+ $slots: S;
24
+ };
25
+ };
@@ -0,0 +1,27 @@
1
+ type __VLS_Props = {
2
+ fieldKey: string;
3
+ awareness?: boolean;
4
+ live?: boolean;
5
+ peers?: boolean;
6
+ total?: boolean;
7
+ max?: number;
8
+ };
9
+ declare var __VLS_9: string, __VLS_10: any;
10
+ type __VLS_Slots = {} & {
11
+ [K in NonNullable<typeof __VLS_9>]?: (props: typeof __VLS_10) => any;
12
+ };
13
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
14
+ peers: boolean;
15
+ awareness: boolean;
16
+ max: number;
17
+ live: boolean;
18
+ total: boolean;
19
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
23
+ type __VLS_WithSlots<T, S> = T & {
24
+ new (): {
25
+ $slots: S;
26
+ };
27
+ };
@@ -0,0 +1,67 @@
1
+ <script setup>
2
+ import { computed, ref, useAttrs, watch } from "vue";
3
+ import { useAAUIState } from "../../composables/useAAUIState";
4
+ import { useAAEphemeral } from "../../composables/useAAEphemeral";
5
+ defineOptions({ inheritAttrs: false });
6
+ const props = defineProps({
7
+ fieldKey: { type: String, required: true },
8
+ awareness: { type: Boolean, required: false, default: true },
9
+ live: { type: Boolean, required: false, default: false },
10
+ peers: { type: Boolean, required: false, default: false },
11
+ total: { type: Boolean, required: false, default: false },
12
+ max: { type: Number, required: false, default: 3 }
13
+ });
14
+ const enableLive = computed(() => props.live || props.total);
15
+ const enablePeers = computed(() => props.peers || props.total);
16
+ const attrs = useAttrs();
17
+ const liveDragOver = useAAUIState(() => `${props.fieldKey}:dragOver`, { defaultValue: false });
18
+ const { peers: dragPeers, setLocal: setDragLocal } = useAAEphemeral(() => `${props.fieldKey}:dragOver`);
19
+ const localDragOver = ref(false);
20
+ function onDragEnter() {
21
+ localDragOver.value = true;
22
+ if (enableLive.value) liveDragOver.value = true;
23
+ if (enablePeers.value) setDragLocal(true);
24
+ }
25
+ function onDragLeave() {
26
+ localDragOver.value = false;
27
+ if (enableLive.value) liveDragOver.value = false;
28
+ if (enablePeers.value) setDragLocal(false);
29
+ }
30
+ watch(liveDragOver, (val) => {
31
+ if (!enableLive.value) return;
32
+ if (localDragOver.value !== !!val) localDragOver.value = !!val;
33
+ });
34
+ </script>
35
+
36
+ <template>
37
+ <div
38
+ class="aa-fileupload-host"
39
+ :class="{ 'aa-fileupload-host--dragover': localDragOver }"
40
+ @dragenter="onDragEnter"
41
+ @dragleave="onDragLeave"
42
+ @drop="onDragLeave"
43
+ >
44
+ <UFileUpload v-bind="attrs">
45
+ <template v-for="(_, name) in $slots" #[name]="slotData">
46
+ <slot :name="name" v-bind="slotData ?? {}" />
47
+ </template>
48
+ </UFileUpload>
49
+
50
+ <Transition name="aa-peer">
51
+ <span v-if="enablePeers && dragPeers.length" class="aa-overlay">
52
+ <AAvatar
53
+ v-for="p in dragPeers.slice(0, max)"
54
+ :key="p.clientId"
55
+ :user="{ clientId: p.clientId, user: p.user }"
56
+ size="2xs"
57
+ :show-status="false"
58
+ :show-tooltip="true"
59
+ />
60
+ </span>
61
+ </Transition>
62
+ </div>
63
+ </template>
64
+
65
+ <style scoped>
66
+ .aa-fileupload-host{border-radius:var(--ui-radius,.5rem);position:relative;transition:filter .12s ease,background .12s ease}.aa-fileupload-host--dragover{background:color-mix(in srgb,var(--ui-color-primary,#4169e1) 8%,transparent);filter:brightness(1.05)}.aa-overlay{display:flex;pointer-events:none;position:absolute;right:-.5rem;top:-.5rem;z-index:10}.aa-overlay>*+*{margin-left:-.25rem}.aa-peer-enter-active,.aa-peer-leave-active{transition:opacity .15s ease}.aa-peer-enter-from,.aa-peer-leave-to{opacity:0}
67
+ </style>
@@ -0,0 +1,27 @@
1
+ type __VLS_Props = {
2
+ fieldKey: string;
3
+ awareness?: boolean;
4
+ live?: boolean;
5
+ peers?: boolean;
6
+ total?: boolean;
7
+ max?: number;
8
+ };
9
+ declare var __VLS_9: string, __VLS_10: any;
10
+ type __VLS_Slots = {} & {
11
+ [K in NonNullable<typeof __VLS_9>]?: (props: typeof __VLS_10) => any;
12
+ };
13
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
14
+ peers: boolean;
15
+ awareness: boolean;
16
+ max: number;
17
+ live: boolean;
18
+ total: boolean;
19
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
23
+ type __VLS_WithSlots<T, S> = T & {
24
+ new (): {
25
+ $slots: S;
26
+ };
27
+ };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * <AFollowBar>
3
+ *
4
+ * Floating UI bar that lists current peers and lets the local user click
5
+ * "Follow" to (a) mirror that peer's `aware-ui` state and (b) auto-navigate
6
+ * to whatever route they are currently on.
7
+ *
8
+ * The local route is continuously broadcast via awareness `route` field so
9
+ * every peer can be followed across pages. When following: any time the
10
+ * leader's `route` changes, the follower's `router.push()` runs. Local
11
+ * interaction (click/keypress/scroll) breaks follow via `useAAFollowPeer`.
12
+ */
13
+ type __VLS_Props = {
14
+ keyPrefix?: string;
15
+ position?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';
16
+ };
17
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
18
+ position: "bottom-left" | "bottom-right" | "top-left" | "top-right";
19
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
+ declare const _default: typeof __VLS_export;
21
+ export default _default;
@@ -0,0 +1,62 @@
1
+ <script setup>
2
+ import { computed, watch } from "vue";
3
+ import { useRoute, useRouter } from "#imports";
4
+ import { useAAFollowPeer } from "../../composables/useAAFollowPeer";
5
+ import { useAwareness } from "../../composables/useAwareness";
6
+ import { useAwarenessPeers } from "../../composables/useAwarenessPeers";
7
+ const props = defineProps({
8
+ keyPrefix: { type: String, required: false },
9
+ position: { type: String, required: false, default: "bottom-right" }
10
+ });
11
+ const route = useRoute();
12
+ const router = useRouter();
13
+ const { setField, states } = useAwareness();
14
+ const { peers } = useAwarenessPeers();
15
+ const { follow, unfollow, followingClientId, followingUser } = useAAFollowPeer({ keyPrefix: props.keyPrefix });
16
+ watch(() => route.fullPath, (path) => {
17
+ setField("route", path);
18
+ }, { immediate: true });
19
+ const leaderRoute = computed(() => {
20
+ if (followingClientId.value == null) return void 0;
21
+ const state = states.value.get(followingClientId.value);
22
+ return state?.route;
23
+ });
24
+ watch(leaderRoute, (path) => {
25
+ if (path && path !== route.fullPath) router.push(path);
26
+ });
27
+ const visiblePeers = computed(() => peers.value.filter((p) => p.user?.name));
28
+ function onFollow(clientId) {
29
+ if (followingClientId.value === clientId) {
30
+ unfollow();
31
+ return;
32
+ }
33
+ follow(clientId);
34
+ const state = states.value.get(clientId);
35
+ if (state?.route && state.route !== route.fullPath) router.push(state.route);
36
+ }
37
+ const positionClass = computed(() => `aa-follow-bar--${props.position}`);
38
+ </script>
39
+
40
+ <template>
41
+ <div v-if="visiblePeers.length" class="aa-follow-bar" :class="positionClass">
42
+ <span class="aa-follow-bar__label">{{ followingUser ? `Following ${followingUser.name}` : "Follow" }}</span>
43
+ <button
44
+ v-for="p in visiblePeers"
45
+ :key="p.clientId"
46
+ class="aa-follow-bar__btn"
47
+ :class="{ 'aa-follow-bar__btn--active': followingClientId === p.clientId }"
48
+ :style="{ borderColor: p.user?.color ?? 'var(--ui-border)' }"
49
+ @click="onFollow(p.clientId)"
50
+ >
51
+ <span class="aa-follow-bar__dot" :style="{ background: p.user?.color ?? 'var(--ui-text-muted)' }" />
52
+ {{ p.user?.name }}
53
+ </button>
54
+ <button v-if="followingClientId !== null" class="aa-follow-bar__btn aa-follow-bar__btn--break" @click="unfollow()">
55
+ Stop
56
+ </button>
57
+ </div>
58
+ </template>
59
+
60
+ <style scoped>
61
+ .aa-follow-bar{align-items:center;background:var(--ui-bg-elevated);border:1px solid var(--ui-border);border-radius:999px;box-shadow:0 4px 12px rgba(0,0,0,.12);display:flex;font-size:.75rem;gap:.4rem;padding:.4rem .6rem;position:fixed;z-index:60}.aa-follow-bar--bottom-right{bottom:1rem;right:1rem}.aa-follow-bar--bottom-left{bottom:1rem;left:1rem}.aa-follow-bar--top-right{right:1rem;top:1rem}.aa-follow-bar--top-left{left:1rem;top:1rem}.aa-follow-bar__label{border-right:1px solid var(--ui-border);color:var(--ui-text-muted);font-weight:500;padding-right:.25rem}.aa-follow-bar__btn{align-items:center;background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:999px;color:var(--ui-text);cursor:pointer;display:inline-flex;font-size:.6875rem;gap:.3rem;padding:.2rem .55rem;transition:filter .12s ease}.aa-follow-bar__btn:hover{filter:brightness(1.06)}.aa-follow-bar__btn--active{background:color-mix(in srgb,currentColor 8%,var(--ui-bg));font-weight:600}.aa-follow-bar__btn--break{background:var(--ui-color-error,#f43f5e);border-color:transparent;color:#fff}.aa-follow-bar__dot{border-radius:999px;height:.5rem;width:.5rem}
62
+ </style>
@@ -0,0 +1,21 @@
1
+ /**
2
+ * <AFollowBar>
3
+ *
4
+ * Floating UI bar that lists current peers and lets the local user click
5
+ * "Follow" to (a) mirror that peer's `aware-ui` state and (b) auto-navigate
6
+ * to whatever route they are currently on.
7
+ *
8
+ * The local route is continuously broadcast via awareness `route` field so
9
+ * every peer can be followed across pages. When following: any time the
10
+ * leader's `route` changes, the follower's `router.push()` runs. Local
11
+ * interaction (click/keypress/scroll) breaks follow via `useAAFollowPeer`.
12
+ */
13
+ type __VLS_Props = {
14
+ keyPrefix?: string;
15
+ position?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';
16
+ };
17
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
18
+ position: "bottom-left" | "bottom-right" | "top-left" | "top-right";
19
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
+ declare const _default: typeof __VLS_export;
21
+ export default _default;
@@ -0,0 +1,7 @@
1
+ type __VLS_Props = {
2
+ /** Optional namespace prefix for the underlying follow keys. */
3
+ keyPrefix?: string;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -0,0 +1,17 @@
1
+ <script setup>
2
+ import { computed } from "vue";
3
+ import { useAAFollowPeer } from "../../composables/useAAFollowPeer";
4
+ import { useAAFocus } from "../../composables/useAAFocus";
5
+ import { useAAFollowAnchor } from "../../composables/useAAFollowAnchor";
6
+ const props = defineProps({
7
+ keyPrefix: { type: String, required: false }
8
+ });
9
+ const { followingClientId } = useAAFollowPeer({ keyPrefix: props.keyPrefix });
10
+ useAAFocus();
11
+ const leaderId = computed(() => followingClientId.value);
12
+ useAAFollowAnchor(leaderId);
13
+ </script>
14
+
15
+ <template>
16
+ <span data-aa-skip-anchor style="display:none" />
17
+ </template>
@@ -0,0 +1,7 @@
1
+ type __VLS_Props = {
2
+ /** Optional namespace prefix for the underlying follow keys. */
3
+ keyPrefix?: string;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -0,0 +1,21 @@
1
+ type __VLS_Props = {
2
+ fieldKey: string;
3
+ state: Record<string, unknown>;
4
+ /** Keys to skip when mirroring (e.g. password fields). */
5
+ skip?: string[];
6
+ };
7
+ declare var __VLS_1: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_1) => any;
10
+ };
11
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
12
+ skip: string[];
13
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
17
+ type __VLS_WithSlots<T, S> = T & {
18
+ new (): {
19
+ $slots: S;
20
+ };
21
+ };
@@ -0,0 +1,52 @@
1
+ <script setup>
2
+ import { computed, onBeforeUnmount, onMounted, watch } from "vue";
3
+ import { useAAFieldValue } from "../../composables/useAAFieldValue";
4
+ defineOptions({ inheritAttrs: false });
5
+ const props = defineProps({
6
+ fieldKey: { type: String, required: true },
7
+ state: { type: Object, required: true },
8
+ skip: { type: Array, required: false, default: () => [] }
9
+ });
10
+ const skipSet = computed(() => new Set(props.skip));
11
+ const stateKeys = computed(() => Object.keys(props.state).filter((k) => !skipSet.value.has(k)));
12
+ const sync = {};
13
+ for (const k of stateKeys.value) {
14
+ sync[k] = useAAFieldValue(() => `${props.fieldKey}:${k}`);
15
+ }
16
+ let suppress = false;
17
+ const stops = [];
18
+ onMounted(() => {
19
+ for (const key of stateKeys.value) {
20
+ stops.push(watch(
21
+ () => props.state[key],
22
+ (v) => {
23
+ if (suppress) return;
24
+ if (sync[key].value !== v) sync[key].value = v;
25
+ },
26
+ { deep: true }
27
+ ));
28
+ }
29
+ for (const key of stateKeys.value) {
30
+ stops.push(watch(
31
+ () => sync[key].value,
32
+ (v) => {
33
+ if (v === void 0) return;
34
+ if (props.state[key] === v) return;
35
+ suppress = true;
36
+ props.state[key] = v;
37
+ queueMicrotask(() => {
38
+ suppress = false;
39
+ });
40
+ },
41
+ { immediate: true }
42
+ ));
43
+ }
44
+ });
45
+ onBeforeUnmount(() => {
46
+ for (const s of stops) s();
47
+ });
48
+ </script>
49
+
50
+ <template>
51
+ <slot />
52
+ </template>
@@ -0,0 +1,21 @@
1
+ type __VLS_Props = {
2
+ fieldKey: string;
3
+ state: Record<string, unknown>;
4
+ /** Keys to skip when mirroring (e.g. password fields). */
5
+ skip?: string[];
6
+ };
7
+ declare var __VLS_1: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_1) => any;
10
+ };
11
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
12
+ skip: string[];
13
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
17
+ type __VLS_WithSlots<T, S> = T & {
18
+ new (): {
19
+ $slots: S;
20
+ };
21
+ };
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,90 @@
1
+ <script setup>
2
+ import { computed, onBeforeUnmount, onMounted, ref } from "vue";
3
+ import { useRoute } from "#imports";
4
+ import { useAAEphemeral } from "../../composables/useAAEphemeral";
5
+ import { rangeFromPaths } from "../../utils/domPath";
6
+ const { peers } = useAAEphemeral("aa:focus");
7
+ const route = useRoute();
8
+ const selections = ref([]);
9
+ let raf = 0;
10
+ let mo = null;
11
+ function recompute() {
12
+ cancelAnimationFrame(raf);
13
+ raf = requestAnimationFrame(() => {
14
+ const out = [];
15
+ for (const p of peers.value) {
16
+ const v = p.value;
17
+ if (!v || v.kind !== "selection" || v.route !== route.path || !v.start || !v.end) continue;
18
+ const range = rangeFromPaths(v.start, v.end);
19
+ if (!range || range.collapsed) continue;
20
+ const rects = Array.from(range.getClientRects()).filter((r) => r.width > 0 && r.height > 0).map((r) => ({ top: r.top, left: r.left, width: r.width, height: r.height }));
21
+ if (rects.length === 0) continue;
22
+ out.push({ clientId: p.clientId, user: p.user, rects });
23
+ }
24
+ selections.value = out;
25
+ });
26
+ }
27
+ function onScroll() {
28
+ recompute();
29
+ }
30
+ function onResize() {
31
+ recompute();
32
+ }
33
+ onMounted(() => {
34
+ recompute();
35
+ document.addEventListener("scroll", onScroll, { passive: true, capture: true });
36
+ window.addEventListener("resize", onResize, { passive: true });
37
+ mo = new MutationObserver(recompute);
38
+ mo.observe(document.body, { childList: true, subtree: true, characterData: true });
39
+ });
40
+ onBeforeUnmount(() => {
41
+ cancelAnimationFrame(raf);
42
+ document.removeEventListener("scroll", onScroll, { capture: true });
43
+ window.removeEventListener("resize", onResize);
44
+ mo?.disconnect();
45
+ });
46
+ import { watch } from "vue";
47
+ watch(peers, recompute, { deep: true, flush: "post" });
48
+ watch(() => route.path, recompute);
49
+ function tintFor(p) {
50
+ return p.user?.color ?? "#888";
51
+ }
52
+ function colorFor(p) {
53
+ return p.user?.color ?? "#888";
54
+ }
55
+ function nameFor(p) {
56
+ return p.user?.name || "Anonymous";
57
+ }
58
+ </script>
59
+
60
+ <template>
61
+ <div class="aa-global-focus-layer" data-aa-skip-anchor aria-hidden="true">
62
+ <template v-for="p in selections" :key="p.clientId">
63
+ <div
64
+ v-for="(r, idx) in p.rects"
65
+ :key="`sel-${p.clientId}-${idx}`"
66
+ class="aa-global-focus-layer__rect"
67
+ :style="{
68
+ top: r.top + 'px',
69
+ left: r.left + 'px',
70
+ width: r.width + 'px',
71
+ height: r.height + 'px',
72
+ background: tintFor(p)
73
+ }"
74
+ />
75
+ <span
76
+ v-if="p.rects.length"
77
+ class="aa-global-focus-layer__flag"
78
+ :style="{
79
+ top: p.rects[0].top + 'px',
80
+ left: p.rects[0].left + 'px',
81
+ background: colorFor(p)
82
+ }"
83
+ >{{ nameFor(p) }}</span>
84
+ </template>
85
+ </div>
86
+ </template>
87
+
88
+ <style scoped>
89
+ .aa-global-focus-layer{inset:0;pointer-events:none;position:fixed;z-index:40}.aa-global-focus-layer__rect{border-radius:2px;opacity:.2;pointer-events:none;position:fixed}.aa-global-focus-layer__flag{border-radius:.25rem .25rem .25rem 0;box-shadow:0 1px 2px rgba(0,0,0,.18);color:#fff;font-size:.55rem;font-weight:500;line-height:1;margin-top:-2px;padding:.18rem .35rem;pointer-events:none;position:fixed;transform:translateY(-100%);white-space:nowrap}
90
+ </style>
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,27 @@
1
+ type __VLS_Props = {
2
+ /** Stable, unique field key for this item — usually `${parent}:item:${id}`. */
3
+ fieldKey: string;
4
+ /** Layout mode: 'inline' for chips, 'block' for full-row items. */
5
+ variant?: 'inline' | 'block';
6
+ /** Show a tiny peer-name flag at the top-right of the item when active. */
7
+ showFlag?: boolean;
8
+ /** Paint a peer-coloured backdrop tint when active. Default true. */
9
+ tinted?: boolean;
10
+ };
11
+ declare var __VLS_1: {};
12
+ type __VLS_Slots = {} & {
13
+ default?: (props: typeof __VLS_1) => any;
14
+ };
15
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
16
+ variant: "inline" | "block";
17
+ showFlag: boolean;
18
+ tinted: boolean;
19
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
23
+ type __VLS_WithSlots<T, S> = T & {
24
+ new (): {
25
+ $slots: S;
26
+ };
27
+ };
@@ -0,0 +1,124 @@
1
+ <script setup>
2
+ import { computed, onBeforeUnmount, onMounted, ref, watch } from "vue";
3
+ import { useAAField } from "../../composables/useAAField";
4
+ defineOptions({ inheritAttrs: false });
5
+ const props = defineProps({
6
+ fieldKey: { type: String, required: true },
7
+ variant: { type: String, required: false, default: "block" },
8
+ showFlag: { type: Boolean, required: false, default: true },
9
+ tinted: { type: Boolean, required: false, default: true }
10
+ });
11
+ const { hoverers, focusers, pressers, isPressed, onMouseenter, onMouseleave, onMousedown, onMouseup } = useAAField(() => props.fieldKey);
12
+ const wrapperRef = ref(null);
13
+ const rowEl = ref(null);
14
+ const ROW_SELECTOR = [
15
+ '[role="option"]',
16
+ '[role="menuitem"]',
17
+ '[role="menuitemcheckbox"]',
18
+ '[role="menuitemradio"]',
19
+ '[role="tab"]',
20
+ '[role="treeitem"]',
21
+ '[data-slot="item"]',
22
+ '[data-slot="trigger"]',
23
+ ".aa-row-target"
24
+ ].join(", ");
25
+ let savedStyle = { background: "", boxShadow: "", position: "" };
26
+ function attachToRow() {
27
+ const wrapper = wrapperRef.value;
28
+ if (!wrapper) return;
29
+ const row = wrapper.closest(ROW_SELECTOR);
30
+ if (!row || row === rowEl.value) return;
31
+ detachFromRow();
32
+ rowEl.value = row;
33
+ savedStyle = {
34
+ background: row.style.backgroundColor,
35
+ boxShadow: row.style.boxShadow,
36
+ position: row.style.position
37
+ };
38
+ row.addEventListener("mouseenter", onMouseenter);
39
+ row.addEventListener("mouseleave", onMouseleave);
40
+ row.addEventListener("mousedown", onMousedown);
41
+ row.addEventListener("mouseup", onMouseup);
42
+ }
43
+ function detachFromRow() {
44
+ const row = rowEl.value;
45
+ if (!row) return;
46
+ row.removeEventListener("mouseenter", onMouseenter);
47
+ row.removeEventListener("mouseleave", onMouseleave);
48
+ row.removeEventListener("mousedown", onMousedown);
49
+ row.removeEventListener("mouseup", onMouseup);
50
+ row.style.backgroundColor = savedStyle.background;
51
+ row.style.boxShadow = savedStyle.boxShadow;
52
+ rowEl.value = null;
53
+ }
54
+ onMounted(attachToRow);
55
+ onBeforeUnmount(detachFromRow);
56
+ const backdropTint = computed(() => {
57
+ if (!props.tinted) return null;
58
+ const color = pressers.value[0]?.user?.color ?? focusers.value[0]?.user?.color ?? hoverers.value[0]?.user?.color;
59
+ if (!color) return null;
60
+ const alpha = pressers.value.length ? 0.32 : focusers.value.length ? 0.26 : 0.18;
61
+ return colorMix(color, alpha);
62
+ });
63
+ const ringShadow = computed(() => {
64
+ const layers = [];
65
+ const hover = hoverers.value[0]?.user?.color;
66
+ const focus = focusers.value[0]?.user?.color;
67
+ const press = pressers.value[0]?.user?.color;
68
+ if (press) layers.push(`inset 0 0 0 2px ${press}`);
69
+ else if (focus) layers.push(`inset 0 0 0 2px ${focus}`);
70
+ else if (hover) layers.push(`inset 0 0 0 1px ${hover}`);
71
+ return layers.join(", ");
72
+ });
73
+ function colorMix(color, alpha) {
74
+ if (color.startsWith("#") && color.length === 7) {
75
+ const a = Math.round(alpha * 255).toString(16).padStart(2, "0");
76
+ return `${color}${a}`;
77
+ }
78
+ if (color.startsWith("rgb(")) return color.replace("rgb(", "rgba(").replace(")", `, ${alpha})`);
79
+ if (color.startsWith("hsl(")) return color.replace("hsl(", "hsla(").replace(")", `, ${alpha})`);
80
+ return color;
81
+ }
82
+ watch([backdropTint, ringShadow, rowEl], () => {
83
+ const row = rowEl.value;
84
+ if (!row) return;
85
+ row.style.backgroundColor = backdropTint.value || savedStyle.background;
86
+ row.style.boxShadow = ringShadow.value || savedStyle.boxShadow;
87
+ if (!row.style.position) row.style.position = "relative";
88
+ }, { flush: "post" });
89
+ const flagPeer = computed(
90
+ () => pressers.value[0] ?? focusers.value[0] ?? hoverers.value[0]
91
+ );
92
+ const pulseKey = ref(0);
93
+ watch(isPressed, (val, prev) => {
94
+ if (val && !prev) pulseKey.value++;
95
+ });
96
+ const pulseColor = computed(() => pressers.value[0]?.user?.color ?? "currentColor");
97
+ </script>
98
+
99
+ <template>
100
+ <span
101
+ ref="wrapperRef"
102
+ class="aa-item"
103
+ :class="[`aa-item--${variant}`]"
104
+ >
105
+ <slot />
106
+ <span
107
+ v-if="pulseKey > 0"
108
+ :key="pulseKey"
109
+ class="aa-item__pulse"
110
+ :style="{ '--aa-pulse-color': pulseColor }"
111
+ />
112
+ <Transition name="aa-flag">
113
+ <span
114
+ v-if="showFlag && flagPeer"
115
+ class="aa-item__flag"
116
+ :style="{ background: flagPeer.user?.color ?? 'var(--ui-text-muted)' }"
117
+ >{{ flagPeer.user?.name || "Anonymous" }}</span>
118
+ </Transition>
119
+ </span>
120
+ </template>
121
+
122
+ <style scoped>
123
+ .aa-item{border-radius:inherit;display:contents;position:relative}.aa-item--inline{align-items:center;display:inline-flex}.aa-item__pulse{animation:aa-item-pulse .35s ease-out forwards;border-radius:inherit;inset:0;pointer-events:none;position:absolute}@keyframes aa-item-pulse{0%{box-shadow:0 0 0 0 var(--aa-pulse-color);opacity:.5}to{box-shadow:0 0 0 14px var(--aa-pulse-color);opacity:0}}.aa-item__flag{border-radius:.25rem .25rem .25rem 0;box-shadow:0 1px 2px rgba(0,0,0,.18);color:#fff;font-size:.55rem;font-weight:500;line-height:1;padding:.18rem .35rem;pointer-events:none;position:absolute;right:.25rem;top:-.55rem;white-space:nowrap;z-index:5}.aa-flag-enter-active,.aa-flag-leave-active{transition:opacity .12s ease,transform .12s ease}.aa-flag-enter-from,.aa-flag-leave-to{opacity:0;transform:translateY(2px)}
124
+ </style>