@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,219 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useState, useEffect } from 'react';
3
- import { $getRoot, $createTextNode, $createParagraphNode } from 'lexical';
4
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
5
- export function DebugPlugin() {
6
- const [editor] = useLexicalComposerContext();
7
- const [mcpTools, setMcpTools] = useState([]);
8
- const [selectedTool, setSelectedTool] = useState('');
9
- const [isLoadingTools, setIsLoadingTools] = useState(false);
10
- const [toolsError, setToolsError] = useState(null);
11
- // Fetch available MCP tools from the server
12
- const fetchMCPTools = async () => {
13
- setIsLoadingTools(true);
14
- setToolsError(null);
15
- try {
16
- // Query the MCP server for available tools
17
- const response = await fetch('http://localhost:3001/tools/list', {
18
- method: 'GET',
19
- headers: {
20
- 'Content-Type': 'application/json',
21
- }
22
- });
23
- if (!response.ok) {
24
- throw new Error(`HTTP error! status: ${response.status}`);
25
- }
26
- const data = await response.json();
27
- if (data.tools) {
28
- const tools = data.tools.map((tool) => ({
29
- name: tool.name,
30
- description: tool.description || '',
31
- parameters: tool.parameters || {}
32
- }));
33
- setMcpTools(tools);
34
- console.log('Fetched MCP tools:', tools);
35
- }
36
- else {
37
- throw new Error('Invalid response format from MCP server');
38
- }
39
- }
40
- catch (error) {
41
- console.error('Error fetching MCP tools:', error);
42
- setToolsError(error instanceof Error ? error.message : 'Unknown error occurred');
43
- // Set some mock tools for development
44
- setMcpTools([
45
- { name: 'create_file', description: 'Create a new file in the workspace' },
46
- { name: 'read_file', description: 'Read contents of a file' },
47
- { name: 'list_dir', description: 'List directory contents' }
48
- ]);
49
- }
50
- finally {
51
- setIsLoadingTools(false);
52
- }
53
- };
54
- // MCP tool execution functions
55
- const executeGetDocument = async () => {
56
- try {
57
- console.log('🔍 Executing get_document MCP tool...');
58
- const response = await fetch('http://localhost:3001/', {
59
- method: 'POST',
60
- headers: {
61
- 'Content-Type': 'application/json',
62
- },
63
- body: JSON.stringify({
64
- jsonrpc: '2.0',
65
- id: Date.now(),
66
- method: 'get_document',
67
- params: {
68
- doc_id: 'playground/0/main'
69
- }
70
- })
71
- });
72
- if (!response.ok) {
73
- throw new Error(`HTTP error! status: ${response.status}`);
74
- }
75
- const data = await response.json();
76
- console.log('📄 get_document result:', data);
77
- if (data.result) {
78
- console.log('✅ Document retrieved successfully:', data.result);
79
- }
80
- else if (data.error) {
81
- console.error('❌ MCP error:', data.error);
82
- }
83
- }
84
- catch (error) {
85
- console.error('💥 Error executing get_document:', error);
86
- }
87
- };
88
- const executeAppendParagraph = async () => {
89
- try {
90
- const timestamp = new Date().toISOString();
91
- const paragraphText = `New paragraph added at via MCP at ${timestamp}`;
92
- console.log('✏️ Executing append_paragraph MCP tool with text:', paragraphText);
93
- const response = await fetch('http://localhost:3001/', {
94
- method: 'POST',
95
- headers: {
96
- 'Content-Type': 'application/json',
97
- },
98
- body: JSON.stringify({
99
- jsonrpc: '2.0',
100
- id: Date.now(),
101
- method: 'append_paragraph',
102
- params: {
103
- doc_id: 'playground/0/main',
104
- text: paragraphText
105
- }
106
- })
107
- });
108
- if (!response.ok) {
109
- throw new Error(`HTTP error! status: ${response.status}`);
110
- }
111
- const data = await response.json();
112
- console.log('📝 append_paragraph result:', data);
113
- if (data.result) {
114
- console.log('✅ Paragraph appended successfully:', data.result);
115
- }
116
- else if (data.error) {
117
- console.error('❌ MCP error:', data.error);
118
- }
119
- }
120
- catch (error) {
121
- console.error('💥 Error executing append_paragraph:', error);
122
- }
123
- };
124
- // Handle tool selection and execution
125
- const handleToolChange = (toolName) => {
126
- if (toolName === '') {
127
- setSelectedTool('');
128
- return;
129
- }
130
- setSelectedTool(toolName);
131
- if (toolName === 'get_document') {
132
- executeGetDocument();
133
- }
134
- else if (toolName === 'append_paragraph') {
135
- executeAppendParagraph();
136
- }
137
- // Reset selection back to "Select a tool" after execution
138
- setTimeout(() => {
139
- setSelectedTool('');
140
- }, 100);
141
- };
142
- // Set hardcoded tools instead of fetching from server
143
- useEffect(() => {
144
- const hardcodedTools = [
145
- {
146
- name: 'get_document',
147
- description: 'Get document',
148
- parameters: {}
149
- },
150
- {
151
- name: 'append_paragraph',
152
- description: 'Append paragraph',
153
- parameters: {}
154
- }
155
- ];
156
- setMcpTools(hardcodedTools);
157
- console.log('🔧 Hardcoded MCP tools loaded:', hardcodedTools);
158
- }, []);
159
- const reloadState = (editor) => {
160
- const state = editor.getEditorState();
161
- // JSON needs to be parsed to load an new state.
162
- const newEditorState = editor.parseEditorState(JSON.stringify(state));
163
- editor.update(() => {
164
- // editor.setEditorState(state);
165
- editor.setEditorState(newEditorState);
166
- });
167
- console.log(editor.getEditorState().toJSON());
168
- };
169
- function addParagraph(editor) {
170
- editor.update(() => {
171
- const root = $getRoot();
172
- const timestamp = new Date().toISOString();
173
- const textNode = $createTextNode(`Hello ${timestamp}`);
174
- const paragraphNode = $createParagraphNode();
175
- paragraphNode.append(textNode);
176
- // Insert the paragraph at the beginning of the editor
177
- const firstChild = root.getFirstChild();
178
- if (firstChild) {
179
- firstChild.insertBefore(paragraphNode);
180
- }
181
- else {
182
- root.append(paragraphNode);
183
- }
184
- });
185
- }
186
- function first100Keys(editor) {
187
- editor.getEditorState().read(() => {
188
- const root = $getRoot();
189
- const children = root.getChildren();
190
- const keys = [];
191
- // Get up to 100 node keys
192
- const maxNodes = Math.min(100, children.length);
193
- for (let i = 0; i < maxNodes; i++) {
194
- keys.push(children[i].getKey());
195
- }
196
- console.log(`First ${keys.length} node keys:`, keys);
197
- });
198
- }
199
- return (_jsxs(_Fragment, { children: [_jsx("button", { onClick: () => { reloadState(editor); }, children: "Reload State" }), _jsx("button", { onClick: () => { addParagraph(editor); }, children: "Add Paragraph" }), _jsx("button", { onClick: () => { first100Keys(editor); }, children: "100 First keys" }), _jsxs("div", { style: { marginLeft: '10px', display: 'inline-block' }, children: [_jsx("label", { htmlFor: "mcp-tools-select", style: { marginRight: '5px', fontSize: '12px' }, children: "MCP Tools:" }), _jsxs("select", { id: "mcp-tools-select", value: selectedTool, onChange: (e) => handleToolChange(e.target.value), disabled: isLoadingTools, style: {
200
- padding: '4px 8px',
201
- borderRadius: '4px',
202
- border: '1px solid #ccc',
203
- minWidth: '150px',
204
- fontSize: '12px'
205
- }, children: [_jsx("option", { value: "", children: isLoadingTools ? 'Loading tools...' : 'Select a tool' }), mcpTools.map((tool) => (_jsxs("option", { value: tool.name, children: [tool.name, " ", tool.description ? `- ${tool.description}` : ''] }, tool.name)))] }), toolsError && (_jsxs("span", { style: {
206
- marginLeft: '10px',
207
- color: 'red',
208
- fontSize: '12px'
209
- }, children: ["Error: ", toolsError] })), _jsx("button", { onClick: fetchMCPTools, disabled: isLoadingTools, style: {
210
- marginLeft: '5px',
211
- padding: '4px 8px',
212
- fontSize: '12px'
213
- }, children: "\uD83D\uDD04 Refresh" }), selectedTool && (_jsx("span", { style: {
214
- marginLeft: '10px',
215
- color: 'green',
216
- fontSize: '12px'
217
- }, children: selectedTool }))] })] }));
218
- }
219
- export default DebugPlugin;
@@ -1,2 +0,0 @@
1
- import type { JSX } from 'react';
2
- export default function DocsPlugin(): JSX.Element;
@@ -1,4 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- export default function DocsPlugin() {
3
- return (_jsx("a", { target: "__blank", href: "https://lexical.dev/docs/intro", children: _jsx("button", { id: "docs-button", className: "editor-dev-button", title: "Lexical Docs" }) }));
4
- }
@@ -1 +0,0 @@
1
- export default function DragDropPaste(): null;
@@ -1,37 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the MIT License.
4
- */
5
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
6
- import { DRAG_DROP_PASTE } from '@lexical/rich-text';
7
- import { isMimeType, mediaFileReader } from '@lexical/utils';
8
- import { COMMAND_PRIORITY_LOW } from 'lexical';
9
- import { useEffect } from 'react';
10
- import { INSERT_IMAGE_COMMAND } from '../ImagesPlugin';
11
- const ACCEPTABLE_IMAGE_TYPES = [
12
- 'image/',
13
- 'image/heic',
14
- 'image/heif',
15
- 'image/gif',
16
- 'image/webp',
17
- ];
18
- export default function DragDropPaste() {
19
- const [editor] = useLexicalComposerContext();
20
- useEffect(() => {
21
- return editor.registerCommand(DRAG_DROP_PASTE, (files) => {
22
- (async () => {
23
- const filesResult = await mediaFileReader(files, [ACCEPTABLE_IMAGE_TYPES].flatMap((x) => x));
24
- for (const { file, result } of filesResult) {
25
- if (isMimeType(file, ACCEPTABLE_IMAGE_TYPES)) {
26
- editor.dispatchCommand(INSERT_IMAGE_COMMAND, {
27
- altText: file.name,
28
- src: result,
29
- });
30
- }
31
- }
32
- })();
33
- return true;
34
- }, COMMAND_PRIORITY_LOW);
35
- }, [editor]);
36
- return null;
37
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- */
8
- import type { JSX } from 'react';
9
- import './index.css';
10
- export default function DraggableBlockPlugin({ anchorElem, }: {
11
- anchorElem?: HTMLElement;
12
- }): JSX.Element;
@@ -1,36 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import './index.css';
3
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
4
- import { DraggableBlockPlugin_EXPERIMENTAL } from '@lexical/react/LexicalDraggableBlockPlugin';
5
- import { $createParagraphNode, $getNearestNodeFromDOMNode } from 'lexical';
6
- import { useRef, useState } from 'react';
7
- const DRAGGABLE_BLOCK_MENU_CLASSNAME = 'draggable-block-menu';
8
- function isOnMenu(element) {
9
- return !!element.closest(`.${DRAGGABLE_BLOCK_MENU_CLASSNAME}`);
10
- }
11
- export default function DraggableBlockPlugin({ anchorElem = document.body, }) {
12
- const [editor] = useLexicalComposerContext();
13
- const menuRef = useRef(null);
14
- const targetLineRef = useRef(null);
15
- const [draggableElement, setDraggableElement] = useState(null);
16
- function insertBlock(e) {
17
- if (!draggableElement || !editor) {
18
- return;
19
- }
20
- editor.update(() => {
21
- const node = $getNearestNodeFromDOMNode(draggableElement);
22
- if (!node) {
23
- return;
24
- }
25
- const pNode = $createParagraphNode();
26
- if (e.altKey || e.ctrlKey) {
27
- node.insertBefore(pNode);
28
- }
29
- else {
30
- node.insertAfter(pNode);
31
- }
32
- pNode.select();
33
- });
34
- }
35
- return (_jsx(DraggableBlockPlugin_EXPERIMENTAL, { anchorElem: anchorElem, menuRef: menuRef, targetLineRef: targetLineRef, menuComponent: _jsxs("div", { ref: menuRef, className: "icon draggable-block-menu", children: [_jsx("button", { title: "Click to add below", className: "icon icon-plus", onClick: insertBlock }), _jsx("div", { className: "icon" })] }), targetLineComponent: _jsx("div", { ref: targetLineRef, className: "draggable-block-target-line" }), isOnMenu: isOnMenu, onElementChanged: setDraggableElement }));
36
- }
@@ -1 +0,0 @@
1
- export default function EmojiPickerPlugin(): import("react/jsx-runtime").JSX.Element;
@@ -1,84 +0,0 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- /*
3
- * Copyright (c) 2023-2025 Datalayer, Inc.
4
- * Distributed under the terms of the MIT License.
5
- */
6
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
7
- import { LexicalTypeaheadMenuPlugin, MenuOption, useBasicTypeaheadTriggerMatch, } from '@lexical/react/LexicalTypeaheadMenuPlugin';
8
- import { $createTextNode, $getSelection, $isRangeSelection, } from 'lexical';
9
- import { useCallback, useEffect, useMemo, useState } from 'react';
10
- import * as ReactDOM from 'react-dom';
11
- class EmojiOption extends MenuOption {
12
- title;
13
- emoji;
14
- keywords;
15
- constructor(title, emoji, options) {
16
- super(title);
17
- this.title = title;
18
- this.emoji = emoji;
19
- this.keywords = options.keywords || [];
20
- }
21
- }
22
- function EmojiMenuItem({ index, isSelected, onClick, onMouseEnter, option, }) {
23
- let className = 'item';
24
- if (isSelected) {
25
- className += ' selected';
26
- }
27
- return (_jsx("li", { tabIndex: -1, className: className, ref: option.setRefElement, role: "option", "aria-selected": isSelected, id: 'typeahead-item-' + index, onMouseEnter: onMouseEnter, onClick: onClick, children: _jsxs("span", { className: "text", children: [option.emoji, " ", option.title] }) }, option.key));
28
- }
29
- const MAX_EMOJI_SUGGESTION_COUNT = 10;
30
- export default function EmojiPickerPlugin() {
31
- const [editor] = useLexicalComposerContext();
32
- const [queryString, setQueryString] = useState(null);
33
- const [emojis, setEmojis] = useState([]);
34
- useEffect(() => {
35
- import('../../utils/emoji-list').then((file) => setEmojis(file.default));
36
- }, []);
37
- const emojiOptions = useMemo(() => emojis != null
38
- ? emojis.map(({ emoji, aliases, tags }) => new EmojiOption(aliases[0], emoji, {
39
- keywords: [...aliases, ...tags],
40
- }))
41
- : [], [emojis]);
42
- const checkForTriggerMatch = useBasicTypeaheadTriggerMatch(':', {
43
- minLength: 0,
44
- punctuation: '\\.,\\+\\*\\?\\$\\@\\|#{}\\(\\)\\^\\[\\]\\\\/!%\'"~=<>:;', // allow _ and -
45
- });
46
- const options = useMemo(() => {
47
- return emojiOptions
48
- .filter((option) => {
49
- return queryString != null
50
- ? new RegExp(queryString, 'gi').exec(option.title) ||
51
- option.keywords != null
52
- ? option.keywords.some((keyword) => new RegExp(queryString, 'gi').exec(keyword))
53
- : false
54
- : emojiOptions;
55
- })
56
- .slice(0, MAX_EMOJI_SUGGESTION_COUNT);
57
- }, [emojiOptions, queryString]);
58
- const onSelectOption = useCallback((selectedOption, nodeToRemove, closeMenu) => {
59
- editor.update(() => {
60
- const selection = $getSelection();
61
- if (!$isRangeSelection(selection) || selectedOption == null) {
62
- return;
63
- }
64
- if (nodeToRemove) {
65
- nodeToRemove.remove();
66
- }
67
- selection.insertNodes([$createTextNode(selectedOption.emoji)]);
68
- closeMenu();
69
- });
70
- }, [editor]);
71
- return (_jsx(LexicalTypeaheadMenuPlugin, { onQueryChange: setQueryString, onSelectOption: onSelectOption, triggerFn: checkForTriggerMatch, options: options, menuRenderFn: (anchorElementRef, { selectedIndex, selectOptionAndCleanUp, setHighlightedIndex }) => {
72
- if (anchorElementRef.current == null || options.length === 0) {
73
- return null;
74
- }
75
- return anchorElementRef.current && options.length
76
- ? ReactDOM.createPortal(_jsx("div", { className: "typeahead-popover emoji-menu", children: _jsx("ul", { children: options.map((option, index) => (_jsx(EmojiMenuItem, { index: index, isSelected: selectedIndex === index, onClick: () => {
77
- setHighlightedIndex(index);
78
- selectOptionAndCleanUp(option);
79
- }, onMouseEnter: () => {
80
- setHighlightedIndex(index);
81
- }, option: option }, option.key))) }) }), anchorElementRef.current)
82
- : null;
83
- } }));
84
- }
@@ -1,2 +0,0 @@
1
- import type { JSX } from 'react';
2
- export default function EmojisPlugin(): JSX.Element | null;
@@ -1,56 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the MIT License.
4
- */
5
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
6
- import { TextNode } from 'lexical';
7
- import { useEffect } from 'react';
8
- import { $createEmojiNode, EmojiNode } from '../../nodes/EmojiNode';
9
- const emojis = new Map([
10
- [':)', ['emoji happysmile', '🙂']],
11
- [':D', ['emoji veryhappysmile', '😀']],
12
- [':(', ['emoji unhappysmile', '🙁']],
13
- ['<3', ['emoji heart', '❤']],
14
- ]);
15
- function $findAndTransformEmoji(node) {
16
- const text = node.getTextContent();
17
- for (let i = 0; i < text.length; i++) {
18
- const emojiData = emojis.get(text[i]) || emojis.get(text.slice(i, i + 2));
19
- if (emojiData !== undefined) {
20
- const [emojiStyle, emojiText] = emojiData;
21
- let targetNode;
22
- if (i === 0) {
23
- [targetNode] = node.splitText(i + 2);
24
- }
25
- else {
26
- [, targetNode] = node.splitText(i, i + 2);
27
- }
28
- const emojiNode = $createEmojiNode(emojiStyle, emojiText);
29
- targetNode.replace(emojiNode);
30
- return emojiNode;
31
- }
32
- }
33
- return null;
34
- }
35
- function $textNodeTransform(node) {
36
- let targetNode = node;
37
- while (targetNode !== null) {
38
- if (!targetNode.isSimpleText()) {
39
- return;
40
- }
41
- targetNode = $findAndTransformEmoji(targetNode);
42
- }
43
- }
44
- function useEmojis(editor) {
45
- useEffect(() => {
46
- if (!editor.hasNodes([EmojiNode])) {
47
- throw new Error('EmojisPlugin: EmojiNode not registered on editor');
48
- }
49
- return editor.registerNodeTransform(TextNode, $textNodeTransform);
50
- }, [editor]);
51
- }
52
- export default function EmojisPlugin() {
53
- const [editor] = useLexicalComposerContext();
54
- useEmojis(editor);
55
- return null;
56
- }
@@ -1,14 +0,0 @@
1
- import type { JSX } from 'react';
2
- import 'katex/dist/katex.css';
3
- import { LexicalCommand, LexicalEditor } from 'lexical';
4
- type CommandPayload = {
5
- equation: string;
6
- inline: boolean;
7
- };
8
- export declare const INSERT_EQUATION_COMMAND: LexicalCommand<CommandPayload>;
9
- export declare function InsertEquationDialog({ activeEditor, onClose, }: {
10
- activeEditor: LexicalEditor;
11
- onClose: () => void;
12
- }): JSX.Element;
13
- export default function EquationsPlugin(): JSX.Element | null;
14
- export {};
@@ -1,34 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import 'katex/dist/katex.css';
3
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
4
- import { $wrapNodeInElement } from '@lexical/utils';
5
- import { $createParagraphNode, $insertNodes, $isRootOrShadowRoot, COMMAND_PRIORITY_EDITOR, createCommand, } from 'lexical';
6
- import { useCallback, useEffect } from 'react';
7
- import { $createEquationNode, EquationNode } from '../../nodes/EquationNode';
8
- import KatexEquationAlterer from '../../ui/KatexEquationAlterer';
9
- export const INSERT_EQUATION_COMMAND = createCommand('INSERT_EQUATION_COMMAND');
10
- export function InsertEquationDialog({ activeEditor, onClose, }) {
11
- const onEquationConfirm = useCallback((equation, inline) => {
12
- activeEditor.dispatchCommand(INSERT_EQUATION_COMMAND, { equation, inline });
13
- onClose();
14
- }, [activeEditor, onClose]);
15
- return _jsx(KatexEquationAlterer, { onConfirm: onEquationConfirm });
16
- }
17
- export default function EquationsPlugin() {
18
- const [editor] = useLexicalComposerContext();
19
- useEffect(() => {
20
- if (!editor.hasNodes([EquationNode])) {
21
- throw new Error('EquationsPlugins: EquationsNode not registered on editor');
22
- }
23
- return editor.registerCommand(INSERT_EQUATION_COMMAND, (payload) => {
24
- const { equation, inline } = payload;
25
- const equationNode = $createEquationNode(equation, inline);
26
- $insertNodes([equationNode]);
27
- if ($isRootOrShadowRoot(equationNode.getParentOrThrow())) {
28
- $wrapNodeInElement(equationNode, $createParagraphNode).selectEnd();
29
- }
30
- return true;
31
- }, COMMAND_PRIORITY_EDITOR);
32
- }, [editor]);
33
- return null;
34
- }
@@ -1,5 +0,0 @@
1
- import type { JSX } from 'react';
2
- import '@excalidraw/excalidraw/index.css';
3
- import { LexicalCommand } from 'lexical';
4
- export declare const INSERT_EXCALIDRAW_COMMAND: LexicalCommand<void>;
5
- export default function ExcalidrawPlugin(): JSX.Element | null;
@@ -1,44 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import '@excalidraw/excalidraw/index.css';
3
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
4
- import { $wrapNodeInElement } from '@lexical/utils';
5
- import { $createParagraphNode, $insertNodes, $isRootOrShadowRoot, COMMAND_PRIORITY_EDITOR, createCommand, } from 'lexical';
6
- import { useEffect, useState } from 'react';
7
- import { $createExcalidrawNode, ExcalidrawNode, } from '../../nodes/ExcalidrawNode';
8
- import ExcalidrawModal from '../../ui/ExcalidrawModal';
9
- export const INSERT_EXCALIDRAW_COMMAND = createCommand('INSERT_EXCALIDRAW_COMMAND');
10
- export default function ExcalidrawPlugin() {
11
- const [editor] = useLexicalComposerContext();
12
- const [isModalOpen, setModalOpen] = useState(false);
13
- useEffect(() => {
14
- if (!editor.hasNodes([ExcalidrawNode])) {
15
- throw new Error('ExcalidrawPlugin: ExcalidrawNode not registered on editor');
16
- }
17
- return editor.registerCommand(INSERT_EXCALIDRAW_COMMAND, () => {
18
- setModalOpen(true);
19
- return true;
20
- }, COMMAND_PRIORITY_EDITOR);
21
- }, [editor]);
22
- const onClose = () => {
23
- setModalOpen(false);
24
- };
25
- const onDelete = () => {
26
- setModalOpen(false);
27
- };
28
- const onSave = (elements, appState, files) => {
29
- editor.update(() => {
30
- const excalidrawNode = $createExcalidrawNode();
31
- excalidrawNode.setData(JSON.stringify({
32
- appState,
33
- elements,
34
- files,
35
- }));
36
- $insertNodes([excalidrawNode]);
37
- if ($isRootOrShadowRoot(excalidrawNode.getParentOrThrow())) {
38
- $wrapNodeInElement(excalidrawNode, $createParagraphNode).selectEnd();
39
- }
40
- });
41
- setModalOpen(false);
42
- };
43
- return isModalOpen ? (_jsx(ExcalidrawModal, { initialElements: [], initialAppState: {}, initialFiles: {}, isShown: isModalOpen, onDelete: onDelete, onClose: onClose, onSave: onSave, closeOnClickOutside: false })) : null;
44
- }
@@ -1,4 +0,0 @@
1
- import type { JSX } from 'react';
2
- import { LexicalCommand } from 'lexical';
3
- export declare const INSERT_FIGMA_COMMAND: LexicalCommand<string>;
4
- export default function FigmaPlugin(): JSX.Element | null;
@@ -1,24 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the MIT License.
4
- */
5
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
6
- import { $insertNodeToNearestRoot } from '@lexical/utils';
7
- import { COMMAND_PRIORITY_EDITOR, createCommand } from 'lexical';
8
- import { useEffect } from 'react';
9
- import { $createFigmaNode, FigmaNode } from '../../nodes/FigmaNode';
10
- export const INSERT_FIGMA_COMMAND = createCommand('INSERT_FIGMA_COMMAND');
11
- export default function FigmaPlugin() {
12
- const [editor] = useLexicalComposerContext();
13
- useEffect(() => {
14
- if (!editor.hasNodes([FigmaNode])) {
15
- throw new Error('FigmaPlugin: FigmaNode not registered on editor');
16
- }
17
- return editor.registerCommand(INSERT_FIGMA_COMMAND, (payload) => {
18
- const figmaNode = $createFigmaNode(payload);
19
- $insertNodeToNearestRoot(figmaNode);
20
- return true;
21
- }, COMMAND_PRIORITY_EDITOR);
22
- }, [editor]);
23
- return null;
24
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- */
8
- import type { JSX } from 'react';
9
- import './index.css';
10
- import { Dispatch } from 'react';
11
- export default function FloatingLinkEditorPlugin({ anchorElem, isLinkEditMode, setIsLinkEditMode, }: {
12
- anchorElem?: HTMLElement;
13
- isLinkEditMode: boolean;
14
- setIsLinkEditMode: Dispatch<boolean>;
15
- }): JSX.Element | null;