@abraca/nuxt 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -6
- package/dist/module.d.mts +4 -2
- package/dist/module.json +1 -1
- package/dist/runtime/components/ACodeEditor.d.vue.ts +1 -1
- package/dist/runtime/components/ACodeEditor.vue.d.ts +1 -1
- package/dist/runtime/components/AConnectServerModal.d.vue.ts +2 -2
- package/dist/runtime/components/AConnectServerModal.vue +1 -1
- package/dist/runtime/components/AConnectServerModal.vue.d.ts +2 -2
- package/dist/runtime/components/ADocumentTree.d.vue.ts +8 -1
- package/dist/runtime/components/ADocumentTree.vue +6 -3
- package/dist/runtime/components/ADocumentTree.vue.d.ts +8 -1
- package/dist/runtime/components/AEditor.d.vue.ts +7 -7
- package/dist/runtime/components/AEditor.vue.d.ts +7 -7
- package/dist/runtime/components/AEmailVerifyConfirmModal.d.vue.ts +2 -2
- package/dist/runtime/components/AEmailVerifyConfirmModal.vue.d.ts +2 -2
- package/dist/runtime/components/AIdentityModal.d.vue.ts +2 -2
- package/dist/runtime/components/AIdentityModal.vue.d.ts +2 -2
- package/dist/runtime/components/AInviteRedeemModal.vue +15 -11
- package/dist/runtime/components/AMnemonicLoginModal.d.vue.ts +2 -2
- package/dist/runtime/components/AMnemonicLoginModal.vue.d.ts +2 -2
- package/dist/runtime/components/APasswordChangeModal.d.vue.ts +3 -3
- package/dist/runtime/components/APasswordChangeModal.vue.d.ts +3 -3
- package/dist/runtime/components/APasswordLoginModal.d.vue.ts +4 -4
- package/dist/runtime/components/APasswordLoginModal.vue.d.ts +4 -4
- package/dist/runtime/components/APasswordRegisterModal.d.vue.ts +3 -3
- package/dist/runtime/components/APasswordRegisterModal.vue.d.ts +3 -3
- package/dist/runtime/components/APasswordResetConfirmModal.d.vue.ts +3 -3
- package/dist/runtime/components/APasswordResetConfirmModal.vue.d.ts +3 -3
- package/dist/runtime/components/APasswordResetRequestModal.d.vue.ts +2 -2
- package/dist/runtime/components/APasswordResetRequestModal.vue.d.ts +2 -2
- package/dist/runtime/components/ASetPasswordCard.d.vue.ts +1 -1
- package/dist/runtime/components/ASetPasswordCard.vue.d.ts +1 -1
- package/dist/runtime/components/aware/AArea.d.vue.ts +1 -1
- package/dist/runtime/components/aware/AArea.vue.d.ts +1 -1
- package/dist/runtime/components/aware/ACalendar.d.vue.ts +1 -1
- package/dist/runtime/components/aware/ACalendar.vue.d.ts +1 -1
- package/dist/runtime/components/aware/AFileUpload.d.vue.ts +1 -1
- package/dist/runtime/components/aware/AFileUpload.vue.d.ts +1 -1
- package/dist/runtime/components/aware/AInput.d.vue.ts +1 -1
- package/dist/runtime/components/aware/AInput.vue.d.ts +1 -1
- package/dist/runtime/components/aware/AMedia.d.vue.ts +1 -1
- package/dist/runtime/components/aware/AMedia.vue.d.ts +1 -1
- package/dist/runtime/components/aware/AScroll.d.vue.ts +1 -1
- package/dist/runtime/components/aware/AScroll.vue.d.ts +1 -1
- package/dist/runtime/components/aware/ASlider.d.vue.ts +1 -1
- package/dist/runtime/components/aware/ASlider.vue.d.ts +1 -1
- package/dist/runtime/components/aware/ATable.d.vue.ts +1 -1
- package/dist/runtime/components/aware/ATable.vue.d.ts +1 -1
- package/dist/runtime/components/aware/ATabs.d.vue.ts +1 -1
- package/dist/runtime/components/aware/ATabs.vue.d.ts +1 -1
- package/dist/runtime/components/aware/ATextarea.d.vue.ts +1 -1
- package/dist/runtime/components/aware/ATextarea.vue.d.ts +1 -1
- package/dist/runtime/components/aware/ATree.d.vue.ts +1 -1
- package/dist/runtime/components/aware/ATree.vue.d.ts +1 -1
- package/dist/runtime/components/docs/ADocsNavigation.d.vue.ts +1 -1
- package/dist/runtime/components/docs/ADocsNavigation.vue.d.ts +1 -1
- package/dist/runtime/components/docs/ADocsSearch.d.vue.ts +4 -4
- package/dist/runtime/components/docs/ADocsSearch.vue.d.ts +4 -4
- package/dist/runtime/components/docs/ADocsSearchButton.d.vue.ts +2 -2
- package/dist/runtime/components/docs/ADocsSearchButton.vue.d.ts +2 -2
- package/dist/runtime/components/docs/ADocsToc.d.vue.ts +1 -1
- package/dist/runtime/components/docs/ADocsToc.vue.d.ts +1 -1
- package/dist/runtime/components/editor/AColorPalettePopover.d.vue.ts +2 -2
- package/dist/runtime/components/editor/AColorPalettePopover.vue.d.ts +2 -2
- package/dist/runtime/components/editor/AFileGlbViewer.vue +27 -10
- package/dist/runtime/components/editor/AIconPickerPopover.d.vue.ts +2 -2
- package/dist/runtime/components/editor/AIconPickerPopover.vue.d.ts +2 -2
- package/dist/runtime/components/editor/ALocationPickerPopover.d.vue.ts +2 -2
- package/dist/runtime/components/editor/ALocationPickerPopover.vue.d.ts +2 -2
- package/dist/runtime/components/registry/APluginCapabilityDialog.d.vue.ts +4 -4
- package/dist/runtime/components/registry/APluginCapabilityDialog.vue +1 -1
- package/dist/runtime/components/registry/APluginCapabilityDialog.vue.d.ts +4 -4
- package/dist/runtime/components/renderers/AProseRenderer.d.vue.ts +4 -4
- package/dist/runtime/components/renderers/AProseRenderer.vue.d.ts +4 -4
- package/dist/runtime/components/renderers/sheets/ASheetsCell.d.vue.ts +4 -4
- package/dist/runtime/components/renderers/sheets/ASheetsCell.vue.d.ts +4 -4
- package/dist/runtime/components/renderers/sheets/ASheetsGrid.d.vue.ts +2 -2
- package/dist/runtime/components/renderers/sheets/ASheetsGrid.vue.d.ts +2 -2
- package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.d.vue.ts +4 -4
- package/dist/runtime/components/renderers/sheets/ASheetsMobileActionBar.vue.d.ts +4 -4
- package/dist/runtime/components/renderers/sheets/ASheetsToolbar.d.vue.ts +4 -4
- package/dist/runtime/components/renderers/sheets/ASheetsToolbar.vue.d.ts +4 -4
- package/dist/runtime/components/shell/ADocPanelSettings.d.vue.ts +1 -1
- package/dist/runtime/components/shell/ADocPanelSettings.vue.d.ts +1 -1
- package/dist/runtime/components/shell/AUserProfilePopover.d.vue.ts +1 -1
- package/dist/runtime/components/shell/AUserProfilePopover.vue.d.ts +1 -1
- package/dist/runtime/components/shell/AWelcomeScreen.d.vue.ts +4 -4
- package/dist/runtime/components/shell/AWelcomeScreen.vue +77 -58
- package/dist/runtime/components/shell/AWelcomeScreen.vue.d.ts +4 -4
- package/dist/runtime/composables/useAbraAdmin.d.ts +131 -4
- package/dist/runtime/composables/useAbraAdmin.js +136 -36
- package/dist/runtime/composables/useInvites.d.ts +7 -0
- package/dist/runtime/plugin-abracadabra.client.js +44 -3
- package/dist/runtime/server/api/_abracadabra/spaces.get.d.ts +1 -1
- package/dist/runtime/types.d.ts +2 -0
- package/dist/runtime/utils/loadThree.d.ts +18 -0
- package/dist/runtime/utils/loadThree.js +46 -0
- package/dist/types.d.mts +6 -2
- package/package.json +26 -22
package/README.md
CHANGED
|
@@ -7,6 +7,23 @@
|
|
|
7
7
|
|
|
8
8
|
First-class Nuxt 4 module for the [Abracadabra](https://abra.cou.sh) CRDT collaboration platform. Drop real-time collaborative documents, multi-user awareness, offline-first sync, and a full rich-text editor into any Nuxt app.
|
|
9
9
|
|
|
10
|
+
## Documentation
|
|
11
|
+
|
|
12
|
+
Full, code-derived documentation lives in [`docs/`](docs/) — a numbered Nuxt-Content
|
|
13
|
+
site, the single source of truth (prior `AUDIT.md`/`audit-*.md`/`gaps/` were untrusted
|
|
14
|
+
and moved to `../DEPRECATED/abracadabra-nuxt/`; where this README or `CLAUDE.md` drifted,
|
|
15
|
+
the docs win). Seven sections:
|
|
16
|
+
|
|
17
|
+
| Section | Covers |
|
|
18
|
+
|---|---|
|
|
19
|
+
| [Getting Started](docs/1.getting-started/) | install, peers, the exhaustive options schema, quick start |
|
|
20
|
+
| [Core](docs/2.core/) | `setup()` internals, client/server bootstrap, plugins & registry, state & types, Nitro RPC runners |
|
|
21
|
+
| [Composables](docs/3.composables/) | all ~107 auto-imported composables (incl. the `useYDoc.ts` Yjs primitives — there is **no** `useYDoc()`) |
|
|
22
|
+
| [Components](docs/4.components/) | the **210** components (44 top-level + 166 across eight subdirs), incl. the 52 Aware components |
|
|
23
|
+
| [Editor Extensions](docs/5.editor-extensions/) | the ~41 collaborative TipTap nodes/marks/behaviours |
|
|
24
|
+
| [Guides](docs/6.guides/) | doc page, plugin, RPC method, theming, auth, custom renderer, i18n |
|
|
25
|
+
| [Reference](docs/7.reference/) | utils, awareness sharing modes, server API routes, gotchas |
|
|
26
|
+
|
|
10
27
|
- [Release Notes](/CHANGELOG.md)
|
|
11
28
|
|
|
12
29
|
## Features
|
|
@@ -14,8 +31,8 @@ First-class Nuxt 4 module for the [Abracadabra](https://abra.cou.sh) CRDT collab
|
|
|
14
31
|
- Real-time collaborative editing via WebSocket + Yjs CRDT
|
|
15
32
|
- Offline-first with IndexedDB persistence and background sync queue
|
|
16
33
|
- Multi-user awareness — cursors, presence, typing indicators, voice/video
|
|
17
|
-
- TipTap rich-text editor with
|
|
18
|
-
-
|
|
34
|
+
- TipTap rich-text editor with ~41 built-in collaborative extensions
|
|
35
|
+
- 15+ built-in page renderers: doc/prose/code, Kanban, Table, Calendar, Gallery, Outline, Checklist, Timeline, Call, Graph, Dashboard, Map, Slides
|
|
19
36
|
- Full-text search with trigram indexing
|
|
20
37
|
- File uploads with offline blob caching
|
|
21
38
|
- Passkey (WebAuthn) authentication
|
|
@@ -24,11 +41,13 @@ First-class Nuxt 4 module for the [Abracadabra](https://abra.cou.sh) CRDT collab
|
|
|
24
41
|
|
|
25
42
|
## Requirements
|
|
26
43
|
|
|
27
|
-
- Nuxt >= 4
|
|
28
|
-
- `@abraca/dabra`
|
|
29
|
-
- `@tiptap
|
|
44
|
+
- Nuxt >= 4, Vue >= 3.4, `@nuxt/ui` >= 3
|
|
45
|
+
- `@abraca/dabra`, `@abraca/convert`, `@abraca/plugin` (all `^2.3`)
|
|
46
|
+
- `@tiptap/* 3` collaboration set, `lowlight`, `@noble/ed25519`, `@noble/hashes`
|
|
30
47
|
- `yjs` >= 13
|
|
31
48
|
|
|
49
|
+
See [Getting Started → Installation](docs/1.getting-started/2.installation.md) for the full required/optional peer matrix.
|
|
50
|
+
|
|
32
51
|
## Setup
|
|
33
52
|
|
|
34
53
|
```bash
|
|
@@ -105,7 +124,7 @@ abracadabra: {
|
|
|
105
124
|
| `useAwareness()` | All connected users' raw awareness states |
|
|
106
125
|
| `useAwarenessPeers()` | Typed peer list with idle detection |
|
|
107
126
|
| `useAAField(key)` | Per-field interaction awareness (hover, press, focus) |
|
|
108
|
-
| `
|
|
127
|
+
| `useSyncedMap` / `useSyncedArray` / `useSyncedText` / `useSyncedXml` / `useAwarenessOf` / `useSmoothedCursors` | Reactive Yjs primitives (the `useYDoc.ts` helper module — there is **no** `useYDoc()` and no `useMultiplayerObject`) |
|
|
109
128
|
| `useEditor(ydoc, opts)` | TipTap setup with collaboration + cursor extensions |
|
|
110
129
|
| `useChildTree(docId)` | Document tree scoped to a parent |
|
|
111
130
|
| `useDocumentPermissions(role)` | RBAC flags (canWrite, canDelete, etc.) |
|
package/dist/module.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
2
|
import * as __runtime_types from '../dist/runtime/types.js';
|
|
3
|
-
export { AbracadabraPlugin, AbracadabraState, CachedTreeNode, DocCacheAPI, DocPageMeta, RunnerCleanup, ServerRunnerContext, ServerRunnerDefinition, TreeEntry, UserMetaField } from '../dist/runtime/types.js';
|
|
3
|
+
export { AbracadabraPlugin, AbracadabraState, CachedTreeNode, DocCacheAPI, DocPageMeta, InviteInfo, RunnerCleanup, ServerRunnerContext, ServerRunnerDefinition, SpaceMeta, TreeEntry, UserMetaField } from '../dist/runtime/types.js';
|
|
4
4
|
import { AbracadabraLocale } from '../dist/runtime/locale.js';
|
|
5
5
|
export { AbracadabraLocale } from '../dist/runtime/locale.js';
|
|
6
6
|
export { DocTreeReturn } from '../dist/runtime/composables/useDocTree.js';
|
|
@@ -8,8 +8,10 @@ export { DocSeoOptions } from '../dist/runtime/composables/useDocSeo.js';
|
|
|
8
8
|
export { DocDragState } from '../dist/runtime/composables/useDocDragBus.js';
|
|
9
9
|
export { ParsedMessage, TextSegment, parseMessageContent, previewMessageContent, renderMessageSegments } from '../dist/runtime/utils/chatContent.js';
|
|
10
10
|
export { DupEntry, duplicateDocContent, duplicateDocTree } from '../dist/runtime/utils/duplicateDocContent.js';
|
|
11
|
-
export { AuditLogEntry, AuditQueryOpts, AuditVerifyResult, DocSearchHit, ReadyzStatus } from '@abraca/dabra';
|
|
11
|
+
export { AdminConfigField, AuditLogEntry, AuditQueryOpts, AuditVerifyResult, DocSearchHit, EnvSnapshotResponse, ReadyzStatus } from '@abraca/dabra';
|
|
12
12
|
export { ServerTrashEntry } from '../dist/runtime/composables/useServerTrash.js';
|
|
13
|
+
export { Invite } from '../dist/runtime/composables/useInvites.js';
|
|
14
|
+
export { AdminStorageStats, AdminUploadList, AdminUploadRow, AdminUserDocRow, AdminUserRow } from '../dist/runtime/composables/useAbraAdmin.js';
|
|
13
15
|
export { SlugMap, SlugMapEntry, buildSlugMap, isUUID, slugify } from '../dist/runtime/utils/slugify.js';
|
|
14
16
|
export { avatarBorderStyle, avatarGradient, avatarStyleFromName } from '../dist/runtime/utils/avatarStyle.js';
|
|
15
17
|
export { COLOR_PALETTES, ColorPalette, ColorShade, findPaletteByHex } from '../dist/runtime/utils/colorPalettes.js';
|
package/dist/module.json
CHANGED
|
@@ -17,9 +17,9 @@ type __VLS_Props = {
|
|
|
17
17
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
18
18
|
editorView: import("vue").ShallowRef<any, any>;
|
|
19
19
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
20
|
-
readOnly: boolean;
|
|
21
20
|
language: Lang;
|
|
22
21
|
fieldName: string;
|
|
22
|
+
readOnly: boolean;
|
|
23
23
|
asXmlFragment: boolean;
|
|
24
24
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
25
25
|
declare const _default: typeof __VLS_export;
|
|
@@ -17,9 +17,9 @@ type __VLS_Props = {
|
|
|
17
17
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
18
18
|
editorView: import("vue").ShallowRef<any, any>;
|
|
19
19
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
20
|
-
readOnly: boolean;
|
|
21
20
|
language: Lang;
|
|
22
21
|
fieldName: string;
|
|
22
|
+
readOnly: boolean;
|
|
23
23
|
asXmlFragment: boolean;
|
|
24
24
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
25
25
|
declare const _default: typeof __VLS_export;
|
|
@@ -2,11 +2,11 @@ type __VLS_ModelProps = {
|
|
|
2
2
|
'open'?: boolean;
|
|
3
3
|
};
|
|
4
4
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
5
|
-
done: (url: string) => any;
|
|
6
5
|
"update:open": (value: boolean) => any;
|
|
6
|
+
done: (url: string) => any;
|
|
7
7
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
8
|
-
onDone?: ((url: string) => any) | undefined;
|
|
9
8
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
9
|
+
onDone?: ((url: string) => any) | undefined;
|
|
10
10
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
11
|
declare const _default: typeof __VLS_export;
|
|
12
12
|
export default _default;
|
|
@@ -90,7 +90,7 @@ async function finishConnection(url) {
|
|
|
90
90
|
<div class="flex flex-col items-center text-center gap-4 pt-4">
|
|
91
91
|
<div class="w-14 h-14 rounded-2xl bg-(--ui-bg-elevated) flex items-center justify-center">
|
|
92
92
|
<UIcon
|
|
93
|
-
name="i-lucide-
|
|
93
|
+
name="i-lucide-hexagon"
|
|
94
94
|
class="size-7 text-(--color-primary-500)"
|
|
95
95
|
/>
|
|
96
96
|
</div>
|
|
@@ -2,11 +2,11 @@ type __VLS_ModelProps = {
|
|
|
2
2
|
'open'?: boolean;
|
|
3
3
|
};
|
|
4
4
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
5
|
-
done: (url: string) => any;
|
|
6
5
|
"update:open": (value: boolean) => any;
|
|
6
|
+
done: (url: string) => any;
|
|
7
7
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
8
|
-
onDone?: ((url: string) => any) | undefined;
|
|
9
8
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
9
|
+
onDone?: ((url: string) => any) | undefined;
|
|
10
10
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
11
|
declare const _default: typeof __VLS_export;
|
|
12
12
|
export default _default;
|
|
@@ -2,13 +2,19 @@ type __VLS_Props = {
|
|
|
2
2
|
collapsed?: boolean;
|
|
3
3
|
editable?: boolean;
|
|
4
4
|
selectedId?: string | null;
|
|
5
|
+
/**
|
|
6
|
+
* Scope the visible tree to the subtree under this doc id (e.g. one
|
|
7
|
+
* space). When unset the tree roots at the active space / server
|
|
8
|
+
* root as before — so this is a purely additive opt-in filter.
|
|
9
|
+
*/
|
|
10
|
+
rootId?: string | null;
|
|
5
11
|
};
|
|
6
12
|
declare var __VLS_39: {};
|
|
7
13
|
type __VLS_Slots = {} & {
|
|
8
14
|
'toolbar-start'?: (props: typeof __VLS_39) => any;
|
|
9
15
|
};
|
|
10
16
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
|
|
11
|
-
handleExternalDrop: (e: DragEvent, parentId?: string | null) =>
|
|
17
|
+
handleExternalDrop: (e: DragEvent, parentId?: string | null) => any;
|
|
12
18
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
19
|
create: (parentId: string | null) => any;
|
|
14
20
|
navigate: (id: string) => any;
|
|
@@ -17,6 +23,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
|
|
|
17
23
|
onNavigate?: ((id: string) => any) | undefined;
|
|
18
24
|
}>, {
|
|
19
25
|
editable: boolean;
|
|
26
|
+
rootId: string | null;
|
|
20
27
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
21
28
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
22
29
|
declare const _default: typeof __VLS_export;
|
|
@@ -9,7 +9,8 @@ const dragBus = useDocDragBus();
|
|
|
9
9
|
const props = defineProps({
|
|
10
10
|
collapsed: { type: Boolean, required: false },
|
|
11
11
|
editable: { type: Boolean, required: false, default: true },
|
|
12
|
-
selectedId: { type: [String, null], required: false }
|
|
12
|
+
selectedId: { type: [String, null], required: false },
|
|
13
|
+
rootId: { type: [String, null], required: false, default: null }
|
|
13
14
|
});
|
|
14
15
|
const emit = defineEmits(["navigate", "create"]);
|
|
15
16
|
const { doc, spaceDocId, isReady, provider, client, userName } = useAbracadabra();
|
|
@@ -51,12 +52,14 @@ const treeItems = computed(() => {
|
|
|
51
52
|
const sid = spaceDocId.value;
|
|
52
53
|
const raw = toRaw(treeMap.data);
|
|
53
54
|
const ROOT = "@root";
|
|
55
|
+
const scopeRoot = props.rootId ?? null;
|
|
56
|
+
const isTopLevel = (p) => scopeRoot != null ? p === scopeRoot : p == null || p === sid;
|
|
54
57
|
const childrenByParent = /* @__PURE__ */ new Map();
|
|
55
58
|
for (const id in raw) {
|
|
56
|
-
if (id === sid) continue;
|
|
59
|
+
if (id === sid || id === scopeRoot) continue;
|
|
57
60
|
const v = raw[id];
|
|
58
61
|
const rawPid = v.parentId ?? null;
|
|
59
|
-
const pid = rawPid
|
|
62
|
+
const pid = isTopLevel(rawPid) ? ROOT : rawPid;
|
|
60
63
|
const bucket = childrenByParent.get(pid);
|
|
61
64
|
if (bucket) bucket.push([id, v]);
|
|
62
65
|
else childrenByParent.set(pid, [[id, v]]);
|
|
@@ -2,13 +2,19 @@ type __VLS_Props = {
|
|
|
2
2
|
collapsed?: boolean;
|
|
3
3
|
editable?: boolean;
|
|
4
4
|
selectedId?: string | null;
|
|
5
|
+
/**
|
|
6
|
+
* Scope the visible tree to the subtree under this doc id (e.g. one
|
|
7
|
+
* space). When unset the tree roots at the active space / server
|
|
8
|
+
* root as before — so this is a purely additive opt-in filter.
|
|
9
|
+
*/
|
|
10
|
+
rootId?: string | null;
|
|
5
11
|
};
|
|
6
12
|
declare var __VLS_39: {};
|
|
7
13
|
type __VLS_Slots = {} & {
|
|
8
14
|
'toolbar-start'?: (props: typeof __VLS_39) => any;
|
|
9
15
|
};
|
|
10
16
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
|
|
11
|
-
handleExternalDrop: (e: DragEvent, parentId?: string | null) =>
|
|
17
|
+
handleExternalDrop: (e: DragEvent, parentId?: string | null) => any;
|
|
12
18
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
19
|
create: (parentId: string | null) => any;
|
|
14
20
|
navigate: (id: string) => any;
|
|
@@ -17,6 +23,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
|
|
|
17
23
|
onNavigate?: ((id: string) => any) | undefined;
|
|
18
24
|
}>, {
|
|
19
25
|
editable: boolean;
|
|
26
|
+
rootId: string | null;
|
|
20
27
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
21
28
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
22
29
|
declare const _default: typeof __VLS_export;
|
|
@@ -72,24 +72,24 @@ type __VLS_Slots = {} & {
|
|
|
72
72
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
73
73
|
editor: import("vue").ComputedRef<any>;
|
|
74
74
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
75
|
-
rename: (label: string) => any;
|
|
76
|
-
ready: () => any;
|
|
77
|
-
update: (content: any) => any;
|
|
78
75
|
"update:modelValue": (value: any) => any;
|
|
76
|
+
rename: (label: string) => any;
|
|
79
77
|
updateMeta: (patch: Partial<DocPageMeta>) => any;
|
|
78
|
+
update: (content: any) => any;
|
|
79
|
+
ready: () => any;
|
|
80
80
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
81
|
-
onRename?: ((label: string) => any) | undefined;
|
|
82
|
-
onReady?: (() => any) | undefined;
|
|
83
|
-
onUpdate?: ((content: any) => any) | undefined;
|
|
84
81
|
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
82
|
+
onRename?: ((label: string) => any) | undefined;
|
|
85
83
|
onUpdateMeta?: ((patch: Partial<DocPageMeta>) => any) | undefined;
|
|
84
|
+
onUpdate?: ((content: any) => any) | undefined;
|
|
85
|
+
onReady?: (() => any) | undefined;
|
|
86
86
|
}>, {
|
|
87
|
+
variant: "doc" | "prose";
|
|
87
88
|
contentType: "json" | "html" | "markdown";
|
|
88
89
|
editable: boolean;
|
|
89
90
|
showToolbar: boolean;
|
|
90
91
|
showSuggestionMenu: boolean;
|
|
91
92
|
showDragHandle: boolean;
|
|
92
|
-
variant: "doc" | "prose";
|
|
93
93
|
showSourceToggle: boolean;
|
|
94
94
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
95
95
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -72,24 +72,24 @@ type __VLS_Slots = {} & {
|
|
|
72
72
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
73
73
|
editor: import("vue").ComputedRef<any>;
|
|
74
74
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
75
|
-
rename: (label: string) => any;
|
|
76
|
-
ready: () => any;
|
|
77
|
-
update: (content: any) => any;
|
|
78
75
|
"update:modelValue": (value: any) => any;
|
|
76
|
+
rename: (label: string) => any;
|
|
79
77
|
updateMeta: (patch: Partial<DocPageMeta>) => any;
|
|
78
|
+
update: (content: any) => any;
|
|
79
|
+
ready: () => any;
|
|
80
80
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
81
|
-
onRename?: ((label: string) => any) | undefined;
|
|
82
|
-
onReady?: (() => any) | undefined;
|
|
83
|
-
onUpdate?: ((content: any) => any) | undefined;
|
|
84
81
|
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
82
|
+
onRename?: ((label: string) => any) | undefined;
|
|
85
83
|
onUpdateMeta?: ((patch: Partial<DocPageMeta>) => any) | undefined;
|
|
84
|
+
onUpdate?: ((content: any) => any) | undefined;
|
|
85
|
+
onReady?: (() => any) | undefined;
|
|
86
86
|
}>, {
|
|
87
|
+
variant: "doc" | "prose";
|
|
87
88
|
contentType: "json" | "html" | "markdown";
|
|
88
89
|
editable: boolean;
|
|
89
90
|
showToolbar: boolean;
|
|
90
91
|
showSuggestionMenu: boolean;
|
|
91
92
|
showDragHandle: boolean;
|
|
92
|
-
variant: "doc" | "prose";
|
|
93
93
|
showSourceToggle: boolean;
|
|
94
94
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
95
95
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -10,15 +10,15 @@ type __VLS_Props = {
|
|
|
10
10
|
subtitle?: string;
|
|
11
11
|
};
|
|
12
12
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
|
+
"update:open": (v: boolean) => any;
|
|
13
14
|
submit: (payload: {
|
|
14
15
|
token: string;
|
|
15
16
|
}) => any;
|
|
16
|
-
"update:open": (v: boolean) => any;
|
|
17
17
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
18
|
+
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
18
19
|
onSubmit?: ((payload: {
|
|
19
20
|
token: string;
|
|
20
21
|
}) => any) | undefined;
|
|
21
|
-
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
22
22
|
}>, {
|
|
23
23
|
subtitle: string;
|
|
24
24
|
title: string;
|
|
@@ -10,15 +10,15 @@ type __VLS_Props = {
|
|
|
10
10
|
subtitle?: string;
|
|
11
11
|
};
|
|
12
12
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
|
+
"update:open": (v: boolean) => any;
|
|
13
14
|
submit: (payload: {
|
|
14
15
|
token: string;
|
|
15
16
|
}) => any;
|
|
16
|
-
"update:open": (v: boolean) => any;
|
|
17
17
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
18
|
+
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
18
19
|
onSubmit?: ((payload: {
|
|
19
20
|
token: string;
|
|
20
21
|
}) => any) | undefined;
|
|
21
|
-
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
22
22
|
}>, {
|
|
23
23
|
subtitle: string;
|
|
24
24
|
title: string;
|
|
@@ -26,13 +26,13 @@ type __VLS_Slots = {} & {
|
|
|
26
26
|
'actions-right'?: (props: typeof __VLS_51) => any;
|
|
27
27
|
};
|
|
28
28
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
29
|
-
rename: (name: string) => any;
|
|
30
29
|
"update:open": (open: boolean) => any;
|
|
30
|
+
rename: (name: string) => any;
|
|
31
31
|
"sign-out": () => any;
|
|
32
32
|
"show-recovery": () => any;
|
|
33
33
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
34
|
-
onRename?: ((name: string) => any) | undefined;
|
|
35
34
|
"onUpdate:open"?: ((open: boolean) => any) | undefined;
|
|
35
|
+
onRename?: ((name: string) => any) | undefined;
|
|
36
36
|
"onSign-out"?: (() => any) | undefined;
|
|
37
37
|
"onShow-recovery"?: (() => any) | undefined;
|
|
38
38
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -26,13 +26,13 @@ type __VLS_Slots = {} & {
|
|
|
26
26
|
'actions-right'?: (props: typeof __VLS_51) => any;
|
|
27
27
|
};
|
|
28
28
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
29
|
-
rename: (name: string) => any;
|
|
30
29
|
"update:open": (open: boolean) => any;
|
|
30
|
+
rename: (name: string) => any;
|
|
31
31
|
"sign-out": () => any;
|
|
32
32
|
"show-recovery": () => any;
|
|
33
33
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
34
|
-
onRename?: ((name: string) => any) | undefined;
|
|
35
34
|
"onUpdate:open"?: ((open: boolean) => any) | undefined;
|
|
35
|
+
onRename?: ((name: string) => any) | undefined;
|
|
36
36
|
"onSign-out"?: (() => any) | undefined;
|
|
37
37
|
"onShow-recovery"?: (() => any) | undefined;
|
|
38
38
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -11,11 +11,14 @@ const { currentServerUrl } = useAbracadabra();
|
|
|
11
11
|
const code = ref("");
|
|
12
12
|
const isLoading = ref(false);
|
|
13
13
|
const error = ref(null);
|
|
14
|
-
watch(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
watch(
|
|
15
|
+
() => props.open,
|
|
16
|
+
(open) => {
|
|
17
|
+
if (!open) return;
|
|
18
|
+
code.value = "";
|
|
19
|
+
error.value = null;
|
|
20
|
+
}
|
|
21
|
+
);
|
|
19
22
|
function onInput(e) {
|
|
20
23
|
const raw = e.target.value.toUpperCase().replace(/[^A-Z0-9]/g, "");
|
|
21
24
|
const parts = raw.match(/.{1,4}/g) ?? [];
|
|
@@ -51,14 +54,18 @@ async function handleRedeem() {
|
|
|
51
54
|
<div class="flex flex-col gap-5 p-6">
|
|
52
55
|
<!-- Header -->
|
|
53
56
|
<div class="flex flex-col items-center text-center gap-3 pt-4">
|
|
54
|
-
<div
|
|
57
|
+
<div
|
|
58
|
+
class="w-12 h-12 rounded-2xl bg-(--ui-bg-elevated) flex items-center justify-center"
|
|
59
|
+
>
|
|
55
60
|
<UIcon
|
|
56
61
|
name="i-lucide-ticket"
|
|
57
62
|
class="size-6 text-(--color-primary-500)"
|
|
58
63
|
/>
|
|
59
64
|
</div>
|
|
60
65
|
<div>
|
|
61
|
-
<h2
|
|
66
|
+
<h2
|
|
67
|
+
class="text-xl font-bold text-(--ui-text-highlighted) tracking-tight"
|
|
68
|
+
>
|
|
62
69
|
Redeem Invite
|
|
63
70
|
</h2>
|
|
64
71
|
<p class="text-sm text-(--ui-text-muted)">
|
|
@@ -68,10 +75,7 @@ async function handleRedeem() {
|
|
|
68
75
|
v-if="currentServerUrl"
|
|
69
76
|
class="text-xs text-(--ui-text-dimmed) flex items-center gap-1 justify-center mt-1"
|
|
70
77
|
>
|
|
71
|
-
<UIcon
|
|
72
|
-
name="i-lucide-server"
|
|
73
|
-
class="size-3"
|
|
74
|
-
/>
|
|
78
|
+
<UIcon name="i-lucide-hexagon" class="size-3" />
|
|
75
79
|
{{ currentServerUrl }}
|
|
76
80
|
</p>
|
|
77
81
|
</div>
|
|
@@ -12,19 +12,19 @@ type __VLS_Props = {
|
|
|
12
12
|
subtitle?: string;
|
|
13
13
|
};
|
|
14
14
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
15
|
+
"update:open": (open: boolean) => any;
|
|
15
16
|
submit: (payload: {
|
|
16
17
|
mnemonic: string;
|
|
17
18
|
passphrase?: string;
|
|
18
19
|
ephemeral: boolean;
|
|
19
20
|
}) => any;
|
|
20
|
-
"update:open": (open: boolean) => any;
|
|
21
21
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
22
|
+
"onUpdate:open"?: ((open: boolean) => any) | undefined;
|
|
22
23
|
onSubmit?: ((payload: {
|
|
23
24
|
mnemonic: string;
|
|
24
25
|
passphrase?: string;
|
|
25
26
|
ephemeral: boolean;
|
|
26
27
|
}) => any) | undefined;
|
|
27
|
-
"onUpdate:open"?: ((open: boolean) => any) | undefined;
|
|
28
28
|
}>, {
|
|
29
29
|
subtitle: string;
|
|
30
30
|
title: string;
|
|
@@ -12,19 +12,19 @@ type __VLS_Props = {
|
|
|
12
12
|
subtitle?: string;
|
|
13
13
|
};
|
|
14
14
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
15
|
+
"update:open": (open: boolean) => any;
|
|
15
16
|
submit: (payload: {
|
|
16
17
|
mnemonic: string;
|
|
17
18
|
passphrase?: string;
|
|
18
19
|
ephemeral: boolean;
|
|
19
20
|
}) => any;
|
|
20
|
-
"update:open": (open: boolean) => any;
|
|
21
21
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
22
|
+
"onUpdate:open"?: ((open: boolean) => any) | undefined;
|
|
22
23
|
onSubmit?: ((payload: {
|
|
23
24
|
mnemonic: string;
|
|
24
25
|
passphrase?: string;
|
|
25
26
|
ephemeral: boolean;
|
|
26
27
|
}) => any) | undefined;
|
|
27
|
-
"onUpdate:open"?: ((open: boolean) => any) | undefined;
|
|
28
28
|
}>, {
|
|
29
29
|
subtitle: string;
|
|
30
30
|
title: string;
|
|
@@ -7,22 +7,22 @@ type __VLS_Props = {
|
|
|
7
7
|
minLength?: number;
|
|
8
8
|
};
|
|
9
9
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
+
"update:open": (v: boolean) => any;
|
|
10
11
|
submit: (payload: {
|
|
11
12
|
currentPassword: string;
|
|
12
13
|
newPassword: string;
|
|
13
14
|
}) => any;
|
|
14
|
-
"update:open": (v: boolean) => any;
|
|
15
15
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
16
|
+
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
16
17
|
onSubmit?: ((payload: {
|
|
17
18
|
currentPassword: string;
|
|
18
19
|
newPassword: string;
|
|
19
20
|
}) => any) | undefined;
|
|
20
|
-
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
21
21
|
}>, {
|
|
22
22
|
subtitle: string;
|
|
23
23
|
title: string;
|
|
24
|
-
minLength: number;
|
|
25
24
|
loading: boolean;
|
|
25
|
+
minLength: number;
|
|
26
26
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
27
27
|
declare const _default: typeof __VLS_export;
|
|
28
28
|
export default _default;
|
|
@@ -7,22 +7,22 @@ type __VLS_Props = {
|
|
|
7
7
|
minLength?: number;
|
|
8
8
|
};
|
|
9
9
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
+
"update:open": (v: boolean) => any;
|
|
10
11
|
submit: (payload: {
|
|
11
12
|
currentPassword: string;
|
|
12
13
|
newPassword: string;
|
|
13
14
|
}) => any;
|
|
14
|
-
"update:open": (v: boolean) => any;
|
|
15
15
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
16
|
+
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
16
17
|
onSubmit?: ((payload: {
|
|
17
18
|
currentPassword: string;
|
|
18
19
|
newPassword: string;
|
|
19
20
|
}) => any) | undefined;
|
|
20
|
-
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
21
21
|
}>, {
|
|
22
22
|
subtitle: string;
|
|
23
23
|
title: string;
|
|
24
|
-
minLength: number;
|
|
25
24
|
loading: boolean;
|
|
25
|
+
minLength: number;
|
|
26
26
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
27
27
|
declare const _default: typeof __VLS_export;
|
|
28
28
|
export default _default;
|
|
@@ -13,22 +13,22 @@ type __VLS_Props = {
|
|
|
13
13
|
showInviteCode?: boolean;
|
|
14
14
|
};
|
|
15
15
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
16
|
+
"update:open": (v: boolean) => any;
|
|
17
|
+
register: () => any;
|
|
16
18
|
submit: (payload: {
|
|
17
19
|
username: string;
|
|
18
20
|
password: string;
|
|
19
21
|
inviteCode?: string;
|
|
20
22
|
}) => any;
|
|
21
|
-
"update:open": (v: boolean) => any;
|
|
22
|
-
register: () => any;
|
|
23
23
|
forgot: () => any;
|
|
24
24
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
25
|
+
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
26
|
+
onRegister?: (() => any) | undefined;
|
|
25
27
|
onSubmit?: ((payload: {
|
|
26
28
|
username: string;
|
|
27
29
|
password: string;
|
|
28
30
|
inviteCode?: string;
|
|
29
31
|
}) => any) | undefined;
|
|
30
|
-
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
31
|
-
onRegister?: (() => any) | undefined;
|
|
32
32
|
onForgot?: (() => any) | undefined;
|
|
33
33
|
}>, {
|
|
34
34
|
subtitle: string;
|
|
@@ -13,22 +13,22 @@ type __VLS_Props = {
|
|
|
13
13
|
showInviteCode?: boolean;
|
|
14
14
|
};
|
|
15
15
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
16
|
+
"update:open": (v: boolean) => any;
|
|
17
|
+
register: () => any;
|
|
16
18
|
submit: (payload: {
|
|
17
19
|
username: string;
|
|
18
20
|
password: string;
|
|
19
21
|
inviteCode?: string;
|
|
20
22
|
}) => any;
|
|
21
|
-
"update:open": (v: boolean) => any;
|
|
22
|
-
register: () => any;
|
|
23
23
|
forgot: () => any;
|
|
24
24
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
25
|
+
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
26
|
+
onRegister?: (() => any) | undefined;
|
|
25
27
|
onSubmit?: ((payload: {
|
|
26
28
|
username: string;
|
|
27
29
|
password: string;
|
|
28
30
|
inviteCode?: string;
|
|
29
31
|
}) => any) | undefined;
|
|
30
|
-
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
31
|
-
onRegister?: (() => any) | undefined;
|
|
32
32
|
onForgot?: (() => any) | undefined;
|
|
33
33
|
}>, {
|
|
34
34
|
subtitle: string;
|
|
@@ -16,6 +16,7 @@ type __VLS_Props = {
|
|
|
16
16
|
showSignInLink?: boolean;
|
|
17
17
|
};
|
|
18
18
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
19
|
+
"update:open": (v: boolean) => any;
|
|
19
20
|
submit: (payload: {
|
|
20
21
|
username: string;
|
|
21
22
|
password: string;
|
|
@@ -23,9 +24,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
23
24
|
displayName?: string;
|
|
24
25
|
inviteCode?: string;
|
|
25
26
|
}) => any;
|
|
26
|
-
"update:open": (v: boolean) => any;
|
|
27
27
|
signin: () => any;
|
|
28
28
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
29
|
+
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
29
30
|
onSubmit?: ((payload: {
|
|
30
31
|
username: string;
|
|
31
32
|
password: string;
|
|
@@ -33,13 +34,12 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
33
34
|
displayName?: string;
|
|
34
35
|
inviteCode?: string;
|
|
35
36
|
}) => any) | undefined;
|
|
36
|
-
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
37
37
|
onSignin?: (() => any) | undefined;
|
|
38
38
|
}>, {
|
|
39
39
|
subtitle: string;
|
|
40
40
|
title: string;
|
|
41
|
-
minLength: number;
|
|
42
41
|
loading: boolean;
|
|
42
|
+
minLength: number;
|
|
43
43
|
showInviteCode: boolean;
|
|
44
44
|
showEmail: boolean;
|
|
45
45
|
showDisplayName: boolean;
|