@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,217 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, onBeforeUnmount, ref, watch } from "vue";
|
|
3
|
+
import { useAbracadabra } from "../composables/useAbracadabra";
|
|
4
|
+
import { useAbraLocale } from "../composables/useAbraLocale";
|
|
5
|
+
const props = defineProps({
|
|
6
|
+
collapsed: { type: Boolean, required: false, default: false },
|
|
7
|
+
labels: { type: Object, required: false }
|
|
8
|
+
});
|
|
9
|
+
const locale = computed(() => useAbraLocale("offlineSync", props.labels));
|
|
10
|
+
const {
|
|
11
|
+
status,
|
|
12
|
+
synced,
|
|
13
|
+
isReady,
|
|
14
|
+
unsyncedChanges,
|
|
15
|
+
connectionError,
|
|
16
|
+
currentServerUrl,
|
|
17
|
+
reconnect
|
|
18
|
+
} = useAbracadabra();
|
|
19
|
+
const lastSyncedAt = ref(null);
|
|
20
|
+
watch(synced, (s) => {
|
|
21
|
+
if (s) lastSyncedAt.value = Date.now();
|
|
22
|
+
}, { immediate: true });
|
|
23
|
+
const now = ref(Date.now());
|
|
24
|
+
const _tick = setInterval(() => {
|
|
25
|
+
now.value = Date.now();
|
|
26
|
+
}, 3e4);
|
|
27
|
+
onBeforeUnmount(() => clearInterval(_tick));
|
|
28
|
+
const lastSyncedLabel = computed(() => {
|
|
29
|
+
const t = lastSyncedAt.value;
|
|
30
|
+
if (!t) return locale.value.never;
|
|
31
|
+
const elapsed = Math.max(0, now.value - t);
|
|
32
|
+
if (elapsed < 1e4) return locale.value.justNow;
|
|
33
|
+
if (elapsed < 6e4) return `${Math.floor(elapsed / 1e3)}${locale.value.secondsAgo}`;
|
|
34
|
+
if (elapsed < 60 * 6e4) return `${Math.floor(elapsed / 6e4)}${locale.value.minutesAgo}`;
|
|
35
|
+
if (elapsed < 24 * 60 * 6e4) return `${Math.floor(elapsed / 36e5)}${locale.value.hoursAgo}`;
|
|
36
|
+
return `${Math.floor(elapsed / 864e5)}${locale.value.daysAgo}`;
|
|
37
|
+
});
|
|
38
|
+
const state = computed(() => {
|
|
39
|
+
const pending = unsyncedChanges.value ?? 0;
|
|
40
|
+
const pendingLabel = pending === 1 ? locale.value.pending : locale.value.pendingPlural;
|
|
41
|
+
if (connectionError.value) {
|
|
42
|
+
return {
|
|
43
|
+
tone: "error",
|
|
44
|
+
icon: "i-lucide-cloud-alert",
|
|
45
|
+
pulse: false,
|
|
46
|
+
label: locale.value.couldntSync,
|
|
47
|
+
headline: locale.value.couldntSync
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
if (status.value === "connecting") {
|
|
51
|
+
return {
|
|
52
|
+
tone: "warning",
|
|
53
|
+
icon: "i-lucide-cloud",
|
|
54
|
+
pulse: true,
|
|
55
|
+
label: locale.value.reconnecting,
|
|
56
|
+
headline: locale.value.reconnecting
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
if (status.value !== "connected") {
|
|
60
|
+
const headline = pending > 0 ? `${locale.value.workingOffline} \xB7 ${pending} ${pendingLabel}` : locale.value.workingOffline;
|
|
61
|
+
return {
|
|
62
|
+
tone: "neutral",
|
|
63
|
+
icon: "i-lucide-cloud-off",
|
|
64
|
+
pulse: false,
|
|
65
|
+
label: pending > 0 ? `${locale.value.workingOffline} \xB7 ${pending}` : locale.value.workingOffline,
|
|
66
|
+
headline
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
if (pending > 0) {
|
|
70
|
+
return {
|
|
71
|
+
tone: "primary",
|
|
72
|
+
icon: "i-lucide-cloud-upload",
|
|
73
|
+
pulse: true,
|
|
74
|
+
label: `${locale.value.saving} \xB7 ${pending}`,
|
|
75
|
+
headline: `${locale.value.saving} ${pending} ${pendingLabel}`
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (!synced.value && !isReady.value) {
|
|
79
|
+
return {
|
|
80
|
+
tone: "warning",
|
|
81
|
+
icon: "i-lucide-cloud",
|
|
82
|
+
pulse: true,
|
|
83
|
+
label: locale.value.reconnecting,
|
|
84
|
+
headline: locale.value.reconnecting
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
tone: "success",
|
|
89
|
+
icon: "i-lucide-cloud-check",
|
|
90
|
+
pulse: false,
|
|
91
|
+
label: locale.value.saved,
|
|
92
|
+
headline: locale.value.saved
|
|
93
|
+
};
|
|
94
|
+
});
|
|
95
|
+
const buttonColor = computed(() => state.value.tone === "neutral" ? "neutral" : state.value.tone);
|
|
96
|
+
const open = ref(false);
|
|
97
|
+
function onRetry() {
|
|
98
|
+
reconnect();
|
|
99
|
+
}
|
|
100
|
+
function onForceResync() {
|
|
101
|
+
reconnect();
|
|
102
|
+
}
|
|
103
|
+
function onReload() {
|
|
104
|
+
if (typeof window !== "undefined") window.location.reload();
|
|
105
|
+
}
|
|
106
|
+
const showServer = computed(() => {
|
|
107
|
+
const url = currentServerUrl.value;
|
|
108
|
+
if (!url) return null;
|
|
109
|
+
try {
|
|
110
|
+
return new URL(url).host;
|
|
111
|
+
} catch {
|
|
112
|
+
return url;
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
</script>
|
|
116
|
+
|
|
117
|
+
<template>
|
|
118
|
+
<UPopover v-model:open="open" :content="{ side: 'top', align: 'end' }">
|
|
119
|
+
<UTooltip :text="state.label" :delay-duration="600">
|
|
120
|
+
<UButton
|
|
121
|
+
:color="buttonColor"
|
|
122
|
+
variant="soft"
|
|
123
|
+
size="sm"
|
|
124
|
+
:square="collapsed"
|
|
125
|
+
:class="[
|
|
126
|
+
'aos-trigger',
|
|
127
|
+
collapsed ? 'aos-trigger--collapsed' : 'aos-trigger--expanded'
|
|
128
|
+
]"
|
|
129
|
+
>
|
|
130
|
+
<span class="aos-icon">
|
|
131
|
+
<UIcon :name="state.icon" class="size-4 shrink-0" />
|
|
132
|
+
<span
|
|
133
|
+
v-if="state.pulse"
|
|
134
|
+
:class="['aos-pulse', `aos-pulse--${state.tone}`]"
|
|
135
|
+
aria-hidden="true"
|
|
136
|
+
/>
|
|
137
|
+
</span>
|
|
138
|
+
<span v-if="!collapsed" class="text-xs truncate">{{ state.label }}</span>
|
|
139
|
+
</UButton>
|
|
140
|
+
</UTooltip>
|
|
141
|
+
|
|
142
|
+
<template #content>
|
|
143
|
+
<div class="aos-pop">
|
|
144
|
+
<div class="aos-pop__head">
|
|
145
|
+
<div :class="['aos-pop__dot', `aos-pop__dot--${state.tone}`]">
|
|
146
|
+
<UIcon :name="state.icon" class="size-4" />
|
|
147
|
+
<span
|
|
148
|
+
v-if="state.pulse"
|
|
149
|
+
:class="['aos-pulse aos-pulse--lg', `aos-pulse--${state.tone}`]"
|
|
150
|
+
aria-hidden="true"
|
|
151
|
+
/>
|
|
152
|
+
</div>
|
|
153
|
+
<div class="min-w-0 flex-1">
|
|
154
|
+
<p class="text-sm font-semibold text-highlighted truncate">{{ state.headline }}</p>
|
|
155
|
+
<p class="text-xs text-muted">
|
|
156
|
+
{{ locale.lastSynced }} · {{ lastSyncedLabel }}
|
|
157
|
+
</p>
|
|
158
|
+
</div>
|
|
159
|
+
</div>
|
|
160
|
+
|
|
161
|
+
<USeparator />
|
|
162
|
+
|
|
163
|
+
<dl class="aos-pop__meta">
|
|
164
|
+
<div v-if="showServer" class="aos-pop__row">
|
|
165
|
+
<dt>{{ locale.server }}</dt>
|
|
166
|
+
<dd class="font-mono">{{ showServer }}</dd>
|
|
167
|
+
</div>
|
|
168
|
+
<div v-if="(unsyncedChanges ?? 0) > 0" class="aos-pop__row">
|
|
169
|
+
<dt>{{ unsyncedChanges === 1 ? locale.pending : locale.pendingPlural }}</dt>
|
|
170
|
+
<dd class="font-mono">{{ unsyncedChanges }}</dd>
|
|
171
|
+
</div>
|
|
172
|
+
<div v-if="connectionError" class="aos-pop__row aos-pop__row--err">
|
|
173
|
+
<dt>!</dt>
|
|
174
|
+
<dd class="text-error">{{ connectionError }}</dd>
|
|
175
|
+
</div>
|
|
176
|
+
</dl>
|
|
177
|
+
|
|
178
|
+
<div class="aos-pop__actions">
|
|
179
|
+
<UButton
|
|
180
|
+
v-if="connectionError || status !== 'connected'"
|
|
181
|
+
:label="locale.retry"
|
|
182
|
+
icon="i-lucide-refresh-cw"
|
|
183
|
+
color="primary"
|
|
184
|
+
size="xs"
|
|
185
|
+
block
|
|
186
|
+
@click="onRetry();
|
|
187
|
+
open = false"
|
|
188
|
+
/>
|
|
189
|
+
<UButton
|
|
190
|
+
v-else
|
|
191
|
+
:label="locale.forceResync"
|
|
192
|
+
icon="i-lucide-refresh-cw"
|
|
193
|
+
color="neutral"
|
|
194
|
+
variant="outline"
|
|
195
|
+
size="xs"
|
|
196
|
+
block
|
|
197
|
+
@click="onForceResync();
|
|
198
|
+
open = false"
|
|
199
|
+
/>
|
|
200
|
+
<UButton
|
|
201
|
+
:label="locale.reload"
|
|
202
|
+
icon="i-lucide-rotate-cw"
|
|
203
|
+
color="neutral"
|
|
204
|
+
variant="ghost"
|
|
205
|
+
size="xs"
|
|
206
|
+
block
|
|
207
|
+
@click="onReload"
|
|
208
|
+
/>
|
|
209
|
+
</div>
|
|
210
|
+
</div>
|
|
211
|
+
</template>
|
|
212
|
+
</UPopover>
|
|
213
|
+
</template>
|
|
214
|
+
|
|
215
|
+
<style scoped>
|
|
216
|
+
.aos-trigger--collapsed{height:1.75rem;padding:0;width:1.75rem}.aos-trigger--expanded{max-width:100%;min-width:0}.aos-pop{display:flex;flex-direction:column;gap:.6rem;padding:.75rem;width:18rem}.aos-pop__head{gap:.6rem}.aos-pop__dot,.aos-pop__head{align-items:center;display:flex}.aos-pop__dot{border-radius:999px;flex-shrink:0;height:2rem;justify-content:center;width:2rem}.aos-pop__dot--success{background:color-mix(in srgb,var(--ui-color-success-500) 14%,transparent);color:var(--ui-color-success-600)}.aos-pop__dot--primary{background:color-mix(in srgb,var(--ui-color-primary-500) 14%,transparent);color:var(--ui-color-primary-600)}.aos-pop__dot--warning{background:color-mix(in srgb,var(--ui-color-warning-500) 14%,transparent);color:var(--ui-color-warning-600)}.aos-pop__dot--error{background:color-mix(in srgb,var(--ui-color-error-500) 14%,transparent);color:var(--ui-color-error-600)}.aos-pop__dot--neutral{background:color-mix(in srgb,var(--ui-text-muted) 14%,transparent);color:var(--ui-text-muted)}.aos-pop__meta{display:flex;flex-direction:column;font-size:.75rem;gap:.2rem;margin:0}.aos-pop__row{align-items:baseline;display:flex;gap:.6rem;justify-content:space-between}.aos-pop__row dt{color:var(--ui-text-muted)}.aos-pop__row dd{color:var(--ui-text-highlighted);margin:0;min-width:0;truncate:true;max-width:60%;text-align:right;word-break:break-all}.aos-pop__row--err dt{color:var(--ui-color-error-500);font-weight:600}.aos-pop__actions{display:flex;flex-direction:column;gap:.3rem}.aos-icon{align-items:center;display:inline-flex;justify-content:center}.aos-icon,.aos-pop__dot{position:relative}.aos-pulse{animation:aos-pulse 1.4s ease-out infinite;background:currentColor;border-radius:999px;box-shadow:0 0 0 0 currentColor;height:6px;pointer-events:none;position:absolute;right:-2px;top:-2px;width:6px}.aos-pulse--lg{height:8px;right:-3px;top:-3px;width:8px}.aos-pulse--success{color:var(--ui-color-success-500)}.aos-pulse--primary{color:var(--ui-color-primary-500)}.aos-pulse--warning{color:var(--ui-color-warning-500)}.aos-pulse--error{color:var(--ui-color-error-500)}.aos-pulse--neutral{color:var(--ui-text-muted)}@keyframes aos-pulse{0%{box-shadow:0 0 0 0 currentColor;opacity:1;transform:scale(.6)}60%{box-shadow:0 0 0 6px transparent;opacity:.7;transform:scale(1)}to{box-shadow:0 0 0 0 transparent;opacity:1;transform:scale(.6)}}@media (prefers-reduced-motion:reduce){.aos-pulse{animation:none;box-shadow:none;opacity:.85}}
|
|
217
|
+
</style>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AbracadabraLocale } from '../locale.js';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
/** Render the icon-only square variant for a collapsed sidebar. */
|
|
4
|
+
collapsed?: boolean;
|
|
5
|
+
labels?: Partial<AbracadabraLocale['offlineSync']>;
|
|
6
|
+
};
|
|
7
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
8
|
+
collapsed: boolean;
|
|
9
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
/** The 12/24 word recovery phrase. */
|
|
3
|
+
words: string[];
|
|
4
|
+
/** Whether the words start hidden (click to reveal). Default: true. */
|
|
5
|
+
masked?: boolean;
|
|
6
|
+
/** Show the copy button. Default: true. */
|
|
7
|
+
copyable?: boolean;
|
|
8
|
+
/** Custom warning text shown below the phrase. */
|
|
9
|
+
warning?: string;
|
|
10
|
+
/** Custom copy button label (when not copied). */
|
|
11
|
+
copyLabel?: string;
|
|
12
|
+
/** Custom copy button label after success. */
|
|
13
|
+
copiedLabel?: string;
|
|
14
|
+
/** How long the clipboard stays populated before being cleared, in ms. Default: 30_000. */
|
|
15
|
+
clipboardTtlMs?: number;
|
|
16
|
+
};
|
|
17
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
18
|
+
warning: string;
|
|
19
|
+
masked: boolean;
|
|
20
|
+
copyable: boolean;
|
|
21
|
+
copyLabel: string;
|
|
22
|
+
copiedLabel: string;
|
|
23
|
+
clipboardTtlMs: number;
|
|
24
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
25
|
+
declare const _default: typeof __VLS_export;
|
|
26
|
+
export default _default;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { ref, onUnmounted } from "vue";
|
|
3
|
+
const props = defineProps({
|
|
4
|
+
words: { type: Array, required: true },
|
|
5
|
+
masked: { type: Boolean, required: false, default: true },
|
|
6
|
+
copyable: { type: Boolean, required: false, default: true },
|
|
7
|
+
warning: { type: String, required: false, default: "Anyone with this phrase can take over your account. Store it in a password manager." },
|
|
8
|
+
copyLabel: { type: String, required: false, default: "Copy" },
|
|
9
|
+
copiedLabel: { type: String, required: false, default: "Copied" },
|
|
10
|
+
clipboardTtlMs: { type: Number, required: false, default: 3e4 }
|
|
11
|
+
});
|
|
12
|
+
const revealed = ref(!props.masked);
|
|
13
|
+
const copied = ref(false);
|
|
14
|
+
let clipboardTimer = null;
|
|
15
|
+
async function copyWords() {
|
|
16
|
+
try {
|
|
17
|
+
await navigator.clipboard.writeText(props.words.join(" "));
|
|
18
|
+
copied.value = true;
|
|
19
|
+
if (clipboardTimer) clearTimeout(clipboardTimer);
|
|
20
|
+
clipboardTimer = setTimeout(async () => {
|
|
21
|
+
try {
|
|
22
|
+
await navigator.clipboard.writeText("");
|
|
23
|
+
} catch {
|
|
24
|
+
}
|
|
25
|
+
copied.value = false;
|
|
26
|
+
}, props.clipboardTtlMs);
|
|
27
|
+
} catch (e) {
|
|
28
|
+
if (import.meta.dev) console.warn("[abracadabra] recovery-phrase: clipboard write failed:", e);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
onUnmounted(() => {
|
|
32
|
+
if (clipboardTimer) clearTimeout(clipboardTimer);
|
|
33
|
+
});
|
|
34
|
+
</script>
|
|
35
|
+
|
|
36
|
+
<template>
|
|
37
|
+
<div class="flex flex-col gap-3">
|
|
38
|
+
<div class="relative">
|
|
39
|
+
<div
|
|
40
|
+
class="grid grid-cols-3 gap-2 transition"
|
|
41
|
+
:class="revealed ? '' : 'select-none pointer-events-none filter blur-sm'"
|
|
42
|
+
>
|
|
43
|
+
<div
|
|
44
|
+
v-for="(word, i) in words"
|
|
45
|
+
:key="i"
|
|
46
|
+
class="flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg bg-(--ui-bg-elevated) border border-(--ui-border)"
|
|
47
|
+
>
|
|
48
|
+
<span class="text-xs font-mono text-(--ui-text-muted) w-5 text-right shrink-0">{{ i + 1 }}.</span>
|
|
49
|
+
<span class="text-sm font-mono font-medium text-(--ui-text-highlighted)">{{ word }}</span>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
<button
|
|
53
|
+
v-if="!revealed"
|
|
54
|
+
class="absolute inset-0 flex items-center justify-center gap-2 text-sm text-(--ui-text-muted) hover:text-(--ui-text) bg-(--ui-bg)/50 backdrop-blur-sm rounded-md cursor-pointer"
|
|
55
|
+
type="button"
|
|
56
|
+
@click="revealed = true"
|
|
57
|
+
>
|
|
58
|
+
<UIcon
|
|
59
|
+
name="i-lucide-eye"
|
|
60
|
+
class="size-4"
|
|
61
|
+
/>
|
|
62
|
+
Click to reveal
|
|
63
|
+
</button>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<div
|
|
67
|
+
v-if="copyable || revealed"
|
|
68
|
+
class="flex items-center gap-2 self-center"
|
|
69
|
+
>
|
|
70
|
+
<UButton
|
|
71
|
+
v-if="copyable"
|
|
72
|
+
variant="ghost"
|
|
73
|
+
color="neutral"
|
|
74
|
+
size="sm"
|
|
75
|
+
:icon="copied ? 'i-lucide-check' : 'i-lucide-copy'"
|
|
76
|
+
:label="copied ? copiedLabel : copyLabel"
|
|
77
|
+
@click="copyWords"
|
|
78
|
+
/>
|
|
79
|
+
<UButton
|
|
80
|
+
v-if="masked"
|
|
81
|
+
variant="ghost"
|
|
82
|
+
color="neutral"
|
|
83
|
+
size="sm"
|
|
84
|
+
:icon="revealed ? 'i-lucide-eye-off' : 'i-lucide-eye'"
|
|
85
|
+
:label="revealed ? 'Hide' : 'Reveal'"
|
|
86
|
+
@click="revealed = !revealed"
|
|
87
|
+
/>
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
<p class="text-xs text-(--ui-text-muted) text-center italic">
|
|
91
|
+
{{ warning }}
|
|
92
|
+
</p>
|
|
93
|
+
</div>
|
|
94
|
+
</template>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
/** The 12/24 word recovery phrase. */
|
|
3
|
+
words: string[];
|
|
4
|
+
/** Whether the words start hidden (click to reveal). Default: true. */
|
|
5
|
+
masked?: boolean;
|
|
6
|
+
/** Show the copy button. Default: true. */
|
|
7
|
+
copyable?: boolean;
|
|
8
|
+
/** Custom warning text shown below the phrase. */
|
|
9
|
+
warning?: string;
|
|
10
|
+
/** Custom copy button label (when not copied). */
|
|
11
|
+
copyLabel?: string;
|
|
12
|
+
/** Custom copy button label after success. */
|
|
13
|
+
copiedLabel?: string;
|
|
14
|
+
/** How long the clipboard stays populated before being cleared, in ms. Default: 30_000. */
|
|
15
|
+
clipboardTtlMs?: number;
|
|
16
|
+
};
|
|
17
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
18
|
+
warning: string;
|
|
19
|
+
masked: boolean;
|
|
20
|
+
copyable: boolean;
|
|
21
|
+
copyLabel: string;
|
|
22
|
+
copiedLabel: string;
|
|
23
|
+
clipboardTtlMs: number;
|
|
24
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
25
|
+
declare const _default: typeof __VLS_export;
|
|
26
|
+
export default _default;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface ServerCapability {
|
|
2
|
+
icon: string;
|
|
3
|
+
label: string;
|
|
4
|
+
value: string | boolean;
|
|
5
|
+
}
|
|
6
|
+
type __VLS_Props = {
|
|
7
|
+
open?: boolean;
|
|
8
|
+
/** Server URL override. Defaults to useAbracadabra().currentServerUrl. */
|
|
9
|
+
serverUrl?: string;
|
|
10
|
+
/** Server version string. */
|
|
11
|
+
version?: string;
|
|
12
|
+
/** Whether the connection is currently healthy. */
|
|
13
|
+
connected?: boolean;
|
|
14
|
+
/** Custom capability rows shown in the body. */
|
|
15
|
+
capabilities?: ServerCapability[];
|
|
16
|
+
title?: string;
|
|
17
|
+
/** Show the "Switch server" footer button. Default: false. */
|
|
18
|
+
switchable?: boolean;
|
|
19
|
+
};
|
|
20
|
+
declare var __VLS_26: {
|
|
21
|
+
serverUrl: string;
|
|
22
|
+
version: string | undefined;
|
|
23
|
+
};
|
|
24
|
+
type __VLS_Slots = {} & {
|
|
25
|
+
extra?: (props: typeof __VLS_26) => any;
|
|
26
|
+
};
|
|
27
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
28
|
+
"update:open": (open: boolean) => any;
|
|
29
|
+
reconnect: () => any;
|
|
30
|
+
"switch-server": () => any;
|
|
31
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
32
|
+
"onUpdate:open"?: ((open: boolean) => any) | undefined;
|
|
33
|
+
onReconnect?: (() => any) | undefined;
|
|
34
|
+
"onSwitch-server"?: (() => any) | undefined;
|
|
35
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
36
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
37
|
+
declare const _default: typeof __VLS_export;
|
|
38
|
+
export default _default;
|
|
39
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
40
|
+
new (): {
|
|
41
|
+
$slots: S;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { ref, computed } from "vue";
|
|
3
|
+
import { useAbracadabra } from "../composables/useAbracadabra";
|
|
4
|
+
const props = defineProps({
|
|
5
|
+
open: { type: Boolean, required: false },
|
|
6
|
+
serverUrl: { type: String, required: false },
|
|
7
|
+
version: { type: String, required: false },
|
|
8
|
+
connected: { type: Boolean, required: false },
|
|
9
|
+
capabilities: { type: Array, required: false },
|
|
10
|
+
title: { type: String, required: false },
|
|
11
|
+
switchable: { type: Boolean, required: false }
|
|
12
|
+
});
|
|
13
|
+
const emit = defineEmits(["update:open", "switch-server", "reconnect"]);
|
|
14
|
+
const _abra = useAbracadabra();
|
|
15
|
+
const _serverUrl = computed(
|
|
16
|
+
() => props.serverUrl ?? (_abra.currentServerUrl?.value ?? "")
|
|
17
|
+
);
|
|
18
|
+
const open = computed({
|
|
19
|
+
get: () => !!props.open,
|
|
20
|
+
set: (v) => emit("update:open", v)
|
|
21
|
+
});
|
|
22
|
+
const copied = ref(false);
|
|
23
|
+
async function copyUrl() {
|
|
24
|
+
if (!_serverUrl.value) return;
|
|
25
|
+
try {
|
|
26
|
+
await navigator.clipboard.writeText(_serverUrl.value);
|
|
27
|
+
copied.value = true;
|
|
28
|
+
setTimeout(() => {
|
|
29
|
+
copied.value = false;
|
|
30
|
+
}, 1500);
|
|
31
|
+
} catch (e) {
|
|
32
|
+
if (import.meta.dev) console.warn("[abracadabra] server-info: copy failed:", e);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
</script>
|
|
36
|
+
|
|
37
|
+
<template>
|
|
38
|
+
<UModal
|
|
39
|
+
v-model:open="open"
|
|
40
|
+
:title="title ?? 'Server'"
|
|
41
|
+
:ui="{ content: 'sm:max-w-md' }"
|
|
42
|
+
>
|
|
43
|
+
<template #body>
|
|
44
|
+
<div class="flex flex-col gap-4">
|
|
45
|
+
<div class="flex items-center gap-3">
|
|
46
|
+
<div
|
|
47
|
+
class="size-10 rounded-lg flex items-center justify-center"
|
|
48
|
+
:class="connected ? 'bg-(--ui-success)/10 text-(--ui-success)' : 'bg-(--ui-bg-elevated) text-(--ui-text-muted)'"
|
|
49
|
+
>
|
|
50
|
+
<UIcon
|
|
51
|
+
:name="connected ? 'i-lucide-cloud' : 'i-lucide-cloud-off'"
|
|
52
|
+
class="size-5"
|
|
53
|
+
/>
|
|
54
|
+
</div>
|
|
55
|
+
<div class="flex-1 min-w-0">
|
|
56
|
+
<div class="text-sm font-semibold text-(--ui-text-highlighted) truncate">
|
|
57
|
+
{{ _serverUrl || "No server" }}
|
|
58
|
+
</div>
|
|
59
|
+
<div class="text-xs text-(--ui-text-muted)">
|
|
60
|
+
<span :class="connected ? 'text-(--ui-success)' : ''">
|
|
61
|
+
{{ connected ? "Connected" : "Disconnected" }}
|
|
62
|
+
</span>
|
|
63
|
+
<template v-if="version">
|
|
64
|
+
· v{{ version }}
|
|
65
|
+
</template>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
<UButton
|
|
69
|
+
:icon="copied ? 'i-lucide-check' : 'i-lucide-copy'"
|
|
70
|
+
size="xs"
|
|
71
|
+
variant="ghost"
|
|
72
|
+
color="neutral"
|
|
73
|
+
:disabled="!_serverUrl"
|
|
74
|
+
@click="copyUrl"
|
|
75
|
+
/>
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
<div
|
|
79
|
+
v-if="capabilities?.length"
|
|
80
|
+
class="flex flex-col gap-1"
|
|
81
|
+
>
|
|
82
|
+
<label class="text-xs font-medium text-(--ui-text-muted) px-1">Capabilities</label>
|
|
83
|
+
<div class="rounded-md border border-(--ui-border) overflow-hidden divide-y divide-(--ui-border)">
|
|
84
|
+
<div
|
|
85
|
+
v-for="cap in capabilities"
|
|
86
|
+
:key="cap.label"
|
|
87
|
+
class="flex items-center gap-2.5 px-3 py-2 text-sm bg-(--ui-bg)"
|
|
88
|
+
>
|
|
89
|
+
<UIcon
|
|
90
|
+
:name="cap.icon"
|
|
91
|
+
class="size-4 text-(--ui-text-muted) shrink-0"
|
|
92
|
+
/>
|
|
93
|
+
<span class="flex-1 text-(--ui-text)">{{ cap.label }}</span>
|
|
94
|
+
<span
|
|
95
|
+
v-if="typeof cap.value === 'boolean'"
|
|
96
|
+
class="text-xs"
|
|
97
|
+
:class="cap.value ? 'text-(--ui-success)' : 'text-(--ui-text-dimmed)'"
|
|
98
|
+
>
|
|
99
|
+
{{ cap.value ? "on" : "off" }}
|
|
100
|
+
</span>
|
|
101
|
+
<span
|
|
102
|
+
v-else
|
|
103
|
+
class="text-xs font-mono text-(--ui-text-muted)"
|
|
104
|
+
>
|
|
105
|
+
{{ cap.value }}
|
|
106
|
+
</span>
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
|
|
111
|
+
<slot
|
|
112
|
+
name="extra"
|
|
113
|
+
:server-url="_serverUrl"
|
|
114
|
+
:version="version"
|
|
115
|
+
/>
|
|
116
|
+
</div>
|
|
117
|
+
</template>
|
|
118
|
+
|
|
119
|
+
<template #footer>
|
|
120
|
+
<div class="flex items-center justify-between gap-2 w-full">
|
|
121
|
+
<UButton
|
|
122
|
+
variant="ghost"
|
|
123
|
+
color="neutral"
|
|
124
|
+
size="sm"
|
|
125
|
+
icon="i-lucide-refresh-cw"
|
|
126
|
+
label="Reconnect"
|
|
127
|
+
@click="emit('reconnect')"
|
|
128
|
+
/>
|
|
129
|
+
<div class="flex items-center gap-2">
|
|
130
|
+
<UButton
|
|
131
|
+
v-if="switchable"
|
|
132
|
+
variant="outline"
|
|
133
|
+
color="neutral"
|
|
134
|
+
size="sm"
|
|
135
|
+
icon="i-lucide-arrow-right-left"
|
|
136
|
+
label="Switch server"
|
|
137
|
+
@click="emit('switch-server')"
|
|
138
|
+
/>
|
|
139
|
+
<UButton
|
|
140
|
+
variant="solid"
|
|
141
|
+
color="primary"
|
|
142
|
+
size="sm"
|
|
143
|
+
label="Done"
|
|
144
|
+
@click="open = false"
|
|
145
|
+
/>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
</template>
|
|
149
|
+
</UModal>
|
|
150
|
+
</template>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface ServerCapability {
|
|
2
|
+
icon: string;
|
|
3
|
+
label: string;
|
|
4
|
+
value: string | boolean;
|
|
5
|
+
}
|
|
6
|
+
type __VLS_Props = {
|
|
7
|
+
open?: boolean;
|
|
8
|
+
/** Server URL override. Defaults to useAbracadabra().currentServerUrl. */
|
|
9
|
+
serverUrl?: string;
|
|
10
|
+
/** Server version string. */
|
|
11
|
+
version?: string;
|
|
12
|
+
/** Whether the connection is currently healthy. */
|
|
13
|
+
connected?: boolean;
|
|
14
|
+
/** Custom capability rows shown in the body. */
|
|
15
|
+
capabilities?: ServerCapability[];
|
|
16
|
+
title?: string;
|
|
17
|
+
/** Show the "Switch server" footer button. Default: false. */
|
|
18
|
+
switchable?: boolean;
|
|
19
|
+
};
|
|
20
|
+
declare var __VLS_26: {
|
|
21
|
+
serverUrl: string;
|
|
22
|
+
version: string | undefined;
|
|
23
|
+
};
|
|
24
|
+
type __VLS_Slots = {} & {
|
|
25
|
+
extra?: (props: typeof __VLS_26) => any;
|
|
26
|
+
};
|
|
27
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
28
|
+
"update:open": (open: boolean) => any;
|
|
29
|
+
reconnect: () => any;
|
|
30
|
+
"switch-server": () => any;
|
|
31
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
32
|
+
"onUpdate:open"?: ((open: boolean) => any) | undefined;
|
|
33
|
+
onReconnect?: (() => any) | undefined;
|
|
34
|
+
"onSwitch-server"?: (() => any) | undefined;
|
|
35
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
36
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
37
|
+
declare const _default: typeof __VLS_export;
|
|
38
|
+
export default _default;
|
|
39
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
40
|
+
new (): {
|
|
41
|
+
$slots: S;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
@@ -29,7 +29,7 @@ async function handleCreate() {
|
|
|
29
29
|
description: description.value.trim() || void 0,
|
|
30
30
|
visibility: visibility.value
|
|
31
31
|
});
|
|
32
|
-
emit("created", { id: result.
|
|
32
|
+
emit("created", { id: result.id });
|
|
33
33
|
emit("update:open", false);
|
|
34
34
|
} catch (e) {
|
|
35
35
|
error.value = e?.message ?? "Failed to create space";
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
fieldKey: string;
|
|
3
|
+
awareness?: boolean;
|
|
4
|
+
live?: boolean;
|
|
5
|
+
total?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare var __VLS_9: string, __VLS_10: any, __VLS_27: string, __VLS_28: any;
|
|
8
|
+
type __VLS_Slots = {} & {
|
|
9
|
+
[K in NonNullable<typeof __VLS_9>]?: (props: typeof __VLS_10) => any;
|
|
10
|
+
} & {
|
|
11
|
+
[K in NonNullable<typeof __VLS_27>]?: (props: typeof __VLS_28) => any;
|
|
12
|
+
};
|
|
13
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
14
|
+
awareness: boolean;
|
|
15
|
+
live: boolean;
|
|
16
|
+
total: boolean;
|
|
17
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
19
|
+
declare const _default: typeof __VLS_export;
|
|
20
|
+
export default _default;
|
|
21
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
22
|
+
new (): {
|
|
23
|
+
$slots: S;
|
|
24
|
+
};
|
|
25
|
+
};
|