diff --git a/docs/src/demos/Examples/Collaboration/index.vue b/docs/src/demos/Examples/Collaboration/index.vue
index ab0685b2..4b0e1a7b 100644
--- a/docs/src/demos/Examples/Collaboration/index.vue
+++ b/docs/src/demos/Examples/Collaboration/index.vue
@@ -7,7 +7,7 @@ import { Editor, EditorContent } from '@tiptap/vue-starter-kit'
import Document from '@tiptap/extension-document'
import Paragraph from '@tiptap/extension-paragraph'
import Text from '@tiptap/extension-text'
-import Yjs from '@tiptap/extension-yjs'
+import Collaboration from '@tiptap/extension-collaboration'
export default {
components: {
@@ -24,18 +24,13 @@ export default {
this.editor = new Editor({
// TODO: This is added by every new user.
// content: `
- //
- // This is a radically reduced version of tiptap. It has only support for a document, paragraphs and text. That’s it. It’s probably too much for real minimalists though.
- //
- //
- // The paragraph extension is not literally required, but you need at least one node. That node can be something different, for example to render a task list and only that task list.
- //
+ // Example Text
// `,
extensions: [
Document(),
Paragraph(),
Text(),
- Yjs({
+ Collaboration({
name: 'Other User',
color: '#d6336c',
}),
diff --git a/packages/extension-yjs/index.ts b/packages/extension-collaboration/index.ts
similarity index 77%
rename from packages/extension-yjs/index.ts
rename to packages/extension-collaboration/index.ts
index 1b08794b..c8846e51 100644
--- a/packages/extension-yjs/index.ts
+++ b/packages/extension-collaboration/index.ts
@@ -6,33 +6,40 @@ import {
import { WebrtcProvider } from 'y-webrtc'
import { keymap } from 'prosemirror-keymap'
-export interface YjsOptions {
+export interface CollaborationOptions {
name: string,
color: string,
+ provider?: any,
+ type?: any,
}
const ydoc = new Y.Doc()
const provider = new WebrtcProvider('example', ydoc)
const type = ydoc.getXmlFragment('prosemirror')
-export default new Extension()
- .name('yjs')
+export default new Extension()
+ .name('collaboration')
.defaults({
name: 'Someone',
color: '#cccccc',
+ provider: null,
+ type: null,
})
.plugins(({ options }) => [
+ // Collaboration
ySyncPlugin(type),
- yCursorPlugin((() => {
- provider.awareness.setLocalStateField('user', { name: options.name, color: options.color })
-
- return provider.awareness
- })()),
yUndoPlugin(),
keymap({
'Mod-z': undo,
'Mod-y': redo,
'Mod-Shift-z': redo,
}),
+
+ // CollaborationCursor
+ yCursorPlugin((() => {
+ provider.awareness.setLocalStateField('user', { name: options.name, color: options.color })
+
+ return provider.awareness
+ })()),
])
.create()
diff --git a/packages/extension-collaboration/package.json b/packages/extension-collaboration/package.json
new file mode 100644
index 00000000..4fa5d67b
--- /dev/null
+++ b/packages/extension-collaboration/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "@tiptap/extension-collaboration",
+ "version": "1.0.0",
+ "source": "index.ts",
+ "main": "dist/tiptap-extension-collaboration.js",
+ "umd:main": "dist/tiptap-extension-collaboration.umd.js",
+ "module": "dist/tiptap-extension-collaboration.mjs",
+ "unpkg": "dist/tiptap-extension-collaboration.js",
+ "jsdelivr": "dist/tiptap-extension-collaboration.js",
+ "files": [
+ "src",
+ "dist"
+ ],
+ "peerDependencies": {
+ "@tiptap/core": "2.x"
+ },
+ "dependencies": {
+ "y-prosemirror": "^0.3.7",
+ "y-webrtc": "^10.1.6",
+ "yjs": "^13.3.2"
+ }
+}
diff --git a/packages/extension-yjs/package.json b/packages/extension-yjs/package.json
deleted file mode 100644
index f185f136..00000000
--- a/packages/extension-yjs/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "name": "@tiptap/extension-yjs",
- "version": "1.0.0",
- "source": "index.ts",
- "main": "dist/tiptap-extension-yjs.js",
- "umd:main": "dist/tiptap-extension-yjs.umd.js",
- "module": "dist/tiptap-extension-yjs.mjs",
- "unpkg": "dist/tiptap-extension-yjs.js",
- "jsdelivr": "dist/tiptap-extension-yjs.js",
- "files": [
- "src",
- "dist"
- ],
- "peerDependencies": {
- "@tiptap/core": "2.x"
- },
- "dependencies": {
- "y-prosemirror": "^0.3.7",
- "y-webrtc": "^10.1.6",
- "yjs": "^13.3.2"
- }
-}