@abraca/nuxt 1.9.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module.d.mts +4 -3
- package/dist/module.json +1 -1
- package/dist/module.mjs +9 -1
- package/dist/runtime/components/ADocumentTree.vue +1 -1
- package/dist/runtime/components/AEditor.d.vue.ts +26 -1
- package/dist/runtime/components/AEditor.vue +158 -4
- package/dist/runtime/components/AEditor.vue.d.ts +26 -1
- package/dist/runtime/components/AIdentityModal.d.vue.ts +46 -0
- package/dist/runtime/components/AIdentityModal.vue +157 -0
- package/dist/runtime/components/AIdentityModal.vue.d.ts +46 -0
- package/dist/runtime/components/AMnemonicLoginModal.d.vue.ts +35 -0
- package/dist/runtime/components/AMnemonicLoginModal.vue +173 -0
- package/dist/runtime/components/AMnemonicLoginModal.vue.d.ts +35 -0
- package/dist/runtime/components/ANodePanel.d.vue.ts +29 -2
- package/dist/runtime/components/ANodePanel.vue +148 -27
- package/dist/runtime/components/ANodePanel.vue.d.ts +29 -2
- package/dist/runtime/components/ANodePanelHeader.d.vue.ts +64 -0
- package/dist/runtime/components/ANodePanelHeader.vue +105 -0
- package/dist/runtime/components/ANodePanelHeader.vue.d.ts +64 -0
- package/dist/runtime/components/ANodeSettingsPanel.d.vue.ts +49 -0
- package/dist/runtime/components/ANodeSettingsPanel.vue +59 -0
- package/dist/runtime/components/ANodeSettingsPanel.vue.d.ts +49 -0
- package/dist/runtime/components/ANotificationBell.d.vue.ts +26 -0
- package/dist/runtime/components/ANotificationBell.vue +55 -0
- package/dist/runtime/components/ANotificationBell.vue.d.ts +26 -0
- package/dist/runtime/components/AOfflineSync.d.vue.ts +11 -0
- package/dist/runtime/components/AOfflineSync.vue +217 -0
- package/dist/runtime/components/AOfflineSync.vue.d.ts +11 -0
- package/dist/runtime/components/ARecoveryPhraseDisplay.d.vue.ts +26 -0
- package/dist/runtime/components/ARecoveryPhraseDisplay.vue +94 -0
- package/dist/runtime/components/ARecoveryPhraseDisplay.vue.d.ts +26 -0
- package/dist/runtime/components/AServerInfoModal.d.vue.ts +43 -0
- package/dist/runtime/components/AServerInfoModal.vue +150 -0
- package/dist/runtime/components/AServerInfoModal.vue.d.ts +43 -0
- package/dist/runtime/components/ASpaceFormModal.vue +1 -1
- package/dist/runtime/components/ASubPageList.d.vue.ts +66 -0
- package/dist/runtime/components/ASubPageList.vue +147 -0
- package/dist/runtime/components/ASubPageList.vue.d.ts +66 -0
- package/dist/runtime/components/aware/AAccordion.d.vue.ts +25 -0
- package/dist/runtime/components/aware/AAccordion.vue +107 -0
- package/dist/runtime/components/aware/AAccordion.vue.d.ts +25 -0
- package/dist/runtime/components/aware/AArea.vue +24 -11
- package/dist/runtime/components/aware/AAvatar.d.vue.ts +6 -0
- package/dist/runtime/components/aware/AAvatar.vue +33 -3
- package/dist/runtime/components/aware/AAvatar.vue.d.ts +6 -0
- package/dist/runtime/components/aware/AAvatarGroup.d.vue.ts +10 -0
- package/dist/runtime/components/aware/AAvatarGroup.vue +30 -0
- package/dist/runtime/components/aware/AAvatarGroup.vue.d.ts +10 -0
- package/dist/runtime/components/aware/AButton.d.vue.ts +4 -2
- package/dist/runtime/components/aware/AButton.vue +46 -14
- package/dist/runtime/components/aware/AButton.vue.d.ts +4 -2
- package/dist/runtime/components/aware/ACalendar.d.vue.ts +17 -0
- package/dist/runtime/components/aware/ACalendar.vue +145 -0
- package/dist/runtime/components/aware/ACalendar.vue.d.ts +17 -0
- package/dist/runtime/components/aware/ACarousel.d.vue.ts +25 -0
- package/dist/runtime/components/aware/ACarousel.vue +39 -0
- package/dist/runtime/components/aware/ACarousel.vue.d.ts +25 -0
- package/dist/runtime/components/aware/ACheckbox.d.vue.ts +11 -0
- package/dist/runtime/components/aware/ACheckbox.vue +74 -0
- package/dist/runtime/components/aware/ACheckbox.vue.d.ts +11 -0
- package/dist/runtime/components/aware/ACheckboxGroup.d.vue.ts +27 -0
- package/dist/runtime/components/aware/ACheckboxGroup.vue +79 -0
- package/dist/runtime/components/aware/ACheckboxGroup.vue.d.ts +27 -0
- package/dist/runtime/components/aware/ACollapsible.d.vue.ts +25 -0
- package/dist/runtime/components/aware/ACollapsible.vue +45 -0
- package/dist/runtime/components/aware/ACollapsible.vue.d.ts +25 -0
- package/dist/runtime/components/aware/AColorPicker.d.vue.ts +15 -0
- package/dist/runtime/components/aware/AColorPicker.vue +48 -0
- package/dist/runtime/components/aware/AColorPicker.vue.d.ts +15 -0
- package/dist/runtime/components/aware/ACommandPalette.d.vue.ts +33 -0
- package/dist/runtime/components/aware/ACommandPalette.vue +123 -0
- package/dist/runtime/components/aware/ACommandPalette.vue.d.ts +33 -0
- package/dist/runtime/components/aware/AContextMenu.d.vue.ts +25 -0
- package/dist/runtime/components/aware/AContextMenu.vue +63 -0
- package/dist/runtime/components/aware/AContextMenu.vue.d.ts +25 -0
- package/dist/runtime/components/aware/ADrawer.d.vue.ts +25 -0
- package/dist/runtime/components/aware/ADrawer.vue +57 -0
- package/dist/runtime/components/aware/ADrawer.vue.d.ts +25 -0
- package/dist/runtime/components/aware/ADropdownMenu.d.vue.ts +25 -0
- package/dist/runtime/components/aware/ADropdownMenu.vue +63 -0
- package/dist/runtime/components/aware/ADropdownMenu.vue.d.ts +25 -0
- package/dist/runtime/components/aware/AFileUpload.d.vue.ts +27 -0
- package/dist/runtime/components/aware/AFileUpload.vue +67 -0
- package/dist/runtime/components/aware/AFileUpload.vue.d.ts +27 -0
- package/dist/runtime/components/aware/AFollowBar.d.vue.ts +21 -0
- package/dist/runtime/components/aware/AFollowBar.vue +62 -0
- package/dist/runtime/components/aware/AFollowBar.vue.d.ts +21 -0
- package/dist/runtime/components/aware/AFollowScroll.d.vue.ts +7 -0
- package/dist/runtime/components/aware/AFollowScroll.vue +17 -0
- package/dist/runtime/components/aware/AFollowScroll.vue.d.ts +7 -0
- package/dist/runtime/components/aware/AFormSync.d.vue.ts +21 -0
- package/dist/runtime/components/aware/AFormSync.vue +52 -0
- package/dist/runtime/components/aware/AFormSync.vue.d.ts +21 -0
- package/dist/runtime/components/aware/AGlobalFocusLayer.d.vue.ts +3 -0
- package/dist/runtime/components/aware/AGlobalFocusLayer.vue +90 -0
- package/dist/runtime/components/aware/AGlobalFocusLayer.vue.d.ts +3 -0
- package/dist/runtime/components/aware/AHoverItem.d.vue.ts +27 -0
- package/dist/runtime/components/aware/AHoverItem.vue +124 -0
- package/dist/runtime/components/aware/AHoverItem.vue.d.ts +27 -0
- package/dist/runtime/components/aware/AInput.d.vue.ts +12 -2
- package/dist/runtime/components/aware/AInput.vue +72 -19
- package/dist/runtime/components/aware/AInput.vue.d.ts +12 -2
- package/dist/runtime/components/aware/AInputMenu.d.vue.ts +17 -0
- package/dist/runtime/components/aware/AInputMenu.vue +138 -0
- package/dist/runtime/components/aware/AInputMenu.vue.d.ts +17 -0
- package/dist/runtime/components/aware/AInputNumber.d.vue.ts +15 -0
- package/dist/runtime/components/aware/AInputNumber.vue +67 -0
- package/dist/runtime/components/aware/AInputNumber.vue.d.ts +15 -0
- package/dist/runtime/components/aware/AInputTags.d.vue.ts +15 -0
- package/dist/runtime/components/aware/AInputTags.vue +67 -0
- package/dist/runtime/components/aware/AInputTags.vue.d.ts +15 -0
- package/dist/runtime/components/aware/AKeyHint.d.vue.ts +3 -0
- package/dist/runtime/components/aware/AKeyHint.vue +23 -0
- package/dist/runtime/components/aware/AKeyHint.vue.d.ts +3 -0
- package/dist/runtime/components/aware/AMedia.d.vue.ts +19 -0
- package/dist/runtime/components/aware/AMedia.vue +85 -0
- package/dist/runtime/components/aware/AMedia.vue.d.ts +19 -0
- package/dist/runtime/components/aware/AModal.d.vue.ts +33 -0
- package/dist/runtime/components/aware/AModal.vue +110 -0
- package/dist/runtime/components/aware/AModal.vue.d.ts +33 -0
- package/dist/runtime/components/aware/ANavigationMenu.d.vue.ts +25 -0
- package/dist/runtime/components/aware/ANavigationMenu.vue +82 -0
- package/dist/runtime/components/aware/ANavigationMenu.vue.d.ts +25 -0
- package/dist/runtime/components/aware/APagination.d.vue.ts +13 -0
- package/dist/runtime/components/aware/APagination.vue +53 -0
- package/dist/runtime/components/aware/APagination.vue.d.ts +13 -0
- package/dist/runtime/components/aware/APeerCaretLayer.d.vue.ts +10 -0
- package/dist/runtime/components/aware/APeerCaretLayer.vue +133 -0
- package/dist/runtime/components/aware/APeerCaretLayer.vue.d.ts +10 -0
- package/dist/runtime/components/aware/APinInput.d.vue.ts +15 -0
- package/dist/runtime/components/aware/APinInput.vue +48 -0
- package/dist/runtime/components/aware/APinInput.vue.d.ts +15 -0
- package/dist/runtime/components/aware/APopover.d.vue.ts +25 -0
- package/dist/runtime/components/aware/APopover.vue +57 -0
- package/dist/runtime/components/aware/APopover.vue.d.ts +25 -0
- package/dist/runtime/components/aware/APresenceBlobs.d.vue.ts +3 -0
- package/dist/runtime/components/aware/APresenceBlobs.vue +69 -0
- package/dist/runtime/components/aware/APresenceBlobs.vue.d.ts +3 -0
- package/dist/runtime/components/aware/APresenceCursors.d.vue.ts +20 -0
- package/dist/runtime/components/aware/APresenceCursors.vue +47 -0
- package/dist/runtime/components/aware/APresenceCursors.vue.d.ts +20 -0
- package/dist/runtime/components/aware/ARadioGroup.d.vue.ts +27 -0
- package/dist/runtime/components/aware/ARadioGroup.vue +86 -0
- package/dist/runtime/components/aware/ARadioGroup.vue.d.ts +27 -0
- package/dist/runtime/components/aware/AScroll.d.vue.ts +25 -0
- package/dist/runtime/components/aware/AScroll.vue +87 -0
- package/dist/runtime/components/aware/AScroll.vue.d.ts +25 -0
- package/dist/runtime/components/aware/ASelect.d.vue.ts +12 -2
- package/dist/runtime/components/aware/ASelect.vue +146 -22
- package/dist/runtime/components/aware/ASelect.vue.d.ts +12 -2
- package/dist/runtime/components/aware/ASelectMenu.d.vue.ts +17 -0
- package/dist/runtime/components/aware/ASelectMenu.vue +139 -0
- package/dist/runtime/components/aware/ASelectMenu.vue.d.ts +17 -0
- package/dist/runtime/components/aware/ASlideover.d.vue.ts +33 -0
- package/dist/runtime/components/aware/ASlideover.vue +110 -0
- package/dist/runtime/components/aware/ASlideover.vue.d.ts +33 -0
- package/dist/runtime/components/aware/ASlider.d.vue.ts +19 -0
- package/dist/runtime/components/aware/ASlider.vue +77 -0
- package/dist/runtime/components/aware/ASlider.vue.d.ts +19 -0
- package/dist/runtime/components/aware/AStepper.d.vue.ts +25 -0
- package/dist/runtime/components/aware/AStepper.vue +82 -0
- package/dist/runtime/components/aware/AStepper.vue.d.ts +25 -0
- package/dist/runtime/components/aware/ASwitch.d.vue.ts +11 -0
- package/dist/runtime/components/aware/ASwitch.vue +75 -0
- package/dist/runtime/components/aware/ASwitch.vue.d.ts +11 -0
- package/dist/runtime/components/aware/ATable.d.vue.ts +23 -0
- package/dist/runtime/components/aware/ATable.vue +97 -0
- package/dist/runtime/components/aware/ATable.vue.d.ts +23 -0
- package/dist/runtime/components/aware/ATabs.d.vue.ts +27 -0
- package/dist/runtime/components/aware/ATabs.vue +128 -0
- package/dist/runtime/components/aware/ATabs.vue.d.ts +27 -0
- package/dist/runtime/components/aware/ATextarea.d.vue.ts +12 -2
- package/dist/runtime/components/aware/ATextarea.vue +72 -19
- package/dist/runtime/components/aware/ATextarea.vue.d.ts +12 -2
- package/dist/runtime/components/aware/AToggleGroup.d.vue.ts +27 -0
- package/dist/runtime/components/aware/AToggleGroup.vue +79 -0
- package/dist/runtime/components/aware/AToggleGroup.vue.d.ts +27 -0
- package/dist/runtime/components/aware/ATree.d.vue.ts +27 -0
- package/dist/runtime/components/aware/ATree.vue +111 -0
- package/dist/runtime/components/aware/ATree.vue.d.ts +27 -0
- package/dist/runtime/components/chat/AChatPanel.d.vue.ts +6 -6
- package/dist/runtime/components/chat/AChatPanel.vue.d.ts +6 -6
- package/dist/runtime/components/chat/ANodeChatPanel.d.vue.ts +42 -0
- package/dist/runtime/components/chat/ANodeChatPanel.vue +53 -0
- package/dist/runtime/components/chat/ANodeChatPanel.vue.d.ts +42 -0
- package/dist/runtime/components/docs/ADocsSearch.d.vue.ts +2 -2
- package/dist/runtime/components/docs/ADocsSearch.vue.d.ts +2 -2
- package/dist/runtime/components/docs/ADocsSearchButton.d.vue.ts +3 -3
- package/dist/runtime/components/docs/ADocsSearchButton.vue.d.ts +3 -3
- package/dist/runtime/components/editor/AEditorRedoButton.d.vue.ts +26 -0
- package/dist/runtime/components/editor/AEditorRedoButton.vue +38 -0
- package/dist/runtime/components/editor/AEditorRedoButton.vue.d.ts +26 -0
- package/dist/runtime/components/editor/AEditorUndoButton.d.vue.ts +26 -0
- package/dist/runtime/components/editor/AEditorUndoButton.vue +38 -0
- package/dist/runtime/components/editor/AEditorUndoButton.vue.d.ts +26 -0
- package/dist/runtime/components/editor/AIconPickerPopover.d.vue.ts +24 -0
- package/dist/runtime/components/editor/AIconPickerPopover.vue +113 -0
- package/dist/runtime/components/editor/AIconPickerPopover.vue.d.ts +24 -0
- package/dist/runtime/components/editor/ANodeInlineLabel.d.vue.ts +24 -0
- package/dist/runtime/components/editor/ANodeInlineLabel.vue +101 -0
- package/dist/runtime/components/editor/ANodeInlineLabel.vue.d.ts +24 -0
- package/dist/runtime/components/renderers/ADocLoadError.d.vue.ts +3 -0
- package/dist/runtime/components/renderers/ADocLoadError.vue +11 -0
- package/dist/runtime/components/renderers/ADocLoadError.vue.d.ts +3 -0
- package/dist/runtime/components/renderers/ADocLoadingSkeleton.d.vue.ts +3 -0
- package/dist/runtime/components/renderers/ADocLoadingSkeleton.vue +5 -0
- package/dist/runtime/components/renderers/ADocLoadingSkeleton.vue.d.ts +3 -0
- package/dist/runtime/components/renderers/AOverviewRenderer.d.vue.ts +22 -0
- package/dist/runtime/components/renderers/AOverviewRenderer.vue +1041 -0
- package/dist/runtime/components/renderers/AOverviewRenderer.vue.d.ts +22 -0
- package/dist/runtime/components/renderers/AProseRenderer.d.vue.ts +23 -0
- package/dist/runtime/components/renderers/AProseRenderer.vue +31 -0
- package/dist/runtime/components/renderers/AProseRenderer.vue.d.ts +23 -0
- package/dist/runtime/components/renderers/ASheetsRenderer.client.d.vue.ts +19 -0
- package/dist/runtime/components/renderers/ASheetsRenderer.client.vue +865 -0
- package/dist/runtime/components/renderers/ASheetsRenderer.client.vue.d.ts +19 -0
- package/dist/runtime/components/renderers/calendar/ACalendarDayCell.d.vue.ts +14 -0
- package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue +45 -15
- package/dist/runtime/components/renderers/calendar/ACalendarDayCell.vue.d.ts +14 -0
- package/dist/runtime/components/renderers/calendar/ACalendarDayView.d.vue.ts +15 -0
- package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue +93 -20
- package/dist/runtime/components/renderers/calendar/ACalendarDayView.vue.d.ts +15 -0
- package/dist/runtime/components/renderers/calendar/ACalendarEventChip.d.vue.ts +9 -0
- package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue +31 -2
- package/dist/runtime/components/renderers/calendar/ACalendarEventChip.vue.d.ts +9 -0
- package/dist/runtime/components/renderers/calendar/ACalendarWeekView.d.vue.ts +15 -0
- package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue +94 -21
- package/dist/runtime/components/renderers/calendar/ACalendarWeekView.vue.d.ts +15 -0
- package/dist/runtime/components/renderers/sheets/ASheetsCell.d.vue.ts +45 -0
- package/dist/runtime/components/renderers/sheets/ASheetsCell.vue +123 -0
- package/dist/runtime/components/renderers/sheets/ASheetsCell.vue.d.ts +45 -0
- package/dist/runtime/components/renderers/sheets/ASheetsGrid.d.vue.ts +111 -0
- package/dist/runtime/components/renderers/sheets/ASheetsGrid.vue +737 -0
- package/dist/runtime/components/renderers/sheets/ASheetsGrid.vue.d.ts +111 -0
- package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.d.vue.ts +26 -0
- package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.vue +100 -0
- package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.vue.d.ts +26 -0
- package/dist/runtime/components/renderers/sheets/ASheetsToolbar.d.vue.ts +48 -0
- package/dist/runtime/components/renderers/sheets/ASheetsToolbar.vue +243 -0
- package/dist/runtime/components/renderers/sheets/ASheetsToolbar.vue.d.ts +48 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellColor.d.vue.ts +1 -0
- package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue +13 -32
- package/dist/runtime/components/renderers/table/cells/ATableCellColor.vue.d.ts +1 -0
- package/dist/runtime/components/renderers/timeline/ATimelineBar.d.vue.ts +6 -0
- package/dist/runtime/components/renderers/timeline/ATimelineBar.vue +34 -4
- package/dist/runtime/components/renderers/timeline/ATimelineBar.vue.d.ts +6 -0
- package/dist/runtime/components/renderers/timeline/ATimelineBarArea.d.vue.ts +16 -0
- package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue +14 -3
- package/dist/runtime/components/renderers/timeline/ATimelineBarArea.vue.d.ts +16 -0
- package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.d.vue.ts +13 -1
- package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue +114 -47
- package/dist/runtime/components/renderers/timeline/ATimelineLabelPanel.vue.d.ts +13 -1
- package/dist/runtime/components/renderers/timeline/ATimelineMilestone.d.vue.ts +4 -0
- package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue +21 -4
- package/dist/runtime/components/renderers/timeline/ATimelineMilestone.vue.d.ts +4 -0
- package/dist/runtime/components/renderers/timeline/ATimelineToolbar.d.vue.ts +2 -2
- package/dist/runtime/components/renderers/timeline/ATimelineToolbar.vue.d.ts +2 -2
- package/dist/runtime/components/settings/ASettingsSpacesPanel.vue +7 -25
- package/dist/runtime/components/shell/ADocPanelSettings.d.vue.ts +3 -3
- package/dist/runtime/components/shell/ADocPanelSettings.vue.d.ts +3 -3
- package/dist/runtime/components/shell/ASyncStatus.d.vue.ts +1 -1
- package/dist/runtime/components/shell/ASyncStatus.vue.d.ts +1 -1
- package/dist/runtime/components/shell/AUserMenu.d.vue.ts +2 -2
- package/dist/runtime/components/shell/AUserMenu.vue.d.ts +2 -2
- package/dist/runtime/components/shell/AWelcomeScreen.d.vue.ts +1 -1
- package/dist/runtime/components/shell/AWelcomeScreen.vue.d.ts +1 -1
- package/dist/runtime/composables/useAACaret.d.ts +29 -0
- package/dist/runtime/composables/useAACaret.js +64 -0
- package/dist/runtime/composables/useAAEphemeral.d.ts +32 -0
- package/dist/runtime/composables/useAAEphemeral.js +33 -0
- package/dist/runtime/composables/useAAField.d.ts +10 -2
- package/dist/runtime/composables/useAAField.js +31 -2
- package/dist/runtime/composables/useAAFieldValue.d.ts +26 -0
- package/dist/runtime/composables/useAAFieldValue.js +32 -0
- package/dist/runtime/composables/useAAFocus.d.ts +68 -0
- package/dist/runtime/composables/useAAFocus.js +174 -0
- package/dist/runtime/composables/useAAFollowAnchor.d.ts +25 -0
- package/dist/runtime/composables/useAAFollowAnchor.js +69 -0
- package/dist/runtime/composables/useAAFollowPeer.d.ts +29 -0
- package/dist/runtime/composables/useAAFollowPeer.js +75 -0
- package/dist/runtime/composables/useAAKey.d.ts +22 -0
- package/dist/runtime/composables/useAAKey.js +24 -0
- package/dist/runtime/composables/useAAPointer.d.ts +30 -0
- package/dist/runtime/composables/useAAPointer.js +53 -0
- package/dist/runtime/composables/useAAUIState.d.ts +29 -0
- package/dist/runtime/composables/useAAUIState.js +28 -0
- package/dist/runtime/composables/useAAViewport.d.ts +22 -0
- package/dist/runtime/composables/useAAViewport.js +50 -0
- package/dist/runtime/composables/useAbraAdmin.d.ts +54 -0
- package/dist/runtime/composables/useAbraAdmin.js +115 -0
- package/dist/runtime/composables/useAbracadabraAuth.d.ts +8 -0
- package/dist/runtime/composables/useAbracadabraAuth.js +8 -0
- package/dist/runtime/composables/useAggregatedPresence.d.ts +23 -0
- package/dist/runtime/composables/useAggregatedPresence.js +140 -0
- package/dist/runtime/composables/useChat.d.ts +16 -2
- package/dist/runtime/composables/useChat.js +257 -66
- package/dist/runtime/composables/useChatUsers.d.ts +2 -0
- package/dist/runtime/composables/useChatUsers.js +2 -1
- package/dist/runtime/composables/useDocLookup.d.ts +4 -0
- package/dist/runtime/composables/useDocLookup.js +25 -0
- package/dist/runtime/composables/useDocSnapshots.d.ts +79 -0
- package/dist/runtime/composables/useDocSnapshots.js +234 -0
- package/dist/runtime/composables/useEditorDragHandle.d.ts +7 -0
- package/dist/runtime/composables/useEditorDragHandle.js +19 -1
- package/dist/runtime/composables/useEditorSuggestions.js +27 -1
- package/dist/runtime/composables/useEditorToolbar.js +9 -1
- package/dist/runtime/composables/useEmailVerification.d.ts +33 -0
- package/dist/runtime/composables/useEmailVerification.js +58 -0
- package/dist/runtime/composables/useIdentityDoc.js +0 -3
- package/dist/runtime/composables/useItemPresence.d.ts +47 -0
- package/dist/runtime/composables/useItemPresence.js +73 -0
- package/dist/runtime/composables/useResizableWidth.d.ts +24 -0
- package/dist/runtime/composables/useResizableWidth.js +87 -0
- package/dist/runtime/composables/useServerInfo.d.ts +17 -2
- package/dist/runtime/composables/useServerInfo.js +30 -6
- package/dist/runtime/composables/useServerSearch.d.ts +36 -0
- package/dist/runtime/composables/useServerSearch.js +91 -0
- package/dist/runtime/composables/useServerTrash.d.ts +67 -0
- package/dist/runtime/composables/useServerTrash.js +128 -0
- package/dist/runtime/composables/useSheetsClipboard.d.ts +42 -0
- package/dist/runtime/composables/useSheetsClipboard.js +109 -0
- package/dist/runtime/composables/useSheetsFormulas.d.ts +38 -0
- package/dist/runtime/composables/useSheetsFormulas.js +725 -0
- package/dist/runtime/composables/useSheetsSelection.d.ts +68 -0
- package/dist/runtime/composables/useSheetsSelection.js +390 -0
- package/dist/runtime/composables/useSheetsView.d.ts +31 -0
- package/dist/runtime/composables/useSheetsView.js +77 -0
- package/dist/runtime/composables/useSpaceConnections.d.ts +43 -0
- package/dist/runtime/composables/useSpaceConnections.js +72 -0
- package/dist/runtime/composables/useSpaces.d.ts +1 -3
- package/dist/runtime/composables/useSpaces.js +2 -5
- package/dist/runtime/composables/useTiptapHistory.d.ts +22 -0
- package/dist/runtime/composables/useTiptapHistory.js +12 -0
- package/dist/runtime/composables/useTreeExpansion.d.ts +28 -0
- package/dist/runtime/composables/useTreeExpansion.js +94 -0
- package/dist/runtime/composables/useYDoc.js +12 -1
- package/dist/runtime/extensions/button.d.ts +3 -0
- package/dist/runtime/extensions/button.js +62 -0
- package/dist/runtime/extensions/color-swatch.d.ts +2 -0
- package/dist/runtime/extensions/color-swatch.js +34 -0
- package/dist/runtime/extensions/diff.d.ts +2 -0
- package/dist/runtime/extensions/diff.js +40 -0
- package/dist/runtime/extensions/divider.d.ts +2 -0
- package/dist/runtime/extensions/divider.js +33 -0
- package/dist/runtime/extensions/embed.d.ts +2 -0
- package/dist/runtime/extensions/embed.js +40 -0
- package/dist/runtime/extensions/figure.d.ts +2 -0
- package/dist/runtime/extensions/figure.js +49 -0
- package/dist/runtime/extensions/math.d.ts +15 -0
- package/dist/runtime/extensions/math.js +66 -0
- package/dist/runtime/extensions/progress.d.ts +2 -0
- package/dist/runtime/extensions/progress.js +43 -0
- package/dist/runtime/extensions/quote.d.ts +2 -0
- package/dist/runtime/extensions/quote.js +39 -0
- package/dist/runtime/extensions/spoiler.d.ts +2 -0
- package/dist/runtime/extensions/spoiler.js +36 -0
- package/dist/runtime/extensions/stat.d.ts +3 -0
- package/dist/runtime/extensions/stat.js +58 -0
- package/dist/runtime/extensions/svg-embed.d.ts +23 -0
- package/dist/runtime/extensions/svg-embed.js +33 -0
- package/dist/runtime/extensions/video.d.ts +2 -0
- package/dist/runtime/extensions/video.js +40 -0
- package/dist/runtime/extensions/views/ButtonGroupView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/ButtonGroupView.vue +25 -0
- package/dist/runtime/extensions/views/ButtonGroupView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/ButtonView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/ButtonView.vue +171 -0
- package/dist/runtime/extensions/views/ButtonView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/ColorSwatchView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/ColorSwatchView.vue +134 -0
- package/dist/runtime/extensions/views/ColorSwatchView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/DiffView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/DiffView.vue +163 -0
- package/dist/runtime/extensions/views/DiffView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/DividerView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/DividerView.vue +40 -0
- package/dist/runtime/extensions/views/DividerView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/EmbedView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/EmbedView.vue +166 -0
- package/dist/runtime/extensions/views/EmbedView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/FigureView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/FigureView.vue +122 -0
- package/dist/runtime/extensions/views/FigureView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/FileNodeView.vue +21 -24
- package/dist/runtime/extensions/views/MathBlockView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/MathBlockView.vue +151 -0
- package/dist/runtime/extensions/views/MathBlockView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/MathInlineView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/MathInlineView.vue +149 -0
- package/dist/runtime/extensions/views/MathInlineView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/MetaFieldView.vue +1129 -550
- package/dist/runtime/extensions/views/ProgressView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/ProgressView.vue +156 -0
- package/dist/runtime/extensions/views/ProgressView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/QuoteView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/QuoteView.vue +128 -0
- package/dist/runtime/extensions/views/QuoteView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/SpoilerView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/SpoilerView.vue +62 -0
- package/dist/runtime/extensions/views/SpoilerView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/StatGroupView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/StatGroupView.vue +25 -0
- package/dist/runtime/extensions/views/StatGroupView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/StatView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/StatView.vue +89 -0
- package/dist/runtime/extensions/views/StatView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/SvgEmbedView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/SvgEmbedView.vue +120 -0
- package/dist/runtime/extensions/views/SvgEmbedView.vue.d.ts +4 -0
- package/dist/runtime/extensions/views/VideoView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/VideoView.vue +190 -0
- package/dist/runtime/extensions/views/VideoView.vue.d.ts +4 -0
- package/dist/runtime/locale.d.ts +133 -0
- package/dist/runtime/locale.js +121 -2
- package/dist/runtime/plugin-abracadabra.client.js +233 -36
- package/dist/runtime/plugin-abracadabra.server.js +0 -1
- package/dist/runtime/plugins/core.plugin.js +77 -4
- package/dist/runtime/server/plugins/abracadabra-service.js +84 -6
- package/dist/runtime/server/utils/rpcHandler.d.ts +74 -0
- package/dist/runtime/server/utils/rpcHandler.js +74 -0
- package/dist/runtime/server/utils/spaceManager.js +10 -9
- package/dist/runtime/types.d.ts +63 -10
- package/dist/runtime/utils/awareRingStyle.d.ts +22 -0
- package/dist/runtime/utils/awareRingStyle.js +16 -0
- package/dist/runtime/utils/caretCoordinates.d.ts +41 -0
- package/dist/runtime/utils/caretCoordinates.js +126 -0
- package/dist/runtime/utils/content.d.ts +1 -1
- package/dist/runtime/utils/docTypes.js +44 -13
- package/dist/runtime/utils/domPath.d.ts +42 -0
- package/dist/runtime/utils/domPath.js +89 -0
- package/dist/runtime/utils/loadKatex.d.ts +1 -0
- package/dist/runtime/utils/loadKatex.js +29 -0
- package/dist/runtime/utils/lucideIcons.d.ts +16 -0
- package/dist/runtime/utils/lucideIcons.js +451 -0
- package/dist/runtime/utils/sanitizeSvg.d.ts +19 -0
- package/dist/runtime/utils/sanitizeSvg.js +87 -0
- package/dist/runtime/utils/time.d.ts +15 -0
- package/dist/runtime/utils/time.js +5 -0
- package/dist/types.d.mts +4 -0
- package/package.json +26 -16
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-side RPC v1 handler registry for `@abraca/nuxt`.
|
|
3
|
+
*
|
|
4
|
+
* Wraps `provider.rpc.handle(...)` from `@abraca/dabra` with a Nuxt-flavoured
|
|
5
|
+
* shape: schema validation (Zod-compatible — anything with `.parse()`),
|
|
6
|
+
* structured logging, and lifecycle hooks. Handlers register against the
|
|
7
|
+
* service provider's root-doc subscription, which is where service-role
|
|
8
|
+
* runners advertise capabilities.
|
|
9
|
+
*
|
|
10
|
+
* Usage from a Nitro plugin:
|
|
11
|
+
*
|
|
12
|
+
* export default defineNitroPlugin((nitroApp) => {
|
|
13
|
+
* nitroApp.hooks.hook('abracadabra:before-runners', () => {
|
|
14
|
+
* registerServerPlugin({
|
|
15
|
+
* name: 'my-plugin',
|
|
16
|
+
* serverRunners: [
|
|
17
|
+
* defineRpcRunner({
|
|
18
|
+
* handlers: [
|
|
19
|
+
* defineRpcHandler({
|
|
20
|
+
* method: 'ai.summarize@1',
|
|
21
|
+
* schema: z.object({ docId: z.string() }),
|
|
22
|
+
* async handler(args, ctx) {
|
|
23
|
+
* return await summarize(args.docId)
|
|
24
|
+
* },
|
|
25
|
+
* }),
|
|
26
|
+
* ],
|
|
27
|
+
* }),
|
|
28
|
+
* ],
|
|
29
|
+
* })
|
|
30
|
+
* })
|
|
31
|
+
* })
|
|
32
|
+
*/
|
|
33
|
+
import type { RpcHandlerContext } from '@abraca/dabra';
|
|
34
|
+
import { RpcError as RpcErrorClass } from '@abraca/dabra';
|
|
35
|
+
import type { ServerRunnerDefinition, ServerRunnerContext } from '../../types.js';
|
|
36
|
+
/** Anything with a `.parse(value): T` method — Zod, Valibot, ArkType, … */
|
|
37
|
+
export interface RpcSchema<T> {
|
|
38
|
+
parse(value: unknown): T;
|
|
39
|
+
}
|
|
40
|
+
export interface RpcHandlerDefinition<TArgs = unknown, TResult = unknown> {
|
|
41
|
+
/** Method name. Convention: `<namespace>.<verb>@<version>`, e.g. `ai.summarize@1`. */
|
|
42
|
+
method: string;
|
|
43
|
+
/** Optional schema for `args`. Validation failure → `SCHEMA` error result. */
|
|
44
|
+
schema?: RpcSchema<TArgs>;
|
|
45
|
+
/**
|
|
46
|
+
* The actual handler. Throw an `RpcError` for typed failures; any other
|
|
47
|
+
* thrown value becomes `INTERNAL`. Returning an async generator turns each
|
|
48
|
+
* `yield` into a `rpc:progress` frame; the generator's return value is the
|
|
49
|
+
* final result.
|
|
50
|
+
*/
|
|
51
|
+
handler: (args: TArgs, ctx: RpcHandlerContext) => TResult | Promise<TResult> | AsyncGenerator<unknown, TResult, void>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Define a single RPC handler. The return value is consumed by
|
|
55
|
+
* `defineRpcRunner({ handlers })`.
|
|
56
|
+
*/
|
|
57
|
+
export declare function defineRpcHandler<TArgs, TResult>(def: RpcHandlerDefinition<TArgs, TResult>): RpcHandlerDefinition<TArgs, TResult>;
|
|
58
|
+
export interface RpcRunnerOptions {
|
|
59
|
+
/** Optional unique runner name (defaults to `abracadabra:rpc`). */
|
|
60
|
+
name?: string;
|
|
61
|
+
handlers: RpcHandlerDefinition<any, any>[];
|
|
62
|
+
/** Called once before any handler is registered. */
|
|
63
|
+
onStart?: (ctx: ServerRunnerContext) => void | Promise<void>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Define a server runner that wires every handler to the root provider's
|
|
67
|
+
* RPC client and unregisters them on shutdown.
|
|
68
|
+
*
|
|
69
|
+
* Returns a `ServerRunnerDefinition` you can list under
|
|
70
|
+
* `AbracadabraPlugin.serverRunners`.
|
|
71
|
+
*/
|
|
72
|
+
export declare function defineRpcRunner(options: RpcRunnerOptions): ServerRunnerDefinition;
|
|
73
|
+
export { RpcErrorClass as RpcError };
|
|
74
|
+
export type { RpcHandler, RpcHandlerContext } from '@abraca/dabra';
|
|
@@ -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
|
})[];
|