@fileverse-dev/ddoc 1.8.1 → 1.8.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,9 +1,8 @@
1
1
  import { DdocProps } from './types';
2
2
 
3
- import * as Y from 'yjs';
4
3
  export declare const useDdocEditor: ({ isPreviewMode, initialContent, enableCollaboration, collaborationId, walletAddress, username, onChange, onCollaboratorChange, onCommentInteraction, onTextSelection, ensResolutionUrl, onError, setCharacterCount, setWordCount, }: Partial<DdocProps>) => {
5
4
  editor: import('@tiptap/react').Editor | null;
6
5
  ref: import('react').RefObject<HTMLDivElement>;
7
- connect: (username: string | null | undefined, isEns?: boolean) => () => void;
8
- ydoc: Y.Doc;
6
+ connect: (username: string | null | undefined, _isEns?: boolean) => void;
7
+ ydoc: import('yjs').Doc;
9
8
  };
@@ -0,0 +1,83 @@
1
+ import { Extension } from '@tiptap/core';
2
+
3
+ type CollaborationCursorStorage = {
4
+ users: {
5
+ clientId: number;
6
+ [key: string]: any;
7
+ }[];
8
+ };
9
+ export interface CollaborationCursorOptions {
10
+ /**
11
+ * The Hocuspocus provider instance. This can also be a TiptapCloudProvider instance.
12
+ * @type {HocuspocusProvider | TiptapCloudProvider}
13
+ * @example new HocuspocusProvider()
14
+ */
15
+ provider: any;
16
+ /**
17
+ * The user details object – feel free to add properties to this object as needed
18
+ * @example { name: 'John Doe', color: '#305500' }
19
+ */
20
+ user: Record<string, any>;
21
+ /**
22
+ * A function that returns a DOM element for the cursor.
23
+ * @param user The user details object
24
+ * @example
25
+ * render: user => {
26
+ * const cursor = document.createElement('span')
27
+ * cursor.classList.add('collaboration-cursor__caret')
28
+ * cursor.setAttribute('style', `border-color: ${user.color}`)
29
+ *
30
+ * const label = document.createElement('div')
31
+ * label.classList.add('collaboration-cursor__label')
32
+ * label.setAttribute('style', `background-color: ${user.color}`)
33
+ * label.insertBefore(document.createTextNode(user.name), null)
34
+ *
35
+ * cursor.insertBefore(label, null)
36
+ * return cursor
37
+ * }
38
+ */
39
+ render(user: Record<string, any>): HTMLElement;
40
+ /**
41
+ * A function that returns a ProseMirror DecorationAttrs object for the selection.
42
+ * @param user The user details object
43
+ * @example
44
+ * selectionRender: user => {
45
+ * return {
46
+ * nodeName: 'span',
47
+ * class: 'collaboration-cursor__selection',
48
+ * style: `background-color: ${user.color}`,
49
+ * 'data-user': user.name,
50
+ * }
51
+ */
52
+ selectionRender(user: Record<string, any>): any;
53
+ /**
54
+ * @deprecated The "onUpdate" option is deprecated. Please use `editor.storage.collaborationCursor.users` instead. Read more: https://tiptap.dev/api/extensions/collaboration-cursor
55
+ */
56
+ onUpdate: (users: {
57
+ clientId: number;
58
+ [key: string]: any;
59
+ }[]) => null;
60
+ }
61
+ declare module '@tiptap/core' {
62
+ interface Commands<ReturnType> {
63
+ collaborationCursor: {
64
+ /**
65
+ * Update details of the current user
66
+ * @example editor.commands.updateUser({ name: 'John Doe', color: '#305500' })
67
+ */
68
+ updateUser: (attributes: Record<string, any>) => ReturnType;
69
+ /**
70
+ * Update details of the current user
71
+ *
72
+ * @deprecated The "user" command is deprecated. Please use "updateUser" instead. Read more: https://tiptap.dev/api/extensions/collaboration-cursor
73
+ */
74
+ user: (attributes: Record<string, any>) => ReturnType;
75
+ };
76
+ }
77
+ }
78
+ /**
79
+ * This extension allows you to add collaboration cursors to your editor.
80
+ * @see https://tiptap.dev/api/extensions/collaboration-cursor
81
+ */
82
+ export declare const CollaborationCursor: Extension<CollaborationCursorOptions, CollaborationCursorStorage>;
83
+ export {};
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@fileverse-dev/ddoc",
3
3
  "private": false,
4
4
  "description": "DDoc",
5
- "version": "1.8.1",
5
+ "version": "1.8.2",
6
6
  "main": "dist/index.umd.js",
7
7
  "module": "dist/index.es.js",
8
8
  "exports": {
@@ -28,6 +28,7 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@_ueberdosis/prosemirror-tables": "^1.1.3",
31
+ "@fileverse-dev/fileverse-sync": "^0.0.4",
31
32
  "@radix-ui/react-focus-scope": "^1.1.0",
32
33
  "@radix-ui/react-popover": "^1.0.7",
33
34
  "@tippyjs/react": "^4.2.6",
@@ -76,8 +77,7 @@
76
77
  "vaul": "^0.9.1",
77
78
  "vite-plugin-dts": "^3.6.3",
78
79
  "y-prosemirror": "^1.2.5",
79
- "y-webrtc": "^10.3.0",
80
- "yjs": "^13.6.15"
80
+ "y-webrtc": "^10.3.0"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@types/dompurify": "^3.0.5",