@datalayer/lexical-loro 0.1.0 → 0.2.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 (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,112 +0,0 @@
1
- import { TOGGLE_LINK_COMMAND } from '@lexical/link';
2
- import { COMMAND_PRIORITY_NORMAL, FORMAT_ELEMENT_COMMAND, FORMAT_TEXT_COMMAND, INDENT_CONTENT_COMMAND, isModifierMatch, KEY_DOWN_COMMAND, OUTDENT_CONTENT_COMMAND, } from 'lexical';
3
- import { useEffect } from 'react';
4
- import { useToolbarState } from '../../context/ToolbarContext';
5
- import { sanitizeUrl } from '../../utils/url';
6
- import { INSERT_INLINE_COMMAND } from '../CommentPlugin';
7
- import { clearFormatting, formatBulletList, formatCheckList, formatCode, formatHeading, formatNumberedList, formatParagraph, formatQuote, updateFontSize, UpdateFontSizeType, } from '../ToolbarPlugin/utils';
8
- import { isAddComment, isCapitalize, isCenterAlign, isClearFormatting, isDecreaseFontSize, isFormatBulletList, isFormatCheckList, isFormatCode, isFormatHeading, isFormatNumberedList, isFormatParagraph, isFormatQuote, isIncreaseFontSize, isIndent, isInsertCodeBlock, isInsertLink, isJustifyAlign, isLeftAlign, isLowercase, isOutdent, isRightAlign, isStrikeThrough, isSubscript, isSuperscript, isUppercase, } from './shortcuts';
9
- export default function ShortcutsPlugin({ editor, setIsLinkEditMode, }) {
10
- const { toolbarState } = useToolbarState();
11
- useEffect(() => {
12
- const keyboardShortcutsHandler = (event) => {
13
- // Short-circuit, a least one modifier must be set
14
- if (isModifierMatch(event, {})) {
15
- return false;
16
- }
17
- else if (isFormatParagraph(event)) {
18
- formatParagraph(editor);
19
- }
20
- else if (isFormatHeading(event)) {
21
- const { code } = event;
22
- const headingSize = `h${code[code.length - 1]}`;
23
- formatHeading(editor, toolbarState.blockType, headingSize);
24
- }
25
- else if (isFormatBulletList(event)) {
26
- formatBulletList(editor, toolbarState.blockType);
27
- }
28
- else if (isFormatNumberedList(event)) {
29
- formatNumberedList(editor, toolbarState.blockType);
30
- }
31
- else if (isFormatCheckList(event)) {
32
- formatCheckList(editor, toolbarState.blockType);
33
- }
34
- else if (isFormatCode(event)) {
35
- formatCode(editor, toolbarState.blockType);
36
- }
37
- else if (isFormatQuote(event)) {
38
- formatQuote(editor, toolbarState.blockType);
39
- }
40
- else if (isStrikeThrough(event)) {
41
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'strikethrough');
42
- }
43
- else if (isLowercase(event)) {
44
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'lowercase');
45
- }
46
- else if (isUppercase(event)) {
47
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'uppercase');
48
- }
49
- else if (isCapitalize(event)) {
50
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'capitalize');
51
- }
52
- else if (isIndent(event)) {
53
- editor.dispatchCommand(INDENT_CONTENT_COMMAND, undefined);
54
- }
55
- else if (isOutdent(event)) {
56
- editor.dispatchCommand(OUTDENT_CONTENT_COMMAND, undefined);
57
- }
58
- else if (isCenterAlign(event)) {
59
- editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'center');
60
- }
61
- else if (isLeftAlign(event)) {
62
- editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'left');
63
- }
64
- else if (isRightAlign(event)) {
65
- editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'right');
66
- }
67
- else if (isJustifyAlign(event)) {
68
- editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'justify');
69
- }
70
- else if (isSubscript(event)) {
71
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'subscript');
72
- }
73
- else if (isSuperscript(event)) {
74
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'superscript');
75
- }
76
- else if (isInsertCodeBlock(event)) {
77
- editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'code');
78
- }
79
- else if (isIncreaseFontSize(event)) {
80
- updateFontSize(editor, UpdateFontSizeType.increment, toolbarState.fontSizeInputValue);
81
- }
82
- else if (isDecreaseFontSize(event)) {
83
- updateFontSize(editor, UpdateFontSizeType.decrement, toolbarState.fontSizeInputValue);
84
- }
85
- else if (isClearFormatting(event)) {
86
- clearFormatting(editor);
87
- }
88
- else if (isInsertLink(event)) {
89
- const url = toolbarState.isLink ? null : sanitizeUrl('https://');
90
- setIsLinkEditMode(!toolbarState.isLink);
91
- editor.dispatchCommand(TOGGLE_LINK_COMMAND, url);
92
- }
93
- else if (isAddComment(event)) {
94
- editor.dispatchCommand(INSERT_INLINE_COMMAND, undefined);
95
- }
96
- else {
97
- // No match for any of the event handlers
98
- return false;
99
- }
100
- event.preventDefault();
101
- return true;
102
- };
103
- return editor.registerCommand(KEY_DOWN_COMMAND, keyboardShortcutsHandler, COMMAND_PRIORITY_NORMAL);
104
- }, [
105
- editor,
106
- toolbarState.isLink,
107
- toolbarState.blockType,
108
- toolbarState.fontSizeInputValue,
109
- setIsLinkEditMode,
110
- ]);
111
- return null;
112
- }
@@ -1,59 +0,0 @@
1
- export declare const SHORTCUTS: Readonly<{
2
- NORMAL: "⌘+Opt+0" | "Ctrl+Alt+0";
3
- HEADING1: "⌘+Opt+1" | "Ctrl+Alt+1";
4
- HEADING2: "⌘+Opt+2" | "Ctrl+Alt+2";
5
- HEADING3: "⌘+Opt+3" | "Ctrl+Alt+3";
6
- NUMBERED_LIST: "⌘+Shift+7" | "Ctrl+Shift+7";
7
- BULLET_LIST: "⌘+Shift+8" | "Ctrl+Shift+8";
8
- CHECK_LIST: "⌘+Shift+9" | "Ctrl+Shift+9";
9
- CODE_BLOCK: "⌘+Opt+C" | "Ctrl+Alt+C";
10
- QUOTE: "⌃+Shift+Q" | "Ctrl+Shift+Q";
11
- ADD_COMMENT: "⌘+Opt+M" | "Ctrl+Alt+M";
12
- INCREASE_FONT_SIZE: "⌘+Shift+." | "Ctrl+Shift+.";
13
- DECREASE_FONT_SIZE: "⌘+Shift+," | "Ctrl+Shift+,";
14
- INSERT_CODE_BLOCK: "⌘+Shift+C" | "Ctrl+Shift+C";
15
- STRIKETHROUGH: "⌘+Shift+X" | "Ctrl+Shift+X";
16
- LOWERCASE: "⌃+Shift+1" | "Ctrl+Shift+1";
17
- UPPERCASE: "⌃+Shift+2" | "Ctrl+Shift+2";
18
- CAPITALIZE: "⌃+Shift+3" | "Ctrl+Shift+3";
19
- CENTER_ALIGN: "⌘+Shift+E" | "Ctrl+Shift+E";
20
- JUSTIFY_ALIGN: "⌘+Shift+J" | "Ctrl+Shift+J";
21
- LEFT_ALIGN: "⌘+Shift+L" | "Ctrl+Shift+L";
22
- RIGHT_ALIGN: "⌘+Shift+R" | "Ctrl+Shift+R";
23
- SUBSCRIPT: "⌘+," | "Ctrl+,";
24
- SUPERSCRIPT: "⌘+." | "Ctrl+.";
25
- INDENT: "⌘+]" | "Ctrl+]";
26
- OUTDENT: "⌘+[" | "Ctrl+[";
27
- CLEAR_FORMATTING: "⌘+\\" | "Ctrl+\\";
28
- REDO: "⌘+Shift+Z" | "Ctrl+Y";
29
- UNDO: "⌘+Z" | "Ctrl+Z";
30
- BOLD: "⌘+B" | "Ctrl+B";
31
- ITALIC: "⌘+I" | "Ctrl+I";
32
- UNDERLINE: "⌘+U" | "Ctrl+U";
33
- INSERT_LINK: "⌘+K" | "Ctrl+K";
34
- }>;
35
- export declare function isFormatParagraph(event: KeyboardEvent): boolean;
36
- export declare function isFormatHeading(event: KeyboardEvent): boolean;
37
- export declare function isFormatNumberedList(event: KeyboardEvent): boolean;
38
- export declare function isFormatBulletList(event: KeyboardEvent): boolean;
39
- export declare function isFormatCheckList(event: KeyboardEvent): boolean;
40
- export declare function isFormatCode(event: KeyboardEvent): boolean;
41
- export declare function isFormatQuote(event: KeyboardEvent): boolean;
42
- export declare function isLowercase(event: KeyboardEvent): boolean;
43
- export declare function isUppercase(event: KeyboardEvent): boolean;
44
- export declare function isCapitalize(event: KeyboardEvent): boolean;
45
- export declare function isStrikeThrough(event: KeyboardEvent): boolean;
46
- export declare function isIndent(event: KeyboardEvent): boolean;
47
- export declare function isOutdent(event: KeyboardEvent): boolean;
48
- export declare function isCenterAlign(event: KeyboardEvent): boolean;
49
- export declare function isLeftAlign(event: KeyboardEvent): boolean;
50
- export declare function isRightAlign(event: KeyboardEvent): boolean;
51
- export declare function isJustifyAlign(event: KeyboardEvent): boolean;
52
- export declare function isSubscript(event: KeyboardEvent): boolean;
53
- export declare function isSuperscript(event: KeyboardEvent): boolean;
54
- export declare function isInsertCodeBlock(event: KeyboardEvent): boolean;
55
- export declare function isIncreaseFontSize(event: KeyboardEvent): boolean;
56
- export declare function isDecreaseFontSize(event: KeyboardEvent): boolean;
57
- export declare function isClearFormatting(event: KeyboardEvent): boolean;
58
- export declare function isInsertLink(event: KeyboardEvent): boolean;
59
- export declare function isAddComment(event: KeyboardEvent): boolean;
@@ -1,169 +0,0 @@
1
- import { IS_APPLE } from '@lexical/utils';
2
- import { isModifierMatch } from 'lexical';
3
- //disable eslint sorting rule for quick reference to shortcuts
4
- /* eslint-disable sort-keys-fix/sort-keys-fix */
5
- export const SHORTCUTS = Object.freeze({
6
- // (Ctrl|⌘) + (Alt|Option) + <key> shortcuts
7
- NORMAL: IS_APPLE ? '⌘+Opt+0' : 'Ctrl+Alt+0',
8
- HEADING1: IS_APPLE ? '⌘+Opt+1' : 'Ctrl+Alt+1',
9
- HEADING2: IS_APPLE ? '⌘+Opt+2' : 'Ctrl+Alt+2',
10
- HEADING3: IS_APPLE ? '⌘+Opt+3' : 'Ctrl+Alt+3',
11
- NUMBERED_LIST: IS_APPLE ? '⌘+Shift+7' : 'Ctrl+Shift+7',
12
- BULLET_LIST: IS_APPLE ? '⌘+Shift+8' : 'Ctrl+Shift+8',
13
- CHECK_LIST: IS_APPLE ? '⌘+Shift+9' : 'Ctrl+Shift+9',
14
- CODE_BLOCK: IS_APPLE ? '⌘+Opt+C' : 'Ctrl+Alt+C',
15
- QUOTE: IS_APPLE ? '⌃+Shift+Q' : 'Ctrl+Shift+Q',
16
- ADD_COMMENT: IS_APPLE ? '⌘+Opt+M' : 'Ctrl+Alt+M',
17
- // (Ctrl|⌘) + Shift + <key> shortcuts
18
- INCREASE_FONT_SIZE: IS_APPLE ? '⌘+Shift+.' : 'Ctrl+Shift+.',
19
- DECREASE_FONT_SIZE: IS_APPLE ? '⌘+Shift+,' : 'Ctrl+Shift+,',
20
- INSERT_CODE_BLOCK: IS_APPLE ? '⌘+Shift+C' : 'Ctrl+Shift+C',
21
- STRIKETHROUGH: IS_APPLE ? '⌘+Shift+X' : 'Ctrl+Shift+X',
22
- LOWERCASE: IS_APPLE ? '⌃+Shift+1' : 'Ctrl+Shift+1',
23
- UPPERCASE: IS_APPLE ? '⌃+Shift+2' : 'Ctrl+Shift+2',
24
- CAPITALIZE: IS_APPLE ? '⌃+Shift+3' : 'Ctrl+Shift+3',
25
- CENTER_ALIGN: IS_APPLE ? '⌘+Shift+E' : 'Ctrl+Shift+E',
26
- JUSTIFY_ALIGN: IS_APPLE ? '⌘+Shift+J' : 'Ctrl+Shift+J',
27
- LEFT_ALIGN: IS_APPLE ? '⌘+Shift+L' : 'Ctrl+Shift+L',
28
- RIGHT_ALIGN: IS_APPLE ? '⌘+Shift+R' : 'Ctrl+Shift+R',
29
- // (Ctrl|⌘) + <key> shortcuts
30
- SUBSCRIPT: IS_APPLE ? '⌘+,' : 'Ctrl+,',
31
- SUPERSCRIPT: IS_APPLE ? '⌘+.' : 'Ctrl+.',
32
- INDENT: IS_APPLE ? '⌘+]' : 'Ctrl+]',
33
- OUTDENT: IS_APPLE ? '⌘+[' : 'Ctrl+[',
34
- CLEAR_FORMATTING: IS_APPLE ? '⌘+\\' : 'Ctrl+\\',
35
- REDO: IS_APPLE ? '⌘+Shift+Z' : 'Ctrl+Y',
36
- UNDO: IS_APPLE ? '⌘+Z' : 'Ctrl+Z',
37
- BOLD: IS_APPLE ? '⌘+B' : 'Ctrl+B',
38
- ITALIC: IS_APPLE ? '⌘+I' : 'Ctrl+I',
39
- UNDERLINE: IS_APPLE ? '⌘+U' : 'Ctrl+U',
40
- INSERT_LINK: IS_APPLE ? '⌘+K' : 'Ctrl+K',
41
- });
42
- const CONTROL_OR_META = { ctrlKey: !IS_APPLE, metaKey: IS_APPLE };
43
- export function isFormatParagraph(event) {
44
- const { code } = event;
45
- return ((code === 'Numpad0' || code === 'Digit0') &&
46
- isModifierMatch(event, { ...CONTROL_OR_META, altKey: true }));
47
- }
48
- export function isFormatHeading(event) {
49
- const { code } = event;
50
- // Apple pencil keyboard events don't have a code property
51
- if (!code) {
52
- return false;
53
- }
54
- const keyNumber = code[code.length - 1];
55
- return (['1', '2', '3'].includes(keyNumber) &&
56
- isModifierMatch(event, { ...CONTROL_OR_META, altKey: true }));
57
- }
58
- export function isFormatNumberedList(event) {
59
- const { code } = event;
60
- return ((code === 'Numpad7' || code === 'Digit7') &&
61
- isModifierMatch(event, { ...CONTROL_OR_META, shiftKey: true }));
62
- }
63
- export function isFormatBulletList(event) {
64
- const { code } = event;
65
- return ((code === 'Numpad8' || code === 'Digit8') &&
66
- isModifierMatch(event, { ...CONTROL_OR_META, shiftKey: true }));
67
- }
68
- export function isFormatCheckList(event) {
69
- const { code } = event;
70
- return ((code === 'Numpad9' || code === 'Digit9') &&
71
- isModifierMatch(event, { ...CONTROL_OR_META, shiftKey: true }));
72
- }
73
- export function isFormatCode(event) {
74
- const { code } = event;
75
- return (code === 'KeyC' &&
76
- isModifierMatch(event, { ...CONTROL_OR_META, altKey: true }));
77
- }
78
- export function isFormatQuote(event) {
79
- const { code } = event;
80
- return (code === 'KeyQ' &&
81
- isModifierMatch(event, {
82
- ctrlKey: true,
83
- shiftKey: true,
84
- }));
85
- }
86
- export function isLowercase(event) {
87
- const { code } = event;
88
- return ((code === 'Numpad1' || code === 'Digit1') &&
89
- isModifierMatch(event, { ctrlKey: true, shiftKey: true }));
90
- }
91
- export function isUppercase(event) {
92
- const { code } = event;
93
- return ((code === 'Numpad2' || code === 'Digit2') &&
94
- isModifierMatch(event, { ctrlKey: true, shiftKey: true }));
95
- }
96
- export function isCapitalize(event) {
97
- const { code } = event;
98
- return ((code === 'Numpad3' || code === 'Digit3') &&
99
- isModifierMatch(event, { ctrlKey: true, shiftKey: true }));
100
- }
101
- export function isStrikeThrough(event) {
102
- const { code } = event;
103
- return (code === 'KeyX' &&
104
- isModifierMatch(event, { ...CONTROL_OR_META, shiftKey: true }));
105
- }
106
- export function isIndent(event) {
107
- const { code } = event;
108
- return code === 'BracketRight' && isModifierMatch(event, CONTROL_OR_META);
109
- }
110
- export function isOutdent(event) {
111
- const { code } = event;
112
- return code === 'BracketLeft' && isModifierMatch(event, CONTROL_OR_META);
113
- }
114
- export function isCenterAlign(event) {
115
- const { code } = event;
116
- return (code === 'KeyE' &&
117
- isModifierMatch(event, { ...CONTROL_OR_META, shiftKey: true }));
118
- }
119
- export function isLeftAlign(event) {
120
- const { code } = event;
121
- return (code === 'KeyL' &&
122
- isModifierMatch(event, { ...CONTROL_OR_META, shiftKey: true }));
123
- }
124
- export function isRightAlign(event) {
125
- const { code } = event;
126
- return (code === 'KeyR' &&
127
- isModifierMatch(event, { ...CONTROL_OR_META, shiftKey: true }));
128
- }
129
- export function isJustifyAlign(event) {
130
- const { code } = event;
131
- return (code === 'KeyJ' &&
132
- isModifierMatch(event, { ...CONTROL_OR_META, shiftKey: true }));
133
- }
134
- export function isSubscript(event) {
135
- const { code } = event;
136
- return code === 'Comma' && isModifierMatch(event, CONTROL_OR_META);
137
- }
138
- export function isSuperscript(event) {
139
- const { code } = event;
140
- return code === 'Period' && isModifierMatch(event, CONTROL_OR_META);
141
- }
142
- export function isInsertCodeBlock(event) {
143
- const { code } = event;
144
- return (code === 'KeyC' &&
145
- isModifierMatch(event, { ...CONTROL_OR_META, shiftKey: true }));
146
- }
147
- export function isIncreaseFontSize(event) {
148
- const { code } = event;
149
- return (code === 'Period' &&
150
- isModifierMatch(event, { ...CONTROL_OR_META, shiftKey: true }));
151
- }
152
- export function isDecreaseFontSize(event) {
153
- const { code } = event;
154
- return (code === 'Comma' &&
155
- isModifierMatch(event, { ...CONTROL_OR_META, shiftKey: true }));
156
- }
157
- export function isClearFormatting(event) {
158
- const { code } = event;
159
- return code === 'Backslash' && isModifierMatch(event, CONTROL_OR_META);
160
- }
161
- export function isInsertLink(event) {
162
- const { code } = event;
163
- return code === 'KeyK' && isModifierMatch(event, CONTROL_OR_META);
164
- }
165
- export function isAddComment(event) {
166
- const { code } = event;
167
- return (code === 'KeyM' &&
168
- isModifierMatch(event, { ...CONTROL_OR_META, altKey: true }));
169
- }
@@ -1,2 +0,0 @@
1
- import type { JSX } from 'react';
2
- export default function SpecialTextPlugin(): JSX.Element | null;
@@ -1,46 +0,0 @@
1
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
2
- import { TextNode } from 'lexical';
3
- import { useEffect } from 'react';
4
- import { $createSpecialTextNode, SpecialTextNode, } from '../../nodes/SpecialTextNode';
5
- const BRACKETED_TEXT_REGEX = /\[([^\[\]]+)\]/; // eslint-disable-line
6
- function $findAndTransformText(node) {
7
- const text = node.getTextContent();
8
- const match = BRACKETED_TEXT_REGEX.exec(text);
9
- if (match) {
10
- const matchedText = match[1];
11
- const startIndex = match.index;
12
- let targetNode;
13
- if (startIndex === 0) {
14
- [targetNode] = node.splitText(startIndex + match[0].length);
15
- }
16
- else {
17
- [, targetNode] = node.splitText(startIndex, startIndex + match[0].length);
18
- }
19
- const specialTextNode = $createSpecialTextNode(matchedText);
20
- targetNode.replace(specialTextNode);
21
- return specialTextNode;
22
- }
23
- return null;
24
- }
25
- function $textNodeTransform(node) {
26
- let targetNode = node;
27
- while (targetNode !== null) {
28
- if (!targetNode.isSimpleText()) {
29
- return;
30
- }
31
- targetNode = $findAndTransformText(targetNode);
32
- }
33
- }
34
- function useTextTransformation(editor) {
35
- useEffect(() => {
36
- if (!editor.hasNodes([SpecialTextNode])) {
37
- throw new Error('SpecialTextPlugin: SpecialTextNode not registered on editor');
38
- }
39
- return editor.registerNodeTransform(TextNode, $textNodeTransform);
40
- }, [editor]);
41
- }
42
- export default function SpecialTextPlugin() {
43
- const [editor] = useLexicalComposerContext();
44
- useTextTransformation(editor);
45
- return null;
46
- }
@@ -1,5 +0,0 @@
1
- import type { LexicalCommand } from 'lexical';
2
- export declare const SPEECH_TO_TEXT_COMMAND: LexicalCommand<boolean>;
3
- export declare const SUPPORT_SPEECH_RECOGNITION: boolean;
4
- declare const _default: () => null;
5
- export default _default;
@@ -1,82 +0,0 @@
1
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
2
- import { $getSelection, $isRangeSelection, COMMAND_PRIORITY_EDITOR, createCommand, REDO_COMMAND, UNDO_COMMAND, } from 'lexical';
3
- import { useEffect, useRef, useState } from 'react';
4
- import useReport from '../../hooks/useReport';
5
- export const SPEECH_TO_TEXT_COMMAND = createCommand('SPEECH_TO_TEXT_COMMAND');
6
- const VOICE_COMMANDS = {
7
- '\n': ({ selection }) => {
8
- selection.insertParagraph();
9
- },
10
- redo: ({ editor }) => {
11
- editor.dispatchCommand(REDO_COMMAND, undefined);
12
- },
13
- undo: ({ editor }) => {
14
- editor.dispatchCommand(UNDO_COMMAND, undefined);
15
- },
16
- };
17
- export const SUPPORT_SPEECH_RECOGNITION = 'SpeechRecognition' in window || 'webkitSpeechRecognition' in window;
18
- function SpeechToTextPlugin() {
19
- const [editor] = useLexicalComposerContext();
20
- const [isEnabled, setIsEnabled] = useState(false);
21
- const SpeechRecognition =
22
- // @ts-expect-error missing type
23
- window.SpeechRecognition || window.webkitSpeechRecognition;
24
- const recognition = useRef(null);
25
- const report = useReport();
26
- useEffect(() => {
27
- if (isEnabled && recognition.current === null) {
28
- recognition.current = new SpeechRecognition();
29
- recognition.current.continuous = true;
30
- recognition.current.interimResults = true;
31
- recognition.current.addEventListener('result', (event) => {
32
- const resultItem = event.results.item(event.resultIndex);
33
- const { transcript } = resultItem.item(0);
34
- report(transcript);
35
- if (!resultItem.isFinal) {
36
- return;
37
- }
38
- editor.update(() => {
39
- const selection = $getSelection();
40
- if ($isRangeSelection(selection)) {
41
- const command = VOICE_COMMANDS[transcript.toLowerCase().trim()];
42
- if (command) {
43
- command({
44
- editor,
45
- selection,
46
- });
47
- }
48
- else if (transcript.match(/\s*\n\s*/)) {
49
- selection.insertParagraph();
50
- }
51
- else {
52
- selection.insertText(transcript);
53
- }
54
- }
55
- });
56
- });
57
- }
58
- if (recognition.current) {
59
- if (isEnabled) {
60
- recognition.current.start();
61
- }
62
- else {
63
- recognition.current.stop();
64
- }
65
- }
66
- return () => {
67
- if (recognition.current !== null) {
68
- recognition.current.stop();
69
- }
70
- };
71
- }, [SpeechRecognition, editor, isEnabled, report]);
72
- useEffect(() => {
73
- return editor.registerCommand(SPEECH_TO_TEXT_COMMAND, (_isEnabled) => {
74
- setIsEnabled(_isEnabled);
75
- return true;
76
- }, COMMAND_PRIORITY_EDITOR);
77
- }, [editor]);
78
- return null;
79
- }
80
- export default (SUPPORT_SPEECH_RECOGNITION
81
- ? SpeechToTextPlugin
82
- : () => null);
@@ -1,2 +0,0 @@
1
- import type { JSX } from 'react';
2
- export default function StickyPlugin(): JSX.Element | null;
@@ -1,12 +0,0 @@
1
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
2
- import { useEffect } from 'react';
3
- import { StickyNode } from '../../nodes/StickyNode';
4
- export default function StickyPlugin() {
5
- const [editor] = useLexicalComposerContext();
6
- useEffect(() => {
7
- if (!editor.hasNodes([StickyNode])) {
8
- throw new Error('StickyPlugin: StickyNode not registered on editor');
9
- }
10
- }, [editor]);
11
- return null;
12
- }
@@ -1 +0,0 @@
1
- export default function TabFocusPlugin(): null;
@@ -1,34 +0,0 @@
1
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
2
- import { $getSelection, $isRangeSelection, $setSelection, COMMAND_PRIORITY_LOW, FOCUS_COMMAND, } from 'lexical';
3
- import { useEffect } from 'react';
4
- const TAB_TO_FOCUS_INTERVAL = 100;
5
- let lastTabKeyDownTimestamp = 0;
6
- let hasRegisteredKeyDownListener = false;
7
- function registerKeyTimeStampTracker() {
8
- window.addEventListener('keydown', (event) => {
9
- // Tab
10
- if (event.key === 'Tab') {
11
- lastTabKeyDownTimestamp = event.timeStamp;
12
- }
13
- }, true);
14
- }
15
- export default function TabFocusPlugin() {
16
- const [editor] = useLexicalComposerContext();
17
- useEffect(() => {
18
- if (!hasRegisteredKeyDownListener) {
19
- registerKeyTimeStampTracker();
20
- hasRegisteredKeyDownListener = true;
21
- }
22
- return editor.registerCommand(FOCUS_COMMAND, (event) => {
23
- const selection = $getSelection();
24
- if ($isRangeSelection(selection)) {
25
- if (lastTabKeyDownTimestamp + TAB_TO_FOCUS_INTERVAL >
26
- event.timeStamp) {
27
- $setSelection(selection.clone());
28
- }
29
- }
30
- return false;
31
- }, COMMAND_PRIORITY_LOW);
32
- }, [editor]);
33
- return null;
34
- }
@@ -1,5 +0,0 @@
1
- import { ReactPortal } from 'react';
2
- export default function TableActionMenuPlugin({ anchorElem, cellMerge, }: {
3
- anchorElem?: HTMLElement;
4
- cellMerge?: boolean;
5
- }): null | ReactPortal;