@datalayer/lexical-loro 0.2.5 → 1.0.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.
Files changed (399) hide show
  1. package/package.json +1 -1
  2. package/lib/App.d.ts +0 -2
  3. package/lib/App.js +0 -141
  4. package/lib/Editor.d.ts +0 -2
  5. package/lib/Editor.js +0 -115
  6. package/lib/Settings.d.ts +0 -2
  7. package/lib/Settings.js +0 -57
  8. package/lib/appSettings.d.ts +0 -36
  9. package/lib/appSettings.js +0 -48
  10. package/lib/collab/loro/Bindings.d.ts +0 -41
  11. package/lib/collab/loro/Bindings.js +0 -99
  12. package/lib/collab/loro/Debug.d.ts +0 -33
  13. package/lib/collab/loro/Debug.js +0 -452
  14. package/lib/collab/loro/LexicalCollaborationContext.d.ts +0 -19
  15. package/lib/collab/loro/LexicalCollaborationContext.js +0 -52
  16. package/lib/collab/loro/LexicalCollaborationPlugin.d.ts +0 -24
  17. package/lib/collab/loro/LexicalCollaborationPlugin.js +0 -83
  18. package/lib/collab/loro/State.d.ts +0 -53
  19. package/lib/collab/loro/State.js +0 -94
  20. package/lib/collab/loro/components/LoroCollaborationUI.d.ts +0 -13
  21. package/lib/collab/loro/components/LoroCollaborationUI.js +0 -9
  22. package/lib/collab/loro/components/LoroCollaborators.d.ts +0 -8
  23. package/lib/collab/loro/components/LoroCollaborators.js +0 -102
  24. package/lib/collab/loro/components/index.d.ts +0 -2
  25. package/lib/collab/loro/components/index.js +0 -6
  26. package/lib/collab/loro/index.d.ts +0 -6
  27. package/lib/collab/loro/index.js +0 -10
  28. package/lib/collab/loro/integrators/BaseIntegrator.d.ts +0 -14
  29. package/lib/collab/loro/integrators/BaseIntegrator.js +0 -5
  30. package/lib/collab/loro/integrators/CounterIntegrator.d.ts +0 -23
  31. package/lib/collab/loro/integrators/CounterIntegrator.js +0 -44
  32. package/lib/collab/loro/integrators/ListIntegrator.d.ts +0 -23
  33. package/lib/collab/loro/integrators/ListIntegrator.js +0 -53
  34. package/lib/collab/loro/integrators/MapIntegrator.d.ts +0 -24
  35. package/lib/collab/loro/integrators/MapIntegrator.js +0 -235
  36. package/lib/collab/loro/integrators/TextIntegrator.d.ts +0 -25
  37. package/lib/collab/loro/integrators/TextIntegrator.js +0 -55
  38. package/lib/collab/loro/integrators/TreeIntegrator.d.ts +0 -36
  39. package/lib/collab/loro/integrators/TreeIntegrator.js +0 -251
  40. package/lib/collab/loro/nodes/NodeFactory.d.ts +0 -15
  41. package/lib/collab/loro/nodes/NodeFactory.js +0 -101
  42. package/lib/collab/loro/nodes/NodesMapper.d.ts +0 -120
  43. package/lib/collab/loro/nodes/NodesMapper.js +0 -277
  44. package/lib/collab/loro/propagators/DecoratorNodePropagator.d.ts +0 -60
  45. package/lib/collab/loro/propagators/DecoratorNodePropagator.js +0 -306
  46. package/lib/collab/loro/propagators/ElementNodePropagator.d.ts +0 -62
  47. package/lib/collab/loro/propagators/ElementNodePropagator.js +0 -326
  48. package/lib/collab/loro/propagators/LineBreakNodePropagator.d.ts +0 -57
  49. package/lib/collab/loro/propagators/LineBreakNodePropagator.js +0 -200
  50. package/lib/collab/loro/propagators/RootNodePropagator.d.ts +0 -55
  51. package/lib/collab/loro/propagators/RootNodePropagator.js +0 -174
  52. package/lib/collab/loro/propagators/TextNodePropagator.d.ts +0 -60
  53. package/lib/collab/loro/propagators/TextNodePropagator.js +0 -440
  54. package/lib/collab/loro/propagators/index.d.ts +0 -49
  55. package/lib/collab/loro/propagators/index.js +0 -30
  56. package/lib/collab/loro/provider/websocket.d.ts +0 -116
  57. package/lib/collab/loro/provider/websocket.js +0 -911
  58. package/lib/collab/loro/servers/index.d.ts +0 -0
  59. package/lib/collab/loro/servers/index.js +0 -4
  60. package/lib/collab/loro/servers/ws/callback.d.ts +0 -5
  61. package/lib/collab/loro/servers/ws/callback.js +0 -89
  62. package/lib/collab/loro/servers/ws/server.d.ts +0 -2
  63. package/lib/collab/loro/servers/ws/server.js +0 -29
  64. package/lib/collab/loro/servers/ws/utils.d.ts +0 -40
  65. package/lib/collab/loro/servers/ws/utils.js +0 -517
  66. package/lib/collab/loro/sync/SyncCursors.d.ts +0 -32
  67. package/lib/collab/loro/sync/SyncCursors.js +0 -475
  68. package/lib/collab/loro/sync/SyncLexicalToLoro.d.ts +0 -4
  69. package/lib/collab/loro/sync/SyncLexicalToLoro.js +0 -113
  70. package/lib/collab/loro/sync/SyncLoroToLexical.d.ts +0 -5
  71. package/lib/collab/loro/sync/SyncLoroToLexical.js +0 -100
  72. package/lib/collab/loro/types/LexicalNodeData.d.ts +0 -32
  73. package/lib/collab/loro/types/LexicalNodeData.js +0 -75
  74. package/lib/collab/loro/useCollaboration.d.ts +0 -12
  75. package/lib/collab/loro/useCollaboration.js +0 -260
  76. package/lib/collab/loro/utils/InitialContent.d.ts +0 -64
  77. package/lib/collab/loro/utils/InitialContent.js +0 -113
  78. package/lib/collab/loro/utils/LexicalToLoro.d.ts +0 -18
  79. package/lib/collab/loro/utils/LexicalToLoro.js +0 -100
  80. package/lib/collab/loro/utils/Utils.d.ts +0 -44
  81. package/lib/collab/loro/utils/Utils.js +0 -157
  82. package/lib/collab/loro/wsProvider.d.ts +0 -8
  83. package/lib/collab/loro/wsProvider.js +0 -35
  84. package/lib/collab/utils/invariant.d.ts +0 -1
  85. package/lib/collab/utils/invariant.js +0 -15
  86. package/lib/collab/utils/simpleDiffWithCursor.d.ts +0 -5
  87. package/lib/collab/utils/simpleDiffWithCursor.js +0 -35
  88. package/lib/collab/yjs/Bindings.d.ts +0 -23
  89. package/lib/collab/yjs/Bindings.js +0 -26
  90. package/lib/collab/yjs/Debug.d.ts +0 -23
  91. package/lib/collab/yjs/Debug.js +0 -213
  92. package/lib/collab/yjs/LexicalCollaborationContext.d.ts +0 -10
  93. package/lib/collab/yjs/LexicalCollaborationContext.js +0 -37
  94. package/lib/collab/yjs/LexicalCollaborationPlugin.d.ts +0 -21
  95. package/lib/collab/yjs/LexicalCollaborationPlugin.js +0 -63
  96. package/lib/collab/yjs/State.d.ts +0 -51
  97. package/lib/collab/yjs/State.js +0 -35
  98. package/lib/collab/yjs/nodes/AnyCollabNode.d.ts +0 -5
  99. package/lib/collab/yjs/nodes/AnyCollabNode.js +0 -1
  100. package/lib/collab/yjs/nodes/CollabDecoratorNode.d.ts +0 -22
  101. package/lib/collab/yjs/nodes/CollabDecoratorNode.js +0 -64
  102. package/lib/collab/yjs/nodes/CollabElementNode.d.ts +0 -40
  103. package/lib/collab/yjs/nodes/CollabElementNode.js +0 -462
  104. package/lib/collab/yjs/nodes/CollabLineBreakNode.d.ts +0 -19
  105. package/lib/collab/yjs/nodes/CollabLineBreakNode.js +0 -44
  106. package/lib/collab/yjs/nodes/CollabTextNode.d.ts +0 -25
  107. package/lib/collab/yjs/nodes/CollabTextNode.js +0 -103
  108. package/lib/collab/yjs/provider/websocket.d.ts +0 -88
  109. package/lib/collab/yjs/provider/websocket.js +0 -415
  110. package/lib/collab/yjs/servers/index.d.ts +0 -0
  111. package/lib/collab/yjs/servers/index.js +0 -0
  112. package/lib/collab/yjs/servers/ws/callback.d.ts +0 -5
  113. package/lib/collab/yjs/servers/ws/callback.js +0 -72
  114. package/lib/collab/yjs/servers/ws/server.d.ts +0 -2
  115. package/lib/collab/yjs/servers/ws/server.js +0 -25
  116. package/lib/collab/yjs/servers/ws/utils.d.ts +0 -49
  117. package/lib/collab/yjs/servers/ws/utils.js +0 -284
  118. package/lib/collab/yjs/sync/SyncCursors.d.ts +0 -39
  119. package/lib/collab/yjs/sync/SyncCursors.js +0 -351
  120. package/lib/collab/yjs/sync/SyncEditorStates.d.ts +0 -10
  121. package/lib/collab/yjs/sync/SyncEditorStates.js +0 -200
  122. package/lib/collab/yjs/useCollaboration.d.ts +0 -12
  123. package/lib/collab/yjs/useCollaboration.js +0 -255
  124. package/lib/collab/yjs/utils/Utils.d.ts +0 -25
  125. package/lib/collab/yjs/utils/Utils.js +0 -402
  126. package/lib/collab/yjs/wsProvider.d.ts +0 -3
  127. package/lib/collab/yjs/wsProvider.js +0 -21
  128. package/lib/commenting/index.d.ts +0 -41
  129. package/lib/commenting/index.js +0 -328
  130. package/lib/context/FlashMessageContext.d.ts +0 -7
  131. package/lib/context/FlashMessageContext.js +0 -24
  132. package/lib/context/SettingsContext.d.ts +0 -12
  133. package/lib/context/SettingsContext.js +0 -38
  134. package/lib/context/SharedHistoryContext.d.ts +0 -11
  135. package/lib/context/SharedHistoryContext.js +0 -11
  136. package/lib/context/ToolbarContext.d.ts +0 -65
  137. package/lib/context/ToolbarContext.js +0 -84
  138. package/lib/demo.d.ts +0 -12
  139. package/lib/demo.js +0 -45
  140. package/lib/hooks/useFlashMessage.d.ts +0 -2
  141. package/lib/hooks/useFlashMessage.js +0 -8
  142. package/lib/hooks/useModal.d.ts +0 -5
  143. package/lib/hooks/useModal.js +0 -26
  144. package/lib/hooks/useReport.d.ts +0 -1
  145. package/lib/hooks/useReport.js +0 -50
  146. package/lib/index.d.ts +0 -1
  147. package/lib/index.js +0 -5
  148. package/lib/nodes/AutocompleteNode.d.ts +0 -27
  149. package/lib/nodes/AutocompleteNode.js +0 -60
  150. package/lib/nodes/CounterComponent.d.ts +0 -6
  151. package/lib/nodes/CounterComponent.js +0 -137
  152. package/lib/nodes/CounterNode.d.ts +0 -23
  153. package/lib/nodes/CounterNode.js +0 -47
  154. package/lib/nodes/DateTimeNode/DateTimeComponent.d.ts +0 -8
  155. package/lib/nodes/DateTimeNode/DateTimeComponent.js +0 -119
  156. package/lib/nodes/DateTimeNode/DateTimeNode.d.ts +0 -27
  157. package/lib/nodes/DateTimeNode/DateTimeNode.js +0 -82
  158. package/lib/nodes/EmojiNode.d.ts +0 -18
  159. package/lib/nodes/EmojiNode.js +0 -54
  160. package/lib/nodes/EquationComponent.d.ts +0 -9
  161. package/lib/nodes/EquationComponent.js +0 -75
  162. package/lib/nodes/EquationNode.d.ts +0 -26
  163. package/lib/nodes/EquationNode.js +0 -109
  164. package/lib/nodes/ExcalidrawNode/ExcalidrawComponent.d.ts +0 -8
  165. package/lib/nodes/ExcalidrawNode/ExcalidrawComponent.js +0 -110
  166. package/lib/nodes/ExcalidrawNode/ExcalidrawImage.d.ts +0 -50
  167. package/lib/nodes/ExcalidrawNode/ExcalidrawImage.js +0 -55
  168. package/lib/nodes/ExcalidrawNode/index.d.ts +0 -32
  169. package/lib/nodes/ExcalidrawNode/index.js +0 -117
  170. package/lib/nodes/FigmaNode.d.ts +0 -20
  171. package/lib/nodes/FigmaNode.js +0 -52
  172. package/lib/nodes/ImageComponent.d.ts +0 -16
  173. package/lib/nodes/ImageComponent.js +0 -272
  174. package/lib/nodes/ImageNode.d.ts +0 -50
  175. package/lib/nodes/ImageNode.js +0 -151
  176. package/lib/nodes/InlineImageNode/InlineImageComponent.d.ts +0 -26
  177. package/lib/nodes/InlineImageNode/InlineImageComponent.js +0 -161
  178. package/lib/nodes/InlineImageNode/InlineImageNode.d.ts +0 -59
  179. package/lib/nodes/InlineImageNode/InlineImageNode.js +0 -162
  180. package/lib/nodes/KeywordNode.d.ts +0 -14
  181. package/lib/nodes/KeywordNode.js +0 -37
  182. package/lib/nodes/LayoutContainerNode.d.ts +0 -24
  183. package/lib/nodes/LayoutContainerNode.js +0 -95
  184. package/lib/nodes/LayoutItemNode.d.ts +0 -16
  185. package/lib/nodes/LayoutItemNode.js +0 -69
  186. package/lib/nodes/MentionNode.d.ts +0 -20
  187. package/lib/nodes/MentionNode.js +0 -85
  188. package/lib/nodes/PageBreakNode/index.d.ts +0 -17
  189. package/lib/nodes/PageBreakNode/index.js +0 -83
  190. package/lib/nodes/PlaygroundNodes.d.ts +0 -3
  191. package/lib/nodes/PlaygroundNodes.js +0 -75
  192. package/lib/nodes/PollComponent.d.ts +0 -9
  193. package/lib/nodes/PollComponent.js +0 -85
  194. package/lib/nodes/PollNode.d.ts +0 -43
  195. package/lib/nodes/PollNode.js +0 -153
  196. package/lib/nodes/SpecialTextNode.d.ts +0 -24
  197. package/lib/nodes/SpecialTextNode.js +0 -54
  198. package/lib/nodes/StickyComponent.d.ts +0 -10
  199. package/lib/nodes/StickyComponent.js +0 -162
  200. package/lib/nodes/StickyNode.d.ts +0 -31
  201. package/lib/nodes/StickyNode.js +0 -76
  202. package/lib/nodes/TweetNode.d.ts +0 -21
  203. package/lib/nodes/TweetNode.js +0 -119
  204. package/lib/nodes/YouTubeNode.d.ts +0 -22
  205. package/lib/nodes/YouTubeNode.js +0 -84
  206. package/lib/plugins/ActionsPlugin/index.d.ts +0 -5
  207. package/lib/plugins/ActionsPlugin/index.js +0 -168
  208. package/lib/plugins/AutoEmbedPlugin/index.d.ts +0 -19
  209. package/lib/plugins/AutoEmbedPlugin/index.js +0 -158
  210. package/lib/plugins/AutoLinkPlugin/index.d.ts +0 -2
  211. package/lib/plugins/AutoLinkPlugin/index.js +0 -15
  212. package/lib/plugins/AutocompletePlugin/index.d.ts +0 -10
  213. package/lib/plugins/AutocompletePlugin/index.js +0 -2477
  214. package/lib/plugins/CodeActionMenuPlugin/components/CopyButton/index.d.ts +0 -7
  215. package/lib/plugins/CodeActionMenuPlugin/components/CopyButton/index.js +0 -46
  216. package/lib/plugins/CodeActionMenuPlugin/components/PrettierButton/index.d.ts +0 -17
  217. package/lib/plugins/CodeActionMenuPlugin/components/PrettierButton/index.js +0 -115
  218. package/lib/plugins/CodeActionMenuPlugin/index.d.ts +0 -5
  219. package/lib/plugins/CodeActionMenuPlugin/index.js +0 -104
  220. package/lib/plugins/CodeActionMenuPlugin/utils.d.ts +0 -1
  221. package/lib/plugins/CodeActionMenuPlugin/utils.js +0 -22
  222. package/lib/plugins/CodeHighlightPrismPlugin/index.d.ts +0 -2
  223. package/lib/plugins/CodeHighlightPrismPlugin/index.js +0 -14
  224. package/lib/plugins/CodeHighlightShikiPlugin/index.d.ts +0 -2
  225. package/lib/plugins/CodeHighlightShikiPlugin/index.js +0 -14
  226. package/lib/plugins/CollapsiblePlugin/CollapsibleContainerNode.d.ts +0 -25
  227. package/lib/plugins/CollapsiblePlugin/CollapsibleContainerNode.js +0 -135
  228. package/lib/plugins/CollapsiblePlugin/CollapsibleContentNode.d.ts +0 -16
  229. package/lib/plugins/CollapsiblePlugin/CollapsibleContentNode.js +0 -83
  230. package/lib/plugins/CollapsiblePlugin/CollapsibleTitleNode.d.ts +0 -16
  231. package/lib/plugins/CollapsiblePlugin/CollapsibleTitleNode.js +0 -85
  232. package/lib/plugins/CollapsiblePlugin/CollapsibleUtils.d.ts +0 -2
  233. package/lib/plugins/CollapsiblePlugin/CollapsibleUtils.js +0 -12
  234. package/lib/plugins/CollapsiblePlugin/index.d.ts +0 -3
  235. package/lib/plugins/CollapsiblePlugin/index.js +0 -132
  236. package/lib/plugins/CommentPlugin/index.d.ts +0 -9
  237. package/lib/plugins/CommentPlugin/index.js +0 -460
  238. package/lib/plugins/ComponentPickerPlugin/index.d.ts +0 -2
  239. package/lib/plugins/ComponentPickerPlugin/index.js +0 -276
  240. package/lib/plugins/ContextMenuPlugin/index.d.ts +0 -2
  241. package/lib/plugins/ContextMenuPlugin/index.js +0 -112
  242. package/lib/plugins/CounterPlugin/index.d.ts +0 -3
  243. package/lib/plugins/CounterPlugin/index.js +0 -24
  244. package/lib/plugins/DateTimePlugin/index.d.ts +0 -8
  245. package/lib/plugins/DateTimePlugin/index.js +0 -28
  246. package/lib/plugins/DebugPlugin/index.d.ts +0 -3
  247. package/lib/plugins/DebugPlugin/index.js +0 -219
  248. package/lib/plugins/DocsPlugin/index.d.ts +0 -2
  249. package/lib/plugins/DocsPlugin/index.js +0 -4
  250. package/lib/plugins/DragDropPastePlugin/index.d.ts +0 -1
  251. package/lib/plugins/DragDropPastePlugin/index.js +0 -37
  252. package/lib/plugins/DraggableBlockPlugin/index.d.ts +0 -12
  253. package/lib/plugins/DraggableBlockPlugin/index.js +0 -36
  254. package/lib/plugins/EmojiPickerPlugin/index.d.ts +0 -1
  255. package/lib/plugins/EmojiPickerPlugin/index.js +0 -84
  256. package/lib/plugins/EmojisPlugin/index.d.ts +0 -2
  257. package/lib/plugins/EmojisPlugin/index.js +0 -56
  258. package/lib/plugins/EquationsPlugin/index.d.ts +0 -14
  259. package/lib/plugins/EquationsPlugin/index.js +0 -34
  260. package/lib/plugins/ExcalidrawPlugin/index.d.ts +0 -5
  261. package/lib/plugins/ExcalidrawPlugin/index.js +0 -44
  262. package/lib/plugins/FigmaPlugin/index.d.ts +0 -4
  263. package/lib/plugins/FigmaPlugin/index.js +0 -24
  264. package/lib/plugins/FloatingLinkEditorPlugin/index.d.ts +0 -15
  265. package/lib/plugins/FloatingLinkEditorPlugin/index.js +0 -280
  266. package/lib/plugins/FloatingTextFormatToolbarPlugin/index.d.ts +0 -7
  267. package/lib/plugins/FloatingTextFormatToolbarPlugin/index.js +0 -219
  268. package/lib/plugins/ImagesPlugin/index.d.ts +0 -24
  269. package/lib/plugins/ImagesPlugin/index.js +0 -195
  270. package/lib/plugins/InlineImagePlugin/index.d.ts +0 -17
  271. package/lib/plugins/InlineImagePlugin/index.js +0 -180
  272. package/lib/plugins/KeywordsPlugin/index.d.ts +0 -2
  273. package/lib/plugins/KeywordsPlugin/index.js +0 -35
  274. package/lib/plugins/LayoutPlugin/InsertLayoutDialog.d.ts +0 -6
  275. package/lib/plugins/LayoutPlugin/InsertLayoutDialog.js +0 -21
  276. package/lib/plugins/LayoutPlugin/LayoutPlugin.d.ts +0 -7
  277. package/lib/plugins/LayoutPlugin/LayoutPlugin.js +0 -135
  278. package/lib/plugins/LinkPlugin/index.d.ts +0 -6
  279. package/lib/plugins/LinkPlugin/index.js +0 -11
  280. package/lib/plugins/MarkdownShortcutPlugin/index.d.ts +0 -2
  281. package/lib/plugins/MarkdownShortcutPlugin/index.js +0 -6
  282. package/lib/plugins/MarkdownTransformers/index.d.ts +0 -8
  283. package/lib/plugins/MarkdownTransformers/index.js +0 -238
  284. package/lib/plugins/MaxLengthPlugin/index.d.ts +0 -3
  285. package/lib/plugins/MaxLengthPlugin/index.js +0 -41
  286. package/lib/plugins/MentionsPlugin/index.d.ts +0 -2
  287. package/lib/plugins/MentionsPlugin/index.js +0 -564
  288. package/lib/plugins/PageBreakPlugin/index.d.ts +0 -4
  289. package/lib/plugins/PageBreakPlugin/index.js +0 -31
  290. package/lib/plugins/PasteLogPlugin/index.d.ts +0 -2
  291. package/lib/plugins/PasteLogPlugin/index.js +0 -27
  292. package/lib/plugins/PollPlugin/index.d.ts +0 -8
  293. package/lib/plugins/PollPlugin/index.js +0 -38
  294. package/lib/plugins/ShortcutsPlugin/index.d.ts +0 -6
  295. package/lib/plugins/ShortcutsPlugin/index.js +0 -116
  296. package/lib/plugins/ShortcutsPlugin/shortcuts.d.ts +0 -59
  297. package/lib/plugins/ShortcutsPlugin/shortcuts.js +0 -173
  298. package/lib/plugins/SpecialTextPlugin/index.d.ts +0 -2
  299. package/lib/plugins/SpecialTextPlugin/index.js +0 -50
  300. package/lib/plugins/SpeechToTextPlugin/index.d.ts +0 -5
  301. package/lib/plugins/SpeechToTextPlugin/index.js +0 -86
  302. package/lib/plugins/StickyPlugin/index.d.ts +0 -2
  303. package/lib/plugins/StickyPlugin/index.js +0 -16
  304. package/lib/plugins/TabFocusPlugin/index.d.ts +0 -1
  305. package/lib/plugins/TabFocusPlugin/index.js +0 -38
  306. package/lib/plugins/TableActionMenuPlugin/index.d.ts +0 -5
  307. package/lib/plugins/TableActionMenuPlugin/index.js +0 -492
  308. package/lib/plugins/TableCellResizer/index.d.ts +0 -3
  309. package/lib/plugins/TableCellResizer/index.js +0 -297
  310. package/lib/plugins/TableHoverActionsPlugin/index.d.ts +0 -4
  311. package/lib/plugins/TableHoverActionsPlugin/index.js +0 -188
  312. package/lib/plugins/TableOfContentsPlugin/index.d.ts +0 -2
  313. package/lib/plugins/TableOfContentsPlugin/index.js +0 -116
  314. package/lib/plugins/TablePlugin.d.ts +0 -31
  315. package/lib/plugins/TablePlugin.js +0 -63
  316. package/lib/plugins/TestRecorderPlugin/index.d.ts +0 -3
  317. package/lib/plugins/TestRecorderPlugin/index.js +0 -346
  318. package/lib/plugins/ToolbarPlugin/fontSize.d.ts +0 -9
  319. package/lib/plugins/ToolbarPlugin/fontSize.js +0 -84
  320. package/lib/plugins/ToolbarPlugin/index.d.ts +0 -9
  321. package/lib/plugins/ToolbarPlugin/index.js +0 -500
  322. package/lib/plugins/ToolbarPlugin/utils.d.ts +0 -26
  323. package/lib/plugins/ToolbarPlugin/utils.js +0 -247
  324. package/lib/plugins/TreeViewPlugin/index.d.ts +0 -2
  325. package/lib/plugins/TreeViewPlugin/index.js +0 -7
  326. package/lib/plugins/TwitterPlugin/index.d.ts +0 -4
  327. package/lib/plugins/TwitterPlugin/index.js +0 -24
  328. package/lib/plugins/TypingPerfPlugin/index.d.ts +0 -2
  329. package/lib/plugins/TypingPerfPlugin/index.js +0 -97
  330. package/lib/plugins/YouTubePlugin/index.d.ts +0 -4
  331. package/lib/plugins/YouTubePlugin/index.js +0 -24
  332. package/lib/server/validation.d.ts +0 -1
  333. package/lib/server/validation.js +0 -115
  334. package/lib/setupEnv.d.ts +0 -2
  335. package/lib/setupEnv.js +0 -29
  336. package/lib/themes/CommentEditorTheme.d.ts +0 -4
  337. package/lib/themes/CommentEditorTheme.js +0 -11
  338. package/lib/themes/PlaygroundEditorTheme.d.ts +0 -4
  339. package/lib/themes/PlaygroundEditorTheme.js +0 -124
  340. package/lib/themes/StickyEditorTheme.d.ts +0 -4
  341. package/lib/themes/StickyEditorTheme.js +0 -11
  342. package/lib/tyes.dt.d.ts +0 -12
  343. package/lib/tyes.dt.js +0 -4
  344. package/lib/ui/Button.d.ts +0 -12
  345. package/lib/ui/Button.js +0 -6
  346. package/lib/ui/ColorPicker.d.ts +0 -14
  347. package/lib/ui/ColorPicker.js +0 -219
  348. package/lib/ui/ContentEditable.d.ts +0 -9
  349. package/lib/ui/ContentEditable.js +0 -6
  350. package/lib/ui/Dialog.d.ts +0 -10
  351. package/lib/ui/Dialog.js +0 -8
  352. package/lib/ui/DropDown.d.ts +0 -18
  353. package/lib/ui/DropDown.js +0 -133
  354. package/lib/ui/DropdownColorPicker.d.ts +0 -13
  355. package/lib/ui/DropdownColorPicker.js +0 -6
  356. package/lib/ui/EquationEditor.d.ts +0 -8
  357. package/lib/ui/EquationEditor.js +0 -11
  358. package/lib/ui/ExcalidrawModal.d.ts +0 -42
  359. package/lib/ui/ExcalidrawModal.js +0 -103
  360. package/lib/ui/FileInput.d.ts +0 -10
  361. package/lib/ui/FileInput.js +0 -5
  362. package/lib/ui/FlashMessage.d.ts +0 -7
  363. package/lib/ui/FlashMessage.js +0 -6
  364. package/lib/ui/ImageResizer.d.ts +0 -17
  365. package/lib/ui/ImageResizer.js +0 -171
  366. package/lib/ui/KatexEquationAlterer.d.ts +0 -8
  367. package/lib/ui/KatexEquationAlterer.js +0 -23
  368. package/lib/ui/KatexRenderer.d.ts +0 -6
  369. package/lib/ui/KatexRenderer.js +0 -24
  370. package/lib/ui/Modal.d.ts +0 -9
  371. package/lib/ui/Modal.js +0 -48
  372. package/lib/ui/Select.d.ts +0 -8
  373. package/lib/ui/Select.js +0 -5
  374. package/lib/ui/Switch.d.ts +0 -8
  375. package/lib/ui/Switch.js +0 -6
  376. package/lib/ui/TextInput.d.ts +0 -13
  377. package/lib/ui/TextInput.js +0 -7
  378. package/lib/utils/docSerialization.d.ts +0 -3
  379. package/lib/utils/docSerialization.js +0 -60
  380. package/lib/utils/emoji-list.d.ts +0 -20
  381. package/lib/utils/emoji-list.js +0 -16609
  382. package/lib/utils/getDOMRangeRect.d.ts +0 -8
  383. package/lib/utils/getDOMRangeRect.js +0 -26
  384. package/lib/utils/getSelectedNode.d.ts +0 -2
  385. package/lib/utils/getSelectedNode.js +0 -28
  386. package/lib/utils/getThemeSelector.d.ts +0 -2
  387. package/lib/utils/getThemeSelector.js +0 -14
  388. package/lib/utils/isMobileWidth.d.ts +0 -7
  389. package/lib/utils/isMobileWidth.js +0 -11
  390. package/lib/utils/joinClasses.d.ts +0 -1
  391. package/lib/utils/joinClasses.js +0 -7
  392. package/lib/utils/setFloatingElemPosition.d.ts +0 -1
  393. package/lib/utils/setFloatingElemPosition.js +0 -59
  394. package/lib/utils/setFloatingElemPositionForLinkEditor.d.ts +0 -1
  395. package/lib/utils/setFloatingElemPositionForLinkEditor.js +0 -36
  396. package/lib/utils/swipe.d.ts +0 -4
  397. package/lib/utils/swipe.js +0 -94
  398. package/lib/utils/url.d.ts +0 -2
  399. package/lib/utils/url.js +0 -31
@@ -1,100 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the MIT License.
4
- */
5
- /**
6
- * Convert a Lexical JSON structure to a Loro tree
7
- * This is used to initialize a Loro tree from existing Lexical content
8
- */
9
- export function lexicalToLoroTree(lexicalJson, tree) {
10
- let parsedJson;
11
- if (typeof lexicalJson === 'string') {
12
- try {
13
- parsedJson = JSON.parse(lexicalJson);
14
- }
15
- catch (error) {
16
- throw new Error(`Failed to parse Lexical JSON: ${error}`);
17
- }
18
- }
19
- else {
20
- parsedJson = lexicalJson;
21
- }
22
- // Start with the root node - create it without a parent
23
- const rootTreeNode = tree.createNode();
24
- const rootTreeID = rootTreeNode.id;
25
- processLexicalNode(parsedJson.root, tree, rootTreeNode);
26
- return rootTreeID;
27
- }
28
- /**
29
- * Recursively process a Lexical node and add it to the Loro tree
30
- */
31
- function processLexicalNode(lexicalNode, tree, treeNode) {
32
- // Store the lexical data in the tree node
33
- const nodeData = treeNode.data;
34
- if (nodeData) {
35
- // Store element type for quick access
36
- nodeData.set('elementType', lexicalNode.type);
37
- // Store lexical node data directly as JSON object
38
- const lexicalNodeData = createLexicalNodeFromJSON(lexicalNode);
39
- const lexicalNodeJSON = lexicalNodeData.lexicalNode.exportJSON();
40
- // Remove all key-related fields to avoid duplication (TreeID serves as the key)
41
- if ('__key' in lexicalNodeJSON || 'key' in lexicalNodeJSON || 'lexicalKey' in lexicalNodeJSON) {
42
- const { __key, key, lexicalKey, ...cleanedData } = lexicalNodeJSON;
43
- nodeData.set('lexical', cleanedData);
44
- }
45
- else {
46
- nodeData.set('lexical', lexicalNodeJSON);
47
- }
48
- }
49
- // Process children if they exist
50
- if (lexicalNode.children && Array.isArray(lexicalNode.children)) {
51
- lexicalNode.children.forEach((child, childIndex) => {
52
- // Create child node under current node
53
- const childTreeNode = tree.createNode(treeNode.id, childIndex);
54
- processLexicalNode(child, tree, childTreeNode);
55
- });
56
- }
57
- }
58
- /**
59
- * Create a minimal Lexical node representation from JSON data
60
- * This doesn't create actual Lexical nodes, just the data structure needed for serialization
61
- */
62
- function createLexicalNodeFromJSON(nodeJson) {
63
- // Create a minimal node-like object with the essential properties
64
- const nodeData = {
65
- __key: generateNodeKey(), // Generate a temporary key
66
- __type: nodeJson.type,
67
- __parent: null, // Will be set during tree construction
68
- __text: nodeJson.text || undefined,
69
- __format: nodeJson.format || 0,
70
- __style: nodeJson.style || '',
71
- __mode: nodeJson.mode || undefined,
72
- __detail: nodeJson.detail || undefined,
73
- __indent: nodeJson.indent || 0,
74
- __direction: nodeJson.direction || null,
75
- __tag: nodeJson.tag || undefined,
76
- __textFormat: nodeJson.textFormat || undefined,
77
- __textStyle: nodeJson.textStyle || undefined,
78
- __version: nodeJson.version || 1
79
- };
80
- // Remove undefined properties
81
- Object.keys(nodeData).forEach(key => {
82
- if (nodeData[key] === undefined) {
83
- delete nodeData[key];
84
- }
85
- });
86
- // Return in the format expected by LexicalNodeDataHelper
87
- return {
88
- lexicalNode: {
89
- getType: () => nodeJson.type,
90
- exportJSON: () => nodeData,
91
- getKey: () => nodeData.__key
92
- }
93
- };
94
- }
95
- /**
96
- * Generate a simple node key for temporary use
97
- */
98
- function generateNodeKey() {
99
- return Math.random().toString(36).substr(2, 9);
100
- }
@@ -1,44 +0,0 @@
1
- import { LoroDoc, TreeID } from 'loro-crdt';
2
- import { EditorState, LexicalNode, NodeKey, RangeSelection, TextNode } from 'lexical';
3
- export declare const DEFAULT_TREE_NAME = "lexical-tree";
4
- /**
5
- * Generates a consistent client ID from a Loro document.
6
- * Uses the numeric peer ID directly to ensure consistency across all components.
7
- *
8
- * @param doc - The Loro document
9
- * @returns A number representing the client ID
10
- */
11
- export declare function generateClientID(doc: LoroDoc): number;
12
- /**
13
- * Generates a client ID for cases where no document is available.
14
- * Creates a random ID within the safe integer range.
15
- *
16
- * @returns A randomly generated client ID
17
- */
18
- export declare function generateRandomClientID(): number;
19
- /**
20
- * Ensure doc has a LoroTree instance
21
- */
22
- export declare function getLoroTree(doc: LoroDoc, treeName?: string): import("loro-crdt").LoroTree<Record<string, unknown>>;
23
- /**
24
- * Helper function to parse TreeID back to nodeKey and peerId
25
- */
26
- export declare function parseTreeID(treeId: TreeID): {
27
- nodeKey: NodeKey;
28
- peerId: number;
29
- };
30
- /**
31
- * Helper function to get Lexical node information for Loro sync
32
- */
33
- export declare function getLexicalNodeInfo(node: LexicalNode): {
34
- parentKey?: string;
35
- index?: number;
36
- };
37
- /**
38
- * Check if a class extends another class (proper inheritance checking)
39
- */
40
- export declare function isClassExtending(Klass: any, BaseClass: any): boolean;
41
- export declare function toKeyNodeNumber(nodeKey: NodeKey): number;
42
- export declare function $diffTextContentAndApplyDelta(textNode: TextNode, key: NodeKey, prevText: string, nextText: string): void;
43
- export declare function doesSelectionNeedRecovering(selection: RangeSelection): boolean;
44
- export declare function $moveSelectionToPreviousNode(anchorNodeKey: string, currentEditorState: EditorState): void;
@@ -1,157 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the MIT License.
4
- */
5
- import { $getNodeByKey, $getRoot, $getSelection, $isRangeSelection, $isTextNode } from 'lexical';
6
- import simpleDiffWithCursor from '../../utils/simpleDiffWithCursor';
7
- export const DEFAULT_TREE_NAME = 'lexical-tree';
8
- /**
9
- * Generates a consistent client ID from a Loro document.
10
- * Uses the numeric peer ID directly to ensure consistency across all components.
11
- *
12
- * @param doc - The Loro document
13
- * @returns A number representing the client ID
14
- */
15
- export function generateClientID(doc) {
16
- return Number(doc.peerId);
17
- }
18
- /**
19
- * Generates a client ID for cases where no document is available.
20
- * Creates a random ID within the safe integer range.
21
- *
22
- * @returns A randomly generated client ID
23
- */
24
- export function generateRandomClientID() {
25
- return Math.floor(Math.random() * 2147483647);
26
- }
27
- /**
28
- * Ensure doc has a LoroTree instance
29
- */
30
- export function getLoroTree(doc, treeName = DEFAULT_TREE_NAME) {
31
- const tree = doc.getTree(treeName);
32
- // Enable fractional index for ordered siblings (useful for maintaining order)
33
- // tree.enableFractionalIndex(0.001);
34
- return tree;
35
- }
36
- /**
37
- * Helper function to parse TreeID back to nodeKey and peerId
38
- */
39
- export function parseTreeID(treeId) {
40
- const [nodeKey, peerId] = treeId.split('@');
41
- return {
42
- nodeKey: nodeKey,
43
- peerId: Number(peerId)
44
- };
45
- }
46
- /**
47
- * Helper function to get Lexical node information for Loro sync
48
- */
49
- export function getLexicalNodeInfo(node) {
50
- // TODO: Implement logic to get parent and index from Lexical node
51
- // This is a placeholder that should be replaced with actual Lexical API calls
52
- return {
53
- parentKey: node.getParent()?.getKey(),
54
- index: node.getIndexWithinParent()
55
- };
56
- }
57
- /**
58
- * Check if a class extends another class (proper inheritance checking)
59
- */
60
- export function isClassExtending(Klass, BaseClass) {
61
- // Direct class equality
62
- if (Klass === BaseClass) {
63
- return true;
64
- }
65
- // Check by name (for cases where classes might be different instances)
66
- if (Klass.name === BaseClass.name) {
67
- return true;
68
- }
69
- // Check prototype chain for inheritance
70
- if (Klass.prototype && Object.prototype.isPrototypeOf.call(BaseClass, Klass)) {
71
- return true;
72
- }
73
- return false;
74
- }
75
- export function toKeyNodeNumber(nodeKey) {
76
- // Special case for root node
77
- if (nodeKey === "root") {
78
- return 0;
79
- }
80
- // Attempt to convert NodeKey (string) to a number
81
- const keyAsNumber = Number(nodeKey);
82
- if (!isNaN(keyAsNumber)) {
83
- return keyAsNumber;
84
- }
85
- // If conversion fails, throw an error
86
- throw new Error(`NodeKey "${nodeKey}" cannot be converted to a number. Expected numeric string or "root".`);
87
- }
88
- export function $diffTextContentAndApplyDelta(textNode, key, prevText, nextText) {
89
- const selection = $getSelection();
90
- let cursorOffset = nextText.length;
91
- if ($isRangeSelection(selection) && selection.isCollapsed()) {
92
- const anchor = selection.anchor;
93
- if (anchor.key === key) {
94
- // Ensure cursor offset doesn't exceed the new text length
95
- // This prevents errors when text is split or content changes significantly
96
- cursorOffset = Math.min(anchor.offset, nextText.length);
97
- }
98
- }
99
- const diff = simpleDiffWithCursor(prevText, nextText, cursorOffset);
100
- const beforeSplice = textNode.getTextContent();
101
- textNode.spliceText(diff.index, diff.remove, diff.insert);
102
- const afterSplice = textNode.getTextContent();
103
- }
104
- export function doesSelectionNeedRecovering(selection) {
105
- const anchor = selection.anchor;
106
- const focus = selection.focus;
107
- let recoveryNeeded = false;
108
- try {
109
- const anchorNode = anchor.getNode();
110
- const focusNode = focus.getNode();
111
- if (
112
- // We might have removed a node that no longer exists
113
- !anchorNode.isAttached() ||
114
- !focusNode.isAttached() ||
115
- // If we've split a node, then the offset might not be right
116
- ($isTextNode(anchorNode) &&
117
- anchor.offset > anchorNode.getTextContentSize()) ||
118
- ($isTextNode(focusNode) && focus.offset > focusNode.getTextContentSize())) {
119
- recoveryNeeded = true;
120
- }
121
- }
122
- catch (e) {
123
- // Sometimes checking nor a node via getNode might trigger
124
- // an error, so we need recovery then too.
125
- recoveryNeeded = true;
126
- }
127
- return recoveryNeeded;
128
- }
129
- export function $moveSelectionToPreviousNode(anchorNodeKey, currentEditorState) {
130
- const anchorNode = currentEditorState._nodeMap.get(anchorNodeKey);
131
- if (!anchorNode) {
132
- $getRoot().selectStart();
133
- return;
134
- }
135
- // Get previous node
136
- const prevNodeKey = anchorNode.__prev;
137
- let prevNode = null;
138
- if (prevNodeKey) {
139
- prevNode = $getNodeByKey(prevNodeKey);
140
- }
141
- // If previous node not found, get parent node
142
- if (prevNode === null && anchorNode.__parent !== null) {
143
- prevNode = $getNodeByKey(anchorNode.__parent);
144
- }
145
- if (prevNode === null) {
146
- $getRoot().selectStart();
147
- return;
148
- }
149
- if (prevNode !== null && prevNode.isAttached()) {
150
- prevNode.selectEnd();
151
- return;
152
- }
153
- else {
154
- // If the found node is also deleted, select the next one
155
- $moveSelectionToPreviousNode(prevNode.__key, currentEditorState);
156
- }
157
- }
@@ -1,8 +0,0 @@
1
- import { LoroDoc } from 'loro-crdt';
2
- import { Provider } from './State';
3
- /**
4
- * Create a WebSocket provider for Loro collaboration with periodic ephemeral state synchronization.
5
- * The resyncInterval enables client-side periodic querying to complement server-side cleanup,
6
- * preventing stale user states from accumulating after browser refreshes.
7
- */
8
- export declare function createWebsocketProvider(id: string, docMap: Map<string, LoroDoc>, websocketUrl?: string): Provider;
@@ -1,35 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the MIT License.
4
- */
5
- import { LoroDoc } from 'loro-crdt';
6
- import { WebsocketProvider } from './provider/websocket';
7
- const url = new URL(window.location.href);
8
- const params = new URLSearchParams(url.search);
9
- const RESYNC_INTERVAL = parseInt(params.get('resyncInterval') || '30000', 10); // Default 30s, configurable via URL
10
- /**
11
- * Create a WebSocket provider for Loro collaboration with periodic ephemeral state synchronization.
12
- * The resyncInterval enables client-side periodic querying to complement server-side cleanup,
13
- * preventing stale user states from accumulating after browser refreshes.
14
- */
15
- export function createWebsocketProvider(id, docMap, websocketUrl) {
16
- let doc = docMap.get(id);
17
- if (doc === undefined) {
18
- doc = new LoroDoc();
19
- docMap.set(id, doc);
20
- }
21
- const providerInstanceId = Math.random().toString(36).substr(2, 9);
22
- console.log(`🏭 Creating WebsocketProvider instance (ID: ${providerInstanceId}) for docId: ${id}`);
23
- // Use provided websocketUrl or fallback to URL parameters/defaults
24
- const finalWebsocketUrl = websocketUrl || (() => {
25
- const url = new URL(window.location.href);
26
- const params = new URLSearchParams(url.search);
27
- return params.get('collabEndpoint') || 'ws://localhost:3002';
28
- })();
29
- const websocketProvider = new WebsocketProvider(finalWebsocketUrl, id, doc, {
30
- connect: false,
31
- resyncInterval: RESYNC_INTERVAL, // Poll ephemeral state periodically to prevent stale user accumulation
32
- });
33
- console.log(`🏭 WebsocketProvider created for: ${finalWebsocketUrl}/${id} with resyncInterval: ${RESYNC_INTERVAL}ms`);
34
- return websocketProvider;
35
- }
@@ -1 +0,0 @@
1
- export default function invariant(cond?: boolean, message?: string, ...args: string[]): asserts cond;
@@ -1,15 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the MIT License.
4
- */
5
- // invariant(condition, message) will refine types based on "condition", and
6
- // if "condition" is false will throw an error. This function is special-cased
7
- // in flow itself, so we can't name it anything else.
8
- export default function invariant(cond, message, ...args) {
9
- if (cond) {
10
- return;
11
- }
12
- throw new Error('Internal Lexical error: invariant() is meant to be replaced at compile ' +
13
- 'time. There is no runtime version. Error: ' +
14
- message);
15
- }
@@ -1,5 +0,0 @@
1
- export default function simpleDiffWithCursor(a: string, b: string, cursor: number): {
2
- index: number;
3
- insert: string;
4
- remove: number;
5
- };
@@ -1,35 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the MIT License.
4
- */
5
- export default function simpleDiffWithCursor(a, b, cursor) {
6
- const aLength = a.length;
7
- const bLength = b.length;
8
- let left = 0; // number of same characters counting from left
9
- let right = 0; // number of same characters counting from right
10
- // Iterate left to the right until we find a changed character
11
- // First iteration considers the current cursor position
12
- while (left < aLength &&
13
- left < bLength &&
14
- a[left] === b[left] &&
15
- left < cursor) {
16
- left++;
17
- }
18
- // Iterate right to the left until we find a changed character
19
- while (right + left < aLength &&
20
- right + left < bLength &&
21
- a[aLength - right - 1] === b[bLength - right - 1]) {
22
- right++;
23
- }
24
- // Try to iterate left further to the right without caring about the current cursor position
25
- while (right + left < aLength &&
26
- right + left < bLength &&
27
- a[left] === b[left]) {
28
- left++;
29
- }
30
- return {
31
- index: left,
32
- insert: b.slice(left, bLength - right),
33
- remove: aLength - left - right,
34
- };
35
- }
@@ -1,23 +0,0 @@
1
- import type { LexicalEditor, NodeKey } from 'lexical';
2
- import { Klass, LexicalNode } from 'lexical';
3
- import type { Doc } from 'yjs';
4
- import type { CollabElementNode } from './nodes/CollabElementNode';
5
- import { AnyCollabNode } from './nodes/AnyCollabNode';
6
- import type { Cursor } from './sync/SyncCursors';
7
- import { Provider } from './State';
8
- export type ClientID = number;
9
- export type Binding = {
10
- clientID: ClientID;
11
- collabNodeMap: Map<NodeKey, AnyCollabNode>;
12
- cursors: Map<ClientID, Cursor>;
13
- cursorsContainer: null | HTMLElement;
14
- doc: Doc;
15
- docMap: Map<string, Doc>;
16
- editor: LexicalEditor;
17
- id: string;
18
- nodeProperties: Map<string, Array<string>>;
19
- root: CollabElementNode;
20
- excludedProperties: ExcludedProperties;
21
- };
22
- export type ExcludedProperties = Map<Klass<LexicalNode>, Set<string>>;
23
- export declare function createBinding(editor: LexicalEditor, provider: Provider, id: string, doc: Doc | null | undefined, docMap: Map<string, Doc>, excludedProperties?: ExcludedProperties): Binding;
@@ -1,26 +0,0 @@
1
- import { XmlText } from 'yjs';
2
- import invariant from '../utils/invariant';
3
- import { $createCollabElementNode } from './nodes/CollabElementNode';
4
- import { setupYjsDebugging } from './Debug';
5
- export function createBinding(editor, provider, id, doc, docMap, excludedProperties) {
6
- invariant(doc !== undefined && doc !== null, 'createBinding: doc is null or undefined');
7
- const rootXmlText = doc.get('root', XmlText);
8
- const collabRoot = $createCollabElementNode(rootXmlText, null, 'root');
9
- collabRoot._key = 'root';
10
- const binding = {
11
- clientID: doc.clientID,
12
- collabNodeMap: new Map(),
13
- cursors: new Map(),
14
- cursorsContainer: null,
15
- doc,
16
- docMap,
17
- editor,
18
- excludedProperties: excludedProperties || new Map(),
19
- id,
20
- nodeProperties: new Map(),
21
- root: collabRoot,
22
- };
23
- // Setup Y.js debugging utilities
24
- setupYjsDebugging(binding);
25
- return binding;
26
- }
@@ -1,23 +0,0 @@
1
- import type { Binding } from './Bindings';
2
- /**
3
- * YJS Debugging Interface - Provides comprehensive debugging utilities for Y.js collaboration
4
- */
5
- export interface YjsDebugger {
6
- binding: Binding | null;
7
- logStructure: () => void;
8
- verifyStructure: () => void;
9
- inspectNode: (nodeKey: string) => void;
10
- generateTreeHTML: (node: any, prefix?: string, isLast?: boolean) => string;
11
- addDebugToPage: () => void;
12
- }
13
- /**
14
- * Setup global debugging utilities for Y.js collaboration
15
- * This function creates comprehensive debugging tools including:
16
- * - Tree structure visualization
17
- * - Node inspection utilities
18
- * - Interactive debug panel
19
- * - Console logging functions
20
- *
21
- * @param binding - The Y.js binding instance to debug
22
- */
23
- export declare function setupYjsDebugging(binding: Binding): void;