@liveblocks/react-lexical 1.12.0-lexical3

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.
Files changed (78) hide show
  1. package/dist/active-selection.js +143 -0
  2. package/dist/active-selection.js.map +1 -0
  3. package/dist/active-selection.mjs +123 -0
  4. package/dist/active-selection.mjs.map +1 -0
  5. package/dist/comments/ThreadPanel.js +26 -0
  6. package/dist/comments/ThreadPanel.js.map +1 -0
  7. package/dist/comments/ThreadPanel.mjs +24 -0
  8. package/dist/comments/ThreadPanel.mjs.map +1 -0
  9. package/dist/comments/comment-plugin-provider.js +322 -0
  10. package/dist/comments/comment-plugin-provider.js.map +1 -0
  11. package/dist/comments/comment-plugin-provider.mjs +299 -0
  12. package/dist/comments/comment-plugin-provider.mjs.map +1 -0
  13. package/dist/comments/floating-composer.js +34 -0
  14. package/dist/comments/floating-composer.js.map +1 -0
  15. package/dist/comments/floating-composer.mjs +32 -0
  16. package/dist/comments/floating-composer.mjs.map +1 -0
  17. package/dist/comments/get-thread-mark-ids.js +23 -0
  18. package/dist/comments/get-thread-mark-ids.js.map +1 -0
  19. package/dist/comments/get-thread-mark-ids.mjs +21 -0
  20. package/dist/comments/get-thread-mark-ids.mjs.map +1 -0
  21. package/dist/comments/thread-mark-node.js +138 -0
  22. package/dist/comments/thread-mark-node.js.map +1 -0
  23. package/dist/comments/thread-mark-node.mjs +134 -0
  24. package/dist/comments/thread-mark-node.mjs.map +1 -0
  25. package/dist/comments/unwrap-thread-mark-node.js +19 -0
  26. package/dist/comments/unwrap-thread-mark-node.js.map +1 -0
  27. package/dist/comments/unwrap-thread-mark-node.mjs +17 -0
  28. package/dist/comments/unwrap-thread-mark-node.mjs.map +1 -0
  29. package/dist/comments/wrap-selection-in-thread-mark-node.js +63 -0
  30. package/dist/comments/wrap-selection-in-thread-mark-node.js.map +1 -0
  31. package/dist/comments/wrap-selection-in-thread-mark-node.mjs +61 -0
  32. package/dist/comments/wrap-selection-in-thread-mark-node.mjs.map +1 -0
  33. package/dist/floating-selection-container.js +157 -0
  34. package/dist/floating-selection-container.js.map +1 -0
  35. package/dist/floating-selection-container.mjs +155 -0
  36. package/dist/floating-selection-container.mjs.map +1 -0
  37. package/dist/index.d.ts +61 -0
  38. package/dist/index.js +20 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/index.mjs +11 -0
  41. package/dist/index.mjs.map +1 -0
  42. package/dist/liveblocks-config.js +89 -0
  43. package/dist/liveblocks-config.js.map +1 -0
  44. package/dist/liveblocks-config.mjs +67 -0
  45. package/dist/liveblocks-config.mjs.map +1 -0
  46. package/dist/liveblocks-plugin-provider.js +79 -0
  47. package/dist/liveblocks-plugin-provider.js.map +1 -0
  48. package/dist/liveblocks-plugin-provider.mjs +76 -0
  49. package/dist/liveblocks-plugin-provider.mjs.map +1 -0
  50. package/dist/mentions/avatar.js +49 -0
  51. package/dist/mentions/avatar.js.map +1 -0
  52. package/dist/mentions/avatar.mjs +47 -0
  53. package/dist/mentions/avatar.mjs.map +1 -0
  54. package/dist/mentions/mention-component.js +63 -0
  55. package/dist/mentions/mention-component.js.map +1 -0
  56. package/dist/mentions/mention-component.mjs +60 -0
  57. package/dist/mentions/mention-component.mjs.map +1 -0
  58. package/dist/mentions/mention-node.js +105 -0
  59. package/dist/mentions/mention-node.js.map +1 -0
  60. package/dist/mentions/mention-node.mjs +84 -0
  61. package/dist/mentions/mention-node.mjs.map +1 -0
  62. package/dist/mentions/mention-plugin.js +291 -0
  63. package/dist/mentions/mention-plugin.js.map +1 -0
  64. package/dist/mentions/mention-plugin.mjs +284 -0
  65. package/dist/mentions/mention-plugin.mjs.map +1 -0
  66. package/dist/mentions/suggestions.js +161 -0
  67. package/dist/mentions/suggestions.js.map +1 -0
  68. package/dist/mentions/suggestions.mjs +158 -0
  69. package/dist/mentions/suggestions.mjs.map +1 -0
  70. package/dist/mentions/user.js +21 -0
  71. package/dist/mentions/user.js.map +1 -0
  72. package/dist/mentions/user.mjs +19 -0
  73. package/dist/mentions/user.mjs.map +1 -0
  74. package/dist/version.js +10 -0
  75. package/dist/version.js.map +1 -0
  76. package/dist/version.mjs +6 -0
  77. package/dist/version.mjs.map +1 -0
  78. package/package.json +102 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggestions.mjs","sources":["../../src/mentions/suggestions.tsx"],"sourcesContent":["import { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport {\n COMMAND_PRIORITY_LOW,\n KEY_ARROW_DOWN_COMMAND,\n KEY_ARROW_UP_COMMAND,\n KEY_ENTER_COMMAND,\n KEY_ESCAPE_COMMAND,\n} from \"lexical\";\nimport type {\n Dispatch,\n HTMLAttributes,\n MouseEvent,\n ReactNode,\n SetStateAction,\n} from \"react\";\nimport React, {\n createContext,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\n\nimport {\n useOnResetMatchCallback,\n useOnValueSelectCallback,\n useSuggestions,\n} from \"./mention-plugin\";\n\nconst HighlightedIndexContext = createContext<\n [number, Dispatch<SetStateAction<number>>] | null\n>(null);\n\nexport interface ListProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nconst List = forwardRef<HTMLDivElement, ListProps>(\n function (props, forwardedRef) {\n const { children, ...divProps } = props;\n const [editor] = useLexicalComposerContext();\n const [highlightedIndex, setHighlightedIndex] = useState(0);\n const values = useSuggestions();\n const onValueSelect = useOnValueSelectCallback();\n const onEscapeKeyDown = useOnResetMatchCallback();\n\n useEffect(() => {\n function onKeyArrowDown(event: KeyboardEvent): boolean {\n if (values.length === 0) return true;\n if (highlightedIndex === null) return true;\n\n // If the highlighted index is at the last suggestion, then we loop back to the first suggestion, otherwise we increment the index.\n const nextIndex =\n highlightedIndex === values.length - 1 ? 0 : highlightedIndex + 1;\n setHighlightedIndex(nextIndex);\n\n event.preventDefault();\n event.stopImmediatePropagation();\n\n return true;\n }\n\n return editor.registerCommand(\n KEY_ARROW_DOWN_COMMAND,\n onKeyArrowDown,\n COMMAND_PRIORITY_LOW\n );\n }, [editor, highlightedIndex, values]);\n\n useEffect(() => {\n function onKeyArrowUp(event: KeyboardEvent): boolean {\n if (values.length === 0) return true;\n if (highlightedIndex === null) return true;\n\n // If the highlighted index is at the first suggestion, then we loop back to the last suggestion, otherwise we decrement the index.\n const nextIndex =\n highlightedIndex === 0 ? values.length - 1 : highlightedIndex - 1;\n setHighlightedIndex(nextIndex);\n\n event.preventDefault();\n event.stopImmediatePropagation();\n return true;\n }\n\n return editor.registerCommand(\n KEY_ARROW_UP_COMMAND,\n onKeyArrowUp,\n COMMAND_PRIORITY_LOW\n );\n }, [editor, highlightedIndex, values]);\n\n useEffect(() => {\n function onKeyEscape(event: KeyboardEvent): boolean {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n onEscapeKeyDown();\n return true;\n }\n\n return editor.registerCommand<KeyboardEvent>(\n KEY_ESCAPE_COMMAND,\n onKeyEscape,\n COMMAND_PRIORITY_LOW\n );\n }, [editor, onEscapeKeyDown]);\n\n useEffect(() => {\n function onKeyEnter(event: KeyboardEvent | null): boolean {\n if (values.length === 0) return true;\n\n onValueSelect(values[highlightedIndex]);\n\n if (event === null) return true;\n\n event.preventDefault();\n event.stopImmediatePropagation();\n return true;\n }\n\n return editor.registerCommand(\n KEY_ENTER_COMMAND,\n onKeyEnter,\n COMMAND_PRIORITY_LOW\n );\n }, [editor, onValueSelect, highlightedIndex, values]);\n\n useEffect(() => {\n const root = editor.getRootElement();\n if (root === null) return;\n\n root.setAttribute(\n \"aria-activedescendant\",\n `typeahead-item-${highlightedIndex}`\n );\n\n return () => {\n root.removeAttribute(\"aria-activedescendant\");\n };\n }, [editor, highlightedIndex]);\n\n return (\n <HighlightedIndexContext.Provider\n value={[highlightedIndex, setHighlightedIndex]}\n >\n <div role=\"listbox\" {...divProps} ref={forwardedRef}>\n {children}\n </div>\n </HighlightedIndexContext.Provider>\n );\n }\n);\n\ninterface ItemProps extends HTMLAttributes<HTMLDivElement> {\n value: string;\n}\n\nconst Item = forwardRef<HTMLDivElement | null, ItemProps>(\n function Item(props, forwardedRef) {\n const { children, value, onMouseEnter, onClick, ...divProps } = props;\n const divRef = useRef<HTMLDivElement>(null);\n\n const [highlightedIndex, setHighlightedIndex] = useHighlightedIndex();\n const suggestions = useSuggestions();\n const onValueSelect = useOnValueSelectCallback();\n\n const isHighlighted = suggestions[highlightedIndex] === value;\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => divRef.current\n );\n\n useEffect(() => {\n if (!isHighlighted) return;\n\n const div = divRef.current;\n if (div === null) return;\n\n div.scrollIntoView({ block: \"nearest\" });\n }, [isHighlighted]);\n\n function handleMouseEnter(event: MouseEvent<HTMLDivElement>) {\n onMouseEnter?.(event);\n\n if (event.isDefaultPrevented()) return;\n\n const index = suggestions.indexOf(value);\n if (index === -1) return;\n\n setHighlightedIndex(index);\n }\n\n function handleClick(event: MouseEvent<HTMLDivElement>) {\n onClick?.(event);\n\n if (event.isDefaultPrevented()) return;\n\n onValueSelect(value);\n }\n\n return (\n <div\n role=\"option\"\n data-highlighted={isHighlighted || undefined}\n onMouseEnter={handleMouseEnter}\n onClick={handleClick}\n {...divProps}\n ref={divRef}\n >\n {children}\n </div>\n );\n }\n);\n\nfunction useHighlightedIndex(): [\n number,\n React.Dispatch<React.SetStateAction<number>>,\n] {\n const context = React.useContext(HighlightedIndexContext);\n if (context === null) {\n throw new Error(\n \"useHighlightedIndex must be used within a HighlightedIndexProvider\"\n );\n }\n return context;\n}\n\nexport { Item, List };\n"],"names":["React","Item"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var react = require('@liveblocks/react');
4
+ var React = require('react');
5
+
6
+ const User = React.forwardRef(
7
+ function User2(props, forwardedRef) {
8
+ const { userId, ...spanProps } = props;
9
+ const { useUser } = react.useSharedContextBundle();
10
+ const { user, isLoading } = useUser(userId);
11
+ const name = user === void 0 ? "Anonymous" : user.name;
12
+ return /* @__PURE__ */ React.createElement("span", {
13
+ "data-loading": isLoading ? "" : void 0,
14
+ ...spanProps,
15
+ ref: forwardedRef
16
+ }, isLoading ? null : name);
17
+ }
18
+ );
19
+
20
+ module.exports = User;
21
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sources":["../../src/mentions/user.tsx"],"sourcesContent":["import { useSharedContextBundle } from \"@liveblocks/react\";\nimport type { HTMLAttributes } from \"react\";\nimport React, { forwardRef } from \"react\";\n\nexport interface UserProps\n extends Omit<HTMLAttributes<HTMLSpanElement>, \"children\"> {\n userId: string;\n}\n\nconst User = forwardRef<HTMLSpanElement, UserProps>(\n function User(props, forwardedRef) {\n const { userId, ...spanProps } = props;\n const { useUser } = useSharedContextBundle();\n\n const { user, isLoading } = useUser(userId);\n\n const name = user === undefined ? \"Anonymous\" : user.name;\n\n return (\n <span\n data-loading={isLoading ? \"\" : undefined}\n {...spanProps}\n ref={forwardedRef}\n >\n {isLoading ? null : name}\n </span>\n );\n }\n);\n\nexport default User;\n"],"names":["forwardRef","User","useSharedContextBundle"],"mappings":";;;;;AASA,MAAM,IAAO,GAAAA,gBAAA;AAAA,EACX,SAASC,KAAK,CAAA,KAAA,EAAO,YAAc,EAAA;AACjC,IAAM,MAAA,EAAE,MAAW,EAAA,GAAA,SAAA,EAAc,GAAA,KAAA,CAAA;AACjC,IAAM,MAAA,EAAE,OAAQ,EAAA,GAAIC,4BAAuB,EAAA,CAAA;AAE3C,IAAA,MAAM,EAAE,IAAA,EAAM,SAAU,EAAA,GAAI,QAAQ,MAAM,CAAA,CAAA;AAE1C,IAAA,MAAM,IAAO,GAAA,IAAA,KAAS,KAAY,CAAA,GAAA,WAAA,GAAc,IAAK,CAAA,IAAA,CAAA;AAErD,IAAA,uBACG,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAA,MACC,cAAA,EAAc,YAAY,EAAK,GAAA,KAAA,CAAA;AAAA,MAC9B,GAAG,SAAA;AAAA,MACJ,GAAK,EAAA,YAAA;AAAA,KAEJ,EAAA,SAAA,GAAY,OAAO,IACtB,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -0,0 +1,19 @@
1
+ import { useSharedContextBundle } from '@liveblocks/react';
2
+ import React__default, { forwardRef } from 'react';
3
+
4
+ const User = forwardRef(
5
+ function User2(props, forwardedRef) {
6
+ const { userId, ...spanProps } = props;
7
+ const { useUser } = useSharedContextBundle();
8
+ const { user, isLoading } = useUser(userId);
9
+ const name = user === void 0 ? "Anonymous" : user.name;
10
+ return /* @__PURE__ */ React__default.createElement("span", {
11
+ "data-loading": isLoading ? "" : void 0,
12
+ ...spanProps,
13
+ ref: forwardedRef
14
+ }, isLoading ? null : name);
15
+ }
16
+ );
17
+
18
+ export { User as default };
19
+ //# sourceMappingURL=user.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.mjs","sources":["../../src/mentions/user.tsx"],"sourcesContent":["import { useSharedContextBundle } from \"@liveblocks/react\";\nimport type { HTMLAttributes } from \"react\";\nimport React, { forwardRef } from \"react\";\n\nexport interface UserProps\n extends Omit<HTMLAttributes<HTMLSpanElement>, \"children\"> {\n userId: string;\n}\n\nconst User = forwardRef<HTMLSpanElement, UserProps>(\n function User(props, forwardedRef) {\n const { userId, ...spanProps } = props;\n const { useUser } = useSharedContextBundle();\n\n const { user, isLoading } = useUser(userId);\n\n const name = user === undefined ? \"Anonymous\" : user.name;\n\n return (\n <span\n data-loading={isLoading ? \"\" : undefined}\n {...spanProps}\n ref={forwardedRef}\n >\n {isLoading ? null : name}\n </span>\n );\n }\n);\n\nexport default User;\n"],"names":["User","React"],"mappings":";;;AASA,MAAM,IAAO,GAAA,UAAA;AAAA,EACX,SAASA,KAAK,CAAA,KAAA,EAAO,YAAc,EAAA;AACjC,IAAM,MAAA,EAAE,MAAW,EAAA,GAAA,SAAA,EAAc,GAAA,KAAA,CAAA;AACjC,IAAM,MAAA,EAAE,OAAQ,EAAA,GAAI,sBAAuB,EAAA,CAAA;AAE3C,IAAA,MAAM,EAAE,IAAA,EAAM,SAAU,EAAA,GAAI,QAAQ,MAAM,CAAA,CAAA;AAE1C,IAAA,MAAM,IAAO,GAAA,IAAA,KAAS,KAAY,CAAA,GAAA,WAAA,GAAc,IAAK,CAAA,IAAA,CAAA;AAErD,IAAA,uBACGC,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAA,MACC,cAAA,EAAc,YAAY,EAAK,GAAA,KAAA,CAAA;AAAA,MAC9B,GAAG,SAAA;AAAA,MACJ,GAAK,EAAA,YAAA;AAAA,KAEJ,EAAA,SAAA,GAAY,OAAO,IACtB,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ const PKG_NAME = "@liveblocks/react-lexical";
4
+ const PKG_VERSION = typeof "1.12.0-lexical2" === "string" && "1.12.0-lexical2";
5
+ const PKG_FORMAT = typeof "cjs" === "string" && "cjs";
6
+
7
+ exports.PKG_FORMAT = PKG_FORMAT;
8
+ exports.PKG_NAME = PKG_NAME;
9
+ exports.PKG_VERSION = PKG_VERSION;
10
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sources":["../src/version.ts"],"sourcesContent":["declare const __VERSION__: string;\ndeclare const TSUP_FORMAT: string;\n\nexport const PKG_NAME = \"@liveblocks/react-lexical\";\nexport const PKG_VERSION = typeof __VERSION__ === \"string\" && __VERSION__;\nexport const PKG_FORMAT = typeof TSUP_FORMAT === \"string\" && TSUP_FORMAT;\n"],"names":[],"mappings":";;AAGO,MAAM,QAAW,GAAA,4BAAA;AACX,MAAA,WAAA,GAAc,OAAO,iBAAA,KAAgB,QAAY,IAAA,kBAAA;AACjD,MAAA,UAAA,GAAa,OAAO,KAAA,KAAgB,QAAY,IAAA;;;;;;"}
@@ -0,0 +1,6 @@
1
+ const PKG_NAME = "@liveblocks/react-lexical";
2
+ const PKG_VERSION = typeof "1.12.0-lexical2" === "string" && "1.12.0-lexical2";
3
+ const PKG_FORMAT = typeof "esm" === "string" && "esm";
4
+
5
+ export { PKG_FORMAT, PKG_NAME, PKG_VERSION };
6
+ //# sourceMappingURL=version.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.mjs","sources":["../src/version.ts"],"sourcesContent":["declare const __VERSION__: string;\ndeclare const TSUP_FORMAT: string;\n\nexport const PKG_NAME = \"@liveblocks/react-lexical\";\nexport const PKG_VERSION = typeof __VERSION__ === \"string\" && __VERSION__;\nexport const PKG_FORMAT = typeof TSUP_FORMAT === \"string\" && TSUP_FORMAT;\n"],"names":[],"mappings":"AAGO,MAAM,QAAW,GAAA,4BAAA;AACX,MAAA,WAAA,GAAc,OAAO,iBAAA,KAAgB,QAAY,IAAA,kBAAA;AACjD,MAAA,UAAA,GAAa,OAAO,KAAA,KAAgB,QAAY,IAAA;;;;"}
package/package.json ADDED
@@ -0,0 +1,102 @@
1
+ {
2
+ "name": "@liveblocks/react-lexical",
3
+ "version": "1.12.0-lexical3",
4
+ "description": "A lexical react plugin to enable collaboration, comments, live cursors, and more.",
5
+ "license": "Apache-2.0",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": {
11
+ "types": "./dist/index.d.mts",
12
+ "default": "./dist/index.mjs"
13
+ },
14
+ "require": {
15
+ "types": "./dist/index.d.ts",
16
+ "module": "./dist/index.mjs",
17
+ "default": "./dist/index.js"
18
+ }
19
+ },
20
+ "./styles.css": "./styles.css"
21
+ },
22
+ "files": [
23
+ "dist/**",
24
+ "README.md"
25
+ ],
26
+ "scripts": {
27
+ "dev": "rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript --watch",
28
+ "build": "rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript",
29
+ "start": "npm run dev",
30
+ "format": "eslint --fix src/; stylelint --fix src/styles/; prettier --write src/",
31
+ "lint": "eslint src/; stylelint src/styles/",
32
+ "test": "jest --silent --verbose --color=always",
33
+ "test:watch": "jest --silent --verbose --color=always --watch"
34
+ },
35
+ "dependencies": {
36
+ "@liveblocks/client": "1.12.0-lexical2",
37
+ "@liveblocks/core": "1.12.0-lexical2",
38
+ "@liveblocks/react": "1.12.0-lexical2",
39
+ "@liveblocks/react-comments": "1.12.0-lexical2",
40
+ "@liveblocks/yjs": "1.12.0-lexical2",
41
+ "use-sync-external-store": "^1.2.2",
42
+ "yjs": "^13.6.14"
43
+ },
44
+ "peerDependencies": {
45
+ "@lexical/react": "^0.10.0",
46
+ "@lexical/selection": "^0.14.3",
47
+ "@lexical/utils": "^0.14.3",
48
+ "lexical": "^0.10.0",
49
+ "react": "^16.14.0 || ^17 || ^18"
50
+ },
51
+ "devDependencies": {
52
+ "@lexical/react": "^0.14.2",
53
+ "@liveblocks/eslint-config": "*",
54
+ "@liveblocks/jest-config": "*",
55
+ "@rollup/plugin-node-resolve": "^15.2.3",
56
+ "@rollup/plugin-replace": "^5.0.5",
57
+ "@rollup/plugin-typescript": "^11.1.2",
58
+ "@testing-library/jest-dom": "^5.16.5",
59
+ "@types/use-sync-external-store": "^0.0.6",
60
+ "eslint-plugin-react": "^7.33.2",
61
+ "eslint-plugin-react-hooks": "^4.6.0",
62
+ "lexical": "^0.14.2",
63
+ "msw": "^0.27.1",
64
+ "rollup": "^3.28.0",
65
+ "rollup-plugin-dts": "^5.3.1",
66
+ "rollup-plugin-esbuild": "^5.0.0",
67
+ "rollup-plugin-preserve-directives": "^0.2.0",
68
+ "stylelint": "^15.10.2",
69
+ "stylelint-config-standard": "^34.0.0",
70
+ "stylelint-order": "^6.0.3",
71
+ "stylelint-plugin-logical-css": "^0.13.2"
72
+ },
73
+ "sideEffects": false,
74
+ "bugs": {
75
+ "url": "https://github.com/liveblocks/liveblocks/issues"
76
+ },
77
+ "repository": {
78
+ "type": "git",
79
+ "url": "https://github.com/liveblocks/liveblocks.git",
80
+ "directory": "packages/liveblocks-react-comments"
81
+ },
82
+ "homepage": "https://liveblocks.io",
83
+ "keywords": [
84
+ "lexical",
85
+ "react",
86
+ "comments",
87
+ "threads",
88
+ "liveblocks",
89
+ "real-time",
90
+ "toolkit",
91
+ "multiplayer",
92
+ "websockets",
93
+ "collaboration",
94
+ "collaborative",
95
+ "presence",
96
+ "crdts",
97
+ "synchronize",
98
+ "rooms",
99
+ "documents",
100
+ "conflict resolution"
101
+ ]
102
+ }