@liveblocks/react-tiptap 3.20.0-exp1 → 3.20.0-exp3

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.
@@ -82,14 +82,14 @@ function updateLiveblocksNodeAttrs(node, attrs) {
82
82
  }
83
83
  function liveTextToTextNodes(text) {
84
84
  const nodes = [];
85
- for (const delta of text.toDelta()) {
86
- if (delta.text.length === 0) {
85
+ for (const [segmentText, segmentAttributes] of text.toJSON()) {
86
+ if (segmentText.length === 0) {
87
87
  continue;
88
88
  }
89
89
  nodes.push({
90
90
  type: "text",
91
- text: delta.text,
92
- ...delta.attributes !== void 0 ? { marks: attributesToMarks(delta.attributes) } : {}
91
+ text: segmentText,
92
+ ...segmentAttributes !== void 0 ? { marks: attributesToMarks(segmentAttributes) } : {}
93
93
  });
94
94
  }
95
95
  return nodes;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.cjs","sources":["../../src/collaboration-liveblocks/schema.ts"],"sourcesContent":["import {\n type Json,\n type JsonObject,\n LiveList,\n LiveObject,\n LiveText,\n type LiveTextAttributes,\n type LiveTextAttributesPatch,\n type LiveTextDelta,\n nanoid,\n} from \"@liveblocks/client\";\n\nexport const TEXT_MARKS_ATTRIBUTE = \"__liveblocks_tiptap_marks\";\n\nexport type ProseMirrorJsonNode = {\n type: string;\n attrs?: JsonObject;\n content?: ProseMirrorJsonNode[];\n text?: string;\n marks?: ProseMirrorJsonMark[];\n};\n\nexport type ProseMirrorJsonMark = {\n type: string;\n attrs?: JsonObject;\n};\n\ntype LiveblocksTiptapNodeData = {\n id: string;\n type: string;\n attrs?: JsonObject;\n content?: LiveList<LiveblocksTiptapNode>;\n text?: LiveText;\n};\n\nexport type LiveblocksTiptapNode = LiveObject<LiveblocksTiptapNodeData>;\n\nfunction isJsonObject(value: Json | undefined): value is JsonObject {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nexport function marksToAttributes(\n marks: ProseMirrorJsonMark[] | undefined\n): LiveTextAttributes | undefined {\n if (marks === undefined || marks.length === 0) {\n return undefined;\n }\n\n return {\n [TEXT_MARKS_ATTRIBUTE]: marks.map((mark) => ({\n type: mark.type,\n ...(mark.attrs !== undefined ? { attrs: mark.attrs } : {}),\n })),\n };\n}\n\nexport function attributesToMarks(\n attributes: JsonObject | undefined\n): ProseMirrorJsonMark[] | undefined {\n const rawMarks = attributes?.[TEXT_MARKS_ATTRIBUTE];\n\n if (!Array.isArray(rawMarks)) {\n return undefined;\n }\n\n const marks: ProseMirrorJsonMark[] = [];\n for (const rawMark of rawMarks) {\n if (!isJsonObject(rawMark) || typeof rawMark.type !== \"string\") {\n continue;\n }\n\n marks.push({\n type: rawMark.type,\n ...(isJsonObject(rawMark.attrs) ? { attrs: rawMark.attrs } : {}),\n });\n }\n\n return marks.length > 0 ? marks : undefined;\n}\n\nexport function marksToAttributesPatch(\n marks: ProseMirrorJsonMark[] | undefined\n): LiveTextAttributesPatch {\n const attributes = marksToAttributes(marks);\n return {\n [TEXT_MARKS_ATTRIBUTE]:\n attributes?.[TEXT_MARKS_ATTRIBUTE] === undefined\n ? null\n : attributes[TEXT_MARKS_ATTRIBUTE],\n };\n}\n\nexport function createLiveblocksTiptapNode(\n node: ProseMirrorJsonNode\n): LiveblocksTiptapNode {\n if (node.type === \"text\") {\n const text = new LiveText();\n text.insert(0, node.text ?? \"\", marksToAttributes(node.marks));\n\n return new LiveObject({\n id: nanoid(),\n type: node.type,\n text,\n });\n }\n\n return new LiveObject({\n id: nanoid(),\n type: node.type,\n ...(node.attrs !== undefined ? { attrs: node.attrs } : {}),\n content: new LiveList(\n (node.content ?? []).map((child) => createLiveblocksTiptapNode(child))\n ),\n });\n}\n\nexport function getLiveblocksNodeId(node: LiveblocksTiptapNode): string {\n return node.get(\"id\");\n}\n\nexport function getLiveblocksNodeType(node: LiveblocksTiptapNode): string {\n return node.get(\"type\");\n}\n\nexport function getLiveblocksNodeContent(\n node: LiveblocksTiptapNode\n): LiveList<LiveblocksTiptapNode> | undefined {\n const content = node.get(\"content\");\n return content instanceof LiveList ? content : undefined;\n}\n\nexport function getLiveblocksNodeText(\n node: LiveblocksTiptapNode\n): LiveText | undefined {\n const text = node.get(\"text\");\n return text instanceof LiveText ? text : undefined;\n}\n\nexport function updateLiveblocksNodeAttrs(\n node: LiveblocksTiptapNode,\n attrs: JsonObject | undefined\n): void {\n if (attrs === undefined) {\n node.delete(\"attrs\");\n } else {\n node.set(\"attrs\", attrs);\n }\n}\n\nfunction liveTextToTextNodes(text: LiveText): ProseMirrorJsonNode[] {\n const nodes: ProseMirrorJsonNode[] = [];\n\n for (const delta of text.toDelta()) {\n if (delta.text.length === 0) {\n continue;\n }\n\n nodes.push({\n type: \"text\",\n text: delta.text,\n ...(delta.attributes !== undefined\n ? { marks: attributesToMarks(delta.attributes) }\n : {}),\n });\n }\n\n return nodes;\n}\n\nexport function liveblocksTiptapNodeToJsonNodes(\n node: LiveblocksTiptapNode\n): ProseMirrorJsonNode[] {\n const type = node.get(\"type\");\n\n if (type === \"text\") {\n const text = node.get(\"text\");\n return text instanceof LiveText ? liveTextToTextNodes(text) : [];\n }\n\n const content = node.get(\"content\");\n const jsonNode: ProseMirrorJsonNode = {\n type,\n ...(node.get(\"attrs\") !== undefined ? { attrs: node.get(\"attrs\") } : {}),\n };\n\n if (content instanceof LiveList && content.length > 0) {\n const children: ProseMirrorJsonNode[] = [];\n\n for (let index = 0; index < content.length; index++) {\n const child = content.get(index);\n if (child !== undefined) {\n children.push(...liveblocksTiptapNodeToJsonNodes(child));\n }\n }\n\n if (children.length > 0) {\n jsonNode.content = children;\n }\n }\n\n return [jsonNode];\n}\n\nexport function liveblocksTiptapNodeToJson(\n node: LiveblocksTiptapNode\n): ProseMirrorJsonNode {\n const [jsonNode] = liveblocksTiptapNodeToJsonNodes(node);\n\n if (\n jsonNode === undefined ||\n (jsonNode.type === \"doc\" &&\n (!Array.isArray(jsonNode.content) || jsonNode.content.length === 0))\n ) {\n return createDefaultDocument();\n }\n\n return jsonNode;\n}\n\nexport function createDefaultDocument(): ProseMirrorJsonNode {\n return { type: \"doc\", content: [{ type: \"paragraph\" }] };\n}\n\nexport function stringifyDocument(node: ProseMirrorJsonNode): string {\n return JSON.stringify(node);\n}\n\nexport type { LiveTextDelta };\n"],"names":["LiveText","LiveObject","nanoid","LiveList"],"mappings":"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"}
1
+ {"version":3,"file":"schema.cjs","sources":["../../src/collaboration-liveblocks/schema.ts"],"sourcesContent":["import {\n type Json,\n type JsonObject,\n LiveList,\n LiveObject,\n LiveText,\n type LiveTextAttributes,\n type LiveTextAttributesPatch,\n type LiveTextData,\n nanoid,\n} from \"@liveblocks/client\";\n\nexport const TEXT_MARKS_ATTRIBUTE = \"__liveblocks_tiptap_marks\";\n\nexport type ProseMirrorJsonNode = {\n type: string;\n attrs?: JsonObject;\n content?: ProseMirrorJsonNode[];\n text?: string;\n marks?: ProseMirrorJsonMark[];\n};\n\nexport type ProseMirrorJsonMark = {\n type: string;\n attrs?: JsonObject;\n};\n\ntype LiveblocksTiptapNodeData = {\n id: string;\n type: string;\n attrs?: JsonObject;\n content?: LiveList<LiveblocksTiptapNode>;\n text?: LiveText;\n};\n\nexport type LiveblocksTiptapNode = LiveObject<LiveblocksTiptapNodeData>;\n\nfunction isJsonObject(value: Json | undefined): value is JsonObject {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nexport function marksToAttributes(\n marks: ProseMirrorJsonMark[] | undefined\n): LiveTextAttributes | undefined {\n if (marks === undefined || marks.length === 0) {\n return undefined;\n }\n\n return {\n [TEXT_MARKS_ATTRIBUTE]: marks.map((mark) => ({\n type: mark.type,\n ...(mark.attrs !== undefined ? { attrs: mark.attrs } : {}),\n })),\n };\n}\n\nexport function attributesToMarks(\n attributes: JsonObject | undefined\n): ProseMirrorJsonMark[] | undefined {\n const rawMarks = attributes?.[TEXT_MARKS_ATTRIBUTE];\n\n if (!Array.isArray(rawMarks)) {\n return undefined;\n }\n\n const marks: ProseMirrorJsonMark[] = [];\n for (const rawMark of rawMarks) {\n if (!isJsonObject(rawMark) || typeof rawMark.type !== \"string\") {\n continue;\n }\n\n marks.push({\n type: rawMark.type,\n ...(isJsonObject(rawMark.attrs) ? { attrs: rawMark.attrs } : {}),\n });\n }\n\n return marks.length > 0 ? marks : undefined;\n}\n\nexport function marksToAttributesPatch(\n marks: ProseMirrorJsonMark[] | undefined\n): LiveTextAttributesPatch {\n const attributes = marksToAttributes(marks);\n return {\n [TEXT_MARKS_ATTRIBUTE]:\n attributes?.[TEXT_MARKS_ATTRIBUTE] === undefined\n ? null\n : attributes[TEXT_MARKS_ATTRIBUTE],\n };\n}\n\nexport function createLiveblocksTiptapNode(\n node: ProseMirrorJsonNode\n): LiveblocksTiptapNode {\n if (node.type === \"text\") {\n const text = new LiveText();\n text.insert(0, node.text ?? \"\", marksToAttributes(node.marks));\n\n return new LiveObject({\n id: nanoid(),\n type: node.type,\n text,\n });\n }\n\n return new LiveObject({\n id: nanoid(),\n type: node.type,\n ...(node.attrs !== undefined ? { attrs: node.attrs } : {}),\n content: new LiveList(\n (node.content ?? []).map((child) => createLiveblocksTiptapNode(child))\n ),\n });\n}\n\nexport function getLiveblocksNodeId(node: LiveblocksTiptapNode): string {\n return node.get(\"id\");\n}\n\nexport function getLiveblocksNodeType(node: LiveblocksTiptapNode): string {\n return node.get(\"type\");\n}\n\nexport function getLiveblocksNodeContent(\n node: LiveblocksTiptapNode\n): LiveList<LiveblocksTiptapNode> | undefined {\n const content = node.get(\"content\");\n return content instanceof LiveList ? content : undefined;\n}\n\nexport function getLiveblocksNodeText(\n node: LiveblocksTiptapNode\n): LiveText | undefined {\n const text = node.get(\"text\");\n return text instanceof LiveText ? text : undefined;\n}\n\nexport function updateLiveblocksNodeAttrs(\n node: LiveblocksTiptapNode,\n attrs: JsonObject | undefined\n): void {\n if (attrs === undefined) {\n node.delete(\"attrs\");\n } else {\n node.set(\"attrs\", attrs);\n }\n}\n\nfunction liveTextToTextNodes(text: LiveText): ProseMirrorJsonNode[] {\n const nodes: ProseMirrorJsonNode[] = [];\n\n for (const [segmentText, segmentAttributes] of text.toJSON()) {\n if (segmentText.length === 0) {\n continue;\n }\n\n nodes.push({\n type: \"text\",\n text: segmentText,\n ...(segmentAttributes !== undefined\n ? { marks: attributesToMarks(segmentAttributes) }\n : {}),\n });\n }\n\n return nodes;\n}\n\nexport function liveblocksTiptapNodeToJsonNodes(\n node: LiveblocksTiptapNode\n): ProseMirrorJsonNode[] {\n const type = node.get(\"type\");\n\n if (type === \"text\") {\n const text = node.get(\"text\");\n return text instanceof LiveText ? liveTextToTextNodes(text) : [];\n }\n\n const content = node.get(\"content\");\n const jsonNode: ProseMirrorJsonNode = {\n type,\n ...(node.get(\"attrs\") !== undefined ? { attrs: node.get(\"attrs\") } : {}),\n };\n\n if (content instanceof LiveList && content.length > 0) {\n const children: ProseMirrorJsonNode[] = [];\n\n for (let index = 0; index < content.length; index++) {\n const child = content.get(index);\n if (child !== undefined) {\n children.push(...liveblocksTiptapNodeToJsonNodes(child));\n }\n }\n\n if (children.length > 0) {\n jsonNode.content = children;\n }\n }\n\n return [jsonNode];\n}\n\nexport function liveblocksTiptapNodeToJson(\n node: LiveblocksTiptapNode\n): ProseMirrorJsonNode {\n const [jsonNode] = liveblocksTiptapNodeToJsonNodes(node);\n\n if (\n jsonNode === undefined ||\n (jsonNode.type === \"doc\" &&\n (!Array.isArray(jsonNode.content) || jsonNode.content.length === 0))\n ) {\n return createDefaultDocument();\n }\n\n return jsonNode;\n}\n\nexport function createDefaultDocument(): ProseMirrorJsonNode {\n return { type: \"doc\", content: [{ type: \"paragraph\" }] };\n}\n\nexport function stringifyDocument(node: ProseMirrorJsonNode): string {\n return JSON.stringify(node);\n}\n\nexport type { LiveTextData };\n"],"names":["LiveText","LiveObject","nanoid","LiveList"],"mappings":"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"}
@@ -80,14 +80,14 @@ function updateLiveblocksNodeAttrs(node, attrs) {
80
80
  }
81
81
  function liveTextToTextNodes(text) {
82
82
  const nodes = [];
83
- for (const delta of text.toDelta()) {
84
- if (delta.text.length === 0) {
83
+ for (const [segmentText, segmentAttributes] of text.toJSON()) {
84
+ if (segmentText.length === 0) {
85
85
  continue;
86
86
  }
87
87
  nodes.push({
88
88
  type: "text",
89
- text: delta.text,
90
- ...delta.attributes !== void 0 ? { marks: attributesToMarks(delta.attributes) } : {}
89
+ text: segmentText,
90
+ ...segmentAttributes !== void 0 ? { marks: attributesToMarks(segmentAttributes) } : {}
91
91
  });
92
92
  }
93
93
  return nodes;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sources":["../../src/collaboration-liveblocks/schema.ts"],"sourcesContent":["import {\n type Json,\n type JsonObject,\n LiveList,\n LiveObject,\n LiveText,\n type LiveTextAttributes,\n type LiveTextAttributesPatch,\n type LiveTextDelta,\n nanoid,\n} from \"@liveblocks/client\";\n\nexport const TEXT_MARKS_ATTRIBUTE = \"__liveblocks_tiptap_marks\";\n\nexport type ProseMirrorJsonNode = {\n type: string;\n attrs?: JsonObject;\n content?: ProseMirrorJsonNode[];\n text?: string;\n marks?: ProseMirrorJsonMark[];\n};\n\nexport type ProseMirrorJsonMark = {\n type: string;\n attrs?: JsonObject;\n};\n\ntype LiveblocksTiptapNodeData = {\n id: string;\n type: string;\n attrs?: JsonObject;\n content?: LiveList<LiveblocksTiptapNode>;\n text?: LiveText;\n};\n\nexport type LiveblocksTiptapNode = LiveObject<LiveblocksTiptapNodeData>;\n\nfunction isJsonObject(value: Json | undefined): value is JsonObject {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nexport function marksToAttributes(\n marks: ProseMirrorJsonMark[] | undefined\n): LiveTextAttributes | undefined {\n if (marks === undefined || marks.length === 0) {\n return undefined;\n }\n\n return {\n [TEXT_MARKS_ATTRIBUTE]: marks.map((mark) => ({\n type: mark.type,\n ...(mark.attrs !== undefined ? { attrs: mark.attrs } : {}),\n })),\n };\n}\n\nexport function attributesToMarks(\n attributes: JsonObject | undefined\n): ProseMirrorJsonMark[] | undefined {\n const rawMarks = attributes?.[TEXT_MARKS_ATTRIBUTE];\n\n if (!Array.isArray(rawMarks)) {\n return undefined;\n }\n\n const marks: ProseMirrorJsonMark[] = [];\n for (const rawMark of rawMarks) {\n if (!isJsonObject(rawMark) || typeof rawMark.type !== \"string\") {\n continue;\n }\n\n marks.push({\n type: rawMark.type,\n ...(isJsonObject(rawMark.attrs) ? { attrs: rawMark.attrs } : {}),\n });\n }\n\n return marks.length > 0 ? marks : undefined;\n}\n\nexport function marksToAttributesPatch(\n marks: ProseMirrorJsonMark[] | undefined\n): LiveTextAttributesPatch {\n const attributes = marksToAttributes(marks);\n return {\n [TEXT_MARKS_ATTRIBUTE]:\n attributes?.[TEXT_MARKS_ATTRIBUTE] === undefined\n ? null\n : attributes[TEXT_MARKS_ATTRIBUTE],\n };\n}\n\nexport function createLiveblocksTiptapNode(\n node: ProseMirrorJsonNode\n): LiveblocksTiptapNode {\n if (node.type === \"text\") {\n const text = new LiveText();\n text.insert(0, node.text ?? \"\", marksToAttributes(node.marks));\n\n return new LiveObject({\n id: nanoid(),\n type: node.type,\n text,\n });\n }\n\n return new LiveObject({\n id: nanoid(),\n type: node.type,\n ...(node.attrs !== undefined ? { attrs: node.attrs } : {}),\n content: new LiveList(\n (node.content ?? []).map((child) => createLiveblocksTiptapNode(child))\n ),\n });\n}\n\nexport function getLiveblocksNodeId(node: LiveblocksTiptapNode): string {\n return node.get(\"id\");\n}\n\nexport function getLiveblocksNodeType(node: LiveblocksTiptapNode): string {\n return node.get(\"type\");\n}\n\nexport function getLiveblocksNodeContent(\n node: LiveblocksTiptapNode\n): LiveList<LiveblocksTiptapNode> | undefined {\n const content = node.get(\"content\");\n return content instanceof LiveList ? content : undefined;\n}\n\nexport function getLiveblocksNodeText(\n node: LiveblocksTiptapNode\n): LiveText | undefined {\n const text = node.get(\"text\");\n return text instanceof LiveText ? text : undefined;\n}\n\nexport function updateLiveblocksNodeAttrs(\n node: LiveblocksTiptapNode,\n attrs: JsonObject | undefined\n): void {\n if (attrs === undefined) {\n node.delete(\"attrs\");\n } else {\n node.set(\"attrs\", attrs);\n }\n}\n\nfunction liveTextToTextNodes(text: LiveText): ProseMirrorJsonNode[] {\n const nodes: ProseMirrorJsonNode[] = [];\n\n for (const delta of text.toDelta()) {\n if (delta.text.length === 0) {\n continue;\n }\n\n nodes.push({\n type: \"text\",\n text: delta.text,\n ...(delta.attributes !== undefined\n ? { marks: attributesToMarks(delta.attributes) }\n : {}),\n });\n }\n\n return nodes;\n}\n\nexport function liveblocksTiptapNodeToJsonNodes(\n node: LiveblocksTiptapNode\n): ProseMirrorJsonNode[] {\n const type = node.get(\"type\");\n\n if (type === \"text\") {\n const text = node.get(\"text\");\n return text instanceof LiveText ? liveTextToTextNodes(text) : [];\n }\n\n const content = node.get(\"content\");\n const jsonNode: ProseMirrorJsonNode = {\n type,\n ...(node.get(\"attrs\") !== undefined ? { attrs: node.get(\"attrs\") } : {}),\n };\n\n if (content instanceof LiveList && content.length > 0) {\n const children: ProseMirrorJsonNode[] = [];\n\n for (let index = 0; index < content.length; index++) {\n const child = content.get(index);\n if (child !== undefined) {\n children.push(...liveblocksTiptapNodeToJsonNodes(child));\n }\n }\n\n if (children.length > 0) {\n jsonNode.content = children;\n }\n }\n\n return [jsonNode];\n}\n\nexport function liveblocksTiptapNodeToJson(\n node: LiveblocksTiptapNode\n): ProseMirrorJsonNode {\n const [jsonNode] = liveblocksTiptapNodeToJsonNodes(node);\n\n if (\n jsonNode === undefined ||\n (jsonNode.type === \"doc\" &&\n (!Array.isArray(jsonNode.content) || jsonNode.content.length === 0))\n ) {\n return createDefaultDocument();\n }\n\n return jsonNode;\n}\n\nexport function createDefaultDocument(): ProseMirrorJsonNode {\n return { type: \"doc\", content: [{ type: \"paragraph\" }] };\n}\n\nexport function stringifyDocument(node: ProseMirrorJsonNode): string {\n return JSON.stringify(node);\n}\n\nexport type { LiveTextDelta };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sources":["../../src/collaboration-liveblocks/schema.ts"],"sourcesContent":["import {\n type Json,\n type JsonObject,\n LiveList,\n LiveObject,\n LiveText,\n type LiveTextAttributes,\n type LiveTextAttributesPatch,\n type LiveTextData,\n nanoid,\n} from \"@liveblocks/client\";\n\nexport const TEXT_MARKS_ATTRIBUTE = \"__liveblocks_tiptap_marks\";\n\nexport type ProseMirrorJsonNode = {\n type: string;\n attrs?: JsonObject;\n content?: ProseMirrorJsonNode[];\n text?: string;\n marks?: ProseMirrorJsonMark[];\n};\n\nexport type ProseMirrorJsonMark = {\n type: string;\n attrs?: JsonObject;\n};\n\ntype LiveblocksTiptapNodeData = {\n id: string;\n type: string;\n attrs?: JsonObject;\n content?: LiveList<LiveblocksTiptapNode>;\n text?: LiveText;\n};\n\nexport type LiveblocksTiptapNode = LiveObject<LiveblocksTiptapNodeData>;\n\nfunction isJsonObject(value: Json | undefined): value is JsonObject {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nexport function marksToAttributes(\n marks: ProseMirrorJsonMark[] | undefined\n): LiveTextAttributes | undefined {\n if (marks === undefined || marks.length === 0) {\n return undefined;\n }\n\n return {\n [TEXT_MARKS_ATTRIBUTE]: marks.map((mark) => ({\n type: mark.type,\n ...(mark.attrs !== undefined ? { attrs: mark.attrs } : {}),\n })),\n };\n}\n\nexport function attributesToMarks(\n attributes: JsonObject | undefined\n): ProseMirrorJsonMark[] | undefined {\n const rawMarks = attributes?.[TEXT_MARKS_ATTRIBUTE];\n\n if (!Array.isArray(rawMarks)) {\n return undefined;\n }\n\n const marks: ProseMirrorJsonMark[] = [];\n for (const rawMark of rawMarks) {\n if (!isJsonObject(rawMark) || typeof rawMark.type !== \"string\") {\n continue;\n }\n\n marks.push({\n type: rawMark.type,\n ...(isJsonObject(rawMark.attrs) ? { attrs: rawMark.attrs } : {}),\n });\n }\n\n return marks.length > 0 ? marks : undefined;\n}\n\nexport function marksToAttributesPatch(\n marks: ProseMirrorJsonMark[] | undefined\n): LiveTextAttributesPatch {\n const attributes = marksToAttributes(marks);\n return {\n [TEXT_MARKS_ATTRIBUTE]:\n attributes?.[TEXT_MARKS_ATTRIBUTE] === undefined\n ? null\n : attributes[TEXT_MARKS_ATTRIBUTE],\n };\n}\n\nexport function createLiveblocksTiptapNode(\n node: ProseMirrorJsonNode\n): LiveblocksTiptapNode {\n if (node.type === \"text\") {\n const text = new LiveText();\n text.insert(0, node.text ?? \"\", marksToAttributes(node.marks));\n\n return new LiveObject({\n id: nanoid(),\n type: node.type,\n text,\n });\n }\n\n return new LiveObject({\n id: nanoid(),\n type: node.type,\n ...(node.attrs !== undefined ? { attrs: node.attrs } : {}),\n content: new LiveList(\n (node.content ?? []).map((child) => createLiveblocksTiptapNode(child))\n ),\n });\n}\n\nexport function getLiveblocksNodeId(node: LiveblocksTiptapNode): string {\n return node.get(\"id\");\n}\n\nexport function getLiveblocksNodeType(node: LiveblocksTiptapNode): string {\n return node.get(\"type\");\n}\n\nexport function getLiveblocksNodeContent(\n node: LiveblocksTiptapNode\n): LiveList<LiveblocksTiptapNode> | undefined {\n const content = node.get(\"content\");\n return content instanceof LiveList ? content : undefined;\n}\n\nexport function getLiveblocksNodeText(\n node: LiveblocksTiptapNode\n): LiveText | undefined {\n const text = node.get(\"text\");\n return text instanceof LiveText ? text : undefined;\n}\n\nexport function updateLiveblocksNodeAttrs(\n node: LiveblocksTiptapNode,\n attrs: JsonObject | undefined\n): void {\n if (attrs === undefined) {\n node.delete(\"attrs\");\n } else {\n node.set(\"attrs\", attrs);\n }\n}\n\nfunction liveTextToTextNodes(text: LiveText): ProseMirrorJsonNode[] {\n const nodes: ProseMirrorJsonNode[] = [];\n\n for (const [segmentText, segmentAttributes] of text.toJSON()) {\n if (segmentText.length === 0) {\n continue;\n }\n\n nodes.push({\n type: \"text\",\n text: segmentText,\n ...(segmentAttributes !== undefined\n ? { marks: attributesToMarks(segmentAttributes) }\n : {}),\n });\n }\n\n return nodes;\n}\n\nexport function liveblocksTiptapNodeToJsonNodes(\n node: LiveblocksTiptapNode\n): ProseMirrorJsonNode[] {\n const type = node.get(\"type\");\n\n if (type === \"text\") {\n const text = node.get(\"text\");\n return text instanceof LiveText ? liveTextToTextNodes(text) : [];\n }\n\n const content = node.get(\"content\");\n const jsonNode: ProseMirrorJsonNode = {\n type,\n ...(node.get(\"attrs\") !== undefined ? { attrs: node.get(\"attrs\") } : {}),\n };\n\n if (content instanceof LiveList && content.length > 0) {\n const children: ProseMirrorJsonNode[] = [];\n\n for (let index = 0; index < content.length; index++) {\n const child = content.get(index);\n if (child !== undefined) {\n children.push(...liveblocksTiptapNodeToJsonNodes(child));\n }\n }\n\n if (children.length > 0) {\n jsonNode.content = children;\n }\n }\n\n return [jsonNode];\n}\n\nexport function liveblocksTiptapNodeToJson(\n node: LiveblocksTiptapNode\n): ProseMirrorJsonNode {\n const [jsonNode] = liveblocksTiptapNodeToJsonNodes(node);\n\n if (\n jsonNode === undefined ||\n (jsonNode.type === \"doc\" &&\n (!Array.isArray(jsonNode.content) || jsonNode.content.length === 0))\n ) {\n return createDefaultDocument();\n }\n\n return jsonNode;\n}\n\nexport function createDefaultDocument(): ProseMirrorJsonNode {\n return { type: \"doc\", content: [{ type: \"paragraph\" }] };\n}\n\nexport function stringifyDocument(node: ProseMirrorJsonNode): string {\n return JSON.stringify(node);\n}\n\nexport type { LiveTextData };\n"],"names":[],"mappings":"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"}
package/dist/version.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const PKG_NAME = "@liveblocks/react-tiptap";
4
- const PKG_VERSION = typeof "3.20.0-exp1" === "string" && "3.20.0-exp1";
4
+ const PKG_VERSION = typeof "3.20.0-exp3" === "string" && "3.20.0-exp3";
5
5
  const PKG_FORMAT = typeof "cjs" === "string" && "cjs";
6
6
 
7
7
  exports.PKG_FORMAT = PKG_FORMAT;
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  const PKG_NAME = "@liveblocks/react-tiptap";
2
- const PKG_VERSION = typeof "3.20.0-exp1" === "string" && "3.20.0-exp1";
2
+ const PKG_VERSION = typeof "3.20.0-exp3" === "string" && "3.20.0-exp3";
3
3
  const PKG_FORMAT = typeof "esm" === "string" && "esm";
4
4
 
5
5
  export { PKG_FORMAT, PKG_NAME, PKG_VERSION };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liveblocks/react-tiptap",
3
- "version": "3.20.0-exp1",
3
+ "version": "3.20.0-exp3",
4
4
  "description": "An integration of TipTap + React to enable collaboration, comments, live cursors, and more with Liveblocks.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Liveblocks Inc.",
@@ -37,11 +37,11 @@
37
37
  "cmdk": "^1.0.4",
38
38
  "radix-ui": "^1.4.0",
39
39
  "y-prosemirror": "^1.3.7",
40
- "@liveblocks/core": "3.20.0-exp1",
41
- "@liveblocks/react": "3.20.0-exp1",
42
- "@liveblocks/yjs": "3.20.0-exp1",
43
- "@liveblocks/react-ui": "3.20.0-exp1",
44
- "@liveblocks/client": "3.20.0-exp1"
40
+ "@liveblocks/client": "3.20.0-exp3",
41
+ "@liveblocks/react-ui": "3.20.0-exp3",
42
+ "@liveblocks/react": "3.20.0-exp3",
43
+ "@liveblocks/yjs": "3.20.0-exp3",
44
+ "@liveblocks/core": "3.20.0-exp3"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "@tiptap/core": "^3",