@datalayer/lexical-loro 0.1.0 → 0.2.2

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 (400) hide show
  1. package/README.md +1 -1
  2. package/package.json +7 -7
  3. package/lib/App.d.ts +0 -2
  4. package/lib/App.js +0 -141
  5. package/lib/Editor.d.ts +0 -2
  6. package/lib/Editor.js +0 -111
  7. package/lib/Settings.d.ts +0 -2
  8. package/lib/Settings.js +0 -57
  9. package/lib/appSettings.d.ts +0 -36
  10. package/lib/appSettings.js +0 -44
  11. package/lib/collab/loro/Bindings.d.ts +0 -41
  12. package/lib/collab/loro/Bindings.js +0 -95
  13. package/lib/collab/loro/Debug.d.ts +0 -33
  14. package/lib/collab/loro/Debug.js +0 -448
  15. package/lib/collab/loro/LexicalCollaborationContext.d.ts +0 -19
  16. package/lib/collab/loro/LexicalCollaborationContext.js +0 -48
  17. package/lib/collab/loro/LexicalCollaborationPlugin.d.ts +0 -24
  18. package/lib/collab/loro/LexicalCollaborationPlugin.js +0 -83
  19. package/lib/collab/loro/State.d.ts +0 -53
  20. package/lib/collab/loro/State.js +0 -90
  21. package/lib/collab/loro/components/LoroCollaborationUI.d.ts +0 -13
  22. package/lib/collab/loro/components/LoroCollaborationUI.js +0 -9
  23. package/lib/collab/loro/components/LoroCollaborators.d.ts +0 -8
  24. package/lib/collab/loro/components/LoroCollaborators.js +0 -97
  25. package/lib/collab/loro/components/index.d.ts +0 -2
  26. package/lib/collab/loro/components/index.js +0 -2
  27. package/lib/collab/loro/index.d.ts +0 -6
  28. package/lib/collab/loro/index.js +0 -6
  29. package/lib/collab/loro/integrators/BaseIntegrator.d.ts +0 -14
  30. package/lib/collab/loro/integrators/BaseIntegrator.js +0 -1
  31. package/lib/collab/loro/integrators/CounterIntegrator.d.ts +0 -23
  32. package/lib/collab/loro/integrators/CounterIntegrator.js +0 -40
  33. package/lib/collab/loro/integrators/ListIntegrator.d.ts +0 -23
  34. package/lib/collab/loro/integrators/ListIntegrator.js +0 -49
  35. package/lib/collab/loro/integrators/MapIntegrator.d.ts +0 -24
  36. package/lib/collab/loro/integrators/MapIntegrator.js +0 -177
  37. package/lib/collab/loro/integrators/TextIntegrator.d.ts +0 -25
  38. package/lib/collab/loro/integrators/TextIntegrator.js +0 -51
  39. package/lib/collab/loro/integrators/TreeIntegrator.d.ts +0 -25
  40. package/lib/collab/loro/integrators/TreeIntegrator.js +0 -201
  41. package/lib/collab/loro/nodes/NodeFactory.d.ts +0 -8
  42. package/lib/collab/loro/nodes/NodeFactory.js +0 -105
  43. package/lib/collab/loro/nodes/NodesMapper.d.ts +0 -111
  44. package/lib/collab/loro/nodes/NodesMapper.js +0 -258
  45. package/lib/collab/loro/propagators/DecoratorNodePropagator.d.ts +0 -60
  46. package/lib/collab/loro/propagators/DecoratorNodePropagator.js +0 -302
  47. package/lib/collab/loro/propagators/ElementNodePropagator.d.ts +0 -62
  48. package/lib/collab/loro/propagators/ElementNodePropagator.js +0 -335
  49. package/lib/collab/loro/propagators/LineBreakNodePropagator.d.ts +0 -57
  50. package/lib/collab/loro/propagators/LineBreakNodePropagator.js +0 -196
  51. package/lib/collab/loro/propagators/RootNodePropagator.d.ts +0 -55
  52. package/lib/collab/loro/propagators/RootNodePropagator.js +0 -168
  53. package/lib/collab/loro/propagators/TextNodePropagator.d.ts +0 -60
  54. package/lib/collab/loro/propagators/TextNodePropagator.js +0 -434
  55. package/lib/collab/loro/propagators/index.d.ts +0 -49
  56. package/lib/collab/loro/propagators/index.js +0 -32
  57. package/lib/collab/loro/provider/websocket.d.ts +0 -116
  58. package/lib/collab/loro/provider/websocket.js +0 -907
  59. package/lib/collab/loro/servers/index.d.ts +0 -0
  60. package/lib/collab/loro/servers/index.js +0 -0
  61. package/lib/collab/loro/servers/ws/callback.d.ts +0 -5
  62. package/lib/collab/loro/servers/ws/callback.js +0 -85
  63. package/lib/collab/loro/servers/ws/server.d.ts +0 -2
  64. package/lib/collab/loro/servers/ws/server.js +0 -25
  65. package/lib/collab/loro/servers/ws/utils.d.ts +0 -40
  66. package/lib/collab/loro/servers/ws/utils.js +0 -513
  67. package/lib/collab/loro/sync/SyncCursors.d.ts +0 -32
  68. package/lib/collab/loro/sync/SyncCursors.js +0 -435
  69. package/lib/collab/loro/sync/SyncLexicalToLoro.d.ts +0 -4
  70. package/lib/collab/loro/sync/SyncLexicalToLoro.js +0 -80
  71. package/lib/collab/loro/sync/SyncLoroToLexical.d.ts +0 -5
  72. package/lib/collab/loro/sync/SyncLoroToLexical.js +0 -96
  73. package/lib/collab/loro/types/LexicalNodeData.d.ts +0 -32
  74. package/lib/collab/loro/types/LexicalNodeData.js +0 -71
  75. package/lib/collab/loro/useCollaboration.d.ts +0 -12
  76. package/lib/collab/loro/useCollaboration.js +0 -248
  77. package/lib/collab/loro/utils/InitialContent.d.ts +0 -64
  78. package/lib/collab/loro/utils/InitialContent.js +0 -109
  79. package/lib/collab/loro/utils/LexicalToLoro.d.ts +0 -18
  80. package/lib/collab/loro/utils/LexicalToLoro.js +0 -96
  81. package/lib/collab/loro/utils/Utils.d.ts +0 -44
  82. package/lib/collab/loro/utils/Utils.js +0 -153
  83. package/lib/collab/loro/wsProvider.d.ts +0 -8
  84. package/lib/collab/loro/wsProvider.js +0 -31
  85. package/lib/collab/utils/invariant.d.ts +0 -1
  86. package/lib/collab/utils/invariant.js +0 -11
  87. package/lib/collab/utils/simpleDiffWithCursor.d.ts +0 -5
  88. package/lib/collab/utils/simpleDiffWithCursor.js +0 -31
  89. package/lib/collab/yjs/Bindings.d.ts +0 -23
  90. package/lib/collab/yjs/Bindings.js +0 -26
  91. package/lib/collab/yjs/Debug.d.ts +0 -23
  92. package/lib/collab/yjs/Debug.js +0 -213
  93. package/lib/collab/yjs/LexicalCollaborationContext.d.ts +0 -10
  94. package/lib/collab/yjs/LexicalCollaborationContext.js +0 -37
  95. package/lib/collab/yjs/LexicalCollaborationPlugin.d.ts +0 -21
  96. package/lib/collab/yjs/LexicalCollaborationPlugin.js +0 -63
  97. package/lib/collab/yjs/State.d.ts +0 -51
  98. package/lib/collab/yjs/State.js +0 -35
  99. package/lib/collab/yjs/nodes/AnyCollabNode.d.ts +0 -5
  100. package/lib/collab/yjs/nodes/AnyCollabNode.js +0 -1
  101. package/lib/collab/yjs/nodes/CollabDecoratorNode.d.ts +0 -22
  102. package/lib/collab/yjs/nodes/CollabDecoratorNode.js +0 -64
  103. package/lib/collab/yjs/nodes/CollabElementNode.d.ts +0 -40
  104. package/lib/collab/yjs/nodes/CollabElementNode.js +0 -462
  105. package/lib/collab/yjs/nodes/CollabLineBreakNode.d.ts +0 -19
  106. package/lib/collab/yjs/nodes/CollabLineBreakNode.js +0 -44
  107. package/lib/collab/yjs/nodes/CollabTextNode.d.ts +0 -25
  108. package/lib/collab/yjs/nodes/CollabTextNode.js +0 -103
  109. package/lib/collab/yjs/provider/websocket.d.ts +0 -88
  110. package/lib/collab/yjs/provider/websocket.js +0 -415
  111. package/lib/collab/yjs/servers/index.d.ts +0 -0
  112. package/lib/collab/yjs/servers/index.js +0 -0
  113. package/lib/collab/yjs/servers/ws/callback.d.ts +0 -5
  114. package/lib/collab/yjs/servers/ws/callback.js +0 -72
  115. package/lib/collab/yjs/servers/ws/server.d.ts +0 -2
  116. package/lib/collab/yjs/servers/ws/server.js +0 -25
  117. package/lib/collab/yjs/servers/ws/utils.d.ts +0 -49
  118. package/lib/collab/yjs/servers/ws/utils.js +0 -284
  119. package/lib/collab/yjs/sync/SyncCursors.d.ts +0 -39
  120. package/lib/collab/yjs/sync/SyncCursors.js +0 -351
  121. package/lib/collab/yjs/sync/SyncEditorStates.d.ts +0 -10
  122. package/lib/collab/yjs/sync/SyncEditorStates.js +0 -200
  123. package/lib/collab/yjs/useCollaboration.d.ts +0 -12
  124. package/lib/collab/yjs/useCollaboration.js +0 -255
  125. package/lib/collab/yjs/utils/Utils.d.ts +0 -25
  126. package/lib/collab/yjs/utils/Utils.js +0 -402
  127. package/lib/collab/yjs/wsProvider.d.ts +0 -3
  128. package/lib/collab/yjs/wsProvider.js +0 -21
  129. package/lib/commenting/index.d.ts +0 -41
  130. package/lib/commenting/index.js +0 -324
  131. package/lib/context/FlashMessageContext.d.ts +0 -7
  132. package/lib/context/FlashMessageContext.js +0 -24
  133. package/lib/context/SettingsContext.d.ts +0 -12
  134. package/lib/context/SettingsContext.js +0 -38
  135. package/lib/context/SharedHistoryContext.d.ts +0 -11
  136. package/lib/context/SharedHistoryContext.js +0 -11
  137. package/lib/context/ToolbarContext.d.ts +0 -65
  138. package/lib/context/ToolbarContext.js +0 -84
  139. package/lib/demo.d.ts +0 -12
  140. package/lib/demo.js +0 -41
  141. package/lib/hooks/useFlashMessage.d.ts +0 -2
  142. package/lib/hooks/useFlashMessage.js +0 -4
  143. package/lib/hooks/useModal.d.ts +0 -5
  144. package/lib/hooks/useModal.js +0 -26
  145. package/lib/hooks/useReport.d.ts +0 -1
  146. package/lib/hooks/useReport.js +0 -46
  147. package/lib/index.d.ts +0 -1
  148. package/lib/index.js +0 -1
  149. package/lib/nodes/AutocompleteNode.d.ts +0 -27
  150. package/lib/nodes/AutocompleteNode.js +0 -56
  151. package/lib/nodes/CounterComponent.d.ts +0 -6
  152. package/lib/nodes/CounterComponent.js +0 -137
  153. package/lib/nodes/CounterNode.d.ts +0 -23
  154. package/lib/nodes/CounterNode.js +0 -47
  155. package/lib/nodes/DateTimeNode/DateTimeComponent.d.ts +0 -8
  156. package/lib/nodes/DateTimeNode/DateTimeComponent.js +0 -119
  157. package/lib/nodes/DateTimeNode/DateTimeNode.d.ts +0 -27
  158. package/lib/nodes/DateTimeNode/DateTimeNode.js +0 -82
  159. package/lib/nodes/EmojiNode.d.ts +0 -18
  160. package/lib/nodes/EmojiNode.js +0 -50
  161. package/lib/nodes/EquationComponent.d.ts +0 -9
  162. package/lib/nodes/EquationComponent.js +0 -75
  163. package/lib/nodes/EquationNode.d.ts +0 -26
  164. package/lib/nodes/EquationNode.js +0 -109
  165. package/lib/nodes/ExcalidrawNode/ExcalidrawComponent.d.ts +0 -8
  166. package/lib/nodes/ExcalidrawNode/ExcalidrawComponent.js +0 -110
  167. package/lib/nodes/ExcalidrawNode/ExcalidrawImage.d.ts +0 -50
  168. package/lib/nodes/ExcalidrawNode/ExcalidrawImage.js +0 -55
  169. package/lib/nodes/ExcalidrawNode/index.d.ts +0 -32
  170. package/lib/nodes/ExcalidrawNode/index.js +0 -117
  171. package/lib/nodes/FigmaNode.d.ts +0 -20
  172. package/lib/nodes/FigmaNode.js +0 -52
  173. package/lib/nodes/ImageComponent.d.ts +0 -16
  174. package/lib/nodes/ImageComponent.js +0 -272
  175. package/lib/nodes/ImageNode.d.ts +0 -50
  176. package/lib/nodes/ImageNode.js +0 -151
  177. package/lib/nodes/InlineImageNode/InlineImageComponent.d.ts +0 -26
  178. package/lib/nodes/InlineImageNode/InlineImageComponent.js +0 -161
  179. package/lib/nodes/InlineImageNode/InlineImageNode.d.ts +0 -59
  180. package/lib/nodes/InlineImageNode/InlineImageNode.js +0 -162
  181. package/lib/nodes/KeywordNode.d.ts +0 -14
  182. package/lib/nodes/KeywordNode.js +0 -33
  183. package/lib/nodes/LayoutContainerNode.d.ts +0 -24
  184. package/lib/nodes/LayoutContainerNode.js +0 -91
  185. package/lib/nodes/LayoutItemNode.d.ts +0 -16
  186. package/lib/nodes/LayoutItemNode.js +0 -65
  187. package/lib/nodes/MentionNode.d.ts +0 -20
  188. package/lib/nodes/MentionNode.js +0 -81
  189. package/lib/nodes/PageBreakNode/index.d.ts +0 -17
  190. package/lib/nodes/PageBreakNode/index.js +0 -83
  191. package/lib/nodes/PlaygroundNodes.d.ts +0 -3
  192. package/lib/nodes/PlaygroundNodes.js +0 -71
  193. package/lib/nodes/PollComponent.d.ts +0 -9
  194. package/lib/nodes/PollComponent.js +0 -85
  195. package/lib/nodes/PollNode.d.ts +0 -43
  196. package/lib/nodes/PollNode.js +0 -153
  197. package/lib/nodes/SpecialTextNode.d.ts +0 -24
  198. package/lib/nodes/SpecialTextNode.js +0 -50
  199. package/lib/nodes/StickyComponent.d.ts +0 -10
  200. package/lib/nodes/StickyComponent.js +0 -162
  201. package/lib/nodes/StickyNode.d.ts +0 -31
  202. package/lib/nodes/StickyNode.js +0 -76
  203. package/lib/nodes/TweetNode.d.ts +0 -21
  204. package/lib/nodes/TweetNode.js +0 -119
  205. package/lib/nodes/YouTubeNode.d.ts +0 -22
  206. package/lib/nodes/YouTubeNode.js +0 -84
  207. package/lib/plugins/ActionsPlugin/index.d.ts +0 -5
  208. package/lib/plugins/ActionsPlugin/index.js +0 -168
  209. package/lib/plugins/AutoEmbedPlugin/index.d.ts +0 -19
  210. package/lib/plugins/AutoEmbedPlugin/index.js +0 -158
  211. package/lib/plugins/AutoLinkPlugin/index.d.ts +0 -2
  212. package/lib/plugins/AutoLinkPlugin/index.js +0 -15
  213. package/lib/plugins/AutocompletePlugin/index.d.ts +0 -10
  214. package/lib/plugins/AutocompletePlugin/index.js +0 -2473
  215. package/lib/plugins/CodeActionMenuPlugin/components/CopyButton/index.d.ts +0 -7
  216. package/lib/plugins/CodeActionMenuPlugin/components/CopyButton/index.js +0 -42
  217. package/lib/plugins/CodeActionMenuPlugin/components/PrettierButton/index.d.ts +0 -17
  218. package/lib/plugins/CodeActionMenuPlugin/components/PrettierButton/index.js +0 -111
  219. package/lib/plugins/CodeActionMenuPlugin/index.d.ts +0 -5
  220. package/lib/plugins/CodeActionMenuPlugin/index.js +0 -104
  221. package/lib/plugins/CodeActionMenuPlugin/utils.d.ts +0 -1
  222. package/lib/plugins/CodeActionMenuPlugin/utils.js +0 -18
  223. package/lib/plugins/CodeHighlightPrismPlugin/index.d.ts +0 -2
  224. package/lib/plugins/CodeHighlightPrismPlugin/index.js +0 -10
  225. package/lib/plugins/CodeHighlightShikiPlugin/index.d.ts +0 -2
  226. package/lib/plugins/CodeHighlightShikiPlugin/index.js +0 -10
  227. package/lib/plugins/CollapsiblePlugin/CollapsibleContainerNode.d.ts +0 -25
  228. package/lib/plugins/CollapsiblePlugin/CollapsibleContainerNode.js +0 -131
  229. package/lib/plugins/CollapsiblePlugin/CollapsibleContentNode.d.ts +0 -16
  230. package/lib/plugins/CollapsiblePlugin/CollapsibleContentNode.js +0 -79
  231. package/lib/plugins/CollapsiblePlugin/CollapsibleTitleNode.d.ts +0 -16
  232. package/lib/plugins/CollapsiblePlugin/CollapsibleTitleNode.js +0 -81
  233. package/lib/plugins/CollapsiblePlugin/CollapsibleUtils.d.ts +0 -2
  234. package/lib/plugins/CollapsiblePlugin/CollapsibleUtils.js +0 -8
  235. package/lib/plugins/CollapsiblePlugin/index.d.ts +0 -3
  236. package/lib/plugins/CollapsiblePlugin/index.js +0 -128
  237. package/lib/plugins/CommentPlugin/index.d.ts +0 -9
  238. package/lib/plugins/CommentPlugin/index.js +0 -460
  239. package/lib/plugins/ComponentPickerPlugin/index.d.ts +0 -2
  240. package/lib/plugins/ComponentPickerPlugin/index.js +0 -276
  241. package/lib/plugins/ContextMenuPlugin/index.d.ts +0 -2
  242. package/lib/plugins/ContextMenuPlugin/index.js +0 -112
  243. package/lib/plugins/CounterPlugin/index.d.ts +0 -3
  244. package/lib/plugins/CounterPlugin/index.js +0 -20
  245. package/lib/plugins/DatalayerPlugin/index.d.ts +0 -2
  246. package/lib/plugins/DatalayerPlugin/index.js +0 -218
  247. package/lib/plugins/DateTimePlugin/index.d.ts +0 -8
  248. package/lib/plugins/DateTimePlugin/index.js +0 -24
  249. package/lib/plugins/DocsPlugin/index.d.ts +0 -2
  250. package/lib/plugins/DocsPlugin/index.js +0 -4
  251. package/lib/plugins/DragDropPastePlugin/index.d.ts +0 -1
  252. package/lib/plugins/DragDropPastePlugin/index.js +0 -33
  253. package/lib/plugins/DraggableBlockPlugin/index.d.ts +0 -12
  254. package/lib/plugins/DraggableBlockPlugin/index.js +0 -36
  255. package/lib/plugins/EmojiPickerPlugin/index.d.ts +0 -1
  256. package/lib/plugins/EmojiPickerPlugin/index.js +0 -80
  257. package/lib/plugins/EmojisPlugin/index.d.ts +0 -2
  258. package/lib/plugins/EmojisPlugin/index.js +0 -52
  259. package/lib/plugins/EquationsPlugin/index.d.ts +0 -14
  260. package/lib/plugins/EquationsPlugin/index.js +0 -34
  261. package/lib/plugins/ExcalidrawPlugin/index.d.ts +0 -5
  262. package/lib/plugins/ExcalidrawPlugin/index.js +0 -44
  263. package/lib/plugins/FigmaPlugin/index.d.ts +0 -4
  264. package/lib/plugins/FigmaPlugin/index.js +0 -20
  265. package/lib/plugins/FloatingLinkEditorPlugin/index.d.ts +0 -15
  266. package/lib/plugins/FloatingLinkEditorPlugin/index.js +0 -280
  267. package/lib/plugins/FloatingTextFormatToolbarPlugin/index.d.ts +0 -7
  268. package/lib/plugins/FloatingTextFormatToolbarPlugin/index.js +0 -219
  269. package/lib/plugins/ImagesPlugin/index.d.ts +0 -24
  270. package/lib/plugins/ImagesPlugin/index.js +0 -195
  271. package/lib/plugins/InlineImagePlugin/index.d.ts +0 -17
  272. package/lib/plugins/InlineImagePlugin/index.js +0 -180
  273. package/lib/plugins/KeywordsPlugin/index.d.ts +0 -2
  274. package/lib/plugins/KeywordsPlugin/index.js +0 -31
  275. package/lib/plugins/LayoutPlugin/InsertLayoutDialog.d.ts +0 -6
  276. package/lib/plugins/LayoutPlugin/InsertLayoutDialog.js +0 -21
  277. package/lib/plugins/LayoutPlugin/LayoutPlugin.d.ts +0 -7
  278. package/lib/plugins/LayoutPlugin/LayoutPlugin.js +0 -131
  279. package/lib/plugins/LinkPlugin/index.d.ts +0 -6
  280. package/lib/plugins/LinkPlugin/index.js +0 -11
  281. package/lib/plugins/MarkdownShortcutPlugin/index.d.ts +0 -2
  282. package/lib/plugins/MarkdownShortcutPlugin/index.js +0 -6
  283. package/lib/plugins/MarkdownTransformers/index.d.ts +0 -8
  284. package/lib/plugins/MarkdownTransformers/index.js +0 -234
  285. package/lib/plugins/MaxLengthPlugin/index.d.ts +0 -3
  286. package/lib/plugins/MaxLengthPlugin/index.js +0 -37
  287. package/lib/plugins/MentionsPlugin/index.d.ts +0 -2
  288. package/lib/plugins/MentionsPlugin/index.js +0 -564
  289. package/lib/plugins/PageBreakPlugin/index.d.ts +0 -4
  290. package/lib/plugins/PageBreakPlugin/index.js +0 -27
  291. package/lib/plugins/PasteLogPlugin/index.d.ts +0 -2
  292. package/lib/plugins/PasteLogPlugin/index.js +0 -27
  293. package/lib/plugins/PollPlugin/index.d.ts +0 -8
  294. package/lib/plugins/PollPlugin/index.js +0 -38
  295. package/lib/plugins/ShortcutsPlugin/index.d.ts +0 -6
  296. package/lib/plugins/ShortcutsPlugin/index.js +0 -112
  297. package/lib/plugins/ShortcutsPlugin/shortcuts.d.ts +0 -59
  298. package/lib/plugins/ShortcutsPlugin/shortcuts.js +0 -169
  299. package/lib/plugins/SpecialTextPlugin/index.d.ts +0 -2
  300. package/lib/plugins/SpecialTextPlugin/index.js +0 -46
  301. package/lib/plugins/SpeechToTextPlugin/index.d.ts +0 -5
  302. package/lib/plugins/SpeechToTextPlugin/index.js +0 -82
  303. package/lib/plugins/StickyPlugin/index.d.ts +0 -2
  304. package/lib/plugins/StickyPlugin/index.js +0 -12
  305. package/lib/plugins/TabFocusPlugin/index.d.ts +0 -1
  306. package/lib/plugins/TabFocusPlugin/index.js +0 -34
  307. package/lib/plugins/TableActionMenuPlugin/index.d.ts +0 -5
  308. package/lib/plugins/TableActionMenuPlugin/index.js +0 -492
  309. package/lib/plugins/TableCellResizer/index.d.ts +0 -3
  310. package/lib/plugins/TableCellResizer/index.js +0 -297
  311. package/lib/plugins/TableHoverActionsPlugin/index.d.ts +0 -4
  312. package/lib/plugins/TableHoverActionsPlugin/index.js +0 -188
  313. package/lib/plugins/TableOfContentsPlugin/index.d.ts +0 -2
  314. package/lib/plugins/TableOfContentsPlugin/index.js +0 -116
  315. package/lib/plugins/TablePlugin.d.ts +0 -31
  316. package/lib/plugins/TablePlugin.js +0 -63
  317. package/lib/plugins/TestRecorderPlugin/index.d.ts +0 -3
  318. package/lib/plugins/TestRecorderPlugin/index.js +0 -346
  319. package/lib/plugins/ToolbarPlugin/fontSize.d.ts +0 -9
  320. package/lib/plugins/ToolbarPlugin/fontSize.js +0 -80
  321. package/lib/plugins/ToolbarPlugin/index.d.ts +0 -9
  322. package/lib/plugins/ToolbarPlugin/index.js +0 -500
  323. package/lib/plugins/ToolbarPlugin/utils.d.ts +0 -26
  324. package/lib/plugins/ToolbarPlugin/utils.js +0 -243
  325. package/lib/plugins/TreeViewPlugin/index.d.ts +0 -2
  326. package/lib/plugins/TreeViewPlugin/index.js +0 -7
  327. package/lib/plugins/TwitterPlugin/index.d.ts +0 -4
  328. package/lib/plugins/TwitterPlugin/index.js +0 -20
  329. package/lib/plugins/TypingPerfPlugin/index.d.ts +0 -2
  330. package/lib/plugins/TypingPerfPlugin/index.js +0 -93
  331. package/lib/plugins/YouTubePlugin/index.d.ts +0 -4
  332. package/lib/plugins/YouTubePlugin/index.js +0 -20
  333. package/lib/server/validation.d.ts +0 -1
  334. package/lib/server/validation.js +0 -111
  335. package/lib/setupEnv.d.ts +0 -2
  336. package/lib/setupEnv.js +0 -25
  337. package/lib/themes/CommentEditorTheme.d.ts +0 -4
  338. package/lib/themes/CommentEditorTheme.js +0 -7
  339. package/lib/themes/PlaygroundEditorTheme.d.ts +0 -4
  340. package/lib/themes/PlaygroundEditorTheme.js +0 -120
  341. package/lib/themes/StickyEditorTheme.d.ts +0 -4
  342. package/lib/themes/StickyEditorTheme.js +0 -7
  343. package/lib/tyes.dt.d.ts +0 -12
  344. package/lib/tyes.dt.js +0 -0
  345. package/lib/ui/Button.d.ts +0 -12
  346. package/lib/ui/Button.js +0 -6
  347. package/lib/ui/ColorPicker.d.ts +0 -14
  348. package/lib/ui/ColorPicker.js +0 -219
  349. package/lib/ui/ContentEditable.d.ts +0 -9
  350. package/lib/ui/ContentEditable.js +0 -6
  351. package/lib/ui/Dialog.d.ts +0 -10
  352. package/lib/ui/Dialog.js +0 -8
  353. package/lib/ui/DropDown.d.ts +0 -18
  354. package/lib/ui/DropDown.js +0 -133
  355. package/lib/ui/DropdownColorPicker.d.ts +0 -13
  356. package/lib/ui/DropdownColorPicker.js +0 -6
  357. package/lib/ui/EquationEditor.d.ts +0 -8
  358. package/lib/ui/EquationEditor.js +0 -11
  359. package/lib/ui/ExcalidrawModal.d.ts +0 -42
  360. package/lib/ui/ExcalidrawModal.js +0 -103
  361. package/lib/ui/FileInput.d.ts +0 -10
  362. package/lib/ui/FileInput.js +0 -5
  363. package/lib/ui/FlashMessage.d.ts +0 -7
  364. package/lib/ui/FlashMessage.js +0 -6
  365. package/lib/ui/ImageResizer.d.ts +0 -17
  366. package/lib/ui/ImageResizer.js +0 -171
  367. package/lib/ui/KatexEquationAlterer.d.ts +0 -8
  368. package/lib/ui/KatexEquationAlterer.js +0 -23
  369. package/lib/ui/KatexRenderer.d.ts +0 -6
  370. package/lib/ui/KatexRenderer.js +0 -24
  371. package/lib/ui/Modal.d.ts +0 -9
  372. package/lib/ui/Modal.js +0 -48
  373. package/lib/ui/Select.d.ts +0 -8
  374. package/lib/ui/Select.js +0 -5
  375. package/lib/ui/Switch.d.ts +0 -8
  376. package/lib/ui/Switch.js +0 -6
  377. package/lib/ui/TextInput.d.ts +0 -13
  378. package/lib/ui/TextInput.js +0 -7
  379. package/lib/utils/docSerialization.d.ts +0 -3
  380. package/lib/utils/docSerialization.js +0 -56
  381. package/lib/utils/emoji-list.d.ts +0 -20
  382. package/lib/utils/emoji-list.js +0 -16605
  383. package/lib/utils/getDOMRangeRect.d.ts +0 -8
  384. package/lib/utils/getDOMRangeRect.js +0 -22
  385. package/lib/utils/getSelectedNode.d.ts +0 -2
  386. package/lib/utils/getSelectedNode.js +0 -24
  387. package/lib/utils/getThemeSelector.d.ts +0 -2
  388. package/lib/utils/getThemeSelector.js +0 -10
  389. package/lib/utils/isMobileWidth.d.ts +0 -7
  390. package/lib/utils/isMobileWidth.js +0 -7
  391. package/lib/utils/joinClasses.d.ts +0 -1
  392. package/lib/utils/joinClasses.js +0 -3
  393. package/lib/utils/setFloatingElemPosition.d.ts +0 -1
  394. package/lib/utils/setFloatingElemPosition.js +0 -55
  395. package/lib/utils/setFloatingElemPositionForLinkEditor.d.ts +0 -1
  396. package/lib/utils/setFloatingElemPositionForLinkEditor.js +0 -32
  397. package/lib/utils/swipe.d.ts +0 -4
  398. package/lib/utils/swipe.js +0 -90
  399. package/lib/utils/url.d.ts +0 -2
  400. package/lib/utils/url.js +0 -27
@@ -1,280 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import './index.css';
3
- import { $createLinkNode, $isAutoLinkNode, $isLinkNode, TOGGLE_LINK_COMMAND, } from '@lexical/link';
4
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
5
- import { $findMatchingParent, mergeRegister } from '@lexical/utils';
6
- import { $getSelection, $isLineBreakNode, $isNodeSelection, $isRangeSelection, CLICK_COMMAND, COMMAND_PRIORITY_CRITICAL, COMMAND_PRIORITY_HIGH, COMMAND_PRIORITY_LOW, getDOMSelection, KEY_ESCAPE_COMMAND, SELECTION_CHANGE_COMMAND, } from 'lexical';
7
- import { useCallback, useEffect, useRef, useState } from 'react';
8
- import { createPortal } from 'react-dom';
9
- import { getSelectedNode } from '../../utils/getSelectedNode';
10
- import { setFloatingElemPositionForLinkEditor } from '../../utils/setFloatingElemPositionForLinkEditor';
11
- import { sanitizeUrl } from '../../utils/url';
12
- function preventDefault(event) {
13
- event.preventDefault();
14
- }
15
- function FloatingLinkEditor({ editor, isLink, setIsLink, anchorElem, isLinkEditMode, setIsLinkEditMode, }) {
16
- const editorRef = useRef(null);
17
- const inputRef = useRef(null);
18
- const [linkUrl, setLinkUrl] = useState('');
19
- const [editedLinkUrl, setEditedLinkUrl] = useState('https://');
20
- const [lastSelection, setLastSelection] = useState(null);
21
- const $updateLinkEditor = useCallback(() => {
22
- const selection = $getSelection();
23
- if ($isRangeSelection(selection)) {
24
- const node = getSelectedNode(selection);
25
- const linkParent = $findMatchingParent(node, $isLinkNode);
26
- if (linkParent) {
27
- setLinkUrl(linkParent.getURL());
28
- }
29
- else if ($isLinkNode(node)) {
30
- setLinkUrl(node.getURL());
31
- }
32
- else {
33
- setLinkUrl('');
34
- }
35
- if (isLinkEditMode) {
36
- setEditedLinkUrl(linkUrl);
37
- }
38
- }
39
- else if ($isNodeSelection(selection)) {
40
- const nodes = selection.getNodes();
41
- if (nodes.length > 0) {
42
- const node = nodes[0];
43
- const parent = node.getParent();
44
- if ($isLinkNode(parent)) {
45
- setLinkUrl(parent.getURL());
46
- }
47
- else if ($isLinkNode(node)) {
48
- setLinkUrl(node.getURL());
49
- }
50
- else {
51
- setLinkUrl('');
52
- }
53
- if (isLinkEditMode) {
54
- setEditedLinkUrl(linkUrl);
55
- }
56
- }
57
- }
58
- const editorElem = editorRef.current;
59
- const nativeSelection = getDOMSelection(editor._window);
60
- const activeElement = document.activeElement;
61
- if (editorElem === null) {
62
- return;
63
- }
64
- const rootElement = editor.getRootElement();
65
- if (selection !== null && rootElement !== null && editor.isEditable()) {
66
- let domRect;
67
- if ($isNodeSelection(selection)) {
68
- const nodes = selection.getNodes();
69
- if (nodes.length > 0) {
70
- const element = editor.getElementByKey(nodes[0].getKey());
71
- if (element) {
72
- domRect = element.getBoundingClientRect();
73
- }
74
- }
75
- }
76
- else if (nativeSelection !== null &&
77
- rootElement.contains(nativeSelection.anchorNode)) {
78
- domRect =
79
- nativeSelection.focusNode?.parentElement?.getBoundingClientRect();
80
- }
81
- if (domRect) {
82
- domRect.y += 40;
83
- setFloatingElemPositionForLinkEditor(domRect, editorElem, anchorElem);
84
- }
85
- setLastSelection(selection);
86
- }
87
- else if (!activeElement || activeElement.className !== 'link-input') {
88
- if (rootElement !== null) {
89
- setFloatingElemPositionForLinkEditor(null, editorElem, anchorElem);
90
- }
91
- setLastSelection(null);
92
- setIsLinkEditMode(false);
93
- setLinkUrl('');
94
- }
95
- return true;
96
- }, [anchorElem, editor, setIsLinkEditMode, isLinkEditMode, linkUrl]);
97
- useEffect(() => {
98
- const scrollerElem = anchorElem.parentElement;
99
- const update = () => {
100
- editor.getEditorState().read(() => {
101
- $updateLinkEditor();
102
- });
103
- };
104
- window.addEventListener('resize', update);
105
- if (scrollerElem) {
106
- scrollerElem.addEventListener('scroll', update);
107
- }
108
- return () => {
109
- window.removeEventListener('resize', update);
110
- if (scrollerElem) {
111
- scrollerElem.removeEventListener('scroll', update);
112
- }
113
- };
114
- }, [anchorElem.parentElement, editor, $updateLinkEditor]);
115
- useEffect(() => {
116
- return mergeRegister(editor.registerUpdateListener(({ editorState }) => {
117
- editorState.read(() => {
118
- $updateLinkEditor();
119
- });
120
- }), editor.registerCommand(SELECTION_CHANGE_COMMAND, () => {
121
- $updateLinkEditor();
122
- return true;
123
- }, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_ESCAPE_COMMAND, () => {
124
- if (isLink) {
125
- setIsLink(false);
126
- return true;
127
- }
128
- return false;
129
- }, COMMAND_PRIORITY_HIGH));
130
- }, [editor, $updateLinkEditor, setIsLink, isLink]);
131
- useEffect(() => {
132
- editor.getEditorState().read(() => {
133
- $updateLinkEditor();
134
- });
135
- }, [editor, $updateLinkEditor]);
136
- useEffect(() => {
137
- if (isLinkEditMode && inputRef.current) {
138
- inputRef.current.focus();
139
- }
140
- }, [isLinkEditMode, isLink]);
141
- useEffect(() => {
142
- const editorElement = editorRef.current;
143
- if (editorElement === null) {
144
- return;
145
- }
146
- const handleBlur = (event) => {
147
- if (!editorElement.contains(event.relatedTarget) && isLink) {
148
- setIsLink(false);
149
- setIsLinkEditMode(false);
150
- }
151
- };
152
- editorElement.addEventListener('focusout', handleBlur);
153
- return () => {
154
- editorElement.removeEventListener('focusout', handleBlur);
155
- };
156
- }, [editorRef, setIsLink, setIsLinkEditMode, isLink]);
157
- const monitorInputInteraction = (event) => {
158
- if (event.key === 'Enter') {
159
- handleLinkSubmission(event);
160
- }
161
- else if (event.key === 'Escape') {
162
- event.preventDefault();
163
- setIsLinkEditMode(false);
164
- }
165
- };
166
- const handleLinkSubmission = (event) => {
167
- event.preventDefault();
168
- if (lastSelection !== null) {
169
- if (linkUrl !== '') {
170
- editor.update(() => {
171
- editor.dispatchCommand(TOGGLE_LINK_COMMAND, sanitizeUrl(editedLinkUrl));
172
- const selection = $getSelection();
173
- if ($isRangeSelection(selection)) {
174
- const parent = getSelectedNode(selection).getParent();
175
- if ($isAutoLinkNode(parent)) {
176
- const linkNode = $createLinkNode(parent.getURL(), {
177
- rel: parent.__rel,
178
- target: parent.__target,
179
- title: parent.__title,
180
- });
181
- parent.replace(linkNode, true);
182
- }
183
- }
184
- });
185
- }
186
- setEditedLinkUrl('https://');
187
- setIsLinkEditMode(false);
188
- }
189
- };
190
- return (_jsx("div", { ref: editorRef, className: "link-editor", children: !isLink ? null : isLinkEditMode ? (_jsxs(_Fragment, { children: [_jsx("input", { ref: inputRef, className: "link-input", value: editedLinkUrl, onChange: (event) => {
191
- setEditedLinkUrl(event.target.value);
192
- }, onKeyDown: (event) => {
193
- monitorInputInteraction(event);
194
- } }), _jsxs("div", { children: [_jsx("div", { className: "link-cancel", role: "button", tabIndex: 0, onMouseDown: preventDefault, onClick: () => {
195
- setIsLinkEditMode(false);
196
- } }), _jsx("div", { className: "link-confirm", role: "button", tabIndex: 0, onMouseDown: preventDefault, onClick: handleLinkSubmission })] })] })) : (_jsxs("div", { className: "link-view", children: [_jsx("a", { href: sanitizeUrl(linkUrl), target: "_blank", rel: "noopener noreferrer", children: linkUrl }), _jsx("div", { className: "link-edit", role: "button", tabIndex: 0, onMouseDown: preventDefault, onClick: (event) => {
197
- event.preventDefault();
198
- setEditedLinkUrl(linkUrl);
199
- setIsLinkEditMode(true);
200
- } }), _jsx("div", { className: "link-trash", role: "button", tabIndex: 0, onMouseDown: preventDefault, onClick: () => {
201
- editor.dispatchCommand(TOGGLE_LINK_COMMAND, null);
202
- } })] })) }));
203
- }
204
- function useFloatingLinkEditorToolbar(editor, anchorElem, isLinkEditMode, setIsLinkEditMode) {
205
- const [activeEditor, setActiveEditor] = useState(editor);
206
- const [isLink, setIsLink] = useState(false);
207
- useEffect(() => {
208
- function $updateToolbar() {
209
- const selection = $getSelection();
210
- if ($isRangeSelection(selection)) {
211
- const focusNode = getSelectedNode(selection);
212
- const focusLinkNode = $findMatchingParent(focusNode, $isLinkNode);
213
- const focusAutoLinkNode = $findMatchingParent(focusNode, $isAutoLinkNode);
214
- if (!(focusLinkNode || focusAutoLinkNode)) {
215
- setIsLink(false);
216
- return;
217
- }
218
- const badNode = selection
219
- .getNodes()
220
- .filter((node) => !$isLineBreakNode(node))
221
- .find((node) => {
222
- const linkNode = $findMatchingParent(node, $isLinkNode);
223
- const autoLinkNode = $findMatchingParent(node, $isAutoLinkNode);
224
- return ((focusLinkNode && !focusLinkNode.is(linkNode)) ||
225
- (linkNode && !linkNode.is(focusLinkNode)) ||
226
- (focusAutoLinkNode && !focusAutoLinkNode.is(autoLinkNode)) ||
227
- (autoLinkNode &&
228
- (!autoLinkNode.is(focusAutoLinkNode) ||
229
- autoLinkNode.getIsUnlinked())));
230
- });
231
- if (!badNode) {
232
- setIsLink(true);
233
- }
234
- else {
235
- setIsLink(false);
236
- }
237
- }
238
- else if ($isNodeSelection(selection)) {
239
- const nodes = selection.getNodes();
240
- if (nodes.length === 0) {
241
- setIsLink(false);
242
- return;
243
- }
244
- const node = nodes[0];
245
- const parent = node.getParent();
246
- if ($isLinkNode(parent) || $isLinkNode(node)) {
247
- setIsLink(true);
248
- }
249
- else {
250
- setIsLink(false);
251
- }
252
- }
253
- }
254
- return mergeRegister(editor.registerUpdateListener(({ editorState }) => {
255
- editorState.read(() => {
256
- $updateToolbar();
257
- });
258
- }), editor.registerCommand(SELECTION_CHANGE_COMMAND, (_payload, newEditor) => {
259
- $updateToolbar();
260
- setActiveEditor(newEditor);
261
- return false;
262
- }, COMMAND_PRIORITY_CRITICAL), editor.registerCommand(CLICK_COMMAND, (payload) => {
263
- const selection = $getSelection();
264
- if ($isRangeSelection(selection)) {
265
- const node = getSelectedNode(selection);
266
- const linkNode = $findMatchingParent(node, $isLinkNode);
267
- if ($isLinkNode(linkNode) && (payload.metaKey || payload.ctrlKey)) {
268
- window.open(linkNode.getURL(), '_blank');
269
- return true;
270
- }
271
- }
272
- return false;
273
- }, COMMAND_PRIORITY_LOW));
274
- }, [editor]);
275
- return createPortal(_jsx(FloatingLinkEditor, { editor: activeEditor, isLink: isLink, anchorElem: anchorElem, setIsLink: setIsLink, isLinkEditMode: isLinkEditMode, setIsLinkEditMode: setIsLinkEditMode }), anchorElem);
276
- }
277
- export default function FloatingLinkEditorPlugin({ anchorElem = document.body, isLinkEditMode, setIsLinkEditMode, }) {
278
- const [editor] = useLexicalComposerContext();
279
- return useFloatingLinkEditorToolbar(editor, anchorElem, isLinkEditMode, setIsLinkEditMode);
280
- }
@@ -1,7 +0,0 @@
1
- import type { JSX } from 'react';
2
- import './index.css';
3
- import { Dispatch } from 'react';
4
- export default function FloatingTextFormatToolbarPlugin({ anchorElem, setIsLinkEditMode, }: {
5
- anchorElem?: HTMLElement;
6
- setIsLinkEditMode: Dispatch<boolean>;
7
- }): JSX.Element | null;
@@ -1,219 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import './index.css';
3
- import { $isCodeHighlightNode } from '@lexical/code';
4
- import { $isLinkNode, TOGGLE_LINK_COMMAND } from '@lexical/link';
5
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
6
- import { mergeRegister } from '@lexical/utils';
7
- import { $getSelection, $isParagraphNode, $isRangeSelection, $isTextNode, COMMAND_PRIORITY_LOW, FORMAT_TEXT_COMMAND, getDOMSelection, SELECTION_CHANGE_COMMAND, } from 'lexical';
8
- import { useCallback, useEffect, useRef, useState } from 'react';
9
- import { createPortal } from 'react-dom';
10
- import { getDOMRangeRect } from '../../utils/getDOMRangeRect';
11
- import { getSelectedNode } from '../../utils/getSelectedNode';
12
- import { setFloatingElemPosition } from '../../utils/setFloatingElemPosition';
13
- import { INSERT_INLINE_COMMAND } from '../CommentPlugin';
14
- function TextFormatFloatingToolbar({ editor, anchorElem, isLink, isBold, isItalic, isUnderline, isUppercase, isLowercase, isCapitalize, isCode, isStrikethrough, isSubscript, isSuperscript, setIsLinkEditMode, }) {
15
- const popupCharStylesEditorRef = useRef(null);
16
- const insertLink = useCallback(() => {
17
- if (!isLink) {
18
- setIsLinkEditMode(true);
19
- editor.dispatchCommand(TOGGLE_LINK_COMMAND, 'https://');
20
- }
21
- else {
22
- setIsLinkEditMode(false);
23
- editor.dispatchCommand(TOGGLE_LINK_COMMAND, null);
24
- }
25
- }, [editor, isLink, setIsLinkEditMode]);
26
- const insertComment = () => {
27
- editor.dispatchCommand(INSERT_INLINE_COMMAND, undefined);
28
- };
29
- function mouseMoveListener(e) {
30
- if (popupCharStylesEditorRef?.current &&
31
- (e.buttons === 1 || e.buttons === 3)) {
32
- if (popupCharStylesEditorRef.current.style.pointerEvents !== 'none') {
33
- const x = e.clientX;
34
- const y = e.clientY;
35
- const elementUnderMouse = document.elementFromPoint(x, y);
36
- if (!popupCharStylesEditorRef.current.contains(elementUnderMouse)) {
37
- // Mouse is not over the target element => not a normal click, but probably a drag
38
- popupCharStylesEditorRef.current.style.pointerEvents = 'none';
39
- }
40
- }
41
- }
42
- }
43
- function mouseUpListener(e) {
44
- if (popupCharStylesEditorRef?.current) {
45
- if (popupCharStylesEditorRef.current.style.pointerEvents !== 'auto') {
46
- popupCharStylesEditorRef.current.style.pointerEvents = 'auto';
47
- }
48
- }
49
- }
50
- useEffect(() => {
51
- if (popupCharStylesEditorRef?.current) {
52
- document.addEventListener('mousemove', mouseMoveListener);
53
- document.addEventListener('mouseup', mouseUpListener);
54
- return () => {
55
- document.removeEventListener('mousemove', mouseMoveListener);
56
- document.removeEventListener('mouseup', mouseUpListener);
57
- };
58
- }
59
- }, [popupCharStylesEditorRef]);
60
- const $updateTextFormatFloatingToolbar = useCallback(() => {
61
- const selection = $getSelection();
62
- const popupCharStylesEditorElem = popupCharStylesEditorRef.current;
63
- const nativeSelection = getDOMSelection(editor._window);
64
- if (popupCharStylesEditorElem === null) {
65
- return;
66
- }
67
- const rootElement = editor.getRootElement();
68
- if (selection !== null &&
69
- nativeSelection !== null &&
70
- !nativeSelection.isCollapsed &&
71
- rootElement !== null &&
72
- rootElement.contains(nativeSelection.anchorNode)) {
73
- const rangeRect = getDOMRangeRect(nativeSelection, rootElement);
74
- setFloatingElemPosition(rangeRect, popupCharStylesEditorElem, anchorElem, isLink);
75
- }
76
- }, [editor, anchorElem, isLink]);
77
- useEffect(() => {
78
- const scrollerElem = anchorElem.parentElement;
79
- const update = () => {
80
- editor.getEditorState().read(() => {
81
- $updateTextFormatFloatingToolbar();
82
- });
83
- };
84
- window.addEventListener('resize', update);
85
- if (scrollerElem) {
86
- scrollerElem.addEventListener('scroll', update);
87
- }
88
- return () => {
89
- window.removeEventListener('resize', update);
90
- if (scrollerElem) {
91
- scrollerElem.removeEventListener('scroll', update);
92
- }
93
- };
94
- }, [editor, $updateTextFormatFloatingToolbar, anchorElem]);
95
- useEffect(() => {
96
- editor.getEditorState().read(() => {
97
- $updateTextFormatFloatingToolbar();
98
- });
99
- return mergeRegister(editor.registerUpdateListener(({ editorState }) => {
100
- editorState.read(() => {
101
- $updateTextFormatFloatingToolbar();
102
- });
103
- }), editor.registerCommand(SELECTION_CHANGE_COMMAND, () => {
104
- $updateTextFormatFloatingToolbar();
105
- return false;
106
- }, COMMAND_PRIORITY_LOW));
107
- }, [editor, $updateTextFormatFloatingToolbar]);
108
- return (_jsxs("div", { ref: popupCharStylesEditorRef, className: "floating-text-format-popup", children: [editor.isEditable() && (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => {
109
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'bold');
110
- }, className: 'popup-item spaced ' + (isBold ? 'active' : ''), title: "Bold", "aria-label": "Format text as bold", children: _jsx("i", { className: "format bold" }) }), _jsx("button", { type: "button", onClick: () => {
111
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'italic');
112
- }, className: 'popup-item spaced ' + (isItalic ? 'active' : ''), title: "Italic", "aria-label": "Format text as italics", children: _jsx("i", { className: "format italic" }) }), _jsx("button", { type: "button", onClick: () => {
113
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'underline');
114
- }, className: 'popup-item spaced ' + (isUnderline ? 'active' : ''), title: "Underline", "aria-label": "Format text to underlined", children: _jsx("i", { className: "format underline" }) }), _jsx("button", { type: "button", onClick: () => {
115
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'strikethrough');
116
- }, className: 'popup-item spaced ' + (isStrikethrough ? 'active' : ''), title: "Strikethrough", "aria-label": "Format text with a strikethrough", children: _jsx("i", { className: "format strikethrough" }) }), _jsx("button", { type: "button", onClick: () => {
117
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'subscript');
118
- }, className: 'popup-item spaced ' + (isSubscript ? 'active' : ''), title: "Subscript", "aria-label": "Format Subscript", children: _jsx("i", { className: "format subscript" }) }), _jsx("button", { type: "button", onClick: () => {
119
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'superscript');
120
- }, className: 'popup-item spaced ' + (isSuperscript ? 'active' : ''), title: "Superscript", "aria-label": "Format Superscript", children: _jsx("i", { className: "format superscript" }) }), _jsx("button", { type: "button", onClick: () => {
121
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'uppercase');
122
- }, className: 'popup-item spaced ' + (isUppercase ? 'active' : ''), title: "Uppercase", "aria-label": "Format text to uppercase", children: _jsx("i", { className: "format uppercase" }) }), _jsx("button", { type: "button", onClick: () => {
123
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'lowercase');
124
- }, className: 'popup-item spaced ' + (isLowercase ? 'active' : ''), title: "Lowercase", "aria-label": "Format text to lowercase", children: _jsx("i", { className: "format lowercase" }) }), _jsx("button", { type: "button", onClick: () => {
125
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'capitalize');
126
- }, className: 'popup-item spaced ' + (isCapitalize ? 'active' : ''), title: "Capitalize", "aria-label": "Format text to capitalize", children: _jsx("i", { className: "format capitalize" }) }), _jsx("button", { type: "button", onClick: () => {
127
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'code');
128
- }, className: 'popup-item spaced ' + (isCode ? 'active' : ''), title: "Insert code block", "aria-label": "Insert code block", children: _jsx("i", { className: "format code" }) }), _jsx("button", { type: "button", onClick: insertLink, className: 'popup-item spaced ' + (isLink ? 'active' : ''), title: "Insert link", "aria-label": "Insert link", children: _jsx("i", { className: "format link" }) })] })), _jsx("button", { type: "button", onClick: insertComment, className: 'popup-item spaced insert-comment', title: "Insert comment", "aria-label": "Insert comment", children: _jsx("i", { className: "format add-comment" }) })] }));
129
- }
130
- function useFloatingTextFormatToolbar(editor, anchorElem, setIsLinkEditMode) {
131
- const [isText, setIsText] = useState(false);
132
- const [isLink, setIsLink] = useState(false);
133
- const [isBold, setIsBold] = useState(false);
134
- const [isItalic, setIsItalic] = useState(false);
135
- const [isUnderline, setIsUnderline] = useState(false);
136
- const [isUppercase, setIsUppercase] = useState(false);
137
- const [isLowercase, setIsLowercase] = useState(false);
138
- const [isCapitalize, setIsCapitalize] = useState(false);
139
- const [isStrikethrough, setIsStrikethrough] = useState(false);
140
- const [isSubscript, setIsSubscript] = useState(false);
141
- const [isSuperscript, setIsSuperscript] = useState(false);
142
- const [isCode, setIsCode] = useState(false);
143
- const updatePopup = useCallback(() => {
144
- editor.getEditorState().read(() => {
145
- // Should not to pop up the floating toolbar when using IME input
146
- if (editor.isComposing()) {
147
- return;
148
- }
149
- const selection = $getSelection();
150
- const nativeSelection = getDOMSelection(editor._window);
151
- const rootElement = editor.getRootElement();
152
- if (nativeSelection !== null &&
153
- (!$isRangeSelection(selection) ||
154
- rootElement === null ||
155
- !rootElement.contains(nativeSelection.anchorNode))) {
156
- setIsText(false);
157
- return;
158
- }
159
- if (!$isRangeSelection(selection)) {
160
- return;
161
- }
162
- const node = getSelectedNode(selection);
163
- // Update text format
164
- setIsBold(selection.hasFormat('bold'));
165
- setIsItalic(selection.hasFormat('italic'));
166
- setIsUnderline(selection.hasFormat('underline'));
167
- setIsUppercase(selection.hasFormat('uppercase'));
168
- setIsLowercase(selection.hasFormat('lowercase'));
169
- setIsCapitalize(selection.hasFormat('capitalize'));
170
- setIsStrikethrough(selection.hasFormat('strikethrough'));
171
- setIsSubscript(selection.hasFormat('subscript'));
172
- setIsSuperscript(selection.hasFormat('superscript'));
173
- setIsCode(selection.hasFormat('code'));
174
- // Update links
175
- const parent = node.getParent();
176
- if ($isLinkNode(parent) || $isLinkNode(node)) {
177
- setIsLink(true);
178
- }
179
- else {
180
- setIsLink(false);
181
- }
182
- if (!$isCodeHighlightNode(selection.anchor.getNode()) &&
183
- selection.getTextContent() !== '') {
184
- setIsText($isTextNode(node) || $isParagraphNode(node));
185
- }
186
- else {
187
- setIsText(false);
188
- }
189
- const rawTextContent = selection.getTextContent().replace(/\n/g, '');
190
- if (!selection.isCollapsed() && rawTextContent === '') {
191
- setIsText(false);
192
- return;
193
- }
194
- });
195
- }, [editor]);
196
- useEffect(() => {
197
- document.addEventListener('selectionchange', updatePopup);
198
- return () => {
199
- document.removeEventListener('selectionchange', updatePopup);
200
- };
201
- }, [updatePopup]);
202
- useEffect(() => {
203
- return mergeRegister(editor.registerUpdateListener(() => {
204
- updatePopup();
205
- }), editor.registerRootListener(() => {
206
- if (editor.getRootElement() === null) {
207
- setIsText(false);
208
- }
209
- }));
210
- }, [editor, updatePopup]);
211
- if (!isText) {
212
- return null;
213
- }
214
- return createPortal(_jsx(TextFormatFloatingToolbar, { editor: editor, anchorElem: anchorElem, isLink: isLink, isBold: isBold, isItalic: isItalic, isUppercase: isUppercase, isLowercase: isLowercase, isCapitalize: isCapitalize, isStrikethrough: isStrikethrough, isSubscript: isSubscript, isSuperscript: isSuperscript, isUnderline: isUnderline, isCode: isCode, setIsLinkEditMode: setIsLinkEditMode }), anchorElem);
215
- }
216
- export default function FloatingTextFormatToolbarPlugin({ anchorElem = document.body, setIsLinkEditMode, }) {
217
- const [editor] = useLexicalComposerContext();
218
- return useFloatingTextFormatToolbar(editor, anchorElem, setIsLinkEditMode);
219
- }
@@ -1,24 +0,0 @@
1
- import type { JSX } from 'react';
2
- import { LexicalCommand, LexicalEditor } from 'lexical';
3
- import { ImagePayload } from '../../nodes/ImageNode';
4
- export type InsertImagePayload = Readonly<ImagePayload>;
5
- export declare const INSERT_IMAGE_COMMAND: LexicalCommand<InsertImagePayload>;
6
- export declare function InsertImageUriDialogBody({ onClick, }: {
7
- onClick: (payload: InsertImagePayload) => void;
8
- }): import("react/jsx-runtime").JSX.Element;
9
- export declare function InsertImageUploadedDialogBody({ onClick, }: {
10
- onClick: (payload: InsertImagePayload) => void;
11
- }): import("react/jsx-runtime").JSX.Element;
12
- export declare function InsertImageDialog({ activeEditor, onClose, }: {
13
- activeEditor: LexicalEditor;
14
- onClose: () => void;
15
- }): JSX.Element;
16
- export default function ImagesPlugin({ captionsEnabled, }: {
17
- captionsEnabled?: boolean;
18
- }): JSX.Element | null;
19
- declare global {
20
- interface DragEvent {
21
- rangeOffset?: number;
22
- rangeParent?: Node;
23
- }
24
- }