@adonis-agora/collaboration-client 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,12 @@
1
+ import type { CollabEditorAdapter } from './types.js';
2
+ /**
3
+ * Excalidraw scene mirror: the element array is JSON-serialized under
4
+ * `doc.getMap(editorId).get('elements')`. Standard self-hosted pattern
5
+ * (Excalidraw's own `collab` protocol is proprietary and not used here).
6
+ */
7
+ export interface ExcalidrawScene<S = unknown> {
8
+ elements: S[];
9
+ appState?: Record<string, unknown>;
10
+ }
11
+ export declare function createExcalidrawAdapter<S = unknown>(): CollabEditorAdapter<ExcalidrawScene<S>>;
12
+ //# sourceMappingURL=excalidraw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excalidraw.d.ts","sourceRoot":"","sources":["../../../src/editors/excalidraw.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,QAAQ,EAAE,CAAC,EAAE,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,wBAAgB,uBAAuB,CAAC,CAAC,GAAG,OAAO,KAAK,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CA4B9F"}
@@ -0,0 +1,28 @@
1
+ export function createExcalidrawAdapter() {
2
+ const ELEMENTS = 'elements';
3
+ const APP_STATE = 'appState';
4
+ return {
5
+ empty: () => ({ elements: [] }),
6
+ create: (doc, editorId) => {
7
+ const map = doc.getMap(editorId);
8
+ const read = () => {
9
+ const elements = map.get(ELEMENTS) ?? [];
10
+ const appState = map.get(APP_STATE);
11
+ return appState ? { elements, appState } : { elements };
12
+ };
13
+ return {
14
+ get state() {
15
+ return read();
16
+ },
17
+ update(next) {
18
+ doc.transact(() => {
19
+ map.set(ELEMENTS, next.elements);
20
+ if (next.appState)
21
+ map.set(APP_STATE, next.appState);
22
+ });
23
+ },
24
+ };
25
+ },
26
+ };
27
+ }
28
+ //# sourceMappingURL=excalidraw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excalidraw.js","sourceRoot":"","sources":["../../../src/editors/excalidraw.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,uBAAuB;IACrC,MAAM,QAAQ,GAAG,UAAU,CAAC;IAC5B,MAAM,SAAS,GAAG,UAAU,CAAC;IAE7B,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC/B,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YACxB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAU,QAAQ,CAAC,CAAC;YAE1C,MAAM,IAAI,GAAG,GAAuB,EAAE;gBACpC,MAAM,QAAQ,GAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAqB,IAAI,EAAE,CAAC;gBAC9D,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAwC,CAAC;gBAC3E,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;YAC1D,CAAC,CAAC;YAEF,OAAO;gBACL,IAAI,KAAK;oBACP,OAAO,IAAI,EAAE,CAAC;gBAChB,CAAC;gBACD,MAAM,CAAC,IAAI;oBACT,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE;wBAChB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACjC,IAAI,IAAI,CAAC,QAAQ;4BAAE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACvD,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { createExcalidrawAdapter } from './excalidraw.js';
2
+ export type { ExcalidrawScene } from './excalidraw.js';
3
+ export { createTldrawAdapter } from './tldraw.js';
4
+ export type { TldrawScene } from './tldraw.js';
5
+ export { createTextAdapter } from './text.js';
6
+ export type { CollabEditorAdapter, CollabEditorView } from './types.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/editors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { createExcalidrawAdapter } from './excalidraw.js';
2
+ export { createTldrawAdapter } from './tldraw.js';
3
+ export { createTextAdapter } from './text.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/editors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { CollabEditorAdapter } from './types.js';
2
+ /** Plain-text mirror over `doc.getText(editorId)` (monaco/textarea surfaces). */
3
+ export declare function createTextAdapter(): CollabEditorAdapter<string>;
4
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/editors/text.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,iFAAiF;AACjF,wBAAgB,iBAAiB,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAkB/D"}
@@ -0,0 +1,21 @@
1
+ /** Plain-text mirror over `doc.getText(editorId)` (monaco/textarea surfaces). */
2
+ export function createTextAdapter() {
3
+ return {
4
+ empty: () => '',
5
+ create: (doc, editorId) => {
6
+ const text = doc.getText(editorId);
7
+ return {
8
+ get state() {
9
+ return text.toString();
10
+ },
11
+ update(next) {
12
+ doc.transact(() => {
13
+ text.delete(0, text.length);
14
+ text.insert(0, next);
15
+ });
16
+ },
17
+ };
18
+ },
19
+ };
20
+ }
21
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/editors/text.ts"],"names":[],"mappings":"AAGA,iFAAiF;AACjF,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;QACf,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YACxB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO;gBACL,IAAI,KAAK;oBACP,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACzB,CAAC;gBACD,MAAM,CAAC,IAAI;oBACT,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE;wBAChB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;wBAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBACvB,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CollabEditorAdapter } from './types.js';
2
+ /**
3
+ * tldraw snapshot mirror: `doc.getMap(editorId).get('snapshot')` holds the
4
+ * JSON store snapshot (records + schema), enough to rehydrate
5
+ * `createTLStore({ snapshot })` on any peer.
6
+ */
7
+ export interface TldrawScene<S = Record<string, unknown>> {
8
+ snapshot: S;
9
+ }
10
+ export declare function createTldrawAdapter<S = Record<string, unknown>>(): CollabEditorAdapter<TldrawScene<S>>;
11
+ //# sourceMappingURL=tldraw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tldraw.d.ts","sourceRoot":"","sources":["../../../src/editors/tldraw.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,QAAQ,EAAE,CAAC,CAAC;CACb;AAED,wBAAgB,mBAAmB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,mBAAmB,CACrF,WAAW,CAAC,CAAC,CAAC,CACf,CAoBA"}
@@ -0,0 +1,21 @@
1
+ export function createTldrawAdapter() {
2
+ const SNAPSHOT = 'snapshot';
3
+ return {
4
+ empty: () => ({ snapshot: { records: [] } }),
5
+ create: (doc, editorId) => {
6
+ const map = doc.getMap(editorId);
7
+ const empty = () => ({ snapshot: { records: [] } });
8
+ return {
9
+ get state() {
10
+ return {
11
+ snapshot: map.get(SNAPSHOT) ?? empty().snapshot,
12
+ };
13
+ },
14
+ update(next) {
15
+ doc.transact(() => map.set(SNAPSHOT, next.snapshot));
16
+ },
17
+ };
18
+ },
19
+ };
20
+ }
21
+ //# sourceMappingURL=tldraw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tldraw.js","sourceRoot":"","sources":["../../../src/editors/tldraw.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,mBAAmB;IAGjC,MAAM,QAAQ,GAAG,UAAU,CAAC;IAE5B,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAmB;QAC9D,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YACxB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAU,QAAQ,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAmB,CAAC;YACtE,OAAO;gBACL,IAAI,KAAK;oBACP,OAAO;wBACL,QAAQ,EAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAmB,IAAI,KAAK,EAAE,CAAC,QAAQ;qBACnE,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,IAAI;oBACT,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACvD,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type * as Y from 'yjs';
2
+ /**
3
+ * Editor adapters decouple a frontend surface (Excalidraw, tldraw, text)
4
+ * from the CRDT document. Each adapter knows how to read/write its scene
5
+ * inside a Y.Doc, so hooks stay engine-aware via the transport seam.
6
+ */
7
+ export interface CollabEditorView<S> {
8
+ /** Current serializable scene state. */
9
+ state: S;
10
+ /** Applies the next scene state into the shared doc. */
11
+ update(next: S): void;
12
+ }
13
+ export interface CollabEditorAdapter<S> {
14
+ /** Empty scene for a fresh document. */
15
+ empty(): S;
16
+ /** Binds the adapter to a document key inside the Y.Doc. */
17
+ create(doc: Y.Doc, editorId: string): CollabEditorView<S>;
18
+ }
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/editors/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;AAE9B;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,wCAAwC;IACxC,KAAK,EAAE,CAAC,CAAC;IACT,wDAAwD;IACxD,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,wCAAwC;IACxC,KAAK,IAAI,CAAC,CAAC;IACX,4DAA4D;IAC5D,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC3D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/editors/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import type { CollabEditorAdapter } from '../editors/types.js';
2
+ import type { CollabPeer, CollabStatus } from '../types.js';
3
+ export interface UseCollabEditorOptions<S> {
4
+ docName: string;
5
+ editorId: string;
6
+ adapter: CollabEditorAdapter<S>;
7
+ }
8
+ export interface UseCollabEditorResult<S> {
9
+ /** Current scene state (editor-agnostic shape from the adapter). */
10
+ state: S;
11
+ /** Writes the next scene into the shared doc. */
12
+ update(next: S): void;
13
+ status: CollabStatus;
14
+ peers: CollabPeer[];
15
+ }
16
+ /**
17
+ * Engine-aware, editor-aware view of a collaborative document.
18
+ *
19
+ * The engine comes from the server (token response); the editor from the
20
+ * adapter you pass. Everything Yjs-family (yjs, partykit, partyserver)
21
+ * resolves to a Y.Doc through the existing session seam; the adapter maps
22
+ * its scene (Excalidraw/tldraw/text) into the doc.
23
+ *
24
+ * ```tsx
25
+ * const { state, update, status, peers } = useCollabEditor({
26
+ * docName: 'lousas/1',
27
+ * editorId: 'excalidraw',
28
+ * adapter: createExcalidrawAdapter(),
29
+ * })
30
+ * ```
31
+ */
32
+ export declare function useCollabEditor<S>(options: UseCollabEditorOptions<S>): UseCollabEditorResult<S>;
33
+ //# sourceMappingURL=use_collab_editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use_collab_editor.d.ts","sourceRoot":"","sources":["../../../src/hooks/use_collab_editor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG5D,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,oEAAoE;IACpE,KAAK,EAAE,CAAC,CAAC;IACT,iDAAiD;IACjD,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAiC/F"}
@@ -0,0 +1,48 @@
1
+ import { useCallback, useMemo, useRef, useSyncExternalStore } from 'react';
2
+ import { getOrCreateSession, useCollaborationContext } from '../context.js';
3
+ import { useAwareness } from './use_awareness.js';
4
+ /**
5
+ * Engine-aware, editor-aware view of a collaborative document.
6
+ *
7
+ * The engine comes from the server (token response); the editor from the
8
+ * adapter you pass. Everything Yjs-family (yjs, partykit, partyserver)
9
+ * resolves to a Y.Doc through the existing session seam; the adapter maps
10
+ * its scene (Excalidraw/tldraw/text) into the doc.
11
+ *
12
+ * ```tsx
13
+ * const { state, update, status, peers } = useCollabEditor({
14
+ * docName: 'lousas/1',
15
+ * editorId: 'excalidraw',
16
+ * adapter: createExcalidrawAdapter(),
17
+ * })
18
+ * ```
19
+ */
20
+ export function useCollabEditor(options) {
21
+ const { docName, editorId, adapter } = options;
22
+ const context = useCollaborationContext();
23
+ const session = getOrCreateSession(context, docName);
24
+ const { peers, status } = useAwareness(docName);
25
+ // Reactivity: any Yjs update re-renders and re-reads the adapter state.
26
+ const subscribe = useCallback((onStoreChange) => {
27
+ const handler = () => onStoreChange();
28
+ session.doc.on('update', handler);
29
+ return () => {
30
+ session.doc.off('update', handler);
31
+ };
32
+ }, [session]);
33
+ // Adapter view + stable snapshot: scenes are freshly built objects, so we
34
+ // cache by serialized equality to keep useSyncExternalStore from looping.
35
+ const view = useMemo(() => adapter.create(session.doc, editorId), [adapter, session, editorId]);
36
+ const cacheRef = useRef(undefined);
37
+ const getSnapshot = useCallback(() => {
38
+ const next = view.state;
39
+ const key = JSON.stringify(next);
40
+ if (cacheRef.current?.key === key)
41
+ return cacheRef.current.value;
42
+ cacheRef.current = { key, value: next };
43
+ return next;
44
+ }, [view]);
45
+ const state = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
46
+ return { state, update: view.update, status, peers };
47
+ }
48
+ //# sourceMappingURL=use_collab_editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use_collab_editor.js","sourceRoot":"","sources":["../../../src/hooks/use_collab_editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAG5E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiBlD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAAI,OAAkC;IACnE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC/C,MAAM,OAAO,GAAG,uBAAuB,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAEhD,wEAAwE;IACxE,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,aAAyB,EAAE,EAAE;QAC5B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,0EAA0E;IAC1E,0EAA0E;IAC1E,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChG,MAAM,QAAQ,GAAG,MAAM,CAAwC,SAAS,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,WAAW,CAAC,GAAM,EAAE;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG;YAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;QACjE,QAAQ,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,KAAK,GAAG,oBAAoB,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAExE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACvD,CAAC"}
@@ -17,4 +17,8 @@ export type { UseVersionsResult } from './hooks/use_versions.js';
17
17
  export type { CollabComment, CollabPeer, CollabStatus, CollabTokenInfo, CollabTransport, CollabVersion, CollaborationClientConfig, TransportFactory, } from './types.js';
18
18
  export { useAutomergeDoc } from './hooks/use_automerge_doc.js';
19
19
  export type { UseAutomergeDocResult } from './hooks/use_automerge_doc.js';
20
+ export { createExcalidrawAdapter, createTldrawAdapter, createTextAdapter, } from './editors/index.js';
21
+ export type { CollabEditorAdapter, CollabEditorView, ExcalidrawScene, TldrawScene, } from './editors/index.js';
22
+ export { useCollabEditor } from './hooks/use_collab_editor.js';
23
+ export type { UseCollabEditorResult } from './hooks/use_collab_editor.js';
20
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC9E,YAAY,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,eAAe,EACf,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,YAAY,EACV,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,eAAe,EACf,aAAa,EACb,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC9E,YAAY,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,eAAe,EACf,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,YAAY,EACV,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,eAAe,EACf,aAAa,EACb,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}
package/dist/src/index.js CHANGED
@@ -10,4 +10,6 @@ export { useAwareness } from './hooks/use_awareness.js';
10
10
  export { useComments } from './hooks/use_comments.js';
11
11
  export { useVersions } from './hooks/use_versions.js';
12
12
  export { useAutomergeDoc } from './hooks/use_automerge_doc.js';
13
+ export { createExcalidrawAdapter, createTldrawAdapter, createTextAdapter, } from './editors/index.js';
14
+ export { useCollabEditor } from './hooks/use_collab_editor.js';
13
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,eAAe,EACf,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAYtD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,eAAe,EACf,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAYtD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adonis-agora/collaboration-client",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "Client-side React hooks for @adonis-agora/collaboration — collaborative docs, presence, comments and versions. Part of the Agora ecosystem.",
5
5
  "license": "MIT",
6
6
  "repository": {