@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.
- package/dist/module.d.mts +4 -3
- package/dist/module.json +1 -1
- package/dist/module.mjs +9 -1
- package/dist/runtime/components/ADocumentTree.vue +1 -1
- package/dist/runtime/components/AEditor.d.vue.ts +26 -1
- package/dist/runtime/components/AEditor.vue +158 -4
- package/dist/runtime/components/AEditor.vue.d.ts +26 -1
- package/dist/runtime/components/AIdentityModal.d.vue.ts +46 -0
- package/dist/runtime/components/AIdentityModal.vue +157 -0
- package/dist/runtime/components/AIdentityModal.vue.d.ts +46 -0
- package/dist/runtime/components/AMnemonicLoginModal.d.vue.ts +35 -0
- package/dist/runtime/components/AMnemonicLoginModal.vue +173 -0
- package/dist/runtime/components/AMnemonicLoginModal.vue.d.ts +35 -0
- package/dist/runtime/components/ANodePanel.d.vue.ts +29 -2
- package/dist/runtime/components/ANodePanel.vue +148 -27
- package/dist/runtime/components/ANodePanel.vue.d.ts +29 -2
- package/dist/runtime/components/ANodePanelHeader.d.vue.ts +64 -0
- package/dist/runtime/components/ANodePanelHeader.vue +105 -0
- package/dist/runtime/components/ANodePanelHeader.vue.d.ts +64 -0
- package/dist/runtime/components/ANodeSettingsPanel.d.vue.ts +49 -0
- package/dist/runtime/components/ANodeSettingsPanel.vue +59 -0
- package/dist/runtime/components/ANodeSettingsPanel.vue.d.ts +49 -0
- package/dist/runtime/components/ANotificationBell.d.vue.ts +26 -0
- package/dist/runtime/components/ANotificationBell.vue +55 -0
- package/dist/runtime/components/ANotificationBell.vue.d.ts +26 -0
- package/dist/runtime/components/AOfflineSync.d.vue.ts +11 -0
- package/dist/runtime/components/AOfflineSync.vue +217 -0
- package/dist/runtime/components/AOfflineSync.vue.d.ts +11 -0
- package/dist/runtime/components/ARecoveryPhraseDisplay.d.vue.ts +26 -0
- package/dist/runtime/components/ARecoveryPhraseDisplay.vue +94 -0
- package/dist/runtime/components/ARecoveryPhraseDisplay.vue.d.ts +26 -0
- package/dist/runtime/components/AServerInfoModal.d.vue.ts +43 -0
- package/dist/runtime/components/AServerInfoModal.vue +150 -0
- package/dist/runtime/components/AServerInfoModal.vue.d.ts +43 -0
- package/dist/runtime/components/ASpaceFormModal.vue +1 -1
- package/dist/runtime/components/ASubPageList.d.vue.ts +66 -0
- package/dist/runtime/components/ASubPageList.vue +147 -0
- package/dist/runtime/components/ASubPageList.vue.d.ts +66 -0
- package/dist/runtime/components/aware/AAccordion.d.vue.ts +25 -0
- package/dist/runtime/components/aware/AAccordion.vue +107 -0
- package/dist/runtime/components/aware/AAccordion.vue.d.ts +25 -0
- package/dist/runtime/components/aware/AArea.vue +24 -11
- package/dist/runtime/components/aware/AAvatar.d.vue.ts +6 -0
- package/dist/runtime/components/aware/AAvatar.vue +33 -3
- package/dist/runtime/components/aware/AAvatar.vue.d.ts +6 -0
- package/dist/runtime/components/aware/AAvatarGroup.d.vue.ts +10 -0
- package/dist/runtime/components/aware/AAvatarGroup.vue +30 -0
- package/dist/runtime/components/aware/AAvatarGroup.vue.d.ts +10 -0
- package/dist/runtime/components/aware/AButton.d.vue.ts +4 -2
- package/dist/runtime/components/aware/AButton.vue +46 -14
- package/dist/runtime/components/aware/AButton.vue.d.ts +4 -2
- package/dist/runtime/components/aware/ACalendar.d.vue.ts +17 -0
- package/dist/runtime/components/aware/ACalendar.vue +145 -0
- package/dist/runtime/components/aware/ACalendar.vue.d.ts +17 -0
- package/dist/runtime/components/aware/ACarousel.d.vue.ts +25 -0
- package/dist/runtime/components/aware/ACarousel.vue +39 -0
- package/dist/runtime/components/aware/ACarousel.vue.d.ts +25 -0
- package/dist/runtime/components/aware/ACheckbox.d.vue.ts +11 -0
- package/dist/runtime/components/aware/ACheckbox.vue +74 -0
- package/dist/runtime/components/aware/ACheckbox.vue.d.ts +11 -0
- package/dist/runtime/components/aware/ACheckboxGroup.d.vue.ts +27 -0
- package/dist/runtime/components/aware/ACheckboxGroup.vue +79 -0
- package/dist/runtime/components/aware/ACheckboxGroup.vue.d.ts +27 -0
- package/dist/runtime/components/aware/ACollapsible.d.vue.ts +25 -0
- package/dist/runtime/components/aware/ACollapsible.vue +45 -0
- package/dist/runtime/components/aware/ACollapsible.vue.d.ts +25 -0
- package/dist/runtime/components/aware/AColorPicker.d.vue.ts +15 -0
- package/dist/runtime/components/aware/AColorPicker.vue +48 -0
- package/dist/runtime/components/aware/AColorPicker.vue.d.ts +15 -0
- package/dist/runtime/components/aware/ACommandPalette.d.vue.ts +33 -0
- package/dist/runtime/components/aware/ACommandPalette.vue +123 -0
- package/dist/runtime/components/aware/ACommandPalette.vue.d.ts +33 -0
- package/dist/runtime/components/aware/AContextMenu.d.vue.ts +25 -0
- package/dist/runtime/components/aware/AContextMenu.vue +63 -0
- package/dist/runtime/components/aware/AContextMenu.vue.d.ts +25 -0
- package/dist/runtime/components/aware/ADrawer.d.vue.ts +25 -0
- package/dist/runtime/components/aware/ADrawer.vue +57 -0
- package/dist/runtime/components/aware/ADrawer.vue.d.ts +25 -0
- package/dist/runtime/components/aware/ADropdownMenu.d.vue.ts +25 -0
- package/dist/runtime/components/aware/ADropdownMenu.vue +63 -0
- package/dist/runtime/components/aware/ADropdownMenu.vue.d.ts +25 -0
- package/dist/runtime/components/aware/AFileUpload.d.vue.ts +27 -0
- package/dist/runtime/components/aware/AFileUpload.vue +67 -0
- package/dist/runtime/components/aware/AFileUpload.vue.d.ts +27 -0
- package/dist/runtime/components/aware/AFollowBar.d.vue.ts +21 -0
- package/dist/runtime/components/aware/AFollowBar.vue +62 -0
- package/dist/runtime/components/aware/AFollowBar.vue.d.ts +21 -0
- package/dist/runtime/components/aware/AFollowScroll.d.vue.ts +7 -0
- package/dist/runtime/components/aware/AFollowScroll.vue +17 -0
- package/dist/runtime/components/aware/AFollowScroll.vue.d.ts +7 -0
- package/dist/runtime/components/aware/AFormSync.d.vue.ts +21 -0
- package/dist/runtime/components/aware/AFormSync.vue +52 -0
- package/dist/runtime/components/aware/AFormSync.vue.d.ts +21 -0
- package/dist/runtime/components/aware/AGlobalFocusLayer.d.vue.ts +3 -0
- package/dist/runtime/components/aware/AGlobalFocusLayer.vue +90 -0
- package/dist/runtime/components/aware/AGlobalFocusLayer.vue.d.ts +3 -0
- package/dist/runtime/components/aware/AHoverItem.d.vue.ts +27 -0
- package/dist/runtime/components/aware/AHoverItem.vue +124 -0
- package/dist/runtime/components/aware/AHoverItem.vue.d.ts +27 -0
- package/dist/runtime/components/aware/AInput.d.vue.ts +12 -2
- package/dist/runtime/components/aware/AInput.vue +72 -19
- package/dist/runtime/components/aware/AInput.vue.d.ts +12 -2
- package/dist/runtime/components/aware/AInputMenu.d.vue.ts +17 -0
- package/dist/runtime/components/aware/AInputMenu.vue +138 -0
- package/dist/runtime/components/aware/AInputMenu.vue.d.ts +17 -0
- package/dist/runtime/components/aware/AInputNumber.d.vue.ts +15 -0
- package/dist/runtime/components/aware/AInputNumber.vue +67 -0
- package/dist/runtime/components/aware/AInputNumber.vue.d.ts +15 -0
- package/dist/runtime/components/aware/AInputTags.d.vue.ts +15 -0
- package/dist/runtime/components/aware/AInputTags.vue +67 -0
- package/dist/runtime/components/aware/AInputTags.vue.d.ts +15 -0
- package/dist/runtime/components/aware/AKeyHint.d.vue.ts +3 -0
- package/dist/runtime/components/aware/AKeyHint.vue +23 -0
- package/dist/runtime/components/aware/AKeyHint.vue.d.ts +3 -0
- package/dist/runtime/components/aware/AMedia.d.vue.ts +19 -0
- package/dist/runtime/components/aware/AMedia.vue +85 -0
- package/dist/runtime/components/aware/AMedia.vue.d.ts +19 -0
- package/dist/runtime/components/aware/AModal.d.vue.ts +33 -0
- package/dist/runtime/components/aware/AModal.vue +110 -0
- package/dist/runtime/components/aware/AModal.vue.d.ts +33 -0
- package/dist/runtime/components/aware/ANavigationMenu.d.vue.ts +25 -0
- package/dist/runtime/components/aware/ANavigationMenu.vue +82 -0
- package/dist/runtime/components/aware/ANavigationMenu.vue.d.ts +25 -0
- package/dist/runtime/components/aware/APagination.d.vue.ts +13 -0
- package/dist/runtime/components/aware/APagination.vue +53 -0
- package/dist/runtime/components/aware/APagination.vue.d.ts +13 -0
- package/dist/runtime/components/aware/APeerCaretLayer.d.vue.ts +10 -0
- package/dist/runtime/components/aware/APeerCaretLayer.vue +133 -0
- package/dist/runtime/components/aware/APeerCaretLayer.vue.d.ts +10 -0
- package/dist/runtime/components/aware/APinInput.d.vue.ts +15 -0
- package/dist/runtime/components/aware/APinInput.vue +48 -0
- package/dist/runtime/components/aware/APinInput.vue.d.ts +15 -0
- package/dist/runtime/components/aware/APopover.d.vue.ts +25 -0
- package/dist/runtime/components/aware/APopover.vue +57 -0
- package/dist/runtime/components/aware/APopover.vue.d.ts +25 -0
- package/dist/runtime/components/aware/APresenceBlobs.d.vue.ts +3 -0
- package/dist/runtime/components/aware/APresenceBlobs.vue +69 -0
- package/dist/runtime/components/aware/APresenceBlobs.vue.d.ts +3 -0
- package/dist/runtime/components/aware/APresenceCursors.d.vue.ts +20 -0
- package/dist/runtime/components/aware/APresenceCursors.vue +47 -0
- package/dist/runtime/components/aware/APresenceCursors.vue.d.ts +20 -0
- package/dist/runtime/components/aware/ARadioGroup.d.vue.ts +27 -0
- package/dist/runtime/components/aware/ARadioGroup.vue +86 -0
- package/dist/runtime/components/aware/ARadioGroup.vue.d.ts +27 -0
- package/dist/runtime/components/aware/AScroll.d.vue.ts +25 -0
- package/dist/runtime/components/aware/AScroll.vue +87 -0
- package/dist/runtime/components/aware/AScroll.vue.d.ts +25 -0
- package/dist/runtime/components/aware/ASelect.d.vue.ts +12 -2
- package/dist/runtime/components/aware/ASelect.vue +146 -22
- package/dist/runtime/components/aware/ASelect.vue.d.ts +12 -2
- package/dist/runtime/components/aware/ASelectMenu.d.vue.ts +17 -0
- package/dist/runtime/components/aware/ASelectMenu.vue +139 -0
- package/dist/runtime/components/aware/ASelectMenu.vue.d.ts +17 -0
- package/dist/runtime/components/aware/ASlideover.d.vue.ts +33 -0
- package/dist/runtime/components/aware/ASlideover.vue +110 -0
- package/dist/runtime/components/aware/ASlideover.vue.d.ts +33 -0
- package/dist/runtime/components/aware/ASlider.d.vue.ts +19 -0
- package/dist/runtime/components/aware/ASlider.vue +77 -0
- package/dist/runtime/components/aware/ASlider.vue.d.ts +19 -0
- package/dist/runtime/components/aware/AStepper.d.vue.ts +25 -0
- package/dist/runtime/components/aware/AStepper.vue +82 -0
- package/dist/runtime/components/aware/AStepper.vue.d.ts +25 -0
- package/dist/runtime/components/aware/ASwitch.d.vue.ts +11 -0
- package/dist/runtime/components/aware/ASwitch.vue +75 -0
- package/dist/runtime/components/aware/ASwitch.vue.d.ts +11 -0
- package/dist/runtime/components/aware/ATable.d.vue.ts +23 -0
- package/dist/runtime/components/aware/ATable.vue +97 -0
- package/dist/runtime/components/aware/ATable.vue.d.ts +23 -0
- package/dist/runtime/components/aware/ATabs.d.vue.ts +27 -0
- package/dist/runtime/components/aware/ATabs.vue +128 -0
- package/dist/runtime/components/aware/ATabs.vue.d.ts +27 -0
- package/dist/runtime/components/aware/ATextarea.d.vue.ts +12 -2
- package/dist/runtime/components/aware/ATextarea.vue +72 -19
- package/dist/runtime/components/aware/ATextarea.vue.d.ts +12 -2
- package/dist/runtime/components/aware/AToggleGroup.d.vue.ts +27 -0
- package/dist/runtime/components/aware/AToggleGroup.vue +79 -0
- package/dist/runtime/components/aware/AToggleGroup.vue.d.ts +27 -0
- package/dist/runtime/components/aware/ATree.d.vue.ts +27 -0
- package/dist/runtime/components/aware/ATree.vue +111 -0
- package/dist/runtime/components/aware/ATree.vue.d.ts +27 -0
- package/dist/runtime/components/chat/AChatPanel.d.vue.ts +6 -6
- package/dist/runtime/components/chat/AChatPanel.vue.d.ts +6 -6
- package/dist/runtime/components/chat/ANodeChatPanel.d.vue.ts +42 -0
- package/dist/runtime/components/chat/ANodeChatPanel.vue +53 -0
- package/dist/runtime/components/chat/ANodeChatPanel.vue.d.ts +42 -0
- package/dist/runtime/components/docs/ADocsSearch.d.vue.ts +2 -2
- package/dist/runtime/components/docs/ADocsSearch.vue.d.ts +2 -2
- package/dist/runtime/components/docs/ADocsSearchButton.d.vue.ts +3 -3
- package/dist/runtime/components/docs/ADocsSearchButton.vue.d.ts +3 -3
- package/dist/runtime/components/editor/AEditorRedoButton.d.vue.ts +26 -0
- package/dist/runtime/components/editor/AEditorRedoButton.vue +38 -0
- package/dist/runtime/components/editor/AEditorRedoButton.vue.d.ts +26 -0
- package/dist/runtime/components/editor/AEditorUndoButton.d.vue.ts +26 -0
- package/dist/runtime/components/editor/AEditorUndoButton.vue +38 -0
- package/dist/runtime/components/editor/AEditorUndoButton.vue.d.ts +26 -0
- package/dist/runtime/components/editor/AIconPickerPopover.d.vue.ts +24 -0
- package/dist/runtime/components/editor/AIconPickerPopover.vue +113 -0
- package/dist/runtime/components/editor/AIconPickerPopover.vue.d.ts +24 -0
- package/dist/runtime/components/editor/ANodeInlineLabel.d.vue.ts +24 -0
- package/dist/runtime/components/editor/ANodeInlineLabel.vue +101 -0
- package/dist/runtime/components/editor/ANodeInlineLabel.vue.d.ts +24 -0
- package/dist/runtime/components/renderers/ADocLoadError.d.vue.ts +3 -0
- package/dist/runtime/components/renderers/ADocLoadError.vue +11 -0
- package/dist/runtime/components/renderers/ADocLoadError.vue.d.ts +3 -0
- package/dist/runtime/components/renderers/ADocLoadingSkeleton.d.vue.ts +3 -0
- package/dist/runtime/components/renderers/ADocLoadingSkeleton.vue +5 -0
- package/dist/runtime/components/renderers/ADocLoadingSkeleton.vue.d.ts +3 -0
- package/dist/runtime/components/renderers/AOverviewRenderer.d.vue.ts +22 -0
- package/dist/runtime/components/renderers/AOverviewRenderer.vue +1041 -0
- package/dist/runtime/components/renderers/AOverviewRenderer.vue.d.ts +22 -0
- package/dist/runtime/components/renderers/AProseRenderer.d.vue.ts +23 -0
- package/dist/runtime/components/renderers/AProseRenderer.vue +31 -0
- package/dist/runtime/components/renderers/AProseRenderer.vue.d.ts +23 -0
- package/dist/runtime/components/renderers/ASheetsRenderer.client.d.vue.ts +19 -0
- package/dist/runtime/components/renderers/ASheetsRenderer.client.vue +865 -0
- package/dist/runtime/components/renderers/ASheetsRenderer.client.vue.d.ts +19 -0
- package/dist/runtime/components/renderers/calendar/ACalendarDayCell.d.vue.ts +14 -0
- package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue +45 -15
- package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue.d.ts +14 -0
- package/dist/runtime/components/renderers/calendar/ACalendarDayView.d.vue.ts +15 -0
- package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue +93 -20
- package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue.d.ts +15 -0
- package/dist/runtime/components/renderers/calendar/ACalendarEventChip.d.vue.ts +9 -0
- package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue +31 -2
- package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue.d.ts +9 -0
- package/dist/runtime/components/renderers/calendar/ACalendarWeekView.d.vue.ts +15 -0
- package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue +94 -21
- package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue.d.ts +15 -0
- package/dist/runtime/components/renderers/sheets/ASheetsCell.d.vue.ts +45 -0
- package/dist/runtime/components/renderers/sheets/ASheetsCell.vue +123 -0
- package/dist/runtime/components/renderers/sheets/ASheetsCell.vue.d.ts +45 -0
- package/dist/runtime/components/renderers/sheets/ASheetsGrid.d.vue.ts +111 -0
- package/dist/runtime/components/renderers/sheets/ASheetsGrid.vue +737 -0
- package/dist/runtime/components/renderers/sheets/ASheetsGrid.vue.d.ts +111 -0
- package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.d.vue.ts +26 -0
- package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.vue +100 -0
- package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.vue.d.ts +26 -0
- package/dist/runtime/components/renderers/sheets/ASheetsToolbar.d.vue.ts +48 -0
- package/dist/runtime/components/renderers/sheets/ASheetsToolbar.vue +243 -0
- package/dist/runtime/components/renderers/sheets/ASheetsToolbar.vue.d.ts +48 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellColor.d.vue.ts +1 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue +13 -32
- package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue.d.ts +1 -0
- package/dist/runtime/components/renderers/timeline/ATimelineBar.d.vue.ts +6 -0
- package/dist/runtime/components/renderers/timeline/ATimelineBar.vue +34 -4
- package/dist/runtime/components/renderers/timeline/ATimelineBar.vue.d.ts +6 -0
- package/dist/runtime/components/renderers/timeline/ATimelineBarArea.d.vue.ts +16 -0
- package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue +14 -3
- package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue.d.ts +16 -0
- package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.d.vue.ts +13 -1
- package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue +114 -47
- package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue.d.ts +13 -1
- package/dist/runtime/components/renderers/timeline/ATimelineMilestone.d.vue.ts +4 -0
- package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue +21 -4
- package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue.d.ts +4 -0
- package/dist/runtime/components/renderers/timeline/ATimelineToolbar.d.vue.ts +2 -2
- package/dist/runtime/components/renderers/timeline/ATimelineToolbar.vue.d.ts +2 -2
- package/dist/runtime/components/settings/ASettingsSpacesPanel.vue +7 -25
- package/dist/runtime/components/shell/ADocPanelSettings.d.vue.ts +3 -3
- package/dist/runtime/components/shell/ADocPanelSettings.vue.d.ts +3 -3
- package/dist/runtime/components/shell/ASyncStatus.d.vue.ts +1 -1
- package/dist/runtime/components/shell/ASyncStatus.vue.d.ts +1 -1
- package/dist/runtime/components/shell/AUserMenu.d.vue.ts +2 -2
- package/dist/runtime/components/shell/AUserMenu.vue.d.ts +2 -2
- package/dist/runtime/components/shell/AWelcomeScreen.d.vue.ts +1 -1
- package/dist/runtime/components/shell/AWelcomeScreen.vue.d.ts +1 -1
- package/dist/runtime/composables/useAACaret.d.ts +29 -0
- package/dist/runtime/composables/useAACaret.js +64 -0
- package/dist/runtime/composables/useAAEphemeral.d.ts +32 -0
- package/dist/runtime/composables/useAAEphemeral.js +33 -0
- package/dist/runtime/composables/useAAField.d.ts +10 -2
- package/dist/runtime/composables/useAAField.js +31 -2
- package/dist/runtime/composables/useAAFieldValue.d.ts +26 -0
- package/dist/runtime/composables/useAAFieldValue.js +32 -0
- package/dist/runtime/composables/useAAFocus.d.ts +68 -0
- package/dist/runtime/composables/useAAFocus.js +174 -0
- package/dist/runtime/composables/useAAFollowAnchor.d.ts +25 -0
- package/dist/runtime/composables/useAAFollowAnchor.js +69 -0
- package/dist/runtime/composables/useAAFollowPeer.d.ts +29 -0
- package/dist/runtime/composables/useAAFollowPeer.js +75 -0
- package/dist/runtime/composables/useAAKey.d.ts +22 -0
- package/dist/runtime/composables/useAAKey.js +24 -0
- package/dist/runtime/composables/useAAPointer.d.ts +30 -0
- package/dist/runtime/composables/useAAPointer.js +53 -0
- package/dist/runtime/composables/useAAUIState.d.ts +29 -0
- package/dist/runtime/composables/useAAUIState.js +28 -0
- package/dist/runtime/composables/useAAViewport.d.ts +22 -0
- package/dist/runtime/composables/useAAViewport.js +50 -0
- package/dist/runtime/composables/useAbraAdmin.d.ts +54 -0
- package/dist/runtime/composables/useAbraAdmin.js +115 -0
- package/dist/runtime/composables/useAbracadabraAuth.d.ts +8 -0
- package/dist/runtime/composables/useAbracadabraAuth.js +8 -0
- package/dist/runtime/composables/useAggregatedPresence.d.ts +23 -0
- package/dist/runtime/composables/useAggregatedPresence.js +140 -0
- package/dist/runtime/composables/useChat.d.ts +16 -2
- package/dist/runtime/composables/useChat.js +257 -66
- package/dist/runtime/composables/useChatUsers.d.ts +2 -0
- package/dist/runtime/composables/useChatUsers.js +2 -1
- package/dist/runtime/composables/useDocLookup.d.ts +4 -0
- package/dist/runtime/composables/useDocLookup.js +25 -0
- package/dist/runtime/composables/useDocSnapshots.d.ts +79 -0
- package/dist/runtime/composables/useDocSnapshots.js +234 -0
- package/dist/runtime/composables/useEditorDragHandle.d.ts +7 -0
- package/dist/runtime/composables/useEditorDragHandle.js +19 -1
- package/dist/runtime/composables/useEditorSuggestions.js +27 -1
- package/dist/runtime/composables/useEditorToolbar.js +9 -1
- package/dist/runtime/composables/useEmailVerification.d.ts +33 -0
- package/dist/runtime/composables/useEmailVerification.js +58 -0
- package/dist/runtime/composables/useIdentityDoc.js +0 -3
- package/dist/runtime/composables/useItemPresence.d.ts +47 -0
- package/dist/runtime/composables/useItemPresence.js +73 -0
- package/dist/runtime/composables/useResizableWidth.d.ts +24 -0
- package/dist/runtime/composables/useResizableWidth.js +87 -0
- package/dist/runtime/composables/useServerInfo.d.ts +17 -2
- package/dist/runtime/composables/useServerInfo.js +30 -6
- package/dist/runtime/composables/useServerSearch.d.ts +36 -0
- package/dist/runtime/composables/useServerSearch.js +91 -0
- package/dist/runtime/composables/useServerTrash.d.ts +67 -0
- package/dist/runtime/composables/useServerTrash.js +128 -0
- package/dist/runtime/composables/useSheetsClipboard.d.ts +42 -0
- package/dist/runtime/composables/useSheetsClipboard.js +109 -0
- package/dist/runtime/composables/useSheetsFormulas.d.ts +38 -0
- package/dist/runtime/composables/useSheetsFormulas.js +725 -0
- package/dist/runtime/composables/useSheetsSelection.d.ts +68 -0
- package/dist/runtime/composables/useSheetsSelection.js +390 -0
- package/dist/runtime/composables/useSheetsView.d.ts +31 -0
- package/dist/runtime/composables/useSheetsView.js +77 -0
- package/dist/runtime/composables/useSpaceConnections.d.ts +43 -0
- package/dist/runtime/composables/useSpaceConnections.js +72 -0
- package/dist/runtime/composables/useSpaces.d.ts +1 -3
- package/dist/runtime/composables/useSpaces.js +2 -5
- package/dist/runtime/composables/useTiptapHistory.d.ts +22 -0
- package/dist/runtime/composables/useTiptapHistory.js +12 -0
- package/dist/runtime/composables/useTreeExpansion.d.ts +28 -0
- package/dist/runtime/composables/useTreeExpansion.js +94 -0
- package/dist/runtime/composables/useYDoc.js +12 -1
- package/dist/runtime/extensions/button.d.ts +3 -0
- package/dist/runtime/extensions/button.js +62 -0
- package/dist/runtime/extensions/color-swatch.d.ts +2 -0
- package/dist/runtime/extensions/color-swatch.js +34 -0
- package/dist/runtime/extensions/diff.d.ts +2 -0
- package/dist/runtime/extensions/diff.js +40 -0
- package/dist/runtime/extensions/divider.d.ts +2 -0
- package/dist/runtime/extensions/divider.js +33 -0
- package/dist/runtime/extensions/embed.d.ts +2 -0
- package/dist/runtime/extensions/embed.js +40 -0
- package/dist/runtime/extensions/figure.d.ts +2 -0
- package/dist/runtime/extensions/figure.js +49 -0
- package/dist/runtime/extensions/math.d.ts +15 -0
- package/dist/runtime/extensions/math.js +66 -0
- package/dist/runtime/extensions/progress.d.ts +2 -0
- package/dist/runtime/extensions/progress.js +43 -0
- package/dist/runtime/extensions/quote.d.ts +2 -0
- package/dist/runtime/extensions/quote.js +39 -0
- package/dist/runtime/extensions/spoiler.d.ts +2 -0
- package/dist/runtime/extensions/spoiler.js +36 -0
- package/dist/runtime/extensions/stat.d.ts +3 -0
- package/dist/runtime/extensions/stat.js +58 -0
- package/dist/runtime/extensions/svg-embed.d.ts +23 -0
- package/dist/runtime/extensions/svg-embed.js +33 -0
- package/dist/runtime/extensions/video.d.ts +2 -0
- package/dist/runtime/extensions/video.js +40 -0
- package/dist/runtime/extensions/views/ButtonGroupView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/ButtonGroupView.vue +25 -0
- package/dist/runtime/extensions/views/ButtonGroupView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/ButtonView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/ButtonView.vue +171 -0
- package/dist/runtime/extensions/views/ButtonView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/ColorSwatchView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/ColorSwatchView.vue +134 -0
- package/dist/runtime/extensions/views/ColorSwatchView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/DiffView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/DiffView.vue +163 -0
- package/dist/runtime/extensions/views/DiffView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/DividerView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/DividerView.vue +40 -0
- package/dist/runtime/extensions/views/DividerView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/EmbedView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/EmbedView.vue +166 -0
- package/dist/runtime/extensions/views/EmbedView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/FigureView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/FigureView.vue +122 -0
- package/dist/runtime/extensions/views/FigureView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/FileNodeView.vue +21 -24
- package/dist/runtime/extensions/views/MathBlockView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/MathBlockView.vue +151 -0
- package/dist/runtime/extensions/views/MathBlockView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/MathInlineView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/MathInlineView.vue +149 -0
- package/dist/runtime/extensions/views/MathInlineView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/MetaFieldView.vue +1129 -550
- package/dist/runtime/extensions/views/ProgressView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/ProgressView.vue +156 -0
- package/dist/runtime/extensions/views/ProgressView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/QuoteView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/QuoteView.vue +128 -0
- package/dist/runtime/extensions/views/QuoteView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/SpoilerView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/SpoilerView.vue +62 -0
- package/dist/runtime/extensions/views/SpoilerView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/StatGroupView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/StatGroupView.vue +25 -0
- package/dist/runtime/extensions/views/StatGroupView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/StatView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/StatView.vue +89 -0
- package/dist/runtime/extensions/views/StatView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/SvgEmbedView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/SvgEmbedView.vue +120 -0
- package/dist/runtime/extensions/views/SvgEmbedView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/VideoView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/VideoView.vue +190 -0
- package/dist/runtime/extensions/views/VideoView.vue.d.ts +4 -0
- package/dist/runtime/locale.d.ts +133 -0
- package/dist/runtime/locale.js +121 -2
- package/dist/runtime/plugin-abracadabra.client.js +233 -36
- package/dist/runtime/plugin-abracadabra.server.js +0 -1
- package/dist/runtime/plugins/core.plugin.js +77 -4
- package/dist/runtime/server/plugins/abracadabra-service.js +84 -6
- package/dist/runtime/server/utils/rpcHandler.d.ts +74 -0
- package/dist/runtime/server/utils/rpcHandler.js +74 -0
- package/dist/runtime/server/utils/spaceManager.js +10 -9
- package/dist/runtime/types.d.ts +63 -10
- package/dist/runtime/utils/awareRingStyle.d.ts +22 -0
- package/dist/runtime/utils/awareRingStyle.js +16 -0
- package/dist/runtime/utils/caretCoordinates.d.ts +41 -0
- package/dist/runtime/utils/caretCoordinates.js +126 -0
- package/dist/runtime/utils/content.d.ts +1 -1
- package/dist/runtime/utils/docTypes.js +44 -13
- package/dist/runtime/utils/domPath.d.ts +42 -0
- package/dist/runtime/utils/domPath.js +89 -0
- package/dist/runtime/utils/loadKatex.d.ts +1 -0
- package/dist/runtime/utils/loadKatex.js +29 -0
- package/dist/runtime/utils/lucideIcons.d.ts +16 -0
- package/dist/runtime/utils/lucideIcons.js +451 -0
- package/dist/runtime/utils/sanitizeSvg.d.ts +19 -0
- package/dist/runtime/utils/sanitizeSvg.js +87 -0
- package/dist/runtime/utils/time.d.ts +15 -0
- package/dist/runtime/utils/time.js +5 -0
- package/dist/types.d.mts +4 -0
- package/package.json +26 -16
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { computed, onScopeDispose, watch } from "vue";
|
|
2
|
+
import { useAAEphemeral } from "./useAAEphemeral.js";
|
|
3
|
+
export function useAAViewport(scope, elementRef) {
|
|
4
|
+
const slot = computed(() => `viewport:${typeof scope === "function" ? scope() : scope?.value ?? scope}`);
|
|
5
|
+
const { peers, setLocal } = useAAEphemeral(slot);
|
|
6
|
+
let io = null;
|
|
7
|
+
let attached = null;
|
|
8
|
+
let mostVisible = null;
|
|
9
|
+
function publish() {
|
|
10
|
+
setLocal(mostVisible?.id ?? null);
|
|
11
|
+
}
|
|
12
|
+
function attach(el) {
|
|
13
|
+
if (attached === el) return;
|
|
14
|
+
detach();
|
|
15
|
+
attached = el;
|
|
16
|
+
io = new IntersectionObserver((entries) => {
|
|
17
|
+
let best = mostVisible;
|
|
18
|
+
for (const e of entries) {
|
|
19
|
+
const id = e.target.dataset.section;
|
|
20
|
+
if (!id) continue;
|
|
21
|
+
if (!e.isIntersecting) {
|
|
22
|
+
if (best?.id === id) best = null;
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (!best || e.intersectionRatio > best.ratio) {
|
|
26
|
+
best = { id, ratio: e.intersectionRatio };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
mostVisible = best;
|
|
30
|
+
publish();
|
|
31
|
+
}, { threshold: [0, 0.25, 0.5, 0.75, 1] });
|
|
32
|
+
el.querySelectorAll("[data-section]").forEach((s) => io.observe(s));
|
|
33
|
+
}
|
|
34
|
+
function detach() {
|
|
35
|
+
io?.disconnect();
|
|
36
|
+
io = null;
|
|
37
|
+
attached = null;
|
|
38
|
+
mostVisible = null;
|
|
39
|
+
setLocal(null);
|
|
40
|
+
}
|
|
41
|
+
watch(elementRef, (el) => {
|
|
42
|
+
if (el) attach(el);
|
|
43
|
+
else detach();
|
|
44
|
+
}, { immediate: true, flush: "post" });
|
|
45
|
+
onScopeDispose(detach);
|
|
46
|
+
const viewports = computed(
|
|
47
|
+
() => peers.value.filter((p) => !!p.value).map((p) => ({ clientId: p.clientId, section: p.value, user: p.user }))
|
|
48
|
+
);
|
|
49
|
+
return { viewports };
|
|
50
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useAbraAdmin
|
|
3
|
+
*
|
|
4
|
+
* Admin-only composable. Wraps the `/admin/*` REST endpoints (audit log,
|
|
5
|
+
* backup dump, user lockout). All methods reject with `Error('not admin')`
|
|
6
|
+
* when `isAdmin` is false — UI should gate route entry on the same flag.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* const admin = useAbraAdmin()
|
|
10
|
+
* if (admin.isAdmin.value) {
|
|
11
|
+
* const rows = await admin.auditList({ event_type: 'auth.login_failed' })
|
|
12
|
+
* }
|
|
13
|
+
*/
|
|
14
|
+
import type { AuditLogEntry, AuditQueryOpts, AuditVerifyResult } from '@abraca/dabra';
|
|
15
|
+
declare function auditList(opts?: AuditQueryOpts): Promise<AuditLogEntry[]>;
|
|
16
|
+
declare function auditExport(opts?: Omit<AuditQueryOpts, 'limit' | 'offset'>): Promise<string>;
|
|
17
|
+
declare function auditVerify(): Promise<AuditVerifyResult>;
|
|
18
|
+
declare function unlockUser(userId: string): Promise<void>;
|
|
19
|
+
declare function backupDump(opts?: {
|
|
20
|
+
includeAudit?: boolean;
|
|
21
|
+
}): Promise<Blob>;
|
|
22
|
+
/**
|
|
23
|
+
* Convenience: download a backup tar to the user's machine. Computes a
|
|
24
|
+
* filename like `abracadabra-backup-<server>-<isoDate>.tar`.
|
|
25
|
+
*/
|
|
26
|
+
declare function downloadBackup(opts?: {
|
|
27
|
+
includeAudit?: boolean;
|
|
28
|
+
filename?: string;
|
|
29
|
+
}): Promise<void>;
|
|
30
|
+
export declare function useAbraAdmin(): {
|
|
31
|
+
/** True when the current effective role is admin/owner/service. */
|
|
32
|
+
isAdmin: import("vue").ComputedRef<boolean>;
|
|
33
|
+
/** Last-fetched audit log rows (best-first). */
|
|
34
|
+
auditEntries: import("vue").ShallowRef<AuditLogEntry[], AuditLogEntry[]>;
|
|
35
|
+
/** Last `auditVerify()` result, or null. */
|
|
36
|
+
auditVerifyResult: import("vue").ShallowRef<AuditVerifyResult | null, AuditVerifyResult | null>;
|
|
37
|
+
/** Whether an admin call is in flight. */
|
|
38
|
+
isLoading: import("vue").Ref<boolean, boolean>;
|
|
39
|
+
/** Last error message, or null. */
|
|
40
|
+
error: import("vue").Ref<string | null, string | null>;
|
|
41
|
+
/** GET /admin/audit. */
|
|
42
|
+
auditList: typeof auditList;
|
|
43
|
+
/** GET /admin/audit/export — returns NDJSON as a string. */
|
|
44
|
+
auditExport: typeof auditExport;
|
|
45
|
+
/** GET /admin/audit/verify — returns the result whether ok or broken. */
|
|
46
|
+
auditVerify: typeof auditVerify;
|
|
47
|
+
/** POST /admin/users/:id/unlock. */
|
|
48
|
+
unlockUser: typeof unlockUser;
|
|
49
|
+
/** GET /admin/backup/dump — returns the tar Blob. */
|
|
50
|
+
backupDump: typeof backupDump;
|
|
51
|
+
/** Convenience: backupDump + browser download. */
|
|
52
|
+
downloadBackup: typeof downloadBackup;
|
|
53
|
+
};
|
|
54
|
+
export {};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { computed, ref, shallowRef } from "vue";
|
|
2
|
+
import { useAbracadabra } from "#imports";
|
|
3
|
+
const auditEntries = shallowRef([]);
|
|
4
|
+
const auditVerifyResult = shallowRef(null);
|
|
5
|
+
const isLoading = ref(false);
|
|
6
|
+
const error = ref(null);
|
|
7
|
+
function _client() {
|
|
8
|
+
const abra = useAbracadabra();
|
|
9
|
+
const c = abra.client.value;
|
|
10
|
+
if (!c) throw new Error("Not connected");
|
|
11
|
+
return { abra, client: c };
|
|
12
|
+
}
|
|
13
|
+
function _isAdminRole(role) {
|
|
14
|
+
return role === "admin" || role === "service" || role === "owner";
|
|
15
|
+
}
|
|
16
|
+
async function auditList(opts) {
|
|
17
|
+
const { client } = _client();
|
|
18
|
+
isLoading.value = true;
|
|
19
|
+
error.value = null;
|
|
20
|
+
try {
|
|
21
|
+
const rows = await client.adminAuditList(opts);
|
|
22
|
+
auditEntries.value = rows;
|
|
23
|
+
return rows;
|
|
24
|
+
} catch (e) {
|
|
25
|
+
error.value = e instanceof Error ? e.message : "Failed to load audit log";
|
|
26
|
+
throw e;
|
|
27
|
+
} finally {
|
|
28
|
+
isLoading.value = false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
async function auditExport(opts) {
|
|
32
|
+
const { client } = _client();
|
|
33
|
+
error.value = null;
|
|
34
|
+
try {
|
|
35
|
+
return await client.adminAuditExport(opts);
|
|
36
|
+
} catch (e) {
|
|
37
|
+
error.value = e instanceof Error ? e.message : "Failed to export audit log";
|
|
38
|
+
throw e;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async function auditVerify() {
|
|
42
|
+
const { client } = _client();
|
|
43
|
+
error.value = null;
|
|
44
|
+
try {
|
|
45
|
+
const result = await client.adminAuditVerify();
|
|
46
|
+
auditVerifyResult.value = result;
|
|
47
|
+
return result;
|
|
48
|
+
} catch (e) {
|
|
49
|
+
error.value = e instanceof Error ? e.message : "Audit verification failed";
|
|
50
|
+
throw e;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async function unlockUser(userId) {
|
|
54
|
+
const { client } = _client();
|
|
55
|
+
error.value = null;
|
|
56
|
+
try {
|
|
57
|
+
await client.adminUnlockUser(userId);
|
|
58
|
+
} catch (e) {
|
|
59
|
+
error.value = e instanceof Error ? e.message : "Failed to unlock user";
|
|
60
|
+
throw e;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async function backupDump(opts) {
|
|
64
|
+
const { client } = _client();
|
|
65
|
+
error.value = null;
|
|
66
|
+
try {
|
|
67
|
+
return await client.adminBackupDump(opts);
|
|
68
|
+
} catch (e) {
|
|
69
|
+
error.value = e instanceof Error ? e.message : "Backup dump failed";
|
|
70
|
+
throw e;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async function downloadBackup(opts) {
|
|
74
|
+
const { abra } = _client();
|
|
75
|
+
const blob = await backupDump(opts);
|
|
76
|
+
if (typeof window === "undefined") return;
|
|
77
|
+
const url = URL.createObjectURL(blob);
|
|
78
|
+
const a = document.createElement("a");
|
|
79
|
+
a.href = url;
|
|
80
|
+
const date = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
|
|
81
|
+
const host = abra.currentServerUrl.value.replace(/^https?:\/\//, "").replace(/[^a-z0-9.-]/gi, "_");
|
|
82
|
+
a.download = opts?.filename ?? `abracadabra-backup-${host}-${date}.tar`;
|
|
83
|
+
document.body.appendChild(a);
|
|
84
|
+
a.click();
|
|
85
|
+
a.remove();
|
|
86
|
+
URL.revokeObjectURL(url);
|
|
87
|
+
}
|
|
88
|
+
export function useAbraAdmin() {
|
|
89
|
+
const abra = useAbracadabra();
|
|
90
|
+
const isAdmin = computed(() => _isAdminRole(abra.effectiveRole.value));
|
|
91
|
+
return {
|
|
92
|
+
/** True when the current effective role is admin/owner/service. */
|
|
93
|
+
isAdmin,
|
|
94
|
+
/** Last-fetched audit log rows (best-first). */
|
|
95
|
+
auditEntries,
|
|
96
|
+
/** Last `auditVerify()` result, or null. */
|
|
97
|
+
auditVerifyResult,
|
|
98
|
+
/** Whether an admin call is in flight. */
|
|
99
|
+
isLoading,
|
|
100
|
+
/** Last error message, or null. */
|
|
101
|
+
error,
|
|
102
|
+
/** GET /admin/audit. */
|
|
103
|
+
auditList,
|
|
104
|
+
/** GET /admin/audit/export — returns NDJSON as a string. */
|
|
105
|
+
auditExport,
|
|
106
|
+
/** GET /admin/audit/verify — returns the result whether ok or broken. */
|
|
107
|
+
auditVerify,
|
|
108
|
+
/** POST /admin/users/:id/unlock. */
|
|
109
|
+
unlockUser,
|
|
110
|
+
/** GET /admin/backup/dump — returns the tar Blob. */
|
|
111
|
+
backupDump,
|
|
112
|
+
/** Convenience: backupDump + browser download. */
|
|
113
|
+
downloadBackup
|
|
114
|
+
};
|
|
115
|
+
}
|
|
@@ -12,7 +12,15 @@ export declare function useAbracadabraAuth(): {
|
|
|
12
12
|
userNeutralColorName: any;
|
|
13
13
|
claimAccount: any;
|
|
14
14
|
loginWithHardware: any;
|
|
15
|
+
loginWithPassword: any;
|
|
16
|
+
registerWithPassword: any;
|
|
15
17
|
logout: any;
|
|
18
|
+
logoutServer: any;
|
|
19
|
+
logoutAll: any;
|
|
20
|
+
requestPasswordReset: any;
|
|
21
|
+
confirmPasswordReset: any;
|
|
22
|
+
changePassword: any;
|
|
23
|
+
setPassword: any;
|
|
16
24
|
recoverIdentity: any;
|
|
17
25
|
unblockConnection: any;
|
|
18
26
|
setUserName: any;
|
|
@@ -15,7 +15,15 @@ export function useAbracadabraAuth() {
|
|
|
15
15
|
userNeutralColorName: abra.userNeutralColorName,
|
|
16
16
|
claimAccount: abra.claimAccount,
|
|
17
17
|
loginWithHardware: abra.loginWithHardware,
|
|
18
|
+
loginWithPassword: abra.loginWithPassword,
|
|
19
|
+
registerWithPassword: abra.registerWithPassword,
|
|
18
20
|
logout: abra.logout,
|
|
21
|
+
logoutServer: abra.logoutServer,
|
|
22
|
+
logoutAll: abra.logoutAll,
|
|
23
|
+
requestPasswordReset: abra.requestPasswordReset,
|
|
24
|
+
confirmPasswordReset: abra.confirmPasswordReset,
|
|
25
|
+
changePassword: abra.changePassword,
|
|
26
|
+
setPassword: abra.setPassword,
|
|
19
27
|
recoverIdentity: abra.recoverIdentity,
|
|
20
28
|
unblockConnection: abra.unblockConnection,
|
|
21
29
|
setUserName: abra.setUserName,
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface PresenceUser {
|
|
2
|
+
name: string;
|
|
3
|
+
color: string;
|
|
4
|
+
publicKey?: string;
|
|
5
|
+
clientId: number;
|
|
6
|
+
}
|
|
7
|
+
interface AwarenessState {
|
|
8
|
+
user?: {
|
|
9
|
+
name?: string;
|
|
10
|
+
color?: string;
|
|
11
|
+
publicKey?: string;
|
|
12
|
+
};
|
|
13
|
+
docId?: string;
|
|
14
|
+
viewingDocId?: string;
|
|
15
|
+
[k: string]: unknown;
|
|
16
|
+
}
|
|
17
|
+
export declare const useAggregatedPresence: () => {
|
|
18
|
+
allAwarenessStates: import("vue").ComputedRef<AwarenessState[]>;
|
|
19
|
+
docPresence: import("vue").ComputedRef<Map<string, PresenceUser[]>>;
|
|
20
|
+
findUserState: (publicKey: string) => AwarenessState | null;
|
|
21
|
+
selfState: import("vue").ComputedRef<AwarenessState | null>;
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { ref, computed, watch } from "vue";
|
|
2
|
+
import { createSharedComposable } from "@vueuse/core";
|
|
3
|
+
import { useSpaceConnections } from "./useSpaceConnections.js";
|
|
4
|
+
import { useAbracadabra } from "./useAbracadabra.js";
|
|
5
|
+
const _useAggregatedPresence = () => {
|
|
6
|
+
const { connections } = useSpaceConnections();
|
|
7
|
+
const { publicKeyB64 } = useAbracadabra();
|
|
8
|
+
const awarenessVersion = ref(0);
|
|
9
|
+
const attachedAwareness = /* @__PURE__ */ new Map();
|
|
10
|
+
if (import.meta.client) {
|
|
11
|
+
const onChange = () => {
|
|
12
|
+
awarenessVersion.value++;
|
|
13
|
+
};
|
|
14
|
+
watch(
|
|
15
|
+
() => [...connections.values()],
|
|
16
|
+
(conns) => {
|
|
17
|
+
const current = /* @__PURE__ */ new Set();
|
|
18
|
+
for (const conn of conns) {
|
|
19
|
+
const provider = conn.provider;
|
|
20
|
+
const awareness = provider?.awareness;
|
|
21
|
+
if (!awareness) continue;
|
|
22
|
+
current.add(awareness);
|
|
23
|
+
if (!attachedAwareness.has(awareness)) {
|
|
24
|
+
const handler = () => onChange();
|
|
25
|
+
awareness.on("change", handler);
|
|
26
|
+
attachedAwareness.set(awareness, handler);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
for (const [a, handler] of attachedAwareness) {
|
|
30
|
+
if (!current.has(a)) {
|
|
31
|
+
try {
|
|
32
|
+
a.off("change", handler);
|
|
33
|
+
} catch {
|
|
34
|
+
}
|
|
35
|
+
attachedAwareness.delete(a);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
awarenessVersion.value++;
|
|
39
|
+
},
|
|
40
|
+
{ immediate: true }
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
const allAwarenessStates = computed(() => {
|
|
44
|
+
void awarenessVersion.value;
|
|
45
|
+
const seen = /* @__PURE__ */ new Map();
|
|
46
|
+
for (const [, conn] of connections) {
|
|
47
|
+
const provider = conn.provider;
|
|
48
|
+
const awareness = provider?.awareness;
|
|
49
|
+
if (!awareness) continue;
|
|
50
|
+
let stateMap;
|
|
51
|
+
try {
|
|
52
|
+
stateMap = awareness.getStates();
|
|
53
|
+
} catch {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
const selfClientId = awareness.clientID;
|
|
57
|
+
for (const [clientId, state] of stateMap) {
|
|
58
|
+
if (clientId === selfClientId) continue;
|
|
59
|
+
if (!state.user?.publicKey) continue;
|
|
60
|
+
const key = state.user.publicKey;
|
|
61
|
+
if (key === publicKeyB64.value) continue;
|
|
62
|
+
if (!seen.has(key)) {
|
|
63
|
+
seen.set(key, { ...state, clientId });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return [...seen.values()];
|
|
68
|
+
});
|
|
69
|
+
const docPresence = computed(() => {
|
|
70
|
+
void awarenessVersion.value;
|
|
71
|
+
const map = /* @__PURE__ */ new Map();
|
|
72
|
+
const addToBucket = (docId, user) => {
|
|
73
|
+
const users = map.get(docId) ?? [];
|
|
74
|
+
if (user.publicKey && users.some((u) => u.publicKey === user.publicKey)) return;
|
|
75
|
+
users.push(user);
|
|
76
|
+
map.set(docId, users);
|
|
77
|
+
};
|
|
78
|
+
for (const [, conn] of connections) {
|
|
79
|
+
const provider = conn.provider;
|
|
80
|
+
const awareness = provider?.awareness;
|
|
81
|
+
if (!awareness) continue;
|
|
82
|
+
let stateMap;
|
|
83
|
+
try {
|
|
84
|
+
stateMap = awareness.getStates();
|
|
85
|
+
} catch {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
const selfClientId = awareness.clientID;
|
|
89
|
+
for (const [clientId, state] of stateMap) {
|
|
90
|
+
if (clientId === selfClientId) continue;
|
|
91
|
+
const pk = state.user?.publicKey;
|
|
92
|
+
if (pk && pk === publicKeyB64.value) continue;
|
|
93
|
+
const docId = state.docId;
|
|
94
|
+
const viewingDocId = state.viewingDocId;
|
|
95
|
+
if (!docId && !viewingDocId) continue;
|
|
96
|
+
const user = {
|
|
97
|
+
name: state.user?.name || "?",
|
|
98
|
+
color: state.user?.color || "#888",
|
|
99
|
+
publicKey: pk,
|
|
100
|
+
clientId
|
|
101
|
+
};
|
|
102
|
+
if (docId) addToBucket(docId, user);
|
|
103
|
+
if (viewingDocId && viewingDocId !== docId) addToBucket(viewingDocId, user);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return map;
|
|
107
|
+
});
|
|
108
|
+
function findUserState(publicKey) {
|
|
109
|
+
void awarenessVersion.value;
|
|
110
|
+
for (const [, conn] of connections) {
|
|
111
|
+
const provider = conn.provider;
|
|
112
|
+
const awareness = provider?.awareness;
|
|
113
|
+
if (!awareness) continue;
|
|
114
|
+
let stateMap;
|
|
115
|
+
try {
|
|
116
|
+
stateMap = awareness.getStates();
|
|
117
|
+
} catch {
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
for (const state of stateMap.values()) {
|
|
121
|
+
if (state.user?.publicKey === publicKey) return state;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
const selfState = computed(() => {
|
|
127
|
+
void awarenessVersion.value;
|
|
128
|
+
if (!publicKeyB64.value) return null;
|
|
129
|
+
for (const [, conn] of connections) {
|
|
130
|
+
const provider = conn.provider;
|
|
131
|
+
const awareness = provider?.awareness;
|
|
132
|
+
if (!awareness) continue;
|
|
133
|
+
const local = awareness.getLocalState();
|
|
134
|
+
if (local?.user?.publicKey === publicKeyB64.value) return local;
|
|
135
|
+
}
|
|
136
|
+
return null;
|
|
137
|
+
});
|
|
138
|
+
return { allAwarenessStates, docPresence, findUserState, selfState };
|
|
139
|
+
};
|
|
140
|
+
export const useAggregatedPresence = createSharedComposable(_useAggregatedPresence);
|
|
@@ -30,8 +30,22 @@ declare let _userName: import("vue").Ref<string, string>;
|
|
|
30
30
|
export declare function _initChat(publicKeyB64Ref: typeof _publicKeyB64, userNameRef: typeof _userName): void;
|
|
31
31
|
export declare function _destroyChat(): void;
|
|
32
32
|
export declare function _handleStatelessChat(payload: string): void;
|
|
33
|
-
declare function sendMessage(channelId: string, content: string
|
|
34
|
-
|
|
33
|
+
declare function sendMessage(channelId: string, content: string, opts?: {
|
|
34
|
+
mentions?: string[];
|
|
35
|
+
replyTo?: string;
|
|
36
|
+
}): void;
|
|
37
|
+
/**
|
|
38
|
+
* Open the wrapper provider for the given channel, observe its
|
|
39
|
+
* `periods` Y.Array, and attach the active period subdoc so its
|
|
40
|
+
* `messages` Y.Array entries flow into the local buffer. Idempotent —
|
|
41
|
+
* calling twice for the same channel is a no-op (observers already
|
|
42
|
+
* live).
|
|
43
|
+
*
|
|
44
|
+
* `channelId` is the raw channel/dm doc UUID. The legacy `group:<uuid>`
|
|
45
|
+
* prefix is stripped before passing to provider.loadChild (which
|
|
46
|
+
* validates strict UUIDs).
|
|
47
|
+
*/
|
|
48
|
+
declare function fetchHistory(channelId: string, _opts?: {
|
|
35
49
|
before?: number;
|
|
36
50
|
limit?: number;
|
|
37
51
|
}): void;
|