@abraca/nuxt 1.9.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (434) 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 +153 -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/aware/AAccordion.d.vue.ts +25 -0
  37. package/dist/runtime/components/aware/AAccordion.vue +107 -0
  38. package/dist/runtime/components/aware/AAccordion.vue.d.ts +25 -0
  39. package/dist/runtime/components/aware/AArea.vue +24 -11
  40. package/dist/runtime/components/aware/AAvatar.d.vue.ts +6 -0
  41. package/dist/runtime/components/aware/AAvatar.vue +33 -3
  42. package/dist/runtime/components/aware/AAvatar.vue.d.ts +6 -0
  43. package/dist/runtime/components/aware/AAvatarGroup.d.vue.ts +10 -0
  44. package/dist/runtime/components/aware/AAvatarGroup.vue +30 -0
  45. package/dist/runtime/components/aware/AAvatarGroup.vue.d.ts +10 -0
  46. package/dist/runtime/components/aware/AButton.d.vue.ts +4 -2
  47. package/dist/runtime/components/aware/AButton.vue +46 -14
  48. package/dist/runtime/components/aware/AButton.vue.d.ts +4 -2
  49. package/dist/runtime/components/aware/ACalendar.d.vue.ts +17 -0
  50. package/dist/runtime/components/aware/ACalendar.vue +145 -0
  51. package/dist/runtime/components/aware/ACalendar.vue.d.ts +17 -0
  52. package/dist/runtime/components/aware/ACarousel.d.vue.ts +25 -0
  53. package/dist/runtime/components/aware/ACarousel.vue +39 -0
  54. package/dist/runtime/components/aware/ACarousel.vue.d.ts +25 -0
  55. package/dist/runtime/components/aware/ACheckbox.d.vue.ts +11 -0
  56. package/dist/runtime/components/aware/ACheckbox.vue +74 -0
  57. package/dist/runtime/components/aware/ACheckbox.vue.d.ts +11 -0
  58. package/dist/runtime/components/aware/ACheckboxGroup.d.vue.ts +27 -0
  59. package/dist/runtime/components/aware/ACheckboxGroup.vue +79 -0
  60. package/dist/runtime/components/aware/ACheckboxGroup.vue.d.ts +27 -0
  61. package/dist/runtime/components/aware/ACollapsible.d.vue.ts +25 -0
  62. package/dist/runtime/components/aware/ACollapsible.vue +45 -0
  63. package/dist/runtime/components/aware/ACollapsible.vue.d.ts +25 -0
  64. package/dist/runtime/components/aware/AColorPicker.d.vue.ts +15 -0
  65. package/dist/runtime/components/aware/AColorPicker.vue +48 -0
  66. package/dist/runtime/components/aware/AColorPicker.vue.d.ts +15 -0
  67. package/dist/runtime/components/aware/ACommandPalette.d.vue.ts +33 -0
  68. package/dist/runtime/components/aware/ACommandPalette.vue +123 -0
  69. package/dist/runtime/components/aware/ACommandPalette.vue.d.ts +33 -0
  70. package/dist/runtime/components/aware/AContextMenu.d.vue.ts +25 -0
  71. package/dist/runtime/components/aware/AContextMenu.vue +63 -0
  72. package/dist/runtime/components/aware/AContextMenu.vue.d.ts +25 -0
  73. package/dist/runtime/components/aware/ADrawer.d.vue.ts +25 -0
  74. package/dist/runtime/components/aware/ADrawer.vue +57 -0
  75. package/dist/runtime/components/aware/ADrawer.vue.d.ts +25 -0
  76. package/dist/runtime/components/aware/ADropdownMenu.d.vue.ts +25 -0
  77. package/dist/runtime/components/aware/ADropdownMenu.vue +63 -0
  78. package/dist/runtime/components/aware/ADropdownMenu.vue.d.ts +25 -0
  79. package/dist/runtime/components/aware/AFileUpload.d.vue.ts +27 -0
  80. package/dist/runtime/components/aware/AFileUpload.vue +67 -0
  81. package/dist/runtime/components/aware/AFileUpload.vue.d.ts +27 -0
  82. package/dist/runtime/components/aware/AFollowBar.d.vue.ts +21 -0
  83. package/dist/runtime/components/aware/AFollowBar.vue +62 -0
  84. package/dist/runtime/components/aware/AFollowBar.vue.d.ts +21 -0
  85. package/dist/runtime/components/aware/AFollowScroll.d.vue.ts +7 -0
  86. package/dist/runtime/components/aware/AFollowScroll.vue +17 -0
  87. package/dist/runtime/components/aware/AFollowScroll.vue.d.ts +7 -0
  88. package/dist/runtime/components/aware/AFormSync.d.vue.ts +21 -0
  89. package/dist/runtime/components/aware/AFormSync.vue +52 -0
  90. package/dist/runtime/components/aware/AFormSync.vue.d.ts +21 -0
  91. package/dist/runtime/components/aware/AGlobalFocusLayer.d.vue.ts +3 -0
  92. package/dist/runtime/components/aware/AGlobalFocusLayer.vue +90 -0
  93. package/dist/runtime/components/aware/AGlobalFocusLayer.vue.d.ts +3 -0
  94. package/dist/runtime/components/aware/AHoverItem.d.vue.ts +27 -0
  95. package/dist/runtime/components/aware/AHoverItem.vue +124 -0
  96. package/dist/runtime/components/aware/AHoverItem.vue.d.ts +27 -0
  97. package/dist/runtime/components/aware/AInput.d.vue.ts +12 -2
  98. package/dist/runtime/components/aware/AInput.vue +72 -19
  99. package/dist/runtime/components/aware/AInput.vue.d.ts +12 -2
  100. package/dist/runtime/components/aware/AInputMenu.d.vue.ts +17 -0
  101. package/dist/runtime/components/aware/AInputMenu.vue +138 -0
  102. package/dist/runtime/components/aware/AInputMenu.vue.d.ts +17 -0
  103. package/dist/runtime/components/aware/AInputNumber.d.vue.ts +15 -0
  104. package/dist/runtime/components/aware/AInputNumber.vue +67 -0
  105. package/dist/runtime/components/aware/AInputNumber.vue.d.ts +15 -0
  106. package/dist/runtime/components/aware/AInputTags.d.vue.ts +15 -0
  107. package/dist/runtime/components/aware/AInputTags.vue +67 -0
  108. package/dist/runtime/components/aware/AInputTags.vue.d.ts +15 -0
  109. package/dist/runtime/components/aware/AKeyHint.d.vue.ts +3 -0
  110. package/dist/runtime/components/aware/AKeyHint.vue +23 -0
  111. package/dist/runtime/components/aware/AKeyHint.vue.d.ts +3 -0
  112. package/dist/runtime/components/aware/AMedia.d.vue.ts +19 -0
  113. package/dist/runtime/components/aware/AMedia.vue +85 -0
  114. package/dist/runtime/components/aware/AMedia.vue.d.ts +19 -0
  115. package/dist/runtime/components/aware/AModal.d.vue.ts +33 -0
  116. package/dist/runtime/components/aware/AModal.vue +110 -0
  117. package/dist/runtime/components/aware/AModal.vue.d.ts +33 -0
  118. package/dist/runtime/components/aware/ANavigationMenu.d.vue.ts +25 -0
  119. package/dist/runtime/components/aware/ANavigationMenu.vue +82 -0
  120. package/dist/runtime/components/aware/ANavigationMenu.vue.d.ts +25 -0
  121. package/dist/runtime/components/aware/APagination.d.vue.ts +13 -0
  122. package/dist/runtime/components/aware/APagination.vue +53 -0
  123. package/dist/runtime/components/aware/APagination.vue.d.ts +13 -0
  124. package/dist/runtime/components/aware/APeerCaretLayer.d.vue.ts +10 -0
  125. package/dist/runtime/components/aware/APeerCaretLayer.vue +133 -0
  126. package/dist/runtime/components/aware/APeerCaretLayer.vue.d.ts +10 -0
  127. package/dist/runtime/components/aware/APinInput.d.vue.ts +15 -0
  128. package/dist/runtime/components/aware/APinInput.vue +48 -0
  129. package/dist/runtime/components/aware/APinInput.vue.d.ts +15 -0
  130. package/dist/runtime/components/aware/APopover.d.vue.ts +25 -0
  131. package/dist/runtime/components/aware/APopover.vue +57 -0
  132. package/dist/runtime/components/aware/APopover.vue.d.ts +25 -0
  133. package/dist/runtime/components/aware/APresenceBlobs.d.vue.ts +3 -0
  134. package/dist/runtime/components/aware/APresenceBlobs.vue +69 -0
  135. package/dist/runtime/components/aware/APresenceBlobs.vue.d.ts +3 -0
  136. package/dist/runtime/components/aware/APresenceCursors.d.vue.ts +20 -0
  137. package/dist/runtime/components/aware/APresenceCursors.vue +47 -0
  138. package/dist/runtime/components/aware/APresenceCursors.vue.d.ts +20 -0
  139. package/dist/runtime/components/aware/ARadioGroup.d.vue.ts +27 -0
  140. package/dist/runtime/components/aware/ARadioGroup.vue +86 -0
  141. package/dist/runtime/components/aware/ARadioGroup.vue.d.ts +27 -0
  142. package/dist/runtime/components/aware/AScroll.d.vue.ts +25 -0
  143. package/dist/runtime/components/aware/AScroll.vue +87 -0
  144. package/dist/runtime/components/aware/AScroll.vue.d.ts +25 -0
  145. package/dist/runtime/components/aware/ASelect.d.vue.ts +12 -2
  146. package/dist/runtime/components/aware/ASelect.vue +146 -22
  147. package/dist/runtime/components/aware/ASelect.vue.d.ts +12 -2
  148. package/dist/runtime/components/aware/ASelectMenu.d.vue.ts +17 -0
  149. package/dist/runtime/components/aware/ASelectMenu.vue +139 -0
  150. package/dist/runtime/components/aware/ASelectMenu.vue.d.ts +17 -0
  151. package/dist/runtime/components/aware/ASlideover.d.vue.ts +33 -0
  152. package/dist/runtime/components/aware/ASlideover.vue +110 -0
  153. package/dist/runtime/components/aware/ASlideover.vue.d.ts +33 -0
  154. package/dist/runtime/components/aware/ASlider.d.vue.ts +19 -0
  155. package/dist/runtime/components/aware/ASlider.vue +77 -0
  156. package/dist/runtime/components/aware/ASlider.vue.d.ts +19 -0
  157. package/dist/runtime/components/aware/AStepper.d.vue.ts +25 -0
  158. package/dist/runtime/components/aware/AStepper.vue +82 -0
  159. package/dist/runtime/components/aware/AStepper.vue.d.ts +25 -0
  160. package/dist/runtime/components/aware/ASwitch.d.vue.ts +11 -0
  161. package/dist/runtime/components/aware/ASwitch.vue +75 -0
  162. package/dist/runtime/components/aware/ASwitch.vue.d.ts +11 -0
  163. package/dist/runtime/components/aware/ATable.d.vue.ts +23 -0
  164. package/dist/runtime/components/aware/ATable.vue +97 -0
  165. package/dist/runtime/components/aware/ATable.vue.d.ts +23 -0
  166. package/dist/runtime/components/aware/ATabs.d.vue.ts +27 -0
  167. package/dist/runtime/components/aware/ATabs.vue +128 -0
  168. package/dist/runtime/components/aware/ATabs.vue.d.ts +27 -0
  169. package/dist/runtime/components/aware/ATextarea.d.vue.ts +12 -2
  170. package/dist/runtime/components/aware/ATextarea.vue +72 -19
  171. package/dist/runtime/components/aware/ATextarea.vue.d.ts +12 -2
  172. package/dist/runtime/components/aware/AToggleGroup.d.vue.ts +27 -0
  173. package/dist/runtime/components/aware/AToggleGroup.vue +79 -0
  174. package/dist/runtime/components/aware/AToggleGroup.vue.d.ts +27 -0
  175. package/dist/runtime/components/aware/ATree.d.vue.ts +27 -0
  176. package/dist/runtime/components/aware/ATree.vue +111 -0
  177. package/dist/runtime/components/aware/ATree.vue.d.ts +27 -0
  178. package/dist/runtime/components/chat/AChatPanel.d.vue.ts +6 -6
  179. package/dist/runtime/components/chat/AChatPanel.vue.d.ts +6 -6
  180. package/dist/runtime/components/chat/ANodeChatPanel.d.vue.ts +42 -0
  181. package/dist/runtime/components/chat/ANodeChatPanel.vue +53 -0
  182. package/dist/runtime/components/chat/ANodeChatPanel.vue.d.ts +42 -0
  183. package/dist/runtime/components/docs/ADocsSearch.d.vue.ts +2 -2
  184. package/dist/runtime/components/docs/ADocsSearch.vue.d.ts +2 -2
  185. package/dist/runtime/components/docs/ADocsSearchButton.d.vue.ts +3 -3
  186. package/dist/runtime/components/docs/ADocsSearchButton.vue.d.ts +3 -3
  187. package/dist/runtime/components/editor/AEditorRedoButton.d.vue.ts +26 -0
  188. package/dist/runtime/components/editor/AEditorRedoButton.vue +38 -0
  189. package/dist/runtime/components/editor/AEditorRedoButton.vue.d.ts +26 -0
  190. package/dist/runtime/components/editor/AEditorUndoButton.d.vue.ts +26 -0
  191. package/dist/runtime/components/editor/AEditorUndoButton.vue +38 -0
  192. package/dist/runtime/components/editor/AEditorUndoButton.vue.d.ts +26 -0
  193. package/dist/runtime/components/editor/AIconPickerPopover.d.vue.ts +24 -0
  194. package/dist/runtime/components/editor/AIconPickerPopover.vue +113 -0
  195. package/dist/runtime/components/editor/AIconPickerPopover.vue.d.ts +24 -0
  196. package/dist/runtime/components/editor/ANodeInlineLabel.d.vue.ts +24 -0
  197. package/dist/runtime/components/editor/ANodeInlineLabel.vue +101 -0
  198. package/dist/runtime/components/editor/ANodeInlineLabel.vue.d.ts +24 -0
  199. package/dist/runtime/components/renderers/ADocLoadError.d.vue.ts +3 -0
  200. package/dist/runtime/components/renderers/ADocLoadError.vue +11 -0
  201. package/dist/runtime/components/renderers/ADocLoadError.vue.d.ts +3 -0
  202. package/dist/runtime/components/renderers/ADocLoadingSkeleton.d.vue.ts +3 -0
  203. package/dist/runtime/components/renderers/ADocLoadingSkeleton.vue +5 -0
  204. package/dist/runtime/components/renderers/ADocLoadingSkeleton.vue.d.ts +3 -0
  205. package/dist/runtime/components/renderers/AOverviewRenderer.d.vue.ts +22 -0
  206. package/dist/runtime/components/renderers/AOverviewRenderer.vue +1041 -0
  207. package/dist/runtime/components/renderers/AOverviewRenderer.vue.d.ts +22 -0
  208. package/dist/runtime/components/renderers/AProseRenderer.d.vue.ts +23 -0
  209. package/dist/runtime/components/renderers/AProseRenderer.vue +31 -0
  210. package/dist/runtime/components/renderers/AProseRenderer.vue.d.ts +23 -0
  211. package/dist/runtime/components/renderers/ASheetsRenderer.client.d.vue.ts +19 -0
  212. package/dist/runtime/components/renderers/ASheetsRenderer.client.vue +865 -0
  213. package/dist/runtime/components/renderers/ASheetsRenderer.client.vue.d.ts +19 -0
  214. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.d.vue.ts +14 -0
  215. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue +45 -15
  216. package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue.d.ts +14 -0
  217. package/dist/runtime/components/renderers/calendar/ACalendarDayView.d.vue.ts +15 -0
  218. package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue +93 -20
  219. package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue.d.ts +15 -0
  220. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.d.vue.ts +9 -0
  221. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue +31 -2
  222. package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue.d.ts +9 -0
  223. package/dist/runtime/components/renderers/calendar/ACalendarToolbar.d.vue.ts +4 -4
  224. package/dist/runtime/components/renderers/calendar/ACalendarToolbar.vue.d.ts +4 -4
  225. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.d.vue.ts +15 -0
  226. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue +94 -21
  227. package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue.d.ts +15 -0
  228. package/dist/runtime/components/renderers/media/MediaTransportBar.d.vue.ts +2 -2
  229. package/dist/runtime/components/renderers/media/MediaTransportBar.vue.d.ts +2 -2
  230. package/dist/runtime/components/renderers/sheets/ASheetsCell.d.vue.ts +45 -0
  231. package/dist/runtime/components/renderers/sheets/ASheetsCell.vue +123 -0
  232. package/dist/runtime/components/renderers/sheets/ASheetsCell.vue.d.ts +45 -0
  233. package/dist/runtime/components/renderers/sheets/ASheetsGrid.d.vue.ts +111 -0
  234. package/dist/runtime/components/renderers/sheets/ASheetsGrid.vue +737 -0
  235. package/dist/runtime/components/renderers/sheets/ASheetsGrid.vue.d.ts +111 -0
  236. package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.d.vue.ts +26 -0
  237. package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.vue +100 -0
  238. package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.vue.d.ts +26 -0
  239. package/dist/runtime/components/renderers/sheets/ASheetsToolbar.d.vue.ts +48 -0
  240. package/dist/runtime/components/renderers/sheets/ASheetsToolbar.vue +243 -0
  241. package/dist/runtime/components/renderers/sheets/ASheetsToolbar.vue.d.ts +48 -0
  242. package/dist/runtime/components/renderers/table/cells/ATableCellColor.d.vue.ts +1 -0
  243. package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue +13 -32
  244. package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue.d.ts +1 -0
  245. package/dist/runtime/components/renderers/timeline/ATimelineBar.d.vue.ts +6 -0
  246. package/dist/runtime/components/renderers/timeline/ATimelineBar.vue +34 -4
  247. package/dist/runtime/components/renderers/timeline/ATimelineBar.vue.d.ts +6 -0
  248. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.d.vue.ts +16 -0
  249. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue +14 -3
  250. package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue.d.ts +16 -0
  251. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.d.vue.ts +13 -1
  252. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue +114 -47
  253. package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue.d.ts +13 -1
  254. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.d.vue.ts +4 -0
  255. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue +21 -4
  256. package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue.d.ts +4 -0
  257. package/dist/runtime/components/renderers/timeline/ATimelineToolbar.d.vue.ts +2 -2
  258. package/dist/runtime/components/renderers/timeline/ATimelineToolbar.vue.d.ts +2 -2
  259. package/dist/runtime/components/settings/ASettingsSpacesPanel.vue +7 -25
  260. package/dist/runtime/components/shell/ADocPanelSettings.d.vue.ts +3 -3
  261. package/dist/runtime/components/shell/ADocPanelSettings.vue.d.ts +3 -3
  262. package/dist/runtime/components/shell/ASyncStatus.d.vue.ts +1 -1
  263. package/dist/runtime/components/shell/ASyncStatus.vue.d.ts +1 -1
  264. package/dist/runtime/components/shell/AUserMenu.d.vue.ts +2 -2
  265. package/dist/runtime/components/shell/AUserMenu.vue.d.ts +2 -2
  266. package/dist/runtime/components/shell/AWelcomeScreen.d.vue.ts +1 -1
  267. package/dist/runtime/components/shell/AWelcomeScreen.vue.d.ts +1 -1
  268. package/dist/runtime/composables/useAACaret.d.ts +29 -0
  269. package/dist/runtime/composables/useAACaret.js +64 -0
  270. package/dist/runtime/composables/useAAEphemeral.d.ts +32 -0
  271. package/dist/runtime/composables/useAAEphemeral.js +33 -0
  272. package/dist/runtime/composables/useAAField.d.ts +10 -2
  273. package/dist/runtime/composables/useAAField.js +31 -2
  274. package/dist/runtime/composables/useAAFieldValue.d.ts +26 -0
  275. package/dist/runtime/composables/useAAFieldValue.js +32 -0
  276. package/dist/runtime/composables/useAAFocus.d.ts +68 -0
  277. package/dist/runtime/composables/useAAFocus.js +174 -0
  278. package/dist/runtime/composables/useAAFollowAnchor.d.ts +25 -0
  279. package/dist/runtime/composables/useAAFollowAnchor.js +69 -0
  280. package/dist/runtime/composables/useAAFollowPeer.d.ts +29 -0
  281. package/dist/runtime/composables/useAAFollowPeer.js +75 -0
  282. package/dist/runtime/composables/useAAKey.d.ts +22 -0
  283. package/dist/runtime/composables/useAAKey.js +24 -0
  284. package/dist/runtime/composables/useAAPointer.d.ts +30 -0
  285. package/dist/runtime/composables/useAAPointer.js +53 -0
  286. package/dist/runtime/composables/useAAUIState.d.ts +29 -0
  287. package/dist/runtime/composables/useAAUIState.js +28 -0
  288. package/dist/runtime/composables/useAAViewport.d.ts +22 -0
  289. package/dist/runtime/composables/useAAViewport.js +50 -0
  290. package/dist/runtime/composables/useAbraAdmin.d.ts +54 -0
  291. package/dist/runtime/composables/useAbraAdmin.js +115 -0
  292. package/dist/runtime/composables/useAbracadabraAuth.d.ts +8 -0
  293. package/dist/runtime/composables/useAbracadabraAuth.js +8 -0
  294. package/dist/runtime/composables/useAggregatedPresence.d.ts +23 -0
  295. package/dist/runtime/composables/useAggregatedPresence.js +140 -0
  296. package/dist/runtime/composables/useChat.d.ts +16 -2
  297. package/dist/runtime/composables/useChat.js +257 -66
  298. package/dist/runtime/composables/useChatUsers.d.ts +2 -0
  299. package/dist/runtime/composables/useChatUsers.js +2 -1
  300. package/dist/runtime/composables/useDocLookup.d.ts +4 -0
  301. package/dist/runtime/composables/useDocLookup.js +25 -0
  302. package/dist/runtime/composables/useDocSnapshots.d.ts +79 -0
  303. package/dist/runtime/composables/useDocSnapshots.js +234 -0
  304. package/dist/runtime/composables/useEditorDragHandle.d.ts +7 -0
  305. package/dist/runtime/composables/useEditorDragHandle.js +19 -1
  306. package/dist/runtime/composables/useEditorSuggestions.js +26 -1
  307. package/dist/runtime/composables/useEditorToolbar.js +9 -1
  308. package/dist/runtime/composables/useEmailVerification.d.ts +33 -0
  309. package/dist/runtime/composables/useEmailVerification.js +58 -0
  310. package/dist/runtime/composables/useIdentityDoc.js +0 -3
  311. package/dist/runtime/composables/useItemPresence.d.ts +47 -0
  312. package/dist/runtime/composables/useItemPresence.js +73 -0
  313. package/dist/runtime/composables/useResizableWidth.d.ts +24 -0
  314. package/dist/runtime/composables/useResizableWidth.js +87 -0
  315. package/dist/runtime/composables/useServerInfo.d.ts +17 -2
  316. package/dist/runtime/composables/useServerInfo.js +30 -6
  317. package/dist/runtime/composables/useServerSearch.d.ts +36 -0
  318. package/dist/runtime/composables/useServerSearch.js +91 -0
  319. package/dist/runtime/composables/useServerTrash.d.ts +67 -0
  320. package/dist/runtime/composables/useServerTrash.js +128 -0
  321. package/dist/runtime/composables/useSheetsClipboard.d.ts +42 -0
  322. package/dist/runtime/composables/useSheetsClipboard.js +109 -0
  323. package/dist/runtime/composables/useSheetsFormulas.d.ts +38 -0
  324. package/dist/runtime/composables/useSheetsFormulas.js +725 -0
  325. package/dist/runtime/composables/useSheetsSelection.d.ts +68 -0
  326. package/dist/runtime/composables/useSheetsSelection.js +390 -0
  327. package/dist/runtime/composables/useSheetsView.d.ts +31 -0
  328. package/dist/runtime/composables/useSheetsView.js +77 -0
  329. package/dist/runtime/composables/useSpaceConnections.d.ts +43 -0
  330. package/dist/runtime/composables/useSpaceConnections.js +72 -0
  331. package/dist/runtime/composables/useSpaces.d.ts +1 -3
  332. package/dist/runtime/composables/useSpaces.js +2 -5
  333. package/dist/runtime/composables/useTiptapHistory.d.ts +22 -0
  334. package/dist/runtime/composables/useTiptapHistory.js +12 -0
  335. package/dist/runtime/composables/useTreeExpansion.d.ts +28 -0
  336. package/dist/runtime/composables/useTreeExpansion.js +94 -0
  337. package/dist/runtime/composables/useYDoc.js +12 -1
  338. package/dist/runtime/extensions/button.d.ts +3 -0
  339. package/dist/runtime/extensions/button.js +62 -0
  340. package/dist/runtime/extensions/color-swatch.d.ts +2 -0
  341. package/dist/runtime/extensions/color-swatch.js +34 -0
  342. package/dist/runtime/extensions/diff.d.ts +2 -0
  343. package/dist/runtime/extensions/diff.js +40 -0
  344. package/dist/runtime/extensions/divider.d.ts +2 -0
  345. package/dist/runtime/extensions/divider.js +33 -0
  346. package/dist/runtime/extensions/embed.d.ts +2 -0
  347. package/dist/runtime/extensions/embed.js +40 -0
  348. package/dist/runtime/extensions/figure.d.ts +2 -0
  349. package/dist/runtime/extensions/figure.js +49 -0
  350. package/dist/runtime/extensions/math.d.ts +15 -0
  351. package/dist/runtime/extensions/math.js +66 -0
  352. package/dist/runtime/extensions/progress.d.ts +2 -0
  353. package/dist/runtime/extensions/progress.js +43 -0
  354. package/dist/runtime/extensions/quote.d.ts +2 -0
  355. package/dist/runtime/extensions/quote.js +39 -0
  356. package/dist/runtime/extensions/spoiler.d.ts +2 -0
  357. package/dist/runtime/extensions/spoiler.js +36 -0
  358. package/dist/runtime/extensions/stat.d.ts +3 -0
  359. package/dist/runtime/extensions/stat.js +58 -0
  360. package/dist/runtime/extensions/video.d.ts +2 -0
  361. package/dist/runtime/extensions/video.js +40 -0
  362. package/dist/runtime/extensions/views/ButtonGroupView.d.vue.ts +4 -0
  363. package/dist/runtime/extensions/views/ButtonGroupView.vue +25 -0
  364. package/dist/runtime/extensions/views/ButtonGroupView.vue.d.ts +4 -0
  365. package/dist/runtime/extensions/views/ButtonView.d.vue.ts +4 -0
  366. package/dist/runtime/extensions/views/ButtonView.vue +171 -0
  367. package/dist/runtime/extensions/views/ButtonView.vue.d.ts +4 -0
  368. package/dist/runtime/extensions/views/ColorSwatchView.d.vue.ts +4 -0
  369. package/dist/runtime/extensions/views/ColorSwatchView.vue +134 -0
  370. package/dist/runtime/extensions/views/ColorSwatchView.vue.d.ts +4 -0
  371. package/dist/runtime/extensions/views/DiffView.d.vue.ts +4 -0
  372. package/dist/runtime/extensions/views/DiffView.vue +163 -0
  373. package/dist/runtime/extensions/views/DiffView.vue.d.ts +4 -0
  374. package/dist/runtime/extensions/views/DividerView.d.vue.ts +4 -0
  375. package/dist/runtime/extensions/views/DividerView.vue +40 -0
  376. package/dist/runtime/extensions/views/DividerView.vue.d.ts +4 -0
  377. package/dist/runtime/extensions/views/EmbedView.d.vue.ts +4 -0
  378. package/dist/runtime/extensions/views/EmbedView.vue +166 -0
  379. package/dist/runtime/extensions/views/EmbedView.vue.d.ts +4 -0
  380. package/dist/runtime/extensions/views/FigureView.d.vue.ts +4 -0
  381. package/dist/runtime/extensions/views/FigureView.vue +122 -0
  382. package/dist/runtime/extensions/views/FigureView.vue.d.ts +4 -0
  383. package/dist/runtime/extensions/views/FileNodeView.vue +21 -24
  384. package/dist/runtime/extensions/views/MathBlockView.d.vue.ts +4 -0
  385. package/dist/runtime/extensions/views/MathBlockView.vue +151 -0
  386. package/dist/runtime/extensions/views/MathBlockView.vue.d.ts +4 -0
  387. package/dist/runtime/extensions/views/MathInlineView.d.vue.ts +4 -0
  388. package/dist/runtime/extensions/views/MathInlineView.vue +149 -0
  389. package/dist/runtime/extensions/views/MathInlineView.vue.d.ts +4 -0
  390. package/dist/runtime/extensions/views/MetaFieldView.vue +1129 -550
  391. package/dist/runtime/extensions/views/ProgressView.d.vue.ts +4 -0
  392. package/dist/runtime/extensions/views/ProgressView.vue +156 -0
  393. package/dist/runtime/extensions/views/ProgressView.vue.d.ts +4 -0
  394. package/dist/runtime/extensions/views/QuoteView.d.vue.ts +4 -0
  395. package/dist/runtime/extensions/views/QuoteView.vue +128 -0
  396. package/dist/runtime/extensions/views/QuoteView.vue.d.ts +4 -0
  397. package/dist/runtime/extensions/views/SpoilerView.d.vue.ts +4 -0
  398. package/dist/runtime/extensions/views/SpoilerView.vue +62 -0
  399. package/dist/runtime/extensions/views/SpoilerView.vue.d.ts +4 -0
  400. package/dist/runtime/extensions/views/StatGroupView.d.vue.ts +4 -0
  401. package/dist/runtime/extensions/views/StatGroupView.vue +25 -0
  402. package/dist/runtime/extensions/views/StatGroupView.vue.d.ts +4 -0
  403. package/dist/runtime/extensions/views/StatView.d.vue.ts +4 -0
  404. package/dist/runtime/extensions/views/StatView.vue +89 -0
  405. package/dist/runtime/extensions/views/StatView.vue.d.ts +4 -0
  406. package/dist/runtime/extensions/views/VideoView.d.vue.ts +4 -0
  407. package/dist/runtime/extensions/views/VideoView.vue +190 -0
  408. package/dist/runtime/extensions/views/VideoView.vue.d.ts +4 -0
  409. package/dist/runtime/locale.d.ts +133 -0
  410. package/dist/runtime/locale.js +121 -2
  411. package/dist/runtime/plugin-abracadabra.client.js +233 -36
  412. package/dist/runtime/plugin-abracadabra.server.js +0 -1
  413. package/dist/runtime/plugins/core.plugin.js +73 -4
  414. package/dist/runtime/server/plugins/abracadabra-service.js +1 -1
  415. package/dist/runtime/server/utils/rpcHandler.d.ts +74 -0
  416. package/dist/runtime/server/utils/rpcHandler.js +74 -0
  417. package/dist/runtime/server/utils/spaceManager.js +10 -9
  418. package/dist/runtime/types.d.ts +63 -10
  419. package/dist/runtime/utils/awareRingStyle.d.ts +22 -0
  420. package/dist/runtime/utils/awareRingStyle.js +16 -0
  421. package/dist/runtime/utils/caretCoordinates.d.ts +41 -0
  422. package/dist/runtime/utils/caretCoordinates.js +126 -0
  423. package/dist/runtime/utils/content.d.ts +1 -1
  424. package/dist/runtime/utils/docTypes.js +44 -13
  425. package/dist/runtime/utils/domPath.d.ts +42 -0
  426. package/dist/runtime/utils/domPath.js +89 -0
  427. package/dist/runtime/utils/loadKatex.d.ts +1 -0
  428. package/dist/runtime/utils/loadKatex.js +29 -0
  429. package/dist/runtime/utils/lucideIcons.d.ts +16 -0
  430. package/dist/runtime/utils/lucideIcons.js +451 -0
  431. package/dist/runtime/utils/time.d.ts +15 -0
  432. package/dist/runtime/utils/time.js +5 -0
  433. package/dist/types.d.mts +4 -0
  434. package/package.json +27 -16
@@ -1,26 +1,22 @@
1
1
  <script setup>
2
2
  import { ref, computed, watch } from "vue";
3
+ import AColorPalettePopover from "../../../editor/AColorPalettePopover.vue";
3
4
  const props = defineProps({
4
- value: { type: null, required: true }
5
+ value: { type: null, required: true },
6
+ metaType: { type: String, required: false }
5
7
  });
6
8
  const emit = defineEmits(["update:modelValue", "startEdit", "stopEdit"]);
7
- const inputRef = ref();
8
9
  const popoverOpen = ref(false);
9
- const editValue = ref("");
10
10
  const colorStr = computed(() => {
11
11
  if (typeof props.value === "string" && props.value) return props.value;
12
12
  return "";
13
13
  });
14
14
  watch(popoverOpen, (v) => {
15
- if (v) {
16
- editValue.value = colorStr.value || "#6366f1";
17
- emit("startEdit");
18
- } else {
19
- emit("stopEdit");
20
- }
15
+ if (v) emit("startEdit");
16
+ else emit("stopEdit");
21
17
  });
22
- function commit() {
23
- emit("update:modelValue", editValue.value);
18
+ function onColor(c) {
19
+ emit("update:modelValue", c);
24
20
  popoverOpen.value = false;
25
21
  emit("stopEdit");
26
22
  }
@@ -31,9 +27,11 @@ function commit() {
31
27
  class="min-h-5 flex items-center"
32
28
  @click.stop
33
29
  >
34
- <UPopover
35
- v-model:open="popoverOpen"
36
- :content="{ align: 'start' }"
30
+ <AColorPalettePopover
31
+ :model-value="colorStr"
32
+ :open="popoverOpen"
33
+ @update:model-value="onColor"
34
+ @update:open="popoverOpen = $event"
37
35
  >
38
36
  <button class="flex items-center gap-1.5 cursor-pointer">
39
37
  <span
@@ -45,23 +43,6 @@ function commit() {
45
43
  class="text-xs text-(--ui-text-muted) font-mono"
46
44
  >{{ colorStr }}</span>
47
45
  </button>
48
- <template #content>
49
- <div class="p-3">
50
- <input
51
- ref="inputRef"
52
- v-model="editValue"
53
- type="color"
54
- class="w-32 h-8 cursor-pointer"
55
- >
56
- <div class="flex justify-end mt-2">
57
- <UButton
58
- size="xs"
59
- label="Apply"
60
- @click="commit"
61
- />
62
- </div>
63
- </div>
64
- </template>
65
- </UPopover>
46
+ </AColorPalettePopover>
66
47
  </div>
67
48
  </template>
@@ -1,5 +1,6 @@
1
1
  type __VLS_Props = {
2
2
  value: unknown;
3
+ metaType?: string;
3
4
  };
4
5
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
5
6
  "update:modelValue": (value: unknown) => any;
@@ -10,14 +10,20 @@ type __VLS_Props = {
10
10
  name: string;
11
11
  color: string;
12
12
  }>;
13
+ viewers?: Array<{
14
+ name: string;
15
+ color: string;
16
+ }>;
13
17
  };
14
18
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
19
  click: (id: string, label: string) => any;
20
+ "resize-start": (e: PointerEvent, id: string) => any;
16
21
  "pointer-enter": (id: string) => any;
17
22
  "pointer-leave": () => any;
18
23
  "pointer-down": (e: PointerEvent, id: string) => any;
19
24
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
20
25
  onClick?: ((id: string, label: string) => any) | undefined;
26
+ "onResize-start"?: ((e: PointerEvent, id: string) => any) | undefined;
21
27
  "onPointer-enter"?: ((id: string) => any) | undefined;
22
28
  "onPointer-leave"?: (() => any) | undefined;
23
29
  "onPointer-down"?: ((e: PointerEvent, id: string) => any) | undefined;
@@ -1,5 +1,6 @@
1
1
  <script setup>
2
2
  import { computed } from "vue";
3
+ import { avatarBorderStyle } from "../../../utils/avatarStyle";
3
4
  const props = defineProps({
4
5
  entry: { type: Object, required: true },
5
6
  left: { type: Number, required: true },
@@ -7,10 +8,17 @@ const props = defineProps({
7
8
  color: { type: String, required: true },
8
9
  isTask: { type: Boolean, required: false },
9
10
  isDragging: { type: Boolean, required: false },
10
- focusers: { type: Array, required: false }
11
+ focusers: { type: Array, required: false },
12
+ viewers: { type: Array, required: false }
11
13
  });
12
- const emit = defineEmits(["pointer-down", "pointer-enter", "pointer-leave", "click"]);
14
+ const emit = defineEmits(["pointer-down", "resize-start", "pointer-enter", "pointer-leave", "click"]);
13
15
  const focusBorder = computed(() => {
16
+ if (props.viewers?.length) {
17
+ return {
18
+ outline: `4px solid ${props.viewers[0].color}`,
19
+ outlineOffset: "1px"
20
+ };
21
+ }
14
22
  if (!props.focusers?.length) return {};
15
23
  return {
16
24
  outline: `2px solid ${props.focusers[0].color}`,
@@ -38,9 +46,24 @@ const focusBorder = computed(() => {
38
46
  @pointerleave="emit('pointer-leave')"
39
47
  @click.stop="emit('click', entry.id, entry.label)"
40
48
  >
41
- <!-- Remote hover badge -->
49
+ <!-- Remote viewer cluster (slideover/full open) — wins over hover badge -->
50
+ <div
51
+ v-if="viewers?.length"
52
+ class="absolute -top-2.5 right-1 flex -space-x-1 z-20 pointer-events-none"
53
+ >
54
+ <UAvatar
55
+ v-for="(u, i) in viewers.slice(0, 3)"
56
+ :key="`v-${i}`"
57
+ size="3xs"
58
+ :alt="u.name"
59
+ :title="u.name"
60
+ :style="avatarBorderStyle(u.color, 'zinc')"
61
+ />
62
+ </div>
63
+
64
+ <!-- Remote hover badge (only when no viewer is shown) -->
42
65
  <span
43
- v-if="focusers?.length"
66
+ v-else-if="focusers?.length"
44
67
  class="absolute -top-3 left-1 text-[10px] px-1 rounded text-white leading-tight z-10 pointer-events-none"
45
68
  :style="{ backgroundColor: focusers[0].color }"
46
69
  >
@@ -55,5 +78,12 @@ const focusBorder = computed(() => {
55
78
  class="absolute bottom-0 left-0 h-0.5 rounded-b bg-white/30"
56
79
  :style="{ width: `${Number(entry.meta.taskProgress)}%` }"
57
80
  />
81
+
82
+ <!-- Right-edge resize handle -->
83
+ <div
84
+ class="absolute top-0 right-0 w-1.5 h-full cursor-col-resize hover:bg-white/30 rounded-r"
85
+ style="touch-action: none"
86
+ @pointerdown.stop="emit('resize-start', $event, entry.id)"
87
+ />
58
88
  </div>
59
89
  </template>
@@ -10,14 +10,20 @@ type __VLS_Props = {
10
10
  name: string;
11
11
  color: string;
12
12
  }>;
13
+ viewers?: Array<{
14
+ name: string;
15
+ color: string;
16
+ }>;
13
17
  };
14
18
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
19
  click: (id: string, label: string) => any;
20
+ "resize-start": (e: PointerEvent, id: string) => any;
16
21
  "pointer-enter": (id: string) => any;
17
22
  "pointer-leave": () => any;
18
23
  "pointer-down": (e: PointerEvent, id: string) => any;
19
24
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
20
25
  onClick?: ((id: string, label: string) => any) | undefined;
26
+ "onResize-start"?: ((e: PointerEvent, id: string) => any) | undefined;
21
27
  "onPointer-enter"?: ((id: string) => any) | undefined;
22
28
  "onPointer-leave"?: (() => any) | undefined;
23
29
  "onPointer-down"?: ((e: PointerEvent, id: string) => any) | undefined;
@@ -2,27 +2,43 @@ import type { TreeEntry } from '../../../composables/useChildTree.js';
2
2
  type __VLS_Props = {
3
3
  epics: TreeEntry[];
4
4
  tree: ReturnType<typeof import('../../../composables/useChildTree').useChildTree>;
5
+ /** Pixel offset for a date string */
5
6
  dateToX: (dateStr: string) => number;
7
+ /** Width between two dates */
6
8
  spanWidth: (start: string, end: string) => number;
9
+ /** Today line offset */
7
10
  todayOffset: number;
11
+ /** Whether bar is being dragged */
8
12
  barDragId?: string | null;
13
+ /** Epic row hovered during drag */
9
14
  barHoverEpicId?: string | null;
15
+ /** Item focusers */
10
16
  itemFocusers: (id: string) => Array<{
11
17
  name: string;
12
18
  color: string;
13
19
  }>;
20
+ /** Item viewers (slideover/full open) — heavier than focusers */
21
+ itemViewers?: (id: string) => Array<{
22
+ name: string;
23
+ color: string;
24
+ }>;
25
+ /** Whether the user has write permission */
14
26
  editable?: boolean;
15
27
  };
16
28
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
29
  "bar-pointer-down": (e: PointerEvent, id: string) => any;
30
+ "bar-resize-start": (e: PointerEvent, id: string) => any;
18
31
  "bar-click": (id: string, label: string) => any;
19
32
  "focus-item": (id: string) => any;
20
33
  "unfocus-item": () => any;
34
+ "context-menu": (e: MouseEvent, id: string, label: string) => any;
21
35
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
22
36
  "onBar-pointer-down"?: ((e: PointerEvent, id: string) => any) | undefined;
37
+ "onBar-resize-start"?: ((e: PointerEvent, id: string) => any) | undefined;
23
38
  "onBar-click"?: ((id: string, label: string) => any) | undefined;
24
39
  "onFocus-item"?: ((id: string) => any) | undefined;
25
40
  "onUnfocus-item"?: (() => any) | undefined;
41
+ "onContext-menu"?: ((e: MouseEvent, id: string, label: string) => any) | undefined;
26
42
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
27
43
  declare const _default: typeof __VLS_export;
28
44
  export default _default;
@@ -1,7 +1,7 @@
1
1
  <script setup>
2
2
  import ATimelineBar from "./ATimelineBar.vue";
3
3
  import ATimelineMilestone from "./ATimelineMilestone.vue";
4
- const _props = defineProps({
4
+ defineProps({
5
5
  epics: { type: Array, required: true },
6
6
  tree: { type: null, required: true },
7
7
  dateToX: { type: Function, required: true },
@@ -10,9 +10,10 @@ const _props = defineProps({
10
10
  barDragId: { type: [String, null], required: false },
11
11
  barHoverEpicId: { type: [String, null], required: false },
12
12
  itemFocusers: { type: Function, required: true },
13
+ itemViewers: { type: Function, required: false },
13
14
  editable: { type: Boolean, required: false }
14
15
  });
15
- const emit = defineEmits(["bar-pointer-down", "bar-click", "focus-item", "unfocus-item"]);
16
+ const emit = defineEmits(["bar-pointer-down", "bar-resize-start", "bar-click", "focus-item", "unfocus-item", "context-menu"]);
16
17
  function isMilestone(entry) {
17
18
  return !entry.meta?.dateEnd || entry.meta.dateEnd === entry.meta.dateStart;
18
19
  }
@@ -30,7 +31,10 @@ function isMilestone(entry) {
30
31
  :class="barHoverEpicId === epic.id && barDragId ? 'bg-(--ui-primary)/5' : ''"
31
32
  >
32
33
  <!-- Epic bar row -->
33
- <div class="h-10 relative border-b border-(--ui-border)">
34
+ <div
35
+ class="h-10 relative border-b border-(--ui-border)"
36
+ @contextmenu.prevent="editable !== false && emit('context-menu', $event, epic.id, epic.label)"
37
+ >
34
38
  <template v-if="epic.meta?.dateStart">
35
39
  <ATimelineMilestone
36
40
  v-if="isMilestone(epic)"
@@ -39,6 +43,7 @@ function isMilestone(entry) {
39
43
  :color="epic.meta?.color ?? '#6366f1'"
40
44
  :is-dragging="barDragId === epic.id"
41
45
  :focusers="itemFocusers(epic.id)"
46
+ :viewers="itemViewers ? itemViewers(epic.id) : void 0"
42
47
  @pointer-down="emit('bar-pointer-down', $event, epic.id)"
43
48
  @pointer-enter="emit('focus-item', epic.id)"
44
49
  @pointer-leave="emit('unfocus-item')"
@@ -52,7 +57,9 @@ function isMilestone(entry) {
52
57
  :color="epic.meta?.color ?? '#6366f1'"
53
58
  :is-dragging="barDragId === epic.id"
54
59
  :focusers="itemFocusers(epic.id)"
60
+ :viewers="itemViewers ? itemViewers(epic.id) : void 0"
55
61
  @pointer-down="emit('bar-pointer-down', $event, epic.id)"
62
+ @resize-start="emit('bar-resize-start', $event, epic.id)"
56
63
  @pointer-enter="emit('focus-item', epic.id)"
57
64
  @pointer-leave="emit('unfocus-item')"
58
65
  @click="emit('bar-click', epic.id, epic.label)"
@@ -65,6 +72,7 @@ function isMilestone(entry) {
65
72
  v-for="task in tree.childrenOf(epic.id)"
66
73
  :key="task.id"
67
74
  class="h-9 relative border-b border-(--ui-border)"
75
+ @contextmenu.prevent="editable !== false && emit('context-menu', $event, task.id, task.label)"
68
76
  >
69
77
  <template v-if="task.meta?.dateStart">
70
78
  <ATimelineMilestone
@@ -74,6 +82,7 @@ function isMilestone(entry) {
74
82
  :color="task.meta?.color ?? '#818cf8'"
75
83
  :is-dragging="barDragId === task.id"
76
84
  :focusers="itemFocusers(task.id)"
85
+ :viewers="itemViewers ? itemViewers(task.id) : void 0"
77
86
  @pointer-down="emit('bar-pointer-down', $event, task.id)"
78
87
  @pointer-enter="emit('focus-item', task.id)"
79
88
  @pointer-leave="emit('unfocus-item')"
@@ -88,7 +97,9 @@ function isMilestone(entry) {
88
97
  is-task
89
98
  :is-dragging="barDragId === task.id"
90
99
  :focusers="itemFocusers(task.id)"
100
+ :viewers="itemViewers ? itemViewers(task.id) : void 0"
91
101
  @pointer-down="emit('bar-pointer-down', $event, task.id)"
102
+ @resize-start="emit('bar-resize-start', $event, task.id)"
92
103
  @pointer-enter="emit('focus-item', task.id)"
93
104
  @pointer-leave="emit('unfocus-item')"
94
105
  @click="emit('bar-click', task.id, task.label)"
@@ -2,27 +2,43 @@ import type { TreeEntry } from '../../../composables/useChildTree.js';
2
2
  type __VLS_Props = {
3
3
  epics: TreeEntry[];
4
4
  tree: ReturnType<typeof import('../../../composables/useChildTree').useChildTree>;
5
+ /** Pixel offset for a date string */
5
6
  dateToX: (dateStr: string) => number;
7
+ /** Width between two dates */
6
8
  spanWidth: (start: string, end: string) => number;
9
+ /** Today line offset */
7
10
  todayOffset: number;
11
+ /** Whether bar is being dragged */
8
12
  barDragId?: string | null;
13
+ /** Epic row hovered during drag */
9
14
  barHoverEpicId?: string | null;
15
+ /** Item focusers */
10
16
  itemFocusers: (id: string) => Array<{
11
17
  name: string;
12
18
  color: string;
13
19
  }>;
20
+ /** Item viewers (slideover/full open) — heavier than focusers */
21
+ itemViewers?: (id: string) => Array<{
22
+ name: string;
23
+ color: string;
24
+ }>;
25
+ /** Whether the user has write permission */
14
26
  editable?: boolean;
15
27
  };
16
28
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
29
  "bar-pointer-down": (e: PointerEvent, id: string) => any;
30
+ "bar-resize-start": (e: PointerEvent, id: string) => any;
18
31
  "bar-click": (id: string, label: string) => any;
19
32
  "focus-item": (id: string) => any;
20
33
  "unfocus-item": () => any;
34
+ "context-menu": (e: MouseEvent, id: string, label: string) => any;
21
35
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
22
36
  "onBar-pointer-down"?: ((e: PointerEvent, id: string) => any) | undefined;
37
+ "onBar-resize-start"?: ((e: PointerEvent, id: string) => any) | undefined;
23
38
  "onBar-click"?: ((id: string, label: string) => any) | undefined;
24
39
  "onFocus-item"?: ((id: string) => any) | undefined;
25
40
  "onUnfocus-item"?: (() => any) | undefined;
41
+ "onContext-menu"?: ((e: MouseEvent, id: string, label: string) => any) | undefined;
26
42
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
27
43
  declare const _default: typeof __VLS_export;
28
44
  export default _default;
@@ -1,19 +1,31 @@
1
1
  import type { TreeEntry } from '../../../composables/useChildTree.js';
2
- import type { AbracadabraLocale } from '../../../locale.js';
2
+ import { type AbracadabraLocale } from '../../../locale.js';
3
3
  type __VLS_Props = {
4
4
  epics: TreeEntry[];
5
5
  tree: ReturnType<typeof import('../../../composables/useChildTree').useChildTree>;
6
+ /** Currently dragged epic id */
6
7
  epicDragId?: string | null;
7
8
  epicDragOver?: string | null;
9
+ /** Inline rename state */
8
10
  renameId?: string | null;
9
11
  renameValue?: string;
12
+ /** Whether to show panel (for mobile toggle) */
10
13
  visible?: boolean;
14
+ /** Panel width in px (controlled by parent resize handle) */
11
15
  labelWidth?: number;
16
+ /** Remote focusers for items */
12
17
  itemFocusers: (id: string) => Array<{
13
18
  name: string;
14
19
  color: string;
15
20
  }>;
21
+ /** Remote viewers (slideover/full open) */
22
+ itemViewers?: (id: string) => Array<{
23
+ name: string;
24
+ color: string;
25
+ }>;
26
+ /** Whether the user has write permission */
16
27
  editable?: boolean;
28
+ /** Locale overrides */
17
29
  labels?: Partial<AbracadabraLocale['renderers']['timeline']>;
18
30
  };
19
31
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -1,6 +1,7 @@
1
1
  <script setup>
2
2
  import { computed } from "vue";
3
3
  import { useRuntimeConfig } from "#imports";
4
+ import { avatarBorderStyle } from "../../../utils/avatarStyle";
4
5
  import { DEFAULT_LOCALE } from "../../../locale";
5
6
  const props = defineProps({
6
7
  epics: { type: Array, required: true },
@@ -12,40 +13,70 @@ const props = defineProps({
12
13
  visible: { type: Boolean, required: false },
13
14
  labelWidth: { type: Number, required: false },
14
15
  itemFocusers: { type: Function, required: true },
16
+ itemViewers: { type: Function, required: false },
15
17
  editable: { type: Boolean, required: false },
16
18
  labels: { type: Object, required: false }
17
19
  });
18
20
  const emit = defineEmits(["open-node", "add-task", "add-milestone", "epic-pointer-down", "start-rename", "rename-input", "rename-commit", "rename-cancel", "delete-entry", "duplicate-entry"]);
19
21
  const config = useRuntimeConfig();
20
- const locale = computed(() => ({
22
+ const tt = computed(() => ({
21
23
  ...DEFAULT_LOCALE.renderers.timeline,
22
24
  ...config.public?.abracadabra?.locale?.renderers?.timeline ?? {},
23
25
  ...props.labels ?? {}
24
26
  }));
25
- function isMilestone(entry) {
26
- return !entry.meta?.dateEnd || entry.meta.dateEnd === entry.meta.dateStart;
27
- }
28
27
  function epicMenuItems(epic) {
28
+ const t = tt.value;
29
29
  const items = [
30
30
  [
31
- { label: "Open", icon: "i-lucide-external-link", onSelect: () => emit("open-node", epic.id, epic.label) },
31
+ { label: t.open, icon: "i-lucide-external-link", onSelect: () => emit("open-node", epic.id, epic.label) },
32
32
  ...props.editable !== false ? [
33
- { label: "Rename", icon: "i-lucide-pencil", onSelect: () => emit("start-rename", epic.id, epic.label) },
34
- { label: "Duplicate", icon: "i-lucide-copy", onSelect: () => emit("duplicate-entry", epic.id) }
33
+ { label: t.rename, icon: "i-lucide-pencil", onSelect: () => emit("start-rename", epic.id, epic.label) },
34
+ { label: t.duplicate, icon: "i-lucide-copy", onSelect: () => emit("duplicate-entry", epic.id) }
35
35
  ] : []
36
36
  ]
37
37
  ];
38
38
  if (props.editable !== false) {
39
39
  items.push([
40
- { label: locale.value.addTask, icon: "i-lucide-plus", onSelect: () => emit("add-task", epic.id) },
41
- { label: locale.value.addMilestone, icon: "i-lucide-diamond", onSelect: () => emit("add-milestone", epic.id) }
40
+ { label: t.addTask, icon: "i-lucide-plus", onSelect: () => emit("add-task", epic.id) },
41
+ { label: t.addMilestone, icon: "i-lucide-diamond", onSelect: () => emit("add-milestone", epic.id) }
42
42
  ]);
43
43
  items.push([
44
- { label: "Delete", icon: "i-lucide-trash-2", color: "error", onSelect: () => emit("delete-entry", epic.id) }
44
+ { label: t.delete, icon: "i-lucide-trash-2", color: "error", onSelect: () => emit("delete-entry", epic.id) }
45
45
  ]);
46
46
  }
47
47
  return items;
48
48
  }
49
+ function taskMenuItems(task) {
50
+ const t = tt.value;
51
+ const items = [
52
+ [
53
+ { label: t.open, icon: "i-lucide-external-link", onSelect: () => emit("open-node", task.id, task.label) },
54
+ ...props.editable !== false ? [
55
+ { label: t.rename, icon: "i-lucide-pencil", onSelect: () => emit("start-rename", task.id, task.label) },
56
+ { label: t.duplicate, icon: "i-lucide-copy", onSelect: () => emit("duplicate-entry", task.id) }
57
+ ] : []
58
+ ]
59
+ ];
60
+ if (props.editable !== false) {
61
+ items.push([
62
+ {
63
+ label: t.moveToEpic,
64
+ icon: "i-lucide-arrow-right",
65
+ children: props.epics.filter((e) => e.id !== task.parentId).map((e) => ({
66
+ label: e.label,
67
+ onSelect: () => props.tree.moveEntry(task.id, e.id, Date.now())
68
+ }))
69
+ }
70
+ ]);
71
+ items.push([
72
+ { label: t.delete, icon: "i-lucide-trash-2", color: "error", onSelect: () => emit("delete-entry", task.id) }
73
+ ]);
74
+ }
75
+ return items;
76
+ }
77
+ function isMilestone(entry) {
78
+ return !entry.meta?.dateEnd || entry.meta.dateEnd === entry.meta.dateStart;
79
+ }
49
80
  </script>
50
81
 
51
82
  <template>
@@ -63,10 +94,7 @@ function epicMenuItems(epic) {
63
94
  :key="epic.id"
64
95
  >
65
96
  <!-- Epic row -->
66
- <UDropdownMenu
67
- :items="epicMenuItems(epic)"
68
- :content="{ align: 'start' }"
69
- >
97
+ <ANodeContextMenu :items="epicMenuItems(epic)">
70
98
  <button
71
99
  :data-drag-id="epic.id"
72
100
  class="h-10 w-full flex items-center px-3 text-sm font-medium border-b border-(--ui-border) hover:bg-(--ui-bg-elevated) text-left transition-colors relative"
@@ -77,14 +105,32 @@ function epicMenuItems(epic) {
77
105
  'opacity-40': epicDragId === epic.id
78
106
  }
79
107
  ]"
108
+ :style="itemViewers && itemViewers(epic.id).length > 0 ? {
109
+ borderLeft: `5px solid ${itemViewers(epic.id)[0].color}`,
110
+ backgroundColor: itemViewers(epic.id)[0].color + '14'
111
+ } : void 0"
80
112
  style="touch-action: pan-y"
81
113
  @pointerdown="editable !== false && emit('epic-pointer-down', $event, epic.id)"
82
114
  @click="emit('open-node', epic.id, epic.label)"
83
- @contextmenu.prevent
84
115
  >
85
- <!-- Remote hover badge -->
116
+ <!-- Remote viewer cluster (slideover/full open) — heavier than hover -->
117
+ <div
118
+ v-if="itemViewers && itemViewers(epic.id).length > 0"
119
+ class="absolute right-1 top-1/2 -translate-y-1/2 flex -space-x-1 z-10 pointer-events-none"
120
+ >
121
+ <UAvatar
122
+ v-for="(u, i) in itemViewers(epic.id).slice(0, 3)"
123
+ :key="`v-${i}`"
124
+ size="3xs"
125
+ :alt="u.name"
126
+ :title="u.name"
127
+ :style="avatarBorderStyle(u.color, 'zinc')"
128
+ />
129
+ </div>
130
+
131
+ <!-- Remote hover badge (only when no viewer is shown) -->
86
132
  <span
87
- v-if="itemFocusers(epic.id).length > 0"
133
+ v-else-if="itemFocusers(epic.id).length > 0"
88
134
  class="absolute -top-2 left-2 text-[10px] px-1 rounded text-white leading-tight z-10 pointer-events-none"
89
135
  :style="{ backgroundColor: itemFocusers(epic.id)[0].color }"
90
136
  >
@@ -115,40 +161,61 @@ function epicMenuItems(epic) {
115
161
  class="truncate flex-1"
116
162
  >{{ epic.label }}</span>
117
163
  </button>
118
- </UDropdownMenu>
164
+ </ANodeContextMenu>
119
165
 
120
166
  <!-- Task rows -->
121
- <button
167
+ <ANodeContextMenu
122
168
  v-for="task in tree.childrenOf(epic.id)"
123
169
  :key="task.id"
124
- class="h-9 w-full flex items-center px-6 text-xs border-b border-(--ui-border) hover:bg-(--ui-bg-elevated) text-left relative"
125
- :style="itemFocusers(task.id).length > 0 ? { borderLeft: `3px solid ${itemFocusers(task.id)[0].color}` } : void 0"
126
- @click="emit('open-node', task.id, task.label)"
170
+ :items="taskMenuItems(task)"
127
171
  >
128
- <UIcon
129
- v-if="isMilestone(task)"
130
- name="i-lucide-diamond"
131
- class="size-3 mr-1.5 text-(--ui-text-dimmed) shrink-0"
132
- />
133
- <!-- Inline rename -->
134
- <UInput
135
- v-if="renameId === task.id"
136
- :model-value="renameValue"
137
- size="xs"
138
- variant="none"
139
- class="flex-1"
140
- autofocus
141
- @update:model-value="emit('rename-input', $event)"
142
- @keydown.enter="emit('rename-commit')"
143
- @keydown.escape="emit('rename-cancel')"
144
- @blur="emit('rename-commit')"
145
- @click.stop
146
- />
147
- <span
148
- v-else
149
- class="truncate text-(--ui-text-dimmed)"
150
- >{{ task.label }}</span>
151
- </button>
172
+ <button
173
+ class="h-9 w-full flex items-center px-6 text-xs border-b border-(--ui-border) hover:bg-(--ui-bg-elevated) text-left relative"
174
+ :style="itemViewers && itemViewers(task.id).length > 0 ? {
175
+ borderLeft: `5px solid ${itemViewers(task.id)[0].color}`,
176
+ backgroundColor: itemViewers(task.id)[0].color + '14'
177
+ } : itemFocusers(task.id).length > 0 ? { borderLeft: `3px solid ${itemFocusers(task.id)[0].color}` } : void 0"
178
+ @click="emit('open-node', task.id, task.label)"
179
+ >
180
+ <!-- Remote viewer cluster on task row -->
181
+ <div
182
+ v-if="itemViewers && itemViewers(task.id).length > 0"
183
+ class="absolute right-1 top-1/2 -translate-y-1/2 flex -space-x-1 z-10 pointer-events-none"
184
+ >
185
+ <UAvatar
186
+ v-for="(u, i) in itemViewers(task.id).slice(0, 3)"
187
+ :key="`v-${i}`"
188
+ size="3xs"
189
+ :alt="u.name"
190
+ :title="u.name"
191
+ :style="avatarBorderStyle(u.color, 'zinc')"
192
+ />
193
+ </div>
194
+ <UIcon
195
+ v-if="isMilestone(task)"
196
+ name="i-lucide-diamond"
197
+ class="size-3 mr-1.5 text-(--ui-text-dimmed) shrink-0"
198
+ />
199
+ <!-- Inline rename -->
200
+ <UInput
201
+ v-if="renameId === task.id"
202
+ :model-value="renameValue"
203
+ size="xs"
204
+ variant="none"
205
+ class="flex-1"
206
+ autofocus
207
+ @update:model-value="emit('rename-input', $event)"
208
+ @keydown.enter="emit('rename-commit')"
209
+ @keydown.escape="emit('rename-cancel')"
210
+ @blur="emit('rename-commit')"
211
+ @click.stop
212
+ />
213
+ <span
214
+ v-else
215
+ class="truncate text-(--ui-text-dimmed)"
216
+ >{{ task.label }}</span>
217
+ </button>
218
+ </ANodeContextMenu>
152
219
 
153
220
  <!-- Add task row -->
154
221
  <button
@@ -156,7 +223,7 @@ function epicMenuItems(epic) {
156
223
  class="h-7 w-full flex items-center px-6 text-xs text-(--ui-text-dimmed) hover:text-(--ui-text) border-b border-(--ui-border) text-left"
157
224
  @click="emit('add-task', epic.id)"
158
225
  >
159
- + {{ locale.task }}
226
+ + {{ tt.task }}
160
227
  </button>
161
228
  <div
162
229
  v-else
@@ -1,19 +1,31 @@
1
1
  import type { TreeEntry } from '../../../composables/useChildTree.js';
2
- import type { AbracadabraLocale } from '../../../locale.js';
2
+ import { type AbracadabraLocale } from '../../../locale.js';
3
3
  type __VLS_Props = {
4
4
  epics: TreeEntry[];
5
5
  tree: ReturnType<typeof import('../../../composables/useChildTree').useChildTree>;
6
+ /** Currently dragged epic id */
6
7
  epicDragId?: string | null;
7
8
  epicDragOver?: string | null;
9
+ /** Inline rename state */
8
10
  renameId?: string | null;
9
11
  renameValue?: string;
12
+ /** Whether to show panel (for mobile toggle) */
10
13
  visible?: boolean;
14
+ /** Panel width in px (controlled by parent resize handle) */
11
15
  labelWidth?: number;
16
+ /** Remote focusers for items */
12
17
  itemFocusers: (id: string) => Array<{
13
18
  name: string;
14
19
  color: string;
15
20
  }>;
21
+ /** Remote viewers (slideover/full open) */
22
+ itemViewers?: (id: string) => Array<{
23
+ name: string;
24
+ color: string;
25
+ }>;
26
+ /** Whether the user has write permission */
16
27
  editable?: boolean;
28
+ /** Locale overrides */
17
29
  labels?: Partial<AbracadabraLocale['renderers']['timeline']>;
18
30
  };
19
31
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {