@abraca/nuxt 1.8.2 → 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.
- package/README.md +27 -2
- package/dist/module.d.mts +4 -3
- package/dist/module.json +1 -1
- package/dist/module.mjs +50 -4
- package/dist/runtime/components/ADocumentTree.vue +1 -1
- package/dist/runtime/components/AEditor.d.vue.ts +26 -1
- package/dist/runtime/components/AEditor.vue +153 -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/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/ADocsNavigation.d.vue.ts +155 -0
- package/dist/runtime/components/docs/ADocsNavigation.vue +154 -0
- package/dist/runtime/components/docs/ADocsNavigation.vue.d.ts +155 -0
- package/dist/runtime/components/docs/ADocsSearch.d.vue.ts +249 -0
- package/dist/runtime/components/docs/ADocsSearch.vue +187 -0
- package/dist/runtime/components/docs/ADocsSearch.vue.d.ts +249 -0
- package/dist/runtime/components/docs/ADocsSearchButton.d.vue.ts +253 -0
- package/dist/runtime/components/docs/ADocsSearchButton.vue +99 -0
- package/dist/runtime/components/docs/ADocsSearchButton.vue.d.ts +253 -0
- package/dist/runtime/components/docs/ADocsSurround.d.vue.ts +56 -0
- package/dist/runtime/components/docs/ADocsSurround.vue +68 -0
- package/dist/runtime/components/docs/ADocsSurround.vue.d.ts +56 -0
- package/dist/runtime/components/docs/ADocsToc.d.vue.ts +117 -0
- package/dist/runtime/components/docs/ADocsToc.vue +194 -0
- package/dist/runtime/components/docs/ADocsToc.vue.d.ts +117 -0
- package/dist/runtime/components/editor/ADocLinkPopover.vue +1 -5
- 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/AMediaRenderer.vue +1 -1
- 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/ACalendarToolbar.d.vue.ts +4 -4
- package/dist/runtime/components/renderers/calendar/ACalendarToolbar.vue.d.ts +4 -4
- 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/media/MediaTransportBar.d.vue.ts +2 -2
- package/dist/runtime/components/renderers/media/MediaTransportBar.vue.d.ts +2 -2
- 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 +34 -4
- package/dist/runtime/components/shell/ADocPanelSettings.vue +289 -2
- package/dist/runtime/components/shell/ADocPanelSettings.vue.d.ts +34 -4
- 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/useDocsSearch.d.ts +24 -0
- package/dist/runtime/composables/useDocsSearch.js +34 -0
- package/dist/runtime/composables/useEditorDragHandle.d.ts +7 -0
- package/dist/runtime/composables/useEditorDragHandle.js +19 -1
- package/dist/runtime/composables/useEditorSuggestions.js +26 -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/doc-embed.js +2 -1
- package/dist/runtime/extensions/doc-link-drop.js +4 -4
- package/dist/runtime/extensions/doc-link.d.ts +12 -0
- package/dist/runtime/extensions/doc-link.js +60 -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/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/DocEmbedView.vue +18 -3
- package/dist/runtime/extensions/views/DocLinkView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/DocLinkView.vue +71 -0
- package/dist/runtime/extensions/views/DocLinkView.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/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 +251 -38
- package/dist/runtime/plugin-abracadabra.server.js +0 -1
- package/dist/runtime/plugins/core.plugin.js +76 -4
- package/dist/runtime/server/plugins/abracadabra-service.js +4 -2
- 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/theme/content/_shared.d.ts +6 -0
- package/dist/runtime/theme/content/_shared.js +6 -0
- package/dist/runtime/theme/content/content-navigation.d.ts +120 -0
- package/dist/runtime/theme/content/content-navigation.js +155 -0
- package/dist/runtime/theme/content/content-search-button.d.ts +16 -0
- package/dist/runtime/theme/content/content-search-button.js +15 -0
- package/dist/runtime/theme/content/content-search.d.ts +24 -0
- package/dist/runtime/theme/content/content-search.js +23 -0
- package/dist/runtime/theme/content/content-surround.d.ts +22 -0
- package/dist/runtime/theme/content/content-surround.js +23 -0
- package/dist/runtime/theme/content/content-toc.d.ts +84 -0
- package/dist/runtime/theme/content/content-toc.js +94 -0
- package/dist/runtime/theme/content/index.d.ts +5 -0
- package/dist/runtime/theme/content/index.js +5 -0
- 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 +19 -0
- package/dist/runtime/utils/content.js +23 -0
- package/dist/runtime/utils/docReferenceEdges.js +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/time.d.ts +15 -0
- package/dist/runtime/utils/time.js +5 -0
- package/dist/types.d.mts +4 -0
- package/package.json +38 -20
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, useAttrs } from "vue";
|
|
3
|
+
import { useAAField } from "../../composables/useAAField";
|
|
4
|
+
import { useAAFieldValue } from "../../composables/useAAFieldValue";
|
|
5
|
+
import { awareRingStyle } from "../../utils/awareRingStyle";
|
|
6
|
+
defineOptions({ inheritAttrs: false });
|
|
7
|
+
const props = defineProps({
|
|
8
|
+
fieldKey: { type: String, required: true },
|
|
9
|
+
awareness: { type: Boolean, required: false, default: true },
|
|
10
|
+
sync: { type: Boolean, required: false, default: false },
|
|
11
|
+
total: { type: Boolean, required: false, default: false },
|
|
12
|
+
max: { type: Number, required: false, default: 3 }
|
|
13
|
+
});
|
|
14
|
+
const enableAwareness = computed(() => props.awareness || props.total);
|
|
15
|
+
const enableSync = computed(() => props.sync || props.total);
|
|
16
|
+
const attrs = useAttrs();
|
|
17
|
+
const { hoverers, focusers, pressers, isPressed, handlers } = useAAField(() => props.fieldKey);
|
|
18
|
+
const synced = useAAFieldValue(() => props.fieldKey);
|
|
19
|
+
const hasExternalModel = computed(() => "modelValue" in attrs || "onUpdate:modelValue" in attrs);
|
|
20
|
+
const ringStyle = computed(
|
|
21
|
+
() => enableAwareness.value ? awareRingStyle({
|
|
22
|
+
hover: hoverers.value[0]?.user?.color,
|
|
23
|
+
focus: focusers.value[0]?.user?.color,
|
|
24
|
+
press: pressers.value[0]?.user?.color
|
|
25
|
+
}) : void 0
|
|
26
|
+
);
|
|
27
|
+
const eventHandlers = computed(() => enableAwareness.value ? handlers : {});
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
<template>
|
|
31
|
+
<div
|
|
32
|
+
class="aa-host aa-host--inline"
|
|
33
|
+
:class="{ 'aa-host--pressed': isPressed }"
|
|
34
|
+
:style="ringStyle"
|
|
35
|
+
v-on="eventHandlers"
|
|
36
|
+
>
|
|
37
|
+
<UPinInput
|
|
38
|
+
v-if="enableSync && !hasExternalModel"
|
|
39
|
+
v-model="synced"
|
|
40
|
+
v-bind="attrs"
|
|
41
|
+
/>
|
|
42
|
+
<UPinInput v-else v-bind="attrs" />
|
|
43
|
+
</div>
|
|
44
|
+
</template>
|
|
45
|
+
|
|
46
|
+
<style scoped>
|
|
47
|
+
.aa-host{border-radius:var(--ui-radius,.375rem);padding:.125rem;position:relative;transition:filter .12s ease}.aa-host--inline{display:inline-flex}.aa-host--pressed{filter:brightness(.9)}
|
|
48
|
+
</style>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
fieldKey: string;
|
|
3
|
+
awareness?: boolean;
|
|
4
|
+
sync?: boolean;
|
|
5
|
+
total?: boolean;
|
|
6
|
+
max?: number;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
9
|
+
sync: boolean;
|
|
10
|
+
awareness: boolean;
|
|
11
|
+
max: number;
|
|
12
|
+
total: boolean;
|
|
13
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
|
+
declare const _default: typeof __VLS_export;
|
|
15
|
+
export default _default;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
fieldKey: string;
|
|
3
|
+
awareness?: boolean;
|
|
4
|
+
live?: boolean;
|
|
5
|
+
total?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare var __VLS_10: string, __VLS_11: any, __VLS_22: string, __VLS_23: any;
|
|
8
|
+
type __VLS_Slots = {} & {
|
|
9
|
+
[K in NonNullable<typeof __VLS_10>]?: (props: typeof __VLS_11) => any;
|
|
10
|
+
} & {
|
|
11
|
+
[K in NonNullable<typeof __VLS_22>]?: (props: typeof __VLS_23) => any;
|
|
12
|
+
};
|
|
13
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
14
|
+
awareness: boolean;
|
|
15
|
+
live: boolean;
|
|
16
|
+
total: boolean;
|
|
17
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
19
|
+
declare const _default: typeof __VLS_export;
|
|
20
|
+
export default _default;
|
|
21
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
22
|
+
new (): {
|
|
23
|
+
$slots: S;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, ref, useAttrs, watch } from "vue";
|
|
3
|
+
import { useAAUIState } from "../../composables/useAAUIState";
|
|
4
|
+
defineOptions({ inheritAttrs: false });
|
|
5
|
+
const props = defineProps({
|
|
6
|
+
fieldKey: { type: String, required: true },
|
|
7
|
+
awareness: { type: Boolean, required: false, default: true },
|
|
8
|
+
live: { type: Boolean, required: false, default: false },
|
|
9
|
+
total: { type: Boolean, required: false, default: false }
|
|
10
|
+
});
|
|
11
|
+
const enableLive = computed(() => props.live || props.total);
|
|
12
|
+
const attrs = useAttrs();
|
|
13
|
+
const liveOpen = useAAUIState(() => `${props.fieldKey}:open`, { defaultValue: false });
|
|
14
|
+
const hasExternalOpen = computed(() => "open" in attrs || "onUpdate:open" in attrs);
|
|
15
|
+
const local = ref(enableLive.value ? !!liveOpen.value : false);
|
|
16
|
+
watch(liveOpen, (val) => {
|
|
17
|
+
if (!enableLive.value) return;
|
|
18
|
+
const next = !!val;
|
|
19
|
+
if (local.value !== next) local.value = next;
|
|
20
|
+
});
|
|
21
|
+
watch(local, (val) => {
|
|
22
|
+
if (!enableLive.value) return;
|
|
23
|
+
if (!!liveOpen.value !== val) liveOpen.value = val;
|
|
24
|
+
});
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<template>
|
|
28
|
+
<UPopover
|
|
29
|
+
v-if="enableLive && !hasExternalOpen"
|
|
30
|
+
v-model:open="local"
|
|
31
|
+
v-bind="attrs"
|
|
32
|
+
>
|
|
33
|
+
<template
|
|
34
|
+
v-for="(_, name) in $slots"
|
|
35
|
+
#[name]="slotData"
|
|
36
|
+
>
|
|
37
|
+
<slot
|
|
38
|
+
:name="name"
|
|
39
|
+
v-bind="slotData ?? {}"
|
|
40
|
+
/>
|
|
41
|
+
</template>
|
|
42
|
+
</UPopover>
|
|
43
|
+
<UPopover
|
|
44
|
+
v-else
|
|
45
|
+
v-bind="attrs"
|
|
46
|
+
>
|
|
47
|
+
<template
|
|
48
|
+
v-for="(_, name) in $slots"
|
|
49
|
+
#[name]="slotData"
|
|
50
|
+
>
|
|
51
|
+
<slot
|
|
52
|
+
:name="name"
|
|
53
|
+
v-bind="slotData ?? {}"
|
|
54
|
+
/>
|
|
55
|
+
</template>
|
|
56
|
+
</UPopover>
|
|
57
|
+
</template>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
fieldKey: string;
|
|
3
|
+
awareness?: boolean;
|
|
4
|
+
live?: boolean;
|
|
5
|
+
total?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare var __VLS_10: string, __VLS_11: any, __VLS_22: string, __VLS_23: any;
|
|
8
|
+
type __VLS_Slots = {} & {
|
|
9
|
+
[K in NonNullable<typeof __VLS_10>]?: (props: typeof __VLS_11) => any;
|
|
10
|
+
} & {
|
|
11
|
+
[K in NonNullable<typeof __VLS_22>]?: (props: typeof __VLS_23) => any;
|
|
12
|
+
};
|
|
13
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
14
|
+
awareness: boolean;
|
|
15
|
+
live: boolean;
|
|
16
|
+
total: boolean;
|
|
17
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
19
|
+
declare const _default: typeof __VLS_export;
|
|
20
|
+
export default _default;
|
|
21
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
22
|
+
new (): {
|
|
23
|
+
$slots: S;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
declare const _default: typeof __VLS_export;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, onBeforeUnmount, onMounted, ref } from "vue";
|
|
3
|
+
import { useRoute } from "#imports";
|
|
4
|
+
import { useAAEphemeral } from "../../composables/useAAEphemeral";
|
|
5
|
+
import { elementFromPath } from "../../utils/domPath";
|
|
6
|
+
const { peers } = useAAEphemeral("aa:focus");
|
|
7
|
+
const route = useRoute();
|
|
8
|
+
const tick = ref(0);
|
|
9
|
+
const blobs = computed(() => {
|
|
10
|
+
tick.value;
|
|
11
|
+
if (typeof window === "undefined") return [];
|
|
12
|
+
const out = [];
|
|
13
|
+
for (const p of peers.value) {
|
|
14
|
+
const v = p.value;
|
|
15
|
+
if (!v) continue;
|
|
16
|
+
if (v.route && v.route !== route.path) continue;
|
|
17
|
+
if (!v.pointer) continue;
|
|
18
|
+
const el = elementFromPath(v.pointer.elementPath);
|
|
19
|
+
if (!el?.isConnected) continue;
|
|
20
|
+
const r = el.getBoundingClientRect();
|
|
21
|
+
const x = r.left + v.pointer.dx;
|
|
22
|
+
const y = r.top + v.pointer.dy;
|
|
23
|
+
const vw = window.innerWidth || document.documentElement.clientWidth;
|
|
24
|
+
const vh = window.innerHeight || document.documentElement.clientHeight;
|
|
25
|
+
if (x < -180 || y < -180 || x > vw + 180 || y > vh + 180) continue;
|
|
26
|
+
out.push({ clientId: p.clientId, user: p.user, x, y });
|
|
27
|
+
}
|
|
28
|
+
return out;
|
|
29
|
+
});
|
|
30
|
+
let raf = 0;
|
|
31
|
+
function bump() {
|
|
32
|
+
tick.value++;
|
|
33
|
+
raf = requestAnimationFrame(bump);
|
|
34
|
+
}
|
|
35
|
+
function onScroll() {
|
|
36
|
+
tick.value++;
|
|
37
|
+
}
|
|
38
|
+
function onResize() {
|
|
39
|
+
tick.value++;
|
|
40
|
+
}
|
|
41
|
+
onMounted(() => {
|
|
42
|
+
document.addEventListener("scroll", onScroll, { passive: true, capture: true });
|
|
43
|
+
window.addEventListener("resize", onResize, { passive: true });
|
|
44
|
+
});
|
|
45
|
+
onBeforeUnmount(() => {
|
|
46
|
+
cancelAnimationFrame(raf);
|
|
47
|
+
document.removeEventListener("scroll", onScroll, { capture: true });
|
|
48
|
+
window.removeEventListener("resize", onResize);
|
|
49
|
+
});
|
|
50
|
+
</script>
|
|
51
|
+
|
|
52
|
+
<template>
|
|
53
|
+
<div class="aa-presence-blobs" data-aa-skip-anchor aria-hidden="true">
|
|
54
|
+
<div
|
|
55
|
+
v-for="b in blobs"
|
|
56
|
+
:key="b.clientId"
|
|
57
|
+
class="aa-presence-blobs__blob"
|
|
58
|
+
:style="{
|
|
59
|
+
left: b.x + 'px',
|
|
60
|
+
top: b.y + 'px',
|
|
61
|
+
background: `radial-gradient(circle, ${b.user?.color ?? '#888'} 0%, transparent 70%)`
|
|
62
|
+
}"
|
|
63
|
+
/>
|
|
64
|
+
</div>
|
|
65
|
+
</template>
|
|
66
|
+
|
|
67
|
+
<style scoped>
|
|
68
|
+
.aa-presence-blobs{inset:0;isolation:isolate;mix-blend-mode:screen;pointer-events:none;position:fixed;z-index:0}.aa-presence-blobs__blob{border-radius:999px;filter:blur(60px);height:360px;opacity:.35;pointer-events:none;position:fixed;transform:translate(-50%,-50%);transition:left .2s ease-out,top .2s ease-out;width:360px}@media (prefers-color-scheme:light){.aa-presence-blobs{mix-blend-mode:multiply}.aa-presence-blobs__blob{opacity:.22}}
|
|
69
|
+
</style>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
declare const _default: typeof __VLS_export;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
scope: string;
|
|
3
|
+
/** Max simultaneous peer cursors to render. */
|
|
4
|
+
max?: number;
|
|
5
|
+
};
|
|
6
|
+
declare var __VLS_1: {};
|
|
7
|
+
type __VLS_Slots = {} & {
|
|
8
|
+
default?: (props: typeof __VLS_1) => any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
11
|
+
max: number;
|
|
12
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
14
|
+
declare const _default: typeof __VLS_export;
|
|
15
|
+
export default _default;
|
|
16
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
17
|
+
new (): {
|
|
18
|
+
$slots: S;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, ref } from "vue";
|
|
3
|
+
import { useAAPointer } from "../../composables/useAAPointer";
|
|
4
|
+
defineOptions({ inheritAttrs: false });
|
|
5
|
+
const props = defineProps({
|
|
6
|
+
scope: { type: String, required: true },
|
|
7
|
+
max: { type: Number, required: false, default: 8 }
|
|
8
|
+
});
|
|
9
|
+
const hostRef = ref(null);
|
|
10
|
+
const { pointers } = useAAPointer(() => props.scope, hostRef);
|
|
11
|
+
const visible = computed(() => pointers.value.slice(0, props.max));
|
|
12
|
+
const overflow = computed(() => Math.max(0, pointers.value.length - visible.value.length));
|
|
13
|
+
function colorFor(p) {
|
|
14
|
+
return p.user?.color || "var(--ui-text-muted)";
|
|
15
|
+
}
|
|
16
|
+
function nameFor(p) {
|
|
17
|
+
return p.user?.name || "Anonymous";
|
|
18
|
+
}
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<template>
|
|
22
|
+
<div ref="hostRef" class="aa-cursors-host">
|
|
23
|
+
<slot />
|
|
24
|
+
<div class="aa-cursors-layer" aria-hidden="true">
|
|
25
|
+
<div
|
|
26
|
+
v-for="p in visible"
|
|
27
|
+
:key="p.clientId"
|
|
28
|
+
class="aa-cursor"
|
|
29
|
+
:style="{
|
|
30
|
+
left: p.x * 100 + '%',
|
|
31
|
+
top: p.y * 100 + '%',
|
|
32
|
+
color: colorFor(p)
|
|
33
|
+
}"
|
|
34
|
+
>
|
|
35
|
+
<svg width="18" height="20" viewBox="0 0 12 16" xmlns="http://www.w3.org/2000/svg">
|
|
36
|
+
<path d="M0 0 L0 12 L3.5 8.5 L5.5 13.5 L7 13 L5 8 L9 8 Z" fill="currentColor" stroke="white" stroke-width="0.6" stroke-linejoin="round" />
|
|
37
|
+
</svg>
|
|
38
|
+
<span class="aa-cursor__label" :style="{ background: colorFor(p) }">{{ nameFor(p) }}</span>
|
|
39
|
+
</div>
|
|
40
|
+
<div v-if="overflow > 0" class="aa-cursors-overflow">+{{ overflow }} more</div>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
</template>
|
|
44
|
+
|
|
45
|
+
<style scoped>
|
|
46
|
+
.aa-cursors-host{height:100%;position:relative;width:100%}.aa-cursors-layer{inset:0;overflow:hidden;pointer-events:none;position:absolute;z-index:50}.aa-cursor{align-items:flex-start;display:flex;gap:.15rem;position:absolute;transform:translate(-2px,-2px);transition:top 60ms linear,left 60ms linear}.aa-cursor__label{border-radius:.25rem .25rem .25rem 0;box-shadow:0 1px 2px rgba(0,0,0,.18);color:#fff;font-size:.6875rem;font-weight:500;line-height:1;margin-left:-2px;margin-top:11px;padding:.2rem .4rem;white-space:nowrap}.aa-cursors-overflow{background:var(--ui-bg-elevated);border:1px solid var(--ui-border);border-radius:999px;bottom:.5rem;color:var(--ui-text-muted);font-size:.6875rem;padding:.15rem .45rem;position:absolute;right:.5rem}
|
|
47
|
+
</style>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
scope: string;
|
|
3
|
+
/** Max simultaneous peer cursors to render. */
|
|
4
|
+
max?: number;
|
|
5
|
+
};
|
|
6
|
+
declare var __VLS_1: {};
|
|
7
|
+
type __VLS_Slots = {} & {
|
|
8
|
+
default?: (props: typeof __VLS_1) => any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
11
|
+
max: number;
|
|
12
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
14
|
+
declare const _default: typeof __VLS_export;
|
|
15
|
+
export default _default;
|
|
16
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
17
|
+
new (): {
|
|
18
|
+
$slots: S;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
fieldKey: string;
|
|
3
|
+
awareness?: boolean;
|
|
4
|
+
sync?: boolean;
|
|
5
|
+
total?: boolean;
|
|
6
|
+
max?: number;
|
|
7
|
+
};
|
|
8
|
+
declare var __VLS_9: string, __VLS_10: any, __VLS_20: string, __VLS_21: any;
|
|
9
|
+
type __VLS_Slots = {} & {
|
|
10
|
+
[K in NonNullable<typeof __VLS_9>]?: (props: typeof __VLS_10) => any;
|
|
11
|
+
} & {
|
|
12
|
+
[K in NonNullable<typeof __VLS_20>]?: (props: typeof __VLS_21) => any;
|
|
13
|
+
};
|
|
14
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
15
|
+
sync: boolean;
|
|
16
|
+
awareness: boolean;
|
|
17
|
+
max: number;
|
|
18
|
+
total: boolean;
|
|
19
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
20
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
21
|
+
declare const _default: typeof __VLS_export;
|
|
22
|
+
export default _default;
|
|
23
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
24
|
+
new (): {
|
|
25
|
+
$slots: S;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, ref, useAttrs, watch } from "vue";
|
|
3
|
+
import { useAAField } from "../../composables/useAAField";
|
|
4
|
+
import { useAAFieldValue } from "../../composables/useAAFieldValue";
|
|
5
|
+
import { awareRingStyle } from "../../utils/awareRingStyle";
|
|
6
|
+
defineOptions({ inheritAttrs: false });
|
|
7
|
+
const props = defineProps({
|
|
8
|
+
fieldKey: { type: String, required: true },
|
|
9
|
+
awareness: { type: Boolean, required: false, default: true },
|
|
10
|
+
sync: { type: Boolean, required: false, default: false },
|
|
11
|
+
total: { type: Boolean, required: false, default: false },
|
|
12
|
+
max: { type: Number, required: false, default: 3 }
|
|
13
|
+
});
|
|
14
|
+
const enableAwareness = computed(() => props.awareness || props.total);
|
|
15
|
+
const enableSync = computed(() => props.sync || props.total);
|
|
16
|
+
const attrs = useAttrs();
|
|
17
|
+
const { hoverers, focusers, pressers, isPressed, handlers } = useAAField(() => props.fieldKey);
|
|
18
|
+
const synced = useAAFieldValue(() => props.fieldKey);
|
|
19
|
+
const hasExternalModel = computed(() => "modelValue" in attrs || "onUpdate:modelValue" in attrs);
|
|
20
|
+
const ringStyle = computed(
|
|
21
|
+
() => enableAwareness.value ? awareRingStyle({
|
|
22
|
+
hover: hoverers.value[0]?.user?.color,
|
|
23
|
+
focus: focusers.value[0]?.user?.color,
|
|
24
|
+
press: pressers.value[0]?.user?.color
|
|
25
|
+
}) : void 0
|
|
26
|
+
);
|
|
27
|
+
const overlayPeers = computed(() => {
|
|
28
|
+
if (!enableAwareness.value) return [];
|
|
29
|
+
const seen = /* @__PURE__ */ new Set();
|
|
30
|
+
const out = [];
|
|
31
|
+
for (const p of focusers.value) if (!seen.has(p.clientId)) {
|
|
32
|
+
seen.add(p.clientId);
|
|
33
|
+
out.push(p);
|
|
34
|
+
}
|
|
35
|
+
for (const p of hoverers.value) if (!seen.has(p.clientId)) {
|
|
36
|
+
seen.add(p.clientId);
|
|
37
|
+
out.push(p);
|
|
38
|
+
}
|
|
39
|
+
return out;
|
|
40
|
+
});
|
|
41
|
+
const eventHandlers = computed(() => enableAwareness.value ? handlers : {});
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
<template>
|
|
45
|
+
<div
|
|
46
|
+
class="aa-host aa-host--block"
|
|
47
|
+
:class="{ 'aa-host--pressed': isPressed }"
|
|
48
|
+
:style="ringStyle"
|
|
49
|
+
v-on="eventHandlers"
|
|
50
|
+
>
|
|
51
|
+
<URadioGroup
|
|
52
|
+
v-if="enableSync && !hasExternalModel"
|
|
53
|
+
v-model="synced"
|
|
54
|
+
v-bind="attrs"
|
|
55
|
+
>
|
|
56
|
+
<template v-for="(_, name) in $slots" #[name]="slotData">
|
|
57
|
+
<slot :name="name" v-bind="slotData ?? {}" />
|
|
58
|
+
</template>
|
|
59
|
+
</URadioGroup>
|
|
60
|
+
<URadioGroup
|
|
61
|
+
v-else
|
|
62
|
+
v-bind="attrs"
|
|
63
|
+
>
|
|
64
|
+
<template v-for="(_, name) in $slots" #[name]="slotData">
|
|
65
|
+
<slot :name="name" v-bind="slotData ?? {}" />
|
|
66
|
+
</template>
|
|
67
|
+
</URadioGroup>
|
|
68
|
+
|
|
69
|
+
<Transition name="aa-peer">
|
|
70
|
+
<span v-if="overlayPeers.length" class="aa-overlay">
|
|
71
|
+
<AAvatar
|
|
72
|
+
v-for="p in overlayPeers.slice(0, max)"
|
|
73
|
+
:key="p.clientId"
|
|
74
|
+
:user="p"
|
|
75
|
+
size="2xs"
|
|
76
|
+
:show-status="false"
|
|
77
|
+
:show-tooltip="true"
|
|
78
|
+
/>
|
|
79
|
+
</span>
|
|
80
|
+
</Transition>
|
|
81
|
+
</div>
|
|
82
|
+
</template>
|
|
83
|
+
|
|
84
|
+
<style scoped>
|
|
85
|
+
.aa-host{border-radius:var(--ui-radius,.375rem);position:relative;transition:filter .12s ease}.aa-host--block{display:block}.aa-host--pressed{filter:brightness(.9)}.aa-overlay{display:flex;pointer-events:none;position:absolute;right:0;top:-.625rem;z-index:10}.aa-overlay>*+*{margin-left:-.25rem}.aa-peer-enter-active,.aa-peer-leave-active{transition:opacity .15s ease}.aa-peer-enter-from,.aa-peer-leave-to{opacity:0}
|
|
86
|
+
</style>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
fieldKey: string;
|
|
3
|
+
awareness?: boolean;
|
|
4
|
+
sync?: boolean;
|
|
5
|
+
total?: boolean;
|
|
6
|
+
max?: number;
|
|
7
|
+
};
|
|
8
|
+
declare var __VLS_9: string, __VLS_10: any, __VLS_20: string, __VLS_21: any;
|
|
9
|
+
type __VLS_Slots = {} & {
|
|
10
|
+
[K in NonNullable<typeof __VLS_9>]?: (props: typeof __VLS_10) => any;
|
|
11
|
+
} & {
|
|
12
|
+
[K in NonNullable<typeof __VLS_20>]?: (props: typeof __VLS_21) => any;
|
|
13
|
+
};
|
|
14
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
15
|
+
sync: boolean;
|
|
16
|
+
awareness: boolean;
|
|
17
|
+
max: number;
|
|
18
|
+
total: boolean;
|
|
19
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
20
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
21
|
+
declare const _default: typeof __VLS_export;
|
|
22
|
+
export default _default;
|
|
23
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
24
|
+
new (): {
|
|
25
|
+
$slots: S;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
fieldKey: string;
|
|
3
|
+
awareness?: boolean;
|
|
4
|
+
live?: boolean;
|
|
5
|
+
peers?: boolean;
|
|
6
|
+
total?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare var __VLS_1: {};
|
|
9
|
+
type __VLS_Slots = {} & {
|
|
10
|
+
default?: (props: typeof __VLS_1) => any;
|
|
11
|
+
};
|
|
12
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
13
|
+
peers: boolean;
|
|
14
|
+
awareness: boolean;
|
|
15
|
+
live: boolean;
|
|
16
|
+
total: boolean;
|
|
17
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
19
|
+
declare const _default: typeof __VLS_export;
|
|
20
|
+
export default _default;
|
|
21
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
22
|
+
new (): {
|
|
23
|
+
$slots: S;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, onBeforeUnmount, onMounted, ref, useAttrs, watch } from "vue";
|
|
3
|
+
import { useAAField } from "../../composables/useAAField";
|
|
4
|
+
import { useAAUIState } from "../../composables/useAAUIState";
|
|
5
|
+
import { useAAEphemeral } from "../../composables/useAAEphemeral";
|
|
6
|
+
import { awareRingStyle } from "../../utils/awareRingStyle";
|
|
7
|
+
defineOptions({ inheritAttrs: false });
|
|
8
|
+
const props = defineProps({
|
|
9
|
+
fieldKey: { type: String, required: true },
|
|
10
|
+
awareness: { type: Boolean, required: false, default: true },
|
|
11
|
+
live: { type: Boolean, required: false, default: false },
|
|
12
|
+
peers: { type: Boolean, required: false, default: false },
|
|
13
|
+
total: { type: Boolean, required: false, default: false }
|
|
14
|
+
});
|
|
15
|
+
const enableAwareness = computed(() => props.awareness || props.total);
|
|
16
|
+
const enableLive = computed(() => props.live || props.total);
|
|
17
|
+
const enablePeers = computed(() => props.peers || props.total);
|
|
18
|
+
const { hoverers, focusers, pressers, isPressed, hoverHandlers } = useAAField(() => props.fieldKey);
|
|
19
|
+
const ringStyle = computed(
|
|
20
|
+
() => enableAwareness.value ? awareRingStyle({
|
|
21
|
+
hover: hoverers.value[0]?.user?.color,
|
|
22
|
+
focus: focusers.value[0]?.user?.color,
|
|
23
|
+
press: pressers.value[0]?.user?.color
|
|
24
|
+
}) : void 0
|
|
25
|
+
);
|
|
26
|
+
const attrs = useAttrs();
|
|
27
|
+
const liveScroll = useAAUIState(() => `${props.fieldKey}:scroll`, { defaultValue: { y: 0, x: 0 } });
|
|
28
|
+
const { peers: scrollPeers, setLocal: setPeerScroll } = useAAEphemeral(() => `${props.fieldKey}:scroll`);
|
|
29
|
+
const elRef = ref(null);
|
|
30
|
+
let suppress = false;
|
|
31
|
+
let raf = 0;
|
|
32
|
+
function flush() {
|
|
33
|
+
raf = 0;
|
|
34
|
+
const el = elRef.value;
|
|
35
|
+
if (!el) return;
|
|
36
|
+
const payload = { y: el.scrollTop, x: el.scrollLeft };
|
|
37
|
+
if (enableLive.value && !suppress) liveScroll.value = payload;
|
|
38
|
+
if (enablePeers.value) setPeerScroll(payload);
|
|
39
|
+
}
|
|
40
|
+
function onScroll() {
|
|
41
|
+
if (!raf) raf = requestAnimationFrame(flush);
|
|
42
|
+
}
|
|
43
|
+
watch(liveScroll, (val) => {
|
|
44
|
+
if (!enableLive.value) return;
|
|
45
|
+
const el = elRef.value;
|
|
46
|
+
if (!el || !val) return;
|
|
47
|
+
if (Math.abs(el.scrollTop - val.y) < 2 && Math.abs(el.scrollLeft - val.x) < 2) return;
|
|
48
|
+
suppress = true;
|
|
49
|
+
el.scrollTo({ top: val.y, left: val.x, behavior: "instant" });
|
|
50
|
+
queueMicrotask(() => {
|
|
51
|
+
suppress = false;
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
onMounted(() => {
|
|
55
|
+
elRef.value?.addEventListener("scroll", onScroll, { passive: true });
|
|
56
|
+
});
|
|
57
|
+
onBeforeUnmount(() => {
|
|
58
|
+
if (raf) cancelAnimationFrame(raf);
|
|
59
|
+
elRef.value?.removeEventListener("scroll", onScroll);
|
|
60
|
+
});
|
|
61
|
+
</script>
|
|
62
|
+
|
|
63
|
+
<template>
|
|
64
|
+
<div
|
|
65
|
+
ref="elRef"
|
|
66
|
+
class="aa-scroll-host aa-host"
|
|
67
|
+
:class="{ 'aa-host--pressed': isPressed }"
|
|
68
|
+
:style="ringStyle"
|
|
69
|
+
v-on="enableAwareness ? hoverHandlers : {}"
|
|
70
|
+
v-bind="attrs"
|
|
71
|
+
>
|
|
72
|
+
<slot />
|
|
73
|
+
<div v-if="enablePeers && scrollPeers.length" class="aa-scroll-peers" aria-hidden="true">
|
|
74
|
+
<span
|
|
75
|
+
v-for="p in scrollPeers"
|
|
76
|
+
:key="p.clientId"
|
|
77
|
+
class="aa-scroll-peer-chip"
|
|
78
|
+
:title="(p.user?.name || 'Anonymous') + ' \xB7 y=' + Math.round(p.value.y)"
|
|
79
|
+
:style="{ background: p.user?.color ?? 'var(--ui-text-muted)' }"
|
|
80
|
+
/>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</template>
|
|
84
|
+
|
|
85
|
+
<style scoped>
|
|
86
|
+
.aa-scroll-host{overflow:auto;position:relative;transition:filter .12s ease,box-shadow .1s ease}.aa-host--pressed{filter:brightness(.94)}.aa-scroll-peers{display:flex;flex-direction:column;gap:.2rem;margin-left:auto;pointer-events:none;position:sticky;right:.5rem;top:.5rem;width:.4rem}.aa-scroll-peer-chip{border-radius:999px;box-shadow:0 0 0 2px var(--ui-bg-elevated);display:block;height:.4rem;width:.4rem}
|
|
87
|
+
</style>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
fieldKey: string;
|
|
3
|
+
awareness?: boolean;
|
|
4
|
+
live?: boolean;
|
|
5
|
+
peers?: boolean;
|
|
6
|
+
total?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare var __VLS_1: {};
|
|
9
|
+
type __VLS_Slots = {} & {
|
|
10
|
+
default?: (props: typeof __VLS_1) => any;
|
|
11
|
+
};
|
|
12
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
13
|
+
peers: boolean;
|
|
14
|
+
awareness: boolean;
|
|
15
|
+
live: boolean;
|
|
16
|
+
total: boolean;
|
|
17
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
19
|
+
declare const _default: typeof __VLS_export;
|
|
20
|
+
export default _default;
|
|
21
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
22
|
+
new (): {
|
|
23
|
+
$slots: S;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
type __VLS_Props = {
|
|
2
|
-
/** Unique field key for awareness broadcasting. Convention: "{scope}:{id}" */
|
|
3
2
|
fieldKey: string;
|
|
3
|
+
awareness?: boolean;
|
|
4
|
+
sync?: boolean;
|
|
5
|
+
live?: boolean;
|
|
6
|
+
total?: boolean;
|
|
7
|
+
max?: number;
|
|
4
8
|
};
|
|
5
|
-
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
9
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
10
|
+
sync: boolean;
|
|
11
|
+
awareness: boolean;
|
|
12
|
+
max: number;
|
|
13
|
+
live: boolean;
|
|
14
|
+
total: boolean;
|
|
15
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
16
|
declare const _default: typeof __VLS_export;
|
|
7
17
|
export default _default;
|