@abraca/nuxt 1.9.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +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/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/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 +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 +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/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/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 +233 -36
- package/dist/runtime/plugin-abracadabra.server.js +0 -1
- package/dist/runtime/plugins/core.plugin.js +73 -4
- package/dist/runtime/server/plugins/abracadabra-service.js +1 -1
- 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/time.d.ts +15 -0
- package/dist/runtime/utils/time.js +5 -0
- package/dist/types.d.mts +4 -0
- package/package.json +27 -16
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { RpcError as RpcErrorClass } from "@abraca/dabra";
|
|
2
|
+
export function defineRpcHandler(def) {
|
|
3
|
+
return def;
|
|
4
|
+
}
|
|
5
|
+
export function defineRpcRunner(options) {
|
|
6
|
+
const name = options.name ?? "abracadabra:rpc";
|
|
7
|
+
return {
|
|
8
|
+
name,
|
|
9
|
+
async start(ctx) {
|
|
10
|
+
await options.onStart?.(ctx);
|
|
11
|
+
const unregisters = [];
|
|
12
|
+
const rpc = ctx.rootProvider.rpc;
|
|
13
|
+
for (const def of options.handlers) {
|
|
14
|
+
const wrapped = wrapHandler(def, name);
|
|
15
|
+
unregisters.push(rpc.handle(def.method, wrapped));
|
|
16
|
+
console.log(`[${name}] handler registered: ${def.method}`);
|
|
17
|
+
}
|
|
18
|
+
await rpc.ready();
|
|
19
|
+
return () => {
|
|
20
|
+
for (const u of unregisters) {
|
|
21
|
+
try {
|
|
22
|
+
u();
|
|
23
|
+
} catch {
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
console.log(`[${name}] unregistered ${options.handlers.length} handler(s)`);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function wrapHandler(def, runnerName) {
|
|
32
|
+
return function(rawArgs, ctx) {
|
|
33
|
+
let args = rawArgs;
|
|
34
|
+
if (def.schema) {
|
|
35
|
+
try {
|
|
36
|
+
args = def.schema.parse(rawArgs);
|
|
37
|
+
} catch (err) {
|
|
38
|
+
console.warn(`[${runnerName}] ${def.method} schema rejected:`, err instanceof Error ? err.message : err);
|
|
39
|
+
return Promise.reject(
|
|
40
|
+
new RpcErrorClass("SCHEMA", err instanceof Error ? err.message : "invalid args")
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const t0 = Date.now();
|
|
45
|
+
const result = def.handler(args, ctx);
|
|
46
|
+
const r = result;
|
|
47
|
+
if (r && typeof r.next === "function" && typeof r[Symbol.asyncIterator] === "function") {
|
|
48
|
+
return wrapGeneratorLogging(r, t0, def.method, runnerName, ctx.id);
|
|
49
|
+
}
|
|
50
|
+
return Promise.resolve(result).then(
|
|
51
|
+
(out) => {
|
|
52
|
+
console.log(`[${runnerName}] ${def.method} ok in ${Date.now() - t0}ms (id=${ctx.id})`);
|
|
53
|
+
return out;
|
|
54
|
+
},
|
|
55
|
+
(err) => {
|
|
56
|
+
const code = err instanceof RpcErrorClass ? err.code : "INTERNAL";
|
|
57
|
+
console.warn(`[${runnerName}] ${def.method} failed (${code}, ${Date.now() - t0}ms): ${err instanceof Error ? err.message : err}`);
|
|
58
|
+
throw err;
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
async function* wrapGeneratorLogging(gen, t0, method, runnerName, id) {
|
|
64
|
+
try {
|
|
65
|
+
const final = yield* gen;
|
|
66
|
+
console.log(`[${runnerName}] ${method} ok in ${Date.now() - t0}ms (id=${id})`);
|
|
67
|
+
return final;
|
|
68
|
+
} catch (err) {
|
|
69
|
+
const code = err instanceof RpcErrorClass ? err.code : "INTERNAL";
|
|
70
|
+
console.warn(`[${runnerName}] ${method} failed (${code}, ${Date.now() - t0}ms): ${err instanceof Error ? err.message : err}`);
|
|
71
|
+
throw err;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export { RpcErrorClass as RpcError };
|
|
@@ -43,7 +43,6 @@ async function discoverSpaces() {
|
|
|
43
43
|
}
|
|
44
44
|
const currentIds = new Set(spaces.map((s) => s.id));
|
|
45
45
|
for (const meta of spaces) {
|
|
46
|
-
if (meta.is_hub) continue;
|
|
47
46
|
if (!_spaces.has(meta.id)) {
|
|
48
47
|
await connectSpace(meta);
|
|
49
48
|
}
|
|
@@ -57,14 +56,15 @@ async function discoverSpaces() {
|
|
|
57
56
|
}
|
|
58
57
|
async function connectSpace(meta) {
|
|
59
58
|
if (!_baseCtx || _spaces.has(meta.id)) return;
|
|
60
|
-
|
|
59
|
+
const label = meta.label ?? "(unnamed)";
|
|
60
|
+
console.log(`[space-manager] Connecting space: ${label} (${meta.id})`);
|
|
61
61
|
const Y = await import("yjs");
|
|
62
62
|
const doc = new Y.Doc();
|
|
63
63
|
const { AbracadabraProvider } = await import("@abraca/dabra");
|
|
64
64
|
const provider = new AbracadabraProvider({
|
|
65
65
|
client: _baseCtx.client,
|
|
66
66
|
document: doc,
|
|
67
|
-
name: meta.
|
|
67
|
+
name: meta.id,
|
|
68
68
|
websocketProvider: _baseCtx.wsp,
|
|
69
69
|
disableOfflineStore: true
|
|
70
70
|
});
|
|
@@ -79,7 +79,7 @@ async function connectSpace(meta) {
|
|
|
79
79
|
});
|
|
80
80
|
const conn = {
|
|
81
81
|
spaceId: meta.id,
|
|
82
|
-
docId: meta.
|
|
82
|
+
docId: meta.id,
|
|
83
83
|
meta,
|
|
84
84
|
provider,
|
|
85
85
|
doc,
|
|
@@ -87,15 +87,16 @@ async function connectSpace(meta) {
|
|
|
87
87
|
loadedPlugins: /* @__PURE__ */ new Map()
|
|
88
88
|
};
|
|
89
89
|
_spaces.set(meta.id, conn);
|
|
90
|
-
console.log(`[space-manager] Space synced: ${
|
|
90
|
+
console.log(`[space-manager] Space synced: ${label}`);
|
|
91
91
|
const spaceCtx = buildSpaceContext(conn);
|
|
92
|
-
await startRunner(docTreeCacheRunner, spaceCtx, meta.
|
|
92
|
+
await startRunner(docTreeCacheRunner, spaceCtx, meta.id);
|
|
93
93
|
observeSpacePlugins(conn);
|
|
94
94
|
}
|
|
95
95
|
async function disconnectSpace(spaceId) {
|
|
96
96
|
const conn = _spaces.get(spaceId);
|
|
97
97
|
if (!conn) return;
|
|
98
|
-
|
|
98
|
+
const label = conn.meta.label ?? "(unnamed)";
|
|
99
|
+
console.log(`[space-manager] Disconnecting space: ${label} (${spaceId})`);
|
|
99
100
|
if (conn.pluginObserver) {
|
|
100
101
|
try {
|
|
101
102
|
const pluginsMap = conn.doc.getMap("space-plugins");
|
|
@@ -162,7 +163,7 @@ async function loadAndStartPlugin(conn, pluginName, url) {
|
|
|
162
163
|
runnerKeys.push(key);
|
|
163
164
|
}
|
|
164
165
|
conn.loadedPlugins.set(pluginName, runnerKeys);
|
|
165
|
-
console.log(`[space-manager] Started plugin "${pluginName}" in space "${conn.meta.
|
|
166
|
+
console.log(`[space-manager] Started plugin "${pluginName}" in space "${conn.meta.label ?? "(unnamed)"}" (${plugin.serverRunners.length} runners)`);
|
|
166
167
|
} catch (err) {
|
|
167
168
|
console.error(`[space-manager] Failed to load plugin "${pluginName}" from ${url}:`, err);
|
|
168
169
|
}
|
|
@@ -174,7 +175,7 @@ async function stopPluginRunners(conn, pluginName) {
|
|
|
174
175
|
await stopRunner(key);
|
|
175
176
|
}
|
|
176
177
|
conn.loadedPlugins.delete(pluginName);
|
|
177
|
-
console.log(`[space-manager] Stopped plugin "${pluginName}" in space "${conn.meta.
|
|
178
|
+
console.log(`[space-manager] Stopped plugin "${pluginName}" in space "${conn.meta.label ?? "(unnamed)"}"`);
|
|
178
179
|
}
|
|
179
180
|
function buildSpaceContext(conn) {
|
|
180
181
|
return {
|
package/dist/runtime/types.d.ts
CHANGED
|
@@ -327,6 +327,13 @@ export interface AwarenessUser {
|
|
|
327
327
|
name?: string;
|
|
328
328
|
color?: string;
|
|
329
329
|
avatar?: string;
|
|
330
|
+
/** Lucide icon name without the `i-lucide-` prefix (e.g. `coffee`).
|
|
331
|
+
* Drives <AAvatar>'s status overlay and optional status-as-avatar
|
|
332
|
+
* rendering. Empty / undefined = no status icon. */
|
|
333
|
+
statusIcon?: string;
|
|
334
|
+
/** Free-form short status text (≤ 80 chars). */
|
|
335
|
+
statusText?: string;
|
|
336
|
+
publicKey?: string;
|
|
330
337
|
};
|
|
331
338
|
/** Which document this user is currently viewing */
|
|
332
339
|
docId?: string;
|
|
@@ -342,14 +349,11 @@ export interface AwarenessPeer extends AwarenessUser {
|
|
|
342
349
|
}
|
|
343
350
|
export interface SpaceMeta {
|
|
344
351
|
id: string;
|
|
345
|
-
doc_id: string;
|
|
346
352
|
name: string;
|
|
347
353
|
description: string | null;
|
|
348
|
-
visibility: 'public' | 'private'
|
|
349
|
-
is_hub: boolean;
|
|
354
|
+
visibility: 'public' | 'private';
|
|
350
355
|
owner_id: string | null;
|
|
351
|
-
|
|
352
|
-
updated_at: number;
|
|
356
|
+
public_access?: string | null;
|
|
353
357
|
}
|
|
354
358
|
export interface InviteInfo {
|
|
355
359
|
code: string;
|
|
@@ -364,14 +368,16 @@ export interface SavedServer {
|
|
|
364
368
|
url: string;
|
|
365
369
|
label: string;
|
|
366
370
|
entryDocId?: string;
|
|
367
|
-
spacesEnabled?: boolean;
|
|
368
371
|
cachedSpaces?: SpaceMeta[];
|
|
369
|
-
hubDocId?: string;
|
|
370
372
|
}
|
|
371
373
|
export interface ServerInfo {
|
|
372
374
|
name?: string;
|
|
373
375
|
version?: string;
|
|
374
|
-
|
|
376
|
+
root_doc_id?: string;
|
|
377
|
+
access?: {
|
|
378
|
+
anonymous?: 'none' | 'observer';
|
|
379
|
+
authenticated?: 'none' | 'observer' | 'viewer' | 'editor';
|
|
380
|
+
};
|
|
375
381
|
}
|
|
376
382
|
export interface LogEntry {
|
|
377
383
|
time: string;
|
|
@@ -418,6 +424,14 @@ export interface AbracadabraState {
|
|
|
418
424
|
userColorName: Ref<string>;
|
|
419
425
|
userNeutralColorName: Ref<string>;
|
|
420
426
|
userCount: Ref<number>;
|
|
427
|
+
/** Lucide icon name (no `i-lucide-` prefix) for the user's status, or
|
|
428
|
+
* empty string when no status is set. Broadcast via awareness. */
|
|
429
|
+
userStatusIcon: Ref<string>;
|
|
430
|
+
/** Free-form short status text (≤ 80 chars). Broadcast via awareness. */
|
|
431
|
+
userStatusText: Ref<string>;
|
|
432
|
+
/** Local-only preference: when true, <AAvatar> renders the status icon
|
|
433
|
+
* in place of the avatar initials for the current user. */
|
|
434
|
+
userStatusAsAvatar: Ref<boolean>;
|
|
421
435
|
publicKeyB64: Ref<string>;
|
|
422
436
|
connectionError: Ref<string | null>;
|
|
423
437
|
/** Explicit identity state machine — prefer over individual booleans. */
|
|
@@ -436,17 +450,56 @@ export interface AbracadabraState {
|
|
|
436
450
|
currentServerUrl: Ref<string>;
|
|
437
451
|
savedServers: Ref<SavedServer[]>;
|
|
438
452
|
currentServerSpaces: Ref<SpaceMeta[]>;
|
|
439
|
-
currentServerSpacesEnabled: Ref<boolean>;
|
|
440
453
|
pendingInviteCode: Ref<string | null>;
|
|
441
454
|
registry: import('./plugin-registry').PluginRegistry;
|
|
442
455
|
addLog: (message: string, type?: LogEntry['type']) => void;
|
|
443
456
|
setUserName: (name: string) => void;
|
|
444
457
|
setUserColor: (colorName: string) => void;
|
|
445
458
|
setNeutralColor: (colorName: string) => void;
|
|
459
|
+
/** Set the Lucide icon used as the user's status (without the
|
|
460
|
+
* `i-lucide-` prefix). Pass an empty string to clear. */
|
|
461
|
+
setUserStatusIcon: (icon: string) => void;
|
|
462
|
+
/** Set the user's status text. Pass empty string to clear. */
|
|
463
|
+
setUserStatusText: (text: string) => void;
|
|
464
|
+
/** Toggle whether the local user's status icon replaces their avatar. */
|
|
465
|
+
setUserStatusAsAvatar: (enabled: boolean) => void;
|
|
446
466
|
setRequirePasskey: (enabled: boolean) => void;
|
|
447
467
|
claimAccount: () => Promise<boolean | undefined>;
|
|
448
468
|
loginWithHardware: (credentialIdHint?: string) => Promise<boolean>;
|
|
469
|
+
/** Sign in with username + password. Bounces the WS so the JWT picks up. */
|
|
470
|
+
loginWithPassword: (opts: {
|
|
471
|
+
username: string;
|
|
472
|
+
password: string;
|
|
473
|
+
}) => Promise<void>;
|
|
474
|
+
/** Register + auto-login with username + password. Optional invite code. */
|
|
475
|
+
registerWithPassword: (opts: {
|
|
476
|
+
username: string;
|
|
477
|
+
password: string;
|
|
478
|
+
email?: string;
|
|
479
|
+
displayName?: string;
|
|
480
|
+
inviteCode?: string;
|
|
481
|
+
}) => Promise<void>;
|
|
449
482
|
logout: () => Promise<void>;
|
|
483
|
+
/** Revoke the current JWT server-side, then clear local identity. */
|
|
484
|
+
logoutServer: () => Promise<void>;
|
|
485
|
+
/** Revoke every JWT for this user, then clear local identity. */
|
|
486
|
+
logoutAll: () => Promise<void>;
|
|
487
|
+
/** Trigger a password-reset email. The endpoint always 202s to avoid leaking identifier existence. */
|
|
488
|
+
requestPasswordReset: (opts: {
|
|
489
|
+
identifier: string;
|
|
490
|
+
}) => Promise<void>;
|
|
491
|
+
/** Complete a password reset using the token from the reset email. */
|
|
492
|
+
confirmPasswordReset: (opts: {
|
|
493
|
+
token: string;
|
|
494
|
+
newPassword: string;
|
|
495
|
+
}) => Promise<void>;
|
|
496
|
+
/** Change the current user's password (requires the current one). */
|
|
497
|
+
changePassword: (opts: {
|
|
498
|
+
currentPassword: string;
|
|
499
|
+
newPassword: string;
|
|
500
|
+
}) => Promise<void>;
|
|
501
|
+
/** Add a password to a key-only account. 409s if one is already set. */
|
|
502
|
+
setPassword: (newPassword: string) => Promise<void>;
|
|
450
503
|
reconnect: () => void;
|
|
451
504
|
addServer: (url: string) => Promise<void>;
|
|
452
505
|
removeServer: (url: string) => void;
|
|
@@ -459,7 +512,7 @@ export interface AbracadabraState {
|
|
|
459
512
|
visibility?: SpaceMeta['visibility'];
|
|
460
513
|
id?: string;
|
|
461
514
|
}) => Promise<SpaceMeta>;
|
|
462
|
-
updateSpace: (id: string, opts: Partial<Pick<SpaceMeta, 'name' | 'description' | 'visibility'
|
|
515
|
+
updateSpace: (id: string, opts: Partial<Pick<SpaceMeta, 'name' | 'description' | 'visibility'>>) => Promise<void>;
|
|
463
516
|
deleteSpace: (id: string) => Promise<void>;
|
|
464
517
|
redeemInvite: (code: string) => Promise<void>;
|
|
465
518
|
createInvite: (opts?: {
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for the hover / focus / press box-shadow halo on
|
|
3
|
+
* every aware-* component wrapper. Applied to the host element via
|
|
4
|
+
* `:style="awareRingStyle({ hover, focus, press })"`.
|
|
5
|
+
*
|
|
6
|
+
* Returns `undefined` when no peer is interacting so the host doesn't paint
|
|
7
|
+
* an empty `box-shadow: none` (which would still defeat any inherent
|
|
8
|
+
* box-shadow on the underlying U* component).
|
|
9
|
+
*
|
|
10
|
+
* Layered intent:
|
|
11
|
+
* - hover : 2 px solid at 50% alpha + outer 4 px wash at 18% alpha → readable on any background
|
|
12
|
+
* - focus : 2 px solid full alpha → strong cursor-attention indicator
|
|
13
|
+
* - press : 3 px solid + 6 px wash + 18 px outer glow → unmistakable tactile signal
|
|
14
|
+
*/
|
|
15
|
+
export interface AwareRingInput {
|
|
16
|
+
hover?: string | undefined;
|
|
17
|
+
focus?: string | undefined;
|
|
18
|
+
press?: string | undefined;
|
|
19
|
+
/** Override the wrapper's border-radius. Defaults to var(--ui-radius). */
|
|
20
|
+
radius?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function awareRingStyle(input: AwareRingInput): Record<string, string> | undefined;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
function withAlpha(color, pct) {
|
|
2
|
+
return `color-mix(in srgb, ${color} ${pct}%, transparent)`;
|
|
3
|
+
}
|
|
4
|
+
export function awareRingStyle(input) {
|
|
5
|
+
const { hover, focus, press, radius } = input;
|
|
6
|
+
if (!hover && !focus && !press) return void 0;
|
|
7
|
+
const layers = [];
|
|
8
|
+
if (hover) layers.push(`0 0 0 2px ${withAlpha(hover, 50)}`, `0 0 0 4px ${withAlpha(hover, 18)}`);
|
|
9
|
+
if (focus) layers.push(`0 0 0 2px ${focus}`);
|
|
10
|
+
if (press) layers.push(`0 0 0 3px ${press}`, `0 0 0 6px ${withAlpha(press, 33)}`, `0 0 18px 4px ${withAlpha(press, 33)}`);
|
|
11
|
+
return {
|
|
12
|
+
boxShadow: layers.join(", "),
|
|
13
|
+
borderRadius: radius ?? "var(--ui-radius, 0.375rem)",
|
|
14
|
+
transition: "box-shadow 100ms ease, filter 120ms ease"
|
|
15
|
+
};
|
|
16
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compute the pixel coordinates of a character offset inside an `<input>`
|
|
3
|
+
* or `<textarea>`, relative to the element's own padding box.
|
|
4
|
+
*
|
|
5
|
+
* Used to render per-peer caret labels at the right place inside text
|
|
6
|
+
* inputs (the `peers` mode of `<AInput>` / `<ATextarea>`).
|
|
7
|
+
*
|
|
8
|
+
* Implementation uses the well-known "mirror div" technique: copy every
|
|
9
|
+
* text-affecting style from the source element onto a hidden absolutely-
|
|
10
|
+
* positioned div, fill it with the input's text up to the caret position,
|
|
11
|
+
* then measure a 0-width marker that follows. This is the same approach
|
|
12
|
+
* used by `textarea-caret-position` and by every collaborative form
|
|
13
|
+
* library — it stays accurate across font, padding, line-height, RTL,
|
|
14
|
+
* wrapping, and tab characters.
|
|
15
|
+
*/
|
|
16
|
+
export interface CaretCoordinates {
|
|
17
|
+
top: number;
|
|
18
|
+
left: number;
|
|
19
|
+
height: number;
|
|
20
|
+
}
|
|
21
|
+
export declare function getCaretCoordinates(el: HTMLInputElement | HTMLTextAreaElement, position: number): CaretCoordinates;
|
|
22
|
+
export interface SelectionRect {
|
|
23
|
+
top: number;
|
|
24
|
+
left: number;
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Compute one or more pixel-aligned rectangles covering a character range
|
|
30
|
+
* inside an `<input>` or `<textarea>`. Used by `<APeerCaretLayer>` to
|
|
31
|
+
* highlight remote peers' selections (`start !== end`) the way Google Docs
|
|
32
|
+
* renders remote selections.
|
|
33
|
+
*
|
|
34
|
+
* Returns:
|
|
35
|
+
* - empty array when start === end (caller renders the caret bar instead)
|
|
36
|
+
* - one rect when the range fits on a single line
|
|
37
|
+
* - up to three rects when the range wraps across multiple textarea lines
|
|
38
|
+
* (first-line tail, full middle block, last-line head — same model used
|
|
39
|
+
* by every browser's native selection painter)
|
|
40
|
+
*/
|
|
41
|
+
export declare function getSelectionRects(el: HTMLInputElement | HTMLTextAreaElement, start: number, end: number): SelectionRect[];
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
const PROPERTIES = [
|
|
2
|
+
"direction",
|
|
3
|
+
"boxSizing",
|
|
4
|
+
"width",
|
|
5
|
+
"height",
|
|
6
|
+
"overflowX",
|
|
7
|
+
"overflowY",
|
|
8
|
+
"borderTopWidth",
|
|
9
|
+
"borderRightWidth",
|
|
10
|
+
"borderBottomWidth",
|
|
11
|
+
"borderLeftWidth",
|
|
12
|
+
"borderStyle",
|
|
13
|
+
"paddingTop",
|
|
14
|
+
"paddingRight",
|
|
15
|
+
"paddingBottom",
|
|
16
|
+
"paddingLeft",
|
|
17
|
+
"fontStyle",
|
|
18
|
+
"fontVariant",
|
|
19
|
+
"fontWeight",
|
|
20
|
+
"fontStretch",
|
|
21
|
+
"fontSize",
|
|
22
|
+
"fontSizeAdjust",
|
|
23
|
+
"lineHeight",
|
|
24
|
+
"fontFamily",
|
|
25
|
+
"textAlign",
|
|
26
|
+
"textTransform",
|
|
27
|
+
"textIndent",
|
|
28
|
+
"textDecoration",
|
|
29
|
+
"letterSpacing",
|
|
30
|
+
"wordSpacing",
|
|
31
|
+
"tabSize",
|
|
32
|
+
"MozTabSize"
|
|
33
|
+
];
|
|
34
|
+
export function getCaretCoordinates(el, position) {
|
|
35
|
+
const isInput = el.tagName === "INPUT";
|
|
36
|
+
const div = document.createElement("div");
|
|
37
|
+
div.id = "aa-caret-mirror";
|
|
38
|
+
document.body.appendChild(div);
|
|
39
|
+
const style = div.style;
|
|
40
|
+
const computed = window.getComputedStyle(el);
|
|
41
|
+
style.whiteSpace = isInput ? "nowrap" : "pre-wrap";
|
|
42
|
+
if (!isInput) style.wordWrap = "break-word";
|
|
43
|
+
style.position = "absolute";
|
|
44
|
+
style.visibility = "hidden";
|
|
45
|
+
style.top = "0";
|
|
46
|
+
style.left = "0";
|
|
47
|
+
style.overflow = "hidden";
|
|
48
|
+
for (const prop of PROPERTIES) {
|
|
49
|
+
style[prop] = computed[prop];
|
|
50
|
+
}
|
|
51
|
+
if (isInput) {
|
|
52
|
+
style.lineHeight = computed.height;
|
|
53
|
+
style.overflowX = "hidden";
|
|
54
|
+
style.overflowY = "hidden";
|
|
55
|
+
}
|
|
56
|
+
const value = el.value;
|
|
57
|
+
div.textContent = value.substring(0, position);
|
|
58
|
+
if (isInput) div.textContent = (div.textContent || "").replace(/\s/g, "\xA0");
|
|
59
|
+
const span = document.createElement("span");
|
|
60
|
+
span.textContent = value.substring(position) || ".";
|
|
61
|
+
div.appendChild(span);
|
|
62
|
+
const fontSize = parseInt(computed.fontSize || "14", 10);
|
|
63
|
+
const lineHeightParsed = parseInt(computed.lineHeight || "", 10);
|
|
64
|
+
const lineHeight = Number.isFinite(lineHeightParsed) && lineHeightParsed > 0 ? lineHeightParsed : Math.round(fontSize * 1.4);
|
|
65
|
+
const coords = {
|
|
66
|
+
top: span.offsetTop + parseInt(computed.borderTopWidth || "0", 10),
|
|
67
|
+
left: span.offsetLeft + parseInt(computed.borderLeftWidth || "0", 10),
|
|
68
|
+
height: lineHeight
|
|
69
|
+
};
|
|
70
|
+
if (isInput) {
|
|
71
|
+
const padTop = parseInt(computed.paddingTop || "0", 10);
|
|
72
|
+
const padBottom = parseInt(computed.paddingBottom || "0", 10);
|
|
73
|
+
const inner = el.clientHeight - padTop - padBottom;
|
|
74
|
+
const yOffset = padTop + Math.max(0, (inner - lineHeight) / 2);
|
|
75
|
+
coords.top = yOffset + parseInt(computed.borderTopWidth || "0", 10);
|
|
76
|
+
}
|
|
77
|
+
coords.left -= el.scrollLeft;
|
|
78
|
+
coords.top -= el.scrollTop;
|
|
79
|
+
document.body.removeChild(div);
|
|
80
|
+
return coords;
|
|
81
|
+
}
|
|
82
|
+
export function getSelectionRects(el, start, end) {
|
|
83
|
+
if (start === end) return [];
|
|
84
|
+
const lo = Math.min(start, end);
|
|
85
|
+
const hi = Math.max(start, end);
|
|
86
|
+
const a = getCaretCoordinates(el, lo);
|
|
87
|
+
const b = getCaretCoordinates(el, hi);
|
|
88
|
+
const computed = window.getComputedStyle(el);
|
|
89
|
+
const padL = parseInt(computed.paddingLeft || "0", 10);
|
|
90
|
+
const padR = parseInt(computed.paddingRight || "0", 10);
|
|
91
|
+
const borderL = parseInt(computed.borderLeftWidth || "0", 10);
|
|
92
|
+
const borderR = parseInt(computed.borderRightWidth || "0", 10);
|
|
93
|
+
const innerLeft = borderL + padL;
|
|
94
|
+
const innerRight = el.clientWidth - padR + borderL;
|
|
95
|
+
if (a.top === b.top) {
|
|
96
|
+
return [{
|
|
97
|
+
top: a.top,
|
|
98
|
+
left: a.left,
|
|
99
|
+
width: Math.max(0, b.left - a.left),
|
|
100
|
+
height: a.height
|
|
101
|
+
}];
|
|
102
|
+
}
|
|
103
|
+
const rects = [];
|
|
104
|
+
rects.push({
|
|
105
|
+
top: a.top,
|
|
106
|
+
left: a.left,
|
|
107
|
+
width: Math.max(0, innerRight - a.left),
|
|
108
|
+
height: a.height
|
|
109
|
+
});
|
|
110
|
+
const middleTop = a.top + a.height;
|
|
111
|
+
if (b.top > middleTop) {
|
|
112
|
+
rects.push({
|
|
113
|
+
top: middleTop,
|
|
114
|
+
left: innerLeft,
|
|
115
|
+
width: Math.max(0, innerRight - innerLeft),
|
|
116
|
+
height: b.top - middleTop
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
rects.push({
|
|
120
|
+
top: b.top,
|
|
121
|
+
left: innerLeft,
|
|
122
|
+
width: Math.max(0, b.left - innerLeft),
|
|
123
|
+
height: b.height
|
|
124
|
+
});
|
|
125
|
+
return rects;
|
|
126
|
+
}
|
|
@@ -13,7 +13,7 @@ export declare function mapContentNavigationItem(item: ContentNavigationItem, op
|
|
|
13
13
|
label?: string;
|
|
14
14
|
to?: string;
|
|
15
15
|
};
|
|
16
|
-
export declare function mapContentNavigation(navigation: ContentNavigationItem[], options?: MapContentNavigationItemOptions): (Omit<ContentNavigationItem, "
|
|
16
|
+
export declare function mapContentNavigation(navigation: ContentNavigationItem[], options?: MapContentNavigationItemOptions): (Omit<ContentNavigationItem, "title" | "path"> & {
|
|
17
17
|
label?: string;
|
|
18
18
|
to?: string;
|
|
19
19
|
})[];
|
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
import { defineAsyncComponent } from "vue";
|
|
2
|
+
import ADocLoadingSkeleton from "../components/renderers/ADocLoadingSkeleton.vue";
|
|
3
|
+
import ADocLoadError from "../components/renderers/ADocLoadError.vue";
|
|
4
|
+
function defineDocComponent(loader) {
|
|
5
|
+
return defineAsyncComponent({
|
|
6
|
+
loader,
|
|
7
|
+
loadingComponent: ADocLoadingSkeleton,
|
|
8
|
+
errorComponent: ADocLoadError,
|
|
9
|
+
delay: 200,
|
|
10
|
+
onError(_error, retry, fail, attempts) {
|
|
11
|
+
if (attempts <= 5) {
|
|
12
|
+
setTimeout(retry, attempts * 500);
|
|
13
|
+
} else {
|
|
14
|
+
fail();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
2
19
|
const GEO_COLOR_PRESETS = ["#3b82f6", "#f97316", "#22c55e", "#ef4444", "#a855f7"];
|
|
3
20
|
const GEO_ICON_OPTIONS = [
|
|
4
21
|
"map-pin",
|
|
@@ -46,10 +63,24 @@ export const DOC_TYPES = {
|
|
|
46
63
|
available: true,
|
|
47
64
|
hasEditor: true,
|
|
48
65
|
supportsChildren: true,
|
|
49
|
-
component:
|
|
66
|
+
component: defineDocComponent(
|
|
50
67
|
() => import("../components/AEditor.vue")
|
|
51
68
|
)
|
|
52
69
|
},
|
|
70
|
+
prose: {
|
|
71
|
+
key: "prose",
|
|
72
|
+
label: "Prose",
|
|
73
|
+
icon: "i-lucide-pen-tool",
|
|
74
|
+
description: "Long-form prose with serif typography and a narrow readable measure",
|
|
75
|
+
available: true,
|
|
76
|
+
hasEditor: true,
|
|
77
|
+
supportsChildren: true,
|
|
78
|
+
childLabel: "Item",
|
|
79
|
+
defaultDepth: -1,
|
|
80
|
+
component: defineDocComponent(
|
|
81
|
+
() => import("../components/renderers/AProseRenderer.vue")
|
|
82
|
+
)
|
|
83
|
+
},
|
|
53
84
|
kanban: {
|
|
54
85
|
key: "kanban",
|
|
55
86
|
label: "Kanban",
|
|
@@ -59,7 +90,7 @@ export const DOC_TYPES = {
|
|
|
59
90
|
supportsChildren: true,
|
|
60
91
|
childLabel: "Column",
|
|
61
92
|
grandchildLabel: "Card",
|
|
62
|
-
component:
|
|
93
|
+
component: defineDocComponent(
|
|
63
94
|
() => import("../components/renderers/AKanbanRenderer.vue")
|
|
64
95
|
)
|
|
65
96
|
},
|
|
@@ -71,7 +102,7 @@ export const DOC_TYPES = {
|
|
|
71
102
|
available: true,
|
|
72
103
|
supportsChildren: true,
|
|
73
104
|
childLabel: "Item",
|
|
74
|
-
component:
|
|
105
|
+
component: defineDocComponent(
|
|
75
106
|
() => import("../components/renderers/AGalleryRenderer.vue")
|
|
76
107
|
)
|
|
77
108
|
},
|
|
@@ -83,7 +114,7 @@ export const DOC_TYPES = {
|
|
|
83
114
|
available: true,
|
|
84
115
|
supportsChildren: true,
|
|
85
116
|
childLabel: "Row",
|
|
86
|
-
component:
|
|
117
|
+
component: defineDocComponent(
|
|
87
118
|
() => import("../components/renderers/ATableRenderer.vue")
|
|
88
119
|
)
|
|
89
120
|
},
|
|
@@ -96,7 +127,7 @@ export const DOC_TYPES = {
|
|
|
96
127
|
supportsChildren: true,
|
|
97
128
|
childLabel: "Item",
|
|
98
129
|
defaultDepth: -1,
|
|
99
|
-
component:
|
|
130
|
+
component: defineDocComponent(
|
|
100
131
|
() => import("../components/renderers/AOutlineRenderer.vue")
|
|
101
132
|
)
|
|
102
133
|
},
|
|
@@ -108,7 +139,7 @@ export const DOC_TYPES = {
|
|
|
108
139
|
available: true,
|
|
109
140
|
supportsChildren: true,
|
|
110
141
|
childLabel: "Event",
|
|
111
|
-
component:
|
|
142
|
+
component: defineDocComponent(
|
|
112
143
|
() => import("../components/renderers/ACalendarRenderer.vue")
|
|
113
144
|
),
|
|
114
145
|
metaSchema: [
|
|
@@ -125,7 +156,7 @@ export const DOC_TYPES = {
|
|
|
125
156
|
supportsChildren: true,
|
|
126
157
|
childLabel: "Task",
|
|
127
158
|
defaultDepth: -1,
|
|
128
|
-
component:
|
|
159
|
+
component: defineDocComponent(
|
|
129
160
|
() => import("../components/renderers/AChecklistRenderer.vue")
|
|
130
161
|
),
|
|
131
162
|
metaSchema: [
|
|
@@ -143,7 +174,7 @@ export const DOC_TYPES = {
|
|
|
143
174
|
supportsChildren: true,
|
|
144
175
|
childLabel: "Epic",
|
|
145
176
|
grandchildLabel: "Task",
|
|
146
|
-
component:
|
|
177
|
+
component: defineDocComponent(
|
|
147
178
|
() => import("../components/renderers/ATimelineRenderer.vue")
|
|
148
179
|
),
|
|
149
180
|
metaSchema: [
|
|
@@ -159,7 +190,7 @@ export const DOC_TYPES = {
|
|
|
159
190
|
description: "Video call room with real-time audio and video",
|
|
160
191
|
available: true,
|
|
161
192
|
supportsChildren: false,
|
|
162
|
-
component:
|
|
193
|
+
component: defineDocComponent(
|
|
163
194
|
() => import("../components/renderers/ACallRenderer.vue")
|
|
164
195
|
)
|
|
165
196
|
},
|
|
@@ -171,7 +202,7 @@ export const DOC_TYPES = {
|
|
|
171
202
|
available: true,
|
|
172
203
|
supportsChildren: true,
|
|
173
204
|
childLabel: "Node",
|
|
174
|
-
component:
|
|
205
|
+
component: defineDocComponent(
|
|
175
206
|
() => import("../components/renderers/AGraphRenderer.vue")
|
|
176
207
|
)
|
|
177
208
|
},
|
|
@@ -183,7 +214,7 @@ export const DOC_TYPES = {
|
|
|
183
214
|
available: true,
|
|
184
215
|
supportsChildren: true,
|
|
185
216
|
childLabel: "Item",
|
|
186
|
-
component:
|
|
217
|
+
component: defineDocComponent(
|
|
187
218
|
() => import("../components/renderers/ADashboardRenderer.vue")
|
|
188
219
|
)
|
|
189
220
|
},
|
|
@@ -195,7 +226,7 @@ export const DOC_TYPES = {
|
|
|
195
226
|
available: true,
|
|
196
227
|
supportsChildren: true,
|
|
197
228
|
childLabel: "Location",
|
|
198
|
-
component:
|
|
229
|
+
component: defineDocComponent(
|
|
199
230
|
() => import("../components/renderers/AMapRenderer.vue")
|
|
200
231
|
),
|
|
201
232
|
metaSchema: [
|
|
@@ -213,7 +244,7 @@ export const DOC_TYPES = {
|
|
|
213
244
|
supportsChildren: true,
|
|
214
245
|
childLabel: "Slide",
|
|
215
246
|
grandchildLabel: "Sub-slide",
|
|
216
|
-
component:
|
|
247
|
+
component: defineDocComponent(
|
|
217
248
|
() => import("../components/renderers/ASlidesRenderer.vue")
|
|
218
249
|
),
|
|
219
250
|
metaSchema: [
|