@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,7 +0,0 @@
1
- import { LexicalEditor } from 'lexical';
2
- interface Props {
3
- editor: LexicalEditor;
4
- getCodeDOMNode: () => HTMLElement | null;
5
- }
6
- export declare function CopyButton({ editor, getCodeDOMNode }: Props): import("react/jsx-runtime").JSX.Element;
7
- export {};
@@ -1,42 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * Copyright (c) Meta Platforms, Inc. and affiliates.
4
- *
5
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
7
- *
8
- */
9
- import { $isCodeNode } from '@lexical/code';
10
- import { $getNearestNodeFromDOMNode, $getSelection, $setSelection, } from 'lexical';
11
- import { useState } from 'react';
12
- import { useDebounce } from '../../utils';
13
- export function CopyButton({ editor, getCodeDOMNode }) {
14
- const [isCopyCompleted, setCopyCompleted] = useState(false);
15
- const removeSuccessIcon = useDebounce(() => {
16
- setCopyCompleted(false);
17
- }, 1000);
18
- async function handleClick() {
19
- const codeDOMNode = getCodeDOMNode();
20
- if (!codeDOMNode) {
21
- return;
22
- }
23
- let content = '';
24
- editor.update(() => {
25
- const codeNode = $getNearestNodeFromDOMNode(codeDOMNode);
26
- if ($isCodeNode(codeNode)) {
27
- content = codeNode.getTextContent();
28
- }
29
- const selection = $getSelection();
30
- $setSelection(selection);
31
- });
32
- try {
33
- await navigator.clipboard.writeText(content);
34
- setCopyCompleted(true);
35
- removeSuccessIcon();
36
- }
37
- catch (err) {
38
- console.error('Failed to copy: ', err);
39
- }
40
- }
41
- return (_jsx("button", { className: "menu-item", onClick: handleClick, "aria-label": "copy", children: isCopyCompleted ? (_jsx("i", { className: "format success" })) : (_jsx("i", { className: "format copy" })) }));
42
- }
@@ -1,17 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- */
8
- import './index.css';
9
- import { LexicalEditor } from 'lexical';
10
- interface Props {
11
- lang: string;
12
- editor: LexicalEditor;
13
- getCodeDOMNode: () => HTMLElement | null;
14
- }
15
- export declare function canBePrettier(lang: string): boolean;
16
- export declare function PrettierButton({ lang, editor, getCodeDOMNode }: Props): import("react/jsx-runtime").JSX.Element;
17
- export {};
@@ -1,111 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * Copyright (c) Meta Platforms, Inc. and affiliates.
4
- *
5
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
7
- *
8
- */
9
- import './index.css';
10
- import { $isCodeNode } from '@lexical/code';
11
- import { $getNearestNodeFromDOMNode } from 'lexical';
12
- import { useState } from 'react';
13
- const PRETTIER_PARSER_MODULES = {
14
- css: [() => import('prettier/parser-postcss')],
15
- html: [() => import('prettier/parser-html')],
16
- js: [
17
- () => import('prettier/parser-babel'),
18
- // () => import('prettier/plugins/estree'),
19
- ],
20
- markdown: [() => import('prettier/parser-markdown')],
21
- typescript: [
22
- () => import('prettier/parser-typescript'),
23
- // () => import('prettier/plugins/estree'),
24
- ],
25
- };
26
- async function loadPrettierParserByLang(lang) {
27
- const dynamicImports = PRETTIER_PARSER_MODULES[lang];
28
- const modules = await Promise.all(dynamicImports.map((dynamicImport) => dynamicImport()));
29
- return modules;
30
- }
31
- async function loadPrettierFormat() {
32
- const { format } = await import('prettier/standalone');
33
- return format;
34
- }
35
- const PRETTIER_OPTIONS_BY_LANG = {
36
- css: { parser: 'css' },
37
- html: { parser: 'html' },
38
- js: { parser: 'babel' },
39
- markdown: { parser: 'markdown' },
40
- typescript: { parser: 'typescript' },
41
- };
42
- const LANG_CAN_BE_PRETTIER = Object.keys(PRETTIER_OPTIONS_BY_LANG);
43
- export function canBePrettier(lang) {
44
- return LANG_CAN_BE_PRETTIER.includes(lang);
45
- }
46
- function getPrettierOptions(lang) {
47
- const options = PRETTIER_OPTIONS_BY_LANG[lang];
48
- if (!options) {
49
- throw new Error(`CodeActionMenuPlugin: Prettier does not support this language: ${lang}`);
50
- }
51
- return options;
52
- }
53
- export function PrettierButton({ lang, editor, getCodeDOMNode }) {
54
- const [syntaxError, setSyntaxError] = useState('');
55
- const [tipsVisible, setTipsVisible] = useState(false);
56
- async function handleClick() {
57
- const codeDOMNode = getCodeDOMNode();
58
- if (!codeDOMNode) {
59
- return;
60
- }
61
- let content = '';
62
- editor.update(() => {
63
- const codeNode = $getNearestNodeFromDOMNode(codeDOMNode);
64
- if ($isCodeNode(codeNode)) {
65
- content = codeNode.getTextContent();
66
- }
67
- });
68
- if (content === '') {
69
- return;
70
- }
71
- try {
72
- const format = await loadPrettierFormat();
73
- const options = getPrettierOptions(lang);
74
- const prettierParsers = await loadPrettierParserByLang(lang);
75
- options.plugins = prettierParsers.map((parser) => parser.default || parser);
76
- const formattedCode = await format(content, options);
77
- editor.update(() => {
78
- const codeNode = $getNearestNodeFromDOMNode(codeDOMNode);
79
- if ($isCodeNode(codeNode)) {
80
- const selection = codeNode.select(0);
81
- selection.insertText(formattedCode);
82
- setSyntaxError('');
83
- setTipsVisible(false);
84
- }
85
- });
86
- }
87
- catch (error) {
88
- setError(error);
89
- }
90
- }
91
- function setError(error) {
92
- if (error instanceof Error) {
93
- setSyntaxError(error.message);
94
- setTipsVisible(true);
95
- }
96
- else {
97
- console.error('Unexpected error: ', error);
98
- }
99
- }
100
- function handleMouseEnter() {
101
- if (syntaxError !== '') {
102
- setTipsVisible(true);
103
- }
104
- }
105
- function handleMouseLeave() {
106
- if (syntaxError !== '') {
107
- setTipsVisible(false);
108
- }
109
- }
110
- return (_jsxs("div", { className: "prettier-wrapper", children: [_jsx("button", { className: "menu-item", onClick: handleClick, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, "aria-label": "prettier", children: syntaxError ? (_jsx("i", { className: "format prettier-error" })) : (_jsx("i", { className: "format prettier" })) }), tipsVisible ? (_jsx("pre", { className: "code-error-tips", children: syntaxError })) : null] }));
111
- }
@@ -1,5 +0,0 @@
1
- import './index.css';
2
- import * as React from 'react';
3
- export default function CodeActionMenuPlugin({ anchorElem, }: {
4
- anchorElem?: HTMLElement;
5
- }): React.ReactPortal | null;
@@ -1,104 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import './index.css';
3
- import { $isCodeNode, CodeNode, getLanguageFriendlyName, normalizeCodeLang, } from '@lexical/code';
4
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
5
- import { $getNearestNodeFromDOMNode, isHTMLElement } from 'lexical';
6
- import { useEffect, useRef, useState } from 'react';
7
- import { createPortal } from 'react-dom';
8
- import { CopyButton } from './components/CopyButton';
9
- import { canBePrettier, PrettierButton } from './components/PrettierButton';
10
- import { useDebounce } from './utils';
11
- const CODE_PADDING = 8;
12
- function CodeActionMenuContainer({ anchorElem, }) {
13
- const [editor] = useLexicalComposerContext();
14
- const [lang, setLang] = useState('');
15
- const [isShown, setShown] = useState(false);
16
- const [shouldListenMouseMove, setShouldListenMouseMove] = useState(false);
17
- const [position, setPosition] = useState({
18
- right: '0',
19
- top: '0',
20
- });
21
- const codeSetRef = useRef(new Set());
22
- const codeDOMNodeRef = useRef(null);
23
- function getCodeDOMNode() {
24
- return codeDOMNodeRef.current;
25
- }
26
- const debouncedOnMouseMove = useDebounce((event) => {
27
- const { codeDOMNode, isOutside } = getMouseInfo(event);
28
- if (isOutside) {
29
- setShown(false);
30
- return;
31
- }
32
- if (!codeDOMNode) {
33
- return;
34
- }
35
- codeDOMNodeRef.current = codeDOMNode;
36
- let codeNode = null;
37
- let _lang = '';
38
- editor.update(() => {
39
- const maybeCodeNode = $getNearestNodeFromDOMNode(codeDOMNode);
40
- if ($isCodeNode(maybeCodeNode)) {
41
- codeNode = maybeCodeNode;
42
- _lang = codeNode.getLanguage() || '';
43
- }
44
- });
45
- if (codeNode) {
46
- const { y: editorElemY, right: editorElemRight } = anchorElem.getBoundingClientRect();
47
- const { y, right } = codeDOMNode.getBoundingClientRect();
48
- setLang(_lang);
49
- setShown(true);
50
- setPosition({
51
- right: `${editorElemRight - right + CODE_PADDING}px`,
52
- top: `${y - editorElemY}px`,
53
- });
54
- }
55
- }, 50, 1000);
56
- useEffect(() => {
57
- if (!shouldListenMouseMove) {
58
- return;
59
- }
60
- document.addEventListener('mousemove', debouncedOnMouseMove);
61
- return () => {
62
- setShown(false);
63
- debouncedOnMouseMove.cancel();
64
- document.removeEventListener('mousemove', debouncedOnMouseMove);
65
- };
66
- }, [shouldListenMouseMove, debouncedOnMouseMove]);
67
- useEffect(() => {
68
- return editor.registerMutationListener(CodeNode, (mutations) => {
69
- editor.getEditorState().read(() => {
70
- for (const [key, type] of mutations) {
71
- switch (type) {
72
- case 'created':
73
- codeSetRef.current.add(key);
74
- break;
75
- case 'destroyed':
76
- codeSetRef.current.delete(key);
77
- break;
78
- default:
79
- break;
80
- }
81
- }
82
- });
83
- setShouldListenMouseMove(codeSetRef.current.size > 0);
84
- }, { skipInitialization: false });
85
- }, [editor]);
86
- const normalizedLang = normalizeCodeLang(lang);
87
- const codeFriendlyName = getLanguageFriendlyName(lang);
88
- return (_jsx(_Fragment, { children: isShown ? (_jsxs("div", { className: "code-action-menu-container", style: { ...position }, children: [_jsx("div", { className: "code-highlight-language", children: codeFriendlyName }), _jsx(CopyButton, { editor: editor, getCodeDOMNode: getCodeDOMNode }), canBePrettier(normalizedLang) ? (_jsx(PrettierButton, { editor: editor, getCodeDOMNode: getCodeDOMNode, lang: normalizedLang })) : null] })) : null }));
89
- }
90
- function getMouseInfo(event) {
91
- const target = event.target;
92
- if (isHTMLElement(target)) {
93
- const codeDOMNode = target.closest('code.PlaygroundEditorTheme__code');
94
- const isOutside = !(codeDOMNode ||
95
- target.closest('div.code-action-menu-container'));
96
- return { codeDOMNode, isOutside };
97
- }
98
- else {
99
- return { codeDOMNode: null, isOutside: true };
100
- }
101
- }
102
- export default function CodeActionMenuPlugin({ anchorElem = document.body, }) {
103
- return createPortal(_jsx(CodeActionMenuContainer, { anchorElem: anchorElem }), anchorElem);
104
- }
@@ -1 +0,0 @@
1
- export declare function useDebounce<T extends (...args: never[]) => void>(fn: T, ms: number, maxWait?: number): import("lodash").DebouncedFunc<(...args: Parameters<T>) => void>;
@@ -1,18 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- */
8
- import { debounce } from 'lodash-es';
9
- import { useMemo, useRef } from 'react';
10
- export function useDebounce(fn, ms, maxWait) {
11
- const funcRef = useRef(null);
12
- funcRef.current = fn;
13
- return useMemo(() => debounce((...args) => {
14
- if (funcRef.current) {
15
- funcRef.current(...args);
16
- }
17
- }, ms, { maxWait }), [ms, maxWait]);
18
- }
@@ -1,2 +0,0 @@
1
- import type { JSX } from 'react';
2
- export default function CodeHighlightPrismPlugin(): JSX.Element | null;
@@ -1,10 +0,0 @@
1
- import { registerCodeHighlighting } from '@lexical/code';
2
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
3
- import { useEffect } from 'react';
4
- export default function CodeHighlightPrismPlugin() {
5
- const [editor] = useLexicalComposerContext();
6
- useEffect(() => {
7
- return registerCodeHighlighting(editor);
8
- }, [editor]);
9
- return null;
10
- }
@@ -1,2 +0,0 @@
1
- import type { JSX } from 'react';
2
- export default function CodeHighlightShikiPlugin(): JSX.Element | null;
@@ -1,10 +0,0 @@
1
- import { registerCodeHighlighting } from '@lexical/code-shiki';
2
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
3
- import { useEffect } from 'react';
4
- export default function CodeHighlightShikiPlugin() {
5
- const [editor] = useLexicalComposerContext();
6
- useEffect(() => {
7
- return registerCodeHighlighting(editor);
8
- }, [editor]);
9
- return null;
10
- }
@@ -1,25 +0,0 @@
1
- import { DOMConversionMap, DOMConversionOutput, DOMExportOutput, EditorConfig, ElementNode, LexicalEditor, LexicalNode, NodeKey, RangeSelection, SerializedElementNode, Spread } from 'lexical';
2
- type SerializedCollapsibleContainerNode = Spread<{
3
- open: boolean;
4
- }, SerializedElementNode>;
5
- export declare function $convertDetailsElement(domNode: HTMLDetailsElement): DOMConversionOutput | null;
6
- export declare class CollapsibleContainerNode extends ElementNode {
7
- __open: boolean;
8
- constructor(open: boolean, key?: NodeKey);
9
- static getType(): string;
10
- static clone(node: CollapsibleContainerNode): CollapsibleContainerNode;
11
- isShadowRoot(): boolean;
12
- collapseAtStart(selection: RangeSelection): boolean;
13
- createDOM(config: EditorConfig, editor: LexicalEditor): HTMLElement;
14
- updateDOM(prevNode: this, dom: HTMLDetailsElement): boolean;
15
- static importDOM(): DOMConversionMap<HTMLDetailsElement> | null;
16
- static importJSON(serializedNode: SerializedCollapsibleContainerNode): CollapsibleContainerNode;
17
- exportDOM(): DOMExportOutput;
18
- exportJSON(): SerializedCollapsibleContainerNode;
19
- setOpen(open: boolean): void;
20
- getOpen(): boolean;
21
- toggleOpen(): void;
22
- }
23
- export declare function $createCollapsibleContainerNode(isOpen: boolean): CollapsibleContainerNode;
24
- export declare function $isCollapsibleContainerNode(node: LexicalNode | null | undefined): node is CollapsibleContainerNode;
25
- export {};
@@ -1,131 +0,0 @@
1
- import { IS_CHROME } from '@lexical/utils';
2
- import { $getSiblingCaret, $isElementNode, $rewindSiblingCaret, ElementNode, isHTMLElement, } from 'lexical';
3
- import { setDomHiddenUntilFound } from './CollapsibleUtils';
4
- export function $convertDetailsElement(domNode) {
5
- const isOpen = domNode.open !== undefined ? domNode.open : true;
6
- const node = $createCollapsibleContainerNode(isOpen);
7
- return {
8
- node,
9
- };
10
- }
11
- export class CollapsibleContainerNode extends ElementNode {
12
- __open;
13
- constructor(open, key) {
14
- super(key);
15
- this.__open = open;
16
- }
17
- static getType() {
18
- return 'collapsible-container';
19
- }
20
- static clone(node) {
21
- return new CollapsibleContainerNode(node.__open, node.__key);
22
- }
23
- isShadowRoot() {
24
- return true;
25
- }
26
- collapseAtStart(selection) {
27
- // Unwrap the CollapsibleContainerNode by replacing it with the children
28
- // of its children (CollapsibleTitleNode, CollapsibleContentNode)
29
- const nodesToInsert = [];
30
- for (const child of this.getChildren()) {
31
- if ($isElementNode(child)) {
32
- nodesToInsert.push(...child.getChildren());
33
- }
34
- }
35
- const caret = $rewindSiblingCaret($getSiblingCaret(this, 'previous'));
36
- caret.splice(1, nodesToInsert);
37
- // Merge the first child of the CollapsibleTitleNode with the
38
- // previous sibling of the CollapsibleContainerNode
39
- const [firstChild] = nodesToInsert;
40
- if (firstChild) {
41
- firstChild.selectStart().deleteCharacter(true);
42
- }
43
- return true;
44
- }
45
- createDOM(config, editor) {
46
- // details is not well supported in Chrome #5582
47
- let dom;
48
- if (IS_CHROME) {
49
- dom = document.createElement('div');
50
- dom.setAttribute('open', '');
51
- }
52
- else {
53
- const detailsDom = document.createElement('details');
54
- detailsDom.open = this.__open;
55
- detailsDom.addEventListener('toggle', () => {
56
- const open = editor.getEditorState().read(() => this.getOpen());
57
- if (open !== detailsDom.open) {
58
- editor.update(() => this.toggleOpen());
59
- }
60
- });
61
- dom = detailsDom;
62
- }
63
- dom.classList.add('Collapsible__container');
64
- return dom;
65
- }
66
- updateDOM(prevNode, dom) {
67
- const currentOpen = this.__open;
68
- if (prevNode.__open !== currentOpen) {
69
- // details is not well supported in Chrome #5582
70
- if (IS_CHROME) {
71
- const contentDom = dom.children[1];
72
- if (!isHTMLElement(contentDom)) {
73
- throw new Error('Expected contentDom to be an HTMLElement');
74
- }
75
- if (currentOpen) {
76
- dom.setAttribute('open', '');
77
- contentDom.hidden = false;
78
- }
79
- else {
80
- dom.removeAttribute('open');
81
- setDomHiddenUntilFound(contentDom);
82
- }
83
- }
84
- else {
85
- dom.open = this.__open;
86
- }
87
- }
88
- return false;
89
- }
90
- static importDOM() {
91
- return {
92
- details: (domNode) => {
93
- return {
94
- conversion: $convertDetailsElement,
95
- priority: 1,
96
- };
97
- },
98
- };
99
- }
100
- static importJSON(serializedNode) {
101
- return $createCollapsibleContainerNode(serializedNode.open).updateFromJSON(serializedNode);
102
- }
103
- exportDOM() {
104
- const element = document.createElement('details');
105
- element.classList.add('Collapsible__container');
106
- element.setAttribute('open', this.__open.toString());
107
- return { element };
108
- }
109
- exportJSON() {
110
- return {
111
- ...super.exportJSON(),
112
- open: this.__open,
113
- };
114
- }
115
- setOpen(open) {
116
- const writable = this.getWritable();
117
- writable.__open = open;
118
- }
119
- getOpen() {
120
- return this.getLatest().__open;
121
- }
122
- toggleOpen() {
123
- this.setOpen(!this.getOpen());
124
- }
125
- }
126
- export function $createCollapsibleContainerNode(isOpen) {
127
- return new CollapsibleContainerNode(isOpen);
128
- }
129
- export function $isCollapsibleContainerNode(node) {
130
- return node instanceof CollapsibleContainerNode;
131
- }
@@ -1,16 +0,0 @@
1
- import { DOMConversionMap, DOMConversionOutput, DOMExportOutput, EditorConfig, ElementNode, LexicalEditor, LexicalNode, SerializedElementNode } from 'lexical';
2
- type SerializedCollapsibleContentNode = SerializedElementNode;
3
- export declare function $convertCollapsibleContentElement(domNode: HTMLElement): DOMConversionOutput | null;
4
- export declare class CollapsibleContentNode extends ElementNode {
5
- static getType(): string;
6
- static clone(node: CollapsibleContentNode): CollapsibleContentNode;
7
- createDOM(config: EditorConfig, editor: LexicalEditor): HTMLElement;
8
- updateDOM(prevNode: this, dom: HTMLElement): boolean;
9
- static importDOM(): DOMConversionMap | null;
10
- exportDOM(): DOMExportOutput;
11
- static importJSON(serializedNode: SerializedCollapsibleContentNode): CollapsibleContentNode;
12
- isShadowRoot(): boolean;
13
- }
14
- export declare function $createCollapsibleContentNode(): CollapsibleContentNode;
15
- export declare function $isCollapsibleContentNode(node: LexicalNode | null | undefined): node is CollapsibleContentNode;
16
- export {};
@@ -1,79 +0,0 @@
1
- import { IS_CHROME } from '@lexical/utils';
2
- import { ElementNode, } from 'lexical';
3
- import { $isCollapsibleContainerNode } from './CollapsibleContainerNode';
4
- import { domOnBeforeMatch, setDomHiddenUntilFound } from './CollapsibleUtils';
5
- export function $convertCollapsibleContentElement(domNode) {
6
- const node = $createCollapsibleContentNode();
7
- return {
8
- node,
9
- };
10
- }
11
- export class CollapsibleContentNode extends ElementNode {
12
- static getType() {
13
- return 'collapsible-content';
14
- }
15
- static clone(node) {
16
- return new CollapsibleContentNode(node.__key);
17
- }
18
- createDOM(config, editor) {
19
- const dom = document.createElement('div');
20
- dom.classList.add('Collapsible__content');
21
- if (IS_CHROME) {
22
- editor.getEditorState().read(() => {
23
- const containerNode = this.getParentOrThrow();
24
- if (!$isCollapsibleContainerNode(containerNode)) {
25
- throw new Error('Expected parent node to be a CollapsibleContainerNode');
26
- }
27
- if (!containerNode.__open) {
28
- setDomHiddenUntilFound(dom);
29
- }
30
- });
31
- domOnBeforeMatch(dom, () => {
32
- editor.update(() => {
33
- const containerNode = this.getParentOrThrow().getLatest();
34
- if (!$isCollapsibleContainerNode(containerNode)) {
35
- throw new Error('Expected parent node to be a CollapsibleContainerNode');
36
- }
37
- if (!containerNode.__open) {
38
- containerNode.toggleOpen();
39
- }
40
- });
41
- });
42
- }
43
- return dom;
44
- }
45
- updateDOM(prevNode, dom) {
46
- return false;
47
- }
48
- static importDOM() {
49
- return {
50
- div: (domNode) => {
51
- if (!domNode.hasAttribute('data-lexical-collapsible-content')) {
52
- return null;
53
- }
54
- return {
55
- conversion: $convertCollapsibleContentElement,
56
- priority: 2,
57
- };
58
- },
59
- };
60
- }
61
- exportDOM() {
62
- const element = document.createElement('div');
63
- element.classList.add('Collapsible__content');
64
- element.setAttribute('data-lexical-collapsible-content', 'true');
65
- return { element };
66
- }
67
- static importJSON(serializedNode) {
68
- return $createCollapsibleContentNode().updateFromJSON(serializedNode);
69
- }
70
- isShadowRoot() {
71
- return true;
72
- }
73
- }
74
- export function $createCollapsibleContentNode() {
75
- return new CollapsibleContentNode();
76
- }
77
- export function $isCollapsibleContentNode(node) {
78
- return node instanceof CollapsibleContentNode;
79
- }
@@ -1,16 +0,0 @@
1
- import { DOMConversionOutput, EditorConfig, ElementNode, LexicalEditor, LexicalNode, RangeSelection } from 'lexical';
2
- export declare function $convertSummaryElement(domNode: HTMLElement): DOMConversionOutput | null;
3
- /** @noInheritDoc */
4
- export declare class CollapsibleTitleNode extends ElementNode {
5
- /** @internal */
6
- $config(): import("lexical").StaticNodeConfigRecord<"collapsible-title", {
7
- $transform(node: CollapsibleTitleNode): void;
8
- extends: typeof ElementNode;
9
- importDOM: import("lexical").DOMConversionMap<HTMLElement>;
10
- }>;
11
- createDOM(config: EditorConfig, editor: LexicalEditor): HTMLElement;
12
- updateDOM(prevNode: this, dom: HTMLElement): boolean;
13
- insertNewAfter(_: RangeSelection, restoreSelection?: boolean): ElementNode;
14
- }
15
- export declare function $createCollapsibleTitleNode(): CollapsibleTitleNode;
16
- export declare function $isCollapsibleTitleNode(node: LexicalNode | null | undefined): node is CollapsibleTitleNode;