@datalayer/lexical-loro 0.2.5 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. package/package.json +1 -1
  2. package/lib/App.d.ts +0 -2
  3. package/lib/App.js +0 -141
  4. package/lib/Editor.d.ts +0 -2
  5. package/lib/Editor.js +0 -115
  6. package/lib/Settings.d.ts +0 -2
  7. package/lib/Settings.js +0 -57
  8. package/lib/appSettings.d.ts +0 -36
  9. package/lib/appSettings.js +0 -48
  10. package/lib/collab/loro/Bindings.d.ts +0 -41
  11. package/lib/collab/loro/Bindings.js +0 -99
  12. package/lib/collab/loro/Debug.d.ts +0 -33
  13. package/lib/collab/loro/Debug.js +0 -452
  14. package/lib/collab/loro/LexicalCollaborationContext.d.ts +0 -19
  15. package/lib/collab/loro/LexicalCollaborationContext.js +0 -52
  16. package/lib/collab/loro/LexicalCollaborationPlugin.d.ts +0 -24
  17. package/lib/collab/loro/LexicalCollaborationPlugin.js +0 -83
  18. package/lib/collab/loro/State.d.ts +0 -53
  19. package/lib/collab/loro/State.js +0 -94
  20. package/lib/collab/loro/components/LoroCollaborationUI.d.ts +0 -13
  21. package/lib/collab/loro/components/LoroCollaborationUI.js +0 -9
  22. package/lib/collab/loro/components/LoroCollaborators.d.ts +0 -8
  23. package/lib/collab/loro/components/LoroCollaborators.js +0 -102
  24. package/lib/collab/loro/components/index.d.ts +0 -2
  25. package/lib/collab/loro/components/index.js +0 -6
  26. package/lib/collab/loro/index.d.ts +0 -6
  27. package/lib/collab/loro/index.js +0 -10
  28. package/lib/collab/loro/integrators/BaseIntegrator.d.ts +0 -14
  29. package/lib/collab/loro/integrators/BaseIntegrator.js +0 -5
  30. package/lib/collab/loro/integrators/CounterIntegrator.d.ts +0 -23
  31. package/lib/collab/loro/integrators/CounterIntegrator.js +0 -44
  32. package/lib/collab/loro/integrators/ListIntegrator.d.ts +0 -23
  33. package/lib/collab/loro/integrators/ListIntegrator.js +0 -53
  34. package/lib/collab/loro/integrators/MapIntegrator.d.ts +0 -24
  35. package/lib/collab/loro/integrators/MapIntegrator.js +0 -235
  36. package/lib/collab/loro/integrators/TextIntegrator.d.ts +0 -25
  37. package/lib/collab/loro/integrators/TextIntegrator.js +0 -55
  38. package/lib/collab/loro/integrators/TreeIntegrator.d.ts +0 -36
  39. package/lib/collab/loro/integrators/TreeIntegrator.js +0 -251
  40. package/lib/collab/loro/nodes/NodeFactory.d.ts +0 -15
  41. package/lib/collab/loro/nodes/NodeFactory.js +0 -101
  42. package/lib/collab/loro/nodes/NodesMapper.d.ts +0 -120
  43. package/lib/collab/loro/nodes/NodesMapper.js +0 -277
  44. package/lib/collab/loro/propagators/DecoratorNodePropagator.d.ts +0 -60
  45. package/lib/collab/loro/propagators/DecoratorNodePropagator.js +0 -306
  46. package/lib/collab/loro/propagators/ElementNodePropagator.d.ts +0 -62
  47. package/lib/collab/loro/propagators/ElementNodePropagator.js +0 -326
  48. package/lib/collab/loro/propagators/LineBreakNodePropagator.d.ts +0 -57
  49. package/lib/collab/loro/propagators/LineBreakNodePropagator.js +0 -200
  50. package/lib/collab/loro/propagators/RootNodePropagator.d.ts +0 -55
  51. package/lib/collab/loro/propagators/RootNodePropagator.js +0 -174
  52. package/lib/collab/loro/propagators/TextNodePropagator.d.ts +0 -60
  53. package/lib/collab/loro/propagators/TextNodePropagator.js +0 -440
  54. package/lib/collab/loro/propagators/index.d.ts +0 -49
  55. package/lib/collab/loro/propagators/index.js +0 -30
  56. package/lib/collab/loro/provider/websocket.d.ts +0 -116
  57. package/lib/collab/loro/provider/websocket.js +0 -911
  58. package/lib/collab/loro/servers/index.d.ts +0 -0
  59. package/lib/collab/loro/servers/index.js +0 -4
  60. package/lib/collab/loro/servers/ws/callback.d.ts +0 -5
  61. package/lib/collab/loro/servers/ws/callback.js +0 -89
  62. package/lib/collab/loro/servers/ws/server.d.ts +0 -2
  63. package/lib/collab/loro/servers/ws/server.js +0 -29
  64. package/lib/collab/loro/servers/ws/utils.d.ts +0 -40
  65. package/lib/collab/loro/servers/ws/utils.js +0 -517
  66. package/lib/collab/loro/sync/SyncCursors.d.ts +0 -32
  67. package/lib/collab/loro/sync/SyncCursors.js +0 -475
  68. package/lib/collab/loro/sync/SyncLexicalToLoro.d.ts +0 -4
  69. package/lib/collab/loro/sync/SyncLexicalToLoro.js +0 -113
  70. package/lib/collab/loro/sync/SyncLoroToLexical.d.ts +0 -5
  71. package/lib/collab/loro/sync/SyncLoroToLexical.js +0 -100
  72. package/lib/collab/loro/types/LexicalNodeData.d.ts +0 -32
  73. package/lib/collab/loro/types/LexicalNodeData.js +0 -75
  74. package/lib/collab/loro/useCollaboration.d.ts +0 -12
  75. package/lib/collab/loro/useCollaboration.js +0 -260
  76. package/lib/collab/loro/utils/InitialContent.d.ts +0 -64
  77. package/lib/collab/loro/utils/InitialContent.js +0 -113
  78. package/lib/collab/loro/utils/LexicalToLoro.d.ts +0 -18
  79. package/lib/collab/loro/utils/LexicalToLoro.js +0 -100
  80. package/lib/collab/loro/utils/Utils.d.ts +0 -44
  81. package/lib/collab/loro/utils/Utils.js +0 -157
  82. package/lib/collab/loro/wsProvider.d.ts +0 -8
  83. package/lib/collab/loro/wsProvider.js +0 -35
  84. package/lib/collab/utils/invariant.d.ts +0 -1
  85. package/lib/collab/utils/invariant.js +0 -15
  86. package/lib/collab/utils/simpleDiffWithCursor.d.ts +0 -5
  87. package/lib/collab/utils/simpleDiffWithCursor.js +0 -35
  88. package/lib/collab/yjs/Bindings.d.ts +0 -23
  89. package/lib/collab/yjs/Bindings.js +0 -26
  90. package/lib/collab/yjs/Debug.d.ts +0 -23
  91. package/lib/collab/yjs/Debug.js +0 -213
  92. package/lib/collab/yjs/LexicalCollaborationContext.d.ts +0 -10
  93. package/lib/collab/yjs/LexicalCollaborationContext.js +0 -37
  94. package/lib/collab/yjs/LexicalCollaborationPlugin.d.ts +0 -21
  95. package/lib/collab/yjs/LexicalCollaborationPlugin.js +0 -63
  96. package/lib/collab/yjs/State.d.ts +0 -51
  97. package/lib/collab/yjs/State.js +0 -35
  98. package/lib/collab/yjs/nodes/AnyCollabNode.d.ts +0 -5
  99. package/lib/collab/yjs/nodes/AnyCollabNode.js +0 -1
  100. package/lib/collab/yjs/nodes/CollabDecoratorNode.d.ts +0 -22
  101. package/lib/collab/yjs/nodes/CollabDecoratorNode.js +0 -64
  102. package/lib/collab/yjs/nodes/CollabElementNode.d.ts +0 -40
  103. package/lib/collab/yjs/nodes/CollabElementNode.js +0 -462
  104. package/lib/collab/yjs/nodes/CollabLineBreakNode.d.ts +0 -19
  105. package/lib/collab/yjs/nodes/CollabLineBreakNode.js +0 -44
  106. package/lib/collab/yjs/nodes/CollabTextNode.d.ts +0 -25
  107. package/lib/collab/yjs/nodes/CollabTextNode.js +0 -103
  108. package/lib/collab/yjs/provider/websocket.d.ts +0 -88
  109. package/lib/collab/yjs/provider/websocket.js +0 -415
  110. package/lib/collab/yjs/servers/index.d.ts +0 -0
  111. package/lib/collab/yjs/servers/index.js +0 -0
  112. package/lib/collab/yjs/servers/ws/callback.d.ts +0 -5
  113. package/lib/collab/yjs/servers/ws/callback.js +0 -72
  114. package/lib/collab/yjs/servers/ws/server.d.ts +0 -2
  115. package/lib/collab/yjs/servers/ws/server.js +0 -25
  116. package/lib/collab/yjs/servers/ws/utils.d.ts +0 -49
  117. package/lib/collab/yjs/servers/ws/utils.js +0 -284
  118. package/lib/collab/yjs/sync/SyncCursors.d.ts +0 -39
  119. package/lib/collab/yjs/sync/SyncCursors.js +0 -351
  120. package/lib/collab/yjs/sync/SyncEditorStates.d.ts +0 -10
  121. package/lib/collab/yjs/sync/SyncEditorStates.js +0 -200
  122. package/lib/collab/yjs/useCollaboration.d.ts +0 -12
  123. package/lib/collab/yjs/useCollaboration.js +0 -255
  124. package/lib/collab/yjs/utils/Utils.d.ts +0 -25
  125. package/lib/collab/yjs/utils/Utils.js +0 -402
  126. package/lib/collab/yjs/wsProvider.d.ts +0 -3
  127. package/lib/collab/yjs/wsProvider.js +0 -21
  128. package/lib/commenting/index.d.ts +0 -41
  129. package/lib/commenting/index.js +0 -328
  130. package/lib/context/FlashMessageContext.d.ts +0 -7
  131. package/lib/context/FlashMessageContext.js +0 -24
  132. package/lib/context/SettingsContext.d.ts +0 -12
  133. package/lib/context/SettingsContext.js +0 -38
  134. package/lib/context/SharedHistoryContext.d.ts +0 -11
  135. package/lib/context/SharedHistoryContext.js +0 -11
  136. package/lib/context/ToolbarContext.d.ts +0 -65
  137. package/lib/context/ToolbarContext.js +0 -84
  138. package/lib/demo.d.ts +0 -12
  139. package/lib/demo.js +0 -45
  140. package/lib/hooks/useFlashMessage.d.ts +0 -2
  141. package/lib/hooks/useFlashMessage.js +0 -8
  142. package/lib/hooks/useModal.d.ts +0 -5
  143. package/lib/hooks/useModal.js +0 -26
  144. package/lib/hooks/useReport.d.ts +0 -1
  145. package/lib/hooks/useReport.js +0 -50
  146. package/lib/index.d.ts +0 -1
  147. package/lib/index.js +0 -5
  148. package/lib/nodes/AutocompleteNode.d.ts +0 -27
  149. package/lib/nodes/AutocompleteNode.js +0 -60
  150. package/lib/nodes/CounterComponent.d.ts +0 -6
  151. package/lib/nodes/CounterComponent.js +0 -137
  152. package/lib/nodes/CounterNode.d.ts +0 -23
  153. package/lib/nodes/CounterNode.js +0 -47
  154. package/lib/nodes/DateTimeNode/DateTimeComponent.d.ts +0 -8
  155. package/lib/nodes/DateTimeNode/DateTimeComponent.js +0 -119
  156. package/lib/nodes/DateTimeNode/DateTimeNode.d.ts +0 -27
  157. package/lib/nodes/DateTimeNode/DateTimeNode.js +0 -82
  158. package/lib/nodes/EmojiNode.d.ts +0 -18
  159. package/lib/nodes/EmojiNode.js +0 -54
  160. package/lib/nodes/EquationComponent.d.ts +0 -9
  161. package/lib/nodes/EquationComponent.js +0 -75
  162. package/lib/nodes/EquationNode.d.ts +0 -26
  163. package/lib/nodes/EquationNode.js +0 -109
  164. package/lib/nodes/ExcalidrawNode/ExcalidrawComponent.d.ts +0 -8
  165. package/lib/nodes/ExcalidrawNode/ExcalidrawComponent.js +0 -110
  166. package/lib/nodes/ExcalidrawNode/ExcalidrawImage.d.ts +0 -50
  167. package/lib/nodes/ExcalidrawNode/ExcalidrawImage.js +0 -55
  168. package/lib/nodes/ExcalidrawNode/index.d.ts +0 -32
  169. package/lib/nodes/ExcalidrawNode/index.js +0 -117
  170. package/lib/nodes/FigmaNode.d.ts +0 -20
  171. package/lib/nodes/FigmaNode.js +0 -52
  172. package/lib/nodes/ImageComponent.d.ts +0 -16
  173. package/lib/nodes/ImageComponent.js +0 -272
  174. package/lib/nodes/ImageNode.d.ts +0 -50
  175. package/lib/nodes/ImageNode.js +0 -151
  176. package/lib/nodes/InlineImageNode/InlineImageComponent.d.ts +0 -26
  177. package/lib/nodes/InlineImageNode/InlineImageComponent.js +0 -161
  178. package/lib/nodes/InlineImageNode/InlineImageNode.d.ts +0 -59
  179. package/lib/nodes/InlineImageNode/InlineImageNode.js +0 -162
  180. package/lib/nodes/KeywordNode.d.ts +0 -14
  181. package/lib/nodes/KeywordNode.js +0 -37
  182. package/lib/nodes/LayoutContainerNode.d.ts +0 -24
  183. package/lib/nodes/LayoutContainerNode.js +0 -95
  184. package/lib/nodes/LayoutItemNode.d.ts +0 -16
  185. package/lib/nodes/LayoutItemNode.js +0 -69
  186. package/lib/nodes/MentionNode.d.ts +0 -20
  187. package/lib/nodes/MentionNode.js +0 -85
  188. package/lib/nodes/PageBreakNode/index.d.ts +0 -17
  189. package/lib/nodes/PageBreakNode/index.js +0 -83
  190. package/lib/nodes/PlaygroundNodes.d.ts +0 -3
  191. package/lib/nodes/PlaygroundNodes.js +0 -75
  192. package/lib/nodes/PollComponent.d.ts +0 -9
  193. package/lib/nodes/PollComponent.js +0 -85
  194. package/lib/nodes/PollNode.d.ts +0 -43
  195. package/lib/nodes/PollNode.js +0 -153
  196. package/lib/nodes/SpecialTextNode.d.ts +0 -24
  197. package/lib/nodes/SpecialTextNode.js +0 -54
  198. package/lib/nodes/StickyComponent.d.ts +0 -10
  199. package/lib/nodes/StickyComponent.js +0 -162
  200. package/lib/nodes/StickyNode.d.ts +0 -31
  201. package/lib/nodes/StickyNode.js +0 -76
  202. package/lib/nodes/TweetNode.d.ts +0 -21
  203. package/lib/nodes/TweetNode.js +0 -119
  204. package/lib/nodes/YouTubeNode.d.ts +0 -22
  205. package/lib/nodes/YouTubeNode.js +0 -84
  206. package/lib/plugins/ActionsPlugin/index.d.ts +0 -5
  207. package/lib/plugins/ActionsPlugin/index.js +0 -168
  208. package/lib/plugins/AutoEmbedPlugin/index.d.ts +0 -19
  209. package/lib/plugins/AutoEmbedPlugin/index.js +0 -158
  210. package/lib/plugins/AutoLinkPlugin/index.d.ts +0 -2
  211. package/lib/plugins/AutoLinkPlugin/index.js +0 -15
  212. package/lib/plugins/AutocompletePlugin/index.d.ts +0 -10
  213. package/lib/plugins/AutocompletePlugin/index.js +0 -2477
  214. package/lib/plugins/CodeActionMenuPlugin/components/CopyButton/index.d.ts +0 -7
  215. package/lib/plugins/CodeActionMenuPlugin/components/CopyButton/index.js +0 -46
  216. package/lib/plugins/CodeActionMenuPlugin/components/PrettierButton/index.d.ts +0 -17
  217. package/lib/plugins/CodeActionMenuPlugin/components/PrettierButton/index.js +0 -115
  218. package/lib/plugins/CodeActionMenuPlugin/index.d.ts +0 -5
  219. package/lib/plugins/CodeActionMenuPlugin/index.js +0 -104
  220. package/lib/plugins/CodeActionMenuPlugin/utils.d.ts +0 -1
  221. package/lib/plugins/CodeActionMenuPlugin/utils.js +0 -22
  222. package/lib/plugins/CodeHighlightPrismPlugin/index.d.ts +0 -2
  223. package/lib/plugins/CodeHighlightPrismPlugin/index.js +0 -14
  224. package/lib/plugins/CodeHighlightShikiPlugin/index.d.ts +0 -2
  225. package/lib/plugins/CodeHighlightShikiPlugin/index.js +0 -14
  226. package/lib/plugins/CollapsiblePlugin/CollapsibleContainerNode.d.ts +0 -25
  227. package/lib/plugins/CollapsiblePlugin/CollapsibleContainerNode.js +0 -135
  228. package/lib/plugins/CollapsiblePlugin/CollapsibleContentNode.d.ts +0 -16
  229. package/lib/plugins/CollapsiblePlugin/CollapsibleContentNode.js +0 -83
  230. package/lib/plugins/CollapsiblePlugin/CollapsibleTitleNode.d.ts +0 -16
  231. package/lib/plugins/CollapsiblePlugin/CollapsibleTitleNode.js +0 -85
  232. package/lib/plugins/CollapsiblePlugin/CollapsibleUtils.d.ts +0 -2
  233. package/lib/plugins/CollapsiblePlugin/CollapsibleUtils.js +0 -12
  234. package/lib/plugins/CollapsiblePlugin/index.d.ts +0 -3
  235. package/lib/plugins/CollapsiblePlugin/index.js +0 -132
  236. package/lib/plugins/CommentPlugin/index.d.ts +0 -9
  237. package/lib/plugins/CommentPlugin/index.js +0 -460
  238. package/lib/plugins/ComponentPickerPlugin/index.d.ts +0 -2
  239. package/lib/plugins/ComponentPickerPlugin/index.js +0 -276
  240. package/lib/plugins/ContextMenuPlugin/index.d.ts +0 -2
  241. package/lib/plugins/ContextMenuPlugin/index.js +0 -112
  242. package/lib/plugins/CounterPlugin/index.d.ts +0 -3
  243. package/lib/plugins/CounterPlugin/index.js +0 -24
  244. package/lib/plugins/DateTimePlugin/index.d.ts +0 -8
  245. package/lib/plugins/DateTimePlugin/index.js +0 -28
  246. package/lib/plugins/DebugPlugin/index.d.ts +0 -3
  247. package/lib/plugins/DebugPlugin/index.js +0 -219
  248. package/lib/plugins/DocsPlugin/index.d.ts +0 -2
  249. package/lib/plugins/DocsPlugin/index.js +0 -4
  250. package/lib/plugins/DragDropPastePlugin/index.d.ts +0 -1
  251. package/lib/plugins/DragDropPastePlugin/index.js +0 -37
  252. package/lib/plugins/DraggableBlockPlugin/index.d.ts +0 -12
  253. package/lib/plugins/DraggableBlockPlugin/index.js +0 -36
  254. package/lib/plugins/EmojiPickerPlugin/index.d.ts +0 -1
  255. package/lib/plugins/EmojiPickerPlugin/index.js +0 -84
  256. package/lib/plugins/EmojisPlugin/index.d.ts +0 -2
  257. package/lib/plugins/EmojisPlugin/index.js +0 -56
  258. package/lib/plugins/EquationsPlugin/index.d.ts +0 -14
  259. package/lib/plugins/EquationsPlugin/index.js +0 -34
  260. package/lib/plugins/ExcalidrawPlugin/index.d.ts +0 -5
  261. package/lib/plugins/ExcalidrawPlugin/index.js +0 -44
  262. package/lib/plugins/FigmaPlugin/index.d.ts +0 -4
  263. package/lib/plugins/FigmaPlugin/index.js +0 -24
  264. package/lib/plugins/FloatingLinkEditorPlugin/index.d.ts +0 -15
  265. package/lib/plugins/FloatingLinkEditorPlugin/index.js +0 -280
  266. package/lib/plugins/FloatingTextFormatToolbarPlugin/index.d.ts +0 -7
  267. package/lib/plugins/FloatingTextFormatToolbarPlugin/index.js +0 -219
  268. package/lib/plugins/ImagesPlugin/index.d.ts +0 -24
  269. package/lib/plugins/ImagesPlugin/index.js +0 -195
  270. package/lib/plugins/InlineImagePlugin/index.d.ts +0 -17
  271. package/lib/plugins/InlineImagePlugin/index.js +0 -180
  272. package/lib/plugins/KeywordsPlugin/index.d.ts +0 -2
  273. package/lib/plugins/KeywordsPlugin/index.js +0 -35
  274. package/lib/plugins/LayoutPlugin/InsertLayoutDialog.d.ts +0 -6
  275. package/lib/plugins/LayoutPlugin/InsertLayoutDialog.js +0 -21
  276. package/lib/plugins/LayoutPlugin/LayoutPlugin.d.ts +0 -7
  277. package/lib/plugins/LayoutPlugin/LayoutPlugin.js +0 -135
  278. package/lib/plugins/LinkPlugin/index.d.ts +0 -6
  279. package/lib/plugins/LinkPlugin/index.js +0 -11
  280. package/lib/plugins/MarkdownShortcutPlugin/index.d.ts +0 -2
  281. package/lib/plugins/MarkdownShortcutPlugin/index.js +0 -6
  282. package/lib/plugins/MarkdownTransformers/index.d.ts +0 -8
  283. package/lib/plugins/MarkdownTransformers/index.js +0 -238
  284. package/lib/plugins/MaxLengthPlugin/index.d.ts +0 -3
  285. package/lib/plugins/MaxLengthPlugin/index.js +0 -41
  286. package/lib/plugins/MentionsPlugin/index.d.ts +0 -2
  287. package/lib/plugins/MentionsPlugin/index.js +0 -564
  288. package/lib/plugins/PageBreakPlugin/index.d.ts +0 -4
  289. package/lib/plugins/PageBreakPlugin/index.js +0 -31
  290. package/lib/plugins/PasteLogPlugin/index.d.ts +0 -2
  291. package/lib/plugins/PasteLogPlugin/index.js +0 -27
  292. package/lib/plugins/PollPlugin/index.d.ts +0 -8
  293. package/lib/plugins/PollPlugin/index.js +0 -38
  294. package/lib/plugins/ShortcutsPlugin/index.d.ts +0 -6
  295. package/lib/plugins/ShortcutsPlugin/index.js +0 -116
  296. package/lib/plugins/ShortcutsPlugin/shortcuts.d.ts +0 -59
  297. package/lib/plugins/ShortcutsPlugin/shortcuts.js +0 -173
  298. package/lib/plugins/SpecialTextPlugin/index.d.ts +0 -2
  299. package/lib/plugins/SpecialTextPlugin/index.js +0 -50
  300. package/lib/plugins/SpeechToTextPlugin/index.d.ts +0 -5
  301. package/lib/plugins/SpeechToTextPlugin/index.js +0 -86
  302. package/lib/plugins/StickyPlugin/index.d.ts +0 -2
  303. package/lib/plugins/StickyPlugin/index.js +0 -16
  304. package/lib/plugins/TabFocusPlugin/index.d.ts +0 -1
  305. package/lib/plugins/TabFocusPlugin/index.js +0 -38
  306. package/lib/plugins/TableActionMenuPlugin/index.d.ts +0 -5
  307. package/lib/plugins/TableActionMenuPlugin/index.js +0 -492
  308. package/lib/plugins/TableCellResizer/index.d.ts +0 -3
  309. package/lib/plugins/TableCellResizer/index.js +0 -297
  310. package/lib/plugins/TableHoverActionsPlugin/index.d.ts +0 -4
  311. package/lib/plugins/TableHoverActionsPlugin/index.js +0 -188
  312. package/lib/plugins/TableOfContentsPlugin/index.d.ts +0 -2
  313. package/lib/plugins/TableOfContentsPlugin/index.js +0 -116
  314. package/lib/plugins/TablePlugin.d.ts +0 -31
  315. package/lib/plugins/TablePlugin.js +0 -63
  316. package/lib/plugins/TestRecorderPlugin/index.d.ts +0 -3
  317. package/lib/plugins/TestRecorderPlugin/index.js +0 -346
  318. package/lib/plugins/ToolbarPlugin/fontSize.d.ts +0 -9
  319. package/lib/plugins/ToolbarPlugin/fontSize.js +0 -84
  320. package/lib/plugins/ToolbarPlugin/index.d.ts +0 -9
  321. package/lib/plugins/ToolbarPlugin/index.js +0 -500
  322. package/lib/plugins/ToolbarPlugin/utils.d.ts +0 -26
  323. package/lib/plugins/ToolbarPlugin/utils.js +0 -247
  324. package/lib/plugins/TreeViewPlugin/index.d.ts +0 -2
  325. package/lib/plugins/TreeViewPlugin/index.js +0 -7
  326. package/lib/plugins/TwitterPlugin/index.d.ts +0 -4
  327. package/lib/plugins/TwitterPlugin/index.js +0 -24
  328. package/lib/plugins/TypingPerfPlugin/index.d.ts +0 -2
  329. package/lib/plugins/TypingPerfPlugin/index.js +0 -97
  330. package/lib/plugins/YouTubePlugin/index.d.ts +0 -4
  331. package/lib/plugins/YouTubePlugin/index.js +0 -24
  332. package/lib/server/validation.d.ts +0 -1
  333. package/lib/server/validation.js +0 -115
  334. package/lib/setupEnv.d.ts +0 -2
  335. package/lib/setupEnv.js +0 -29
  336. package/lib/themes/CommentEditorTheme.d.ts +0 -4
  337. package/lib/themes/CommentEditorTheme.js +0 -11
  338. package/lib/themes/PlaygroundEditorTheme.d.ts +0 -4
  339. package/lib/themes/PlaygroundEditorTheme.js +0 -124
  340. package/lib/themes/StickyEditorTheme.d.ts +0 -4
  341. package/lib/themes/StickyEditorTheme.js +0 -11
  342. package/lib/tyes.dt.d.ts +0 -12
  343. package/lib/tyes.dt.js +0 -4
  344. package/lib/ui/Button.d.ts +0 -12
  345. package/lib/ui/Button.js +0 -6
  346. package/lib/ui/ColorPicker.d.ts +0 -14
  347. package/lib/ui/ColorPicker.js +0 -219
  348. package/lib/ui/ContentEditable.d.ts +0 -9
  349. package/lib/ui/ContentEditable.js +0 -6
  350. package/lib/ui/Dialog.d.ts +0 -10
  351. package/lib/ui/Dialog.js +0 -8
  352. package/lib/ui/DropDown.d.ts +0 -18
  353. package/lib/ui/DropDown.js +0 -133
  354. package/lib/ui/DropdownColorPicker.d.ts +0 -13
  355. package/lib/ui/DropdownColorPicker.js +0 -6
  356. package/lib/ui/EquationEditor.d.ts +0 -8
  357. package/lib/ui/EquationEditor.js +0 -11
  358. package/lib/ui/ExcalidrawModal.d.ts +0 -42
  359. package/lib/ui/ExcalidrawModal.js +0 -103
  360. package/lib/ui/FileInput.d.ts +0 -10
  361. package/lib/ui/FileInput.js +0 -5
  362. package/lib/ui/FlashMessage.d.ts +0 -7
  363. package/lib/ui/FlashMessage.js +0 -6
  364. package/lib/ui/ImageResizer.d.ts +0 -17
  365. package/lib/ui/ImageResizer.js +0 -171
  366. package/lib/ui/KatexEquationAlterer.d.ts +0 -8
  367. package/lib/ui/KatexEquationAlterer.js +0 -23
  368. package/lib/ui/KatexRenderer.d.ts +0 -6
  369. package/lib/ui/KatexRenderer.js +0 -24
  370. package/lib/ui/Modal.d.ts +0 -9
  371. package/lib/ui/Modal.js +0 -48
  372. package/lib/ui/Select.d.ts +0 -8
  373. package/lib/ui/Select.js +0 -5
  374. package/lib/ui/Switch.d.ts +0 -8
  375. package/lib/ui/Switch.js +0 -6
  376. package/lib/ui/TextInput.d.ts +0 -13
  377. package/lib/ui/TextInput.js +0 -7
  378. package/lib/utils/docSerialization.d.ts +0 -3
  379. package/lib/utils/docSerialization.js +0 -60
  380. package/lib/utils/emoji-list.d.ts +0 -20
  381. package/lib/utils/emoji-list.js +0 -16609
  382. package/lib/utils/getDOMRangeRect.d.ts +0 -8
  383. package/lib/utils/getDOMRangeRect.js +0 -26
  384. package/lib/utils/getSelectedNode.d.ts +0 -2
  385. package/lib/utils/getSelectedNode.js +0 -28
  386. package/lib/utils/getThemeSelector.d.ts +0 -2
  387. package/lib/utils/getThemeSelector.js +0 -14
  388. package/lib/utils/isMobileWidth.d.ts +0 -7
  389. package/lib/utils/isMobileWidth.js +0 -11
  390. package/lib/utils/joinClasses.d.ts +0 -1
  391. package/lib/utils/joinClasses.js +0 -7
  392. package/lib/utils/setFloatingElemPosition.d.ts +0 -1
  393. package/lib/utils/setFloatingElemPosition.js +0 -59
  394. package/lib/utils/setFloatingElemPositionForLinkEditor.d.ts +0 -1
  395. package/lib/utils/setFloatingElemPositionForLinkEditor.js +0 -36
  396. package/lib/utils/swipe.d.ts +0 -4
  397. package/lib/utils/swipe.js +0 -94
  398. package/lib/utils/url.d.ts +0 -2
  399. package/lib/utils/url.js +0 -31
@@ -1,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,46 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /*
3
- * Copyright (c) 2023-2025 Datalayer, Inc.
4
- * Distributed under the terms of the MIT License.
5
- */
6
- /**
7
- * Copyright (c) Meta Platforms, Inc. and affiliates.
8
- *
9
- * This source code is licensed under the MIT license found in the
10
- * LICENSE file in the root directory of this source tree.
11
- *
12
- */
13
- import { $isCodeNode } from '@lexical/code';
14
- import { $getNearestNodeFromDOMNode, $getSelection, $setSelection, } from 'lexical';
15
- import { useState } from 'react';
16
- import { useDebounce } from '../../utils';
17
- export function CopyButton({ editor, getCodeDOMNode }) {
18
- const [isCopyCompleted, setCopyCompleted] = useState(false);
19
- const removeSuccessIcon = useDebounce(() => {
20
- setCopyCompleted(false);
21
- }, 1000);
22
- async function handleClick() {
23
- const codeDOMNode = getCodeDOMNode();
24
- if (!codeDOMNode) {
25
- return;
26
- }
27
- let content = '';
28
- editor.update(() => {
29
- const codeNode = $getNearestNodeFromDOMNode(codeDOMNode);
30
- if ($isCodeNode(codeNode)) {
31
- content = codeNode.getTextContent();
32
- }
33
- const selection = $getSelection();
34
- $setSelection(selection);
35
- });
36
- try {
37
- await navigator.clipboard.writeText(content);
38
- setCopyCompleted(true);
39
- removeSuccessIcon();
40
- }
41
- catch (err) {
42
- console.error('Failed to copy: ', err);
43
- }
44
- }
45
- return (_jsx("button", { className: "menu-item", onClick: handleClick, "aria-label": "copy", children: isCopyCompleted ? (_jsx("i", { className: "format success" })) : (_jsx("i", { className: "format copy" })) }));
46
- }
@@ -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,115 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /*
3
- * Copyright (c) 2023-2025 Datalayer, Inc.
4
- * Distributed under the terms of the MIT License.
5
- */
6
- /**
7
- * Copyright (c) Meta Platforms, Inc. and affiliates.
8
- *
9
- * This source code is licensed under the MIT license found in the
10
- * LICENSE file in the root directory of this source tree.
11
- *
12
- */
13
- import './index.css';
14
- import { $isCodeNode } from '@lexical/code';
15
- import { $getNearestNodeFromDOMNode } from 'lexical';
16
- import { useState } from 'react';
17
- const PRETTIER_PARSER_MODULES = {
18
- css: [() => import('prettier/parser-postcss')],
19
- html: [() => import('prettier/parser-html')],
20
- js: [
21
- () => import('prettier/parser-babel'),
22
- // () => import('prettier/plugins/estree'),
23
- ],
24
- markdown: [() => import('prettier/parser-markdown')],
25
- typescript: [
26
- () => import('prettier/parser-typescript'),
27
- // () => import('prettier/plugins/estree'),
28
- ],
29
- };
30
- async function loadPrettierParserByLang(lang) {
31
- const dynamicImports = PRETTIER_PARSER_MODULES[lang];
32
- const modules = await Promise.all(dynamicImports.map((dynamicImport) => dynamicImport()));
33
- return modules;
34
- }
35
- async function loadPrettierFormat() {
36
- const { format } = await import('prettier/standalone');
37
- return format;
38
- }
39
- const PRETTIER_OPTIONS_BY_LANG = {
40
- css: { parser: 'css' },
41
- html: { parser: 'html' },
42
- js: { parser: 'babel' },
43
- markdown: { parser: 'markdown' },
44
- typescript: { parser: 'typescript' },
45
- };
46
- const LANG_CAN_BE_PRETTIER = Object.keys(PRETTIER_OPTIONS_BY_LANG);
47
- export function canBePrettier(lang) {
48
- return LANG_CAN_BE_PRETTIER.includes(lang);
49
- }
50
- function getPrettierOptions(lang) {
51
- const options = PRETTIER_OPTIONS_BY_LANG[lang];
52
- if (!options) {
53
- throw new Error(`CodeActionMenuPlugin: Prettier does not support this language: ${lang}`);
54
- }
55
- return options;
56
- }
57
- export function PrettierButton({ lang, editor, getCodeDOMNode }) {
58
- const [syntaxError, setSyntaxError] = useState('');
59
- const [tipsVisible, setTipsVisible] = useState(false);
60
- async function handleClick() {
61
- const codeDOMNode = getCodeDOMNode();
62
- if (!codeDOMNode) {
63
- return;
64
- }
65
- let content = '';
66
- editor.update(() => {
67
- const codeNode = $getNearestNodeFromDOMNode(codeDOMNode);
68
- if ($isCodeNode(codeNode)) {
69
- content = codeNode.getTextContent();
70
- }
71
- });
72
- if (content === '') {
73
- return;
74
- }
75
- try {
76
- const format = await loadPrettierFormat();
77
- const options = getPrettierOptions(lang);
78
- const prettierParsers = await loadPrettierParserByLang(lang);
79
- options.plugins = prettierParsers.map((parser) => parser.default || parser);
80
- const formattedCode = await format(content, options);
81
- editor.update(() => {
82
- const codeNode = $getNearestNodeFromDOMNode(codeDOMNode);
83
- if ($isCodeNode(codeNode)) {
84
- const selection = codeNode.select(0);
85
- selection.insertText(formattedCode);
86
- setSyntaxError('');
87
- setTipsVisible(false);
88
- }
89
- });
90
- }
91
- catch (error) {
92
- setError(error);
93
- }
94
- }
95
- function setError(error) {
96
- if (error instanceof Error) {
97
- setSyntaxError(error.message);
98
- setTipsVisible(true);
99
- }
100
- else {
101
- console.error('Unexpected error: ', error);
102
- }
103
- }
104
- function handleMouseEnter() {
105
- if (syntaxError !== '') {
106
- setTipsVisible(true);
107
- }
108
- }
109
- function handleMouseLeave() {
110
- if (syntaxError !== '') {
111
- setTipsVisible(false);
112
- }
113
- }
114
- 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] }));
115
- }
@@ -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,22 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the MIT License.
4
- */
5
- /**
6
- * Copyright (c) Meta Platforms, Inc. and affiliates.
7
- *
8
- * This source code is licensed under the MIT license found in the
9
- * LICENSE file in the root directory of this source tree.
10
- *
11
- */
12
- import { debounce } from 'lodash-es';
13
- import { useMemo, useRef } from 'react';
14
- export function useDebounce(fn, ms, maxWait) {
15
- const funcRef = useRef(null);
16
- funcRef.current = fn;
17
- return useMemo(() => debounce((...args) => {
18
- if (funcRef.current) {
19
- funcRef.current(...args);
20
- }
21
- }, ms, { maxWait }), [ms, maxWait]);
22
- }
@@ -1,2 +0,0 @@
1
- import type { JSX } from 'react';
2
- export default function CodeHighlightPrismPlugin(): JSX.Element | null;
@@ -1,14 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the MIT License.
4
- */
5
- import { registerCodeHighlighting } from '@lexical/code';
6
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
7
- import { useEffect } from 'react';
8
- export default function CodeHighlightPrismPlugin() {
9
- const [editor] = useLexicalComposerContext();
10
- useEffect(() => {
11
- return registerCodeHighlighting(editor);
12
- }, [editor]);
13
- return null;
14
- }
@@ -1,2 +0,0 @@
1
- import type { JSX } from 'react';
2
- export default function CodeHighlightShikiPlugin(): JSX.Element | null;
@@ -1,14 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the MIT License.
4
- */
5
- import { registerCodeHighlighting } from '@lexical/code-shiki';
6
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
7
- import { useEffect } from 'react';
8
- export default function CodeHighlightShikiPlugin() {
9
- const [editor] = useLexicalComposerContext();
10
- useEffect(() => {
11
- return registerCodeHighlighting(editor);
12
- }, [editor]);
13
- return null;
14
- }
@@ -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,135 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the MIT License.
4
- */
5
- import { IS_CHROME } from '@lexical/utils';
6
- import { $getSiblingCaret, $isElementNode, $rewindSiblingCaret, ElementNode, isHTMLElement, } from 'lexical';
7
- import { setDomHiddenUntilFound } from './CollapsibleUtils';
8
- export function $convertDetailsElement(domNode) {
9
- const isOpen = domNode.open !== undefined ? domNode.open : true;
10
- const node = $createCollapsibleContainerNode(isOpen);
11
- return {
12
- node,
13
- };
14
- }
15
- export class CollapsibleContainerNode extends ElementNode {
16
- __open;
17
- constructor(open, key) {
18
- super(key);
19
- this.__open = open;
20
- }
21
- static getType() {
22
- return 'collapsible-container';
23
- }
24
- static clone(node) {
25
- return new CollapsibleContainerNode(node.__open, node.__key);
26
- }
27
- isShadowRoot() {
28
- return true;
29
- }
30
- collapseAtStart(selection) {
31
- // Unwrap the CollapsibleContainerNode by replacing it with the children
32
- // of its children (CollapsibleTitleNode, CollapsibleContentNode)
33
- const nodesToInsert = [];
34
- for (const child of this.getChildren()) {
35
- if ($isElementNode(child)) {
36
- nodesToInsert.push(...child.getChildren());
37
- }
38
- }
39
- const caret = $rewindSiblingCaret($getSiblingCaret(this, 'previous'));
40
- caret.splice(1, nodesToInsert);
41
- // Merge the first child of the CollapsibleTitleNode with the
42
- // previous sibling of the CollapsibleContainerNode
43
- const [firstChild] = nodesToInsert;
44
- if (firstChild) {
45
- firstChild.selectStart().deleteCharacter(true);
46
- }
47
- return true;
48
- }
49
- createDOM(config, editor) {
50
- // details is not well supported in Chrome #5582
51
- let dom;
52
- if (IS_CHROME) {
53
- dom = document.createElement('div');
54
- dom.setAttribute('open', '');
55
- }
56
- else {
57
- const detailsDom = document.createElement('details');
58
- detailsDom.open = this.__open;
59
- detailsDom.addEventListener('toggle', () => {
60
- const open = editor.getEditorState().read(() => this.getOpen());
61
- if (open !== detailsDom.open) {
62
- editor.update(() => this.toggleOpen());
63
- }
64
- });
65
- dom = detailsDom;
66
- }
67
- dom.classList.add('Collapsible__container');
68
- return dom;
69
- }
70
- updateDOM(prevNode, dom) {
71
- const currentOpen = this.__open;
72
- if (prevNode.__open !== currentOpen) {
73
- // details is not well supported in Chrome #5582
74
- if (IS_CHROME) {
75
- const contentDom = dom.children[1];
76
- if (!isHTMLElement(contentDom)) {
77
- throw new Error('Expected contentDom to be an HTMLElement');
78
- }
79
- if (currentOpen) {
80
- dom.setAttribute('open', '');
81
- contentDom.hidden = false;
82
- }
83
- else {
84
- dom.removeAttribute('open');
85
- setDomHiddenUntilFound(contentDom);
86
- }
87
- }
88
- else {
89
- dom.open = this.__open;
90
- }
91
- }
92
- return false;
93
- }
94
- static importDOM() {
95
- return {
96
- details: (domNode) => {
97
- return {
98
- conversion: $convertDetailsElement,
99
- priority: 1,
100
- };
101
- },
102
- };
103
- }
104
- static importJSON(serializedNode) {
105
- return $createCollapsibleContainerNode(serializedNode.open).updateFromJSON(serializedNode);
106
- }
107
- exportDOM() {
108
- const element = document.createElement('details');
109
- element.classList.add('Collapsible__container');
110
- element.setAttribute('open', this.__open.toString());
111
- return { element };
112
- }
113
- exportJSON() {
114
- return {
115
- ...super.exportJSON(),
116
- open: this.__open,
117
- };
118
- }
119
- setOpen(open) {
120
- const writable = this.getWritable();
121
- writable.__open = open;
122
- }
123
- getOpen() {
124
- return this.getLatest().__open;
125
- }
126
- toggleOpen() {
127
- this.setOpen(!this.getOpen());
128
- }
129
- }
130
- export function $createCollapsibleContainerNode(isOpen) {
131
- return new CollapsibleContainerNode(isOpen);
132
- }
133
- export function $isCollapsibleContainerNode(node) {
134
- return node instanceof CollapsibleContainerNode;
135
- }
@@ -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,83 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the MIT License.
4
- */
5
- import { IS_CHROME } from '@lexical/utils';
6
- import { ElementNode, } from 'lexical';
7
- import { $isCollapsibleContainerNode } from './CollapsibleContainerNode';
8
- import { domOnBeforeMatch, setDomHiddenUntilFound } from './CollapsibleUtils';
9
- export function $convertCollapsibleContentElement(domNode) {
10
- const node = $createCollapsibleContentNode();
11
- return {
12
- node,
13
- };
14
- }
15
- export class CollapsibleContentNode extends ElementNode {
16
- static getType() {
17
- return 'collapsible-content';
18
- }
19
- static clone(node) {
20
- return new CollapsibleContentNode(node.__key);
21
- }
22
- createDOM(config, editor) {
23
- const dom = document.createElement('div');
24
- dom.classList.add('Collapsible__content');
25
- if (IS_CHROME) {
26
- editor.getEditorState().read(() => {
27
- const containerNode = this.getParentOrThrow();
28
- if (!$isCollapsibleContainerNode(containerNode)) {
29
- throw new Error('Expected parent node to be a CollapsibleContainerNode');
30
- }
31
- if (!containerNode.__open) {
32
- setDomHiddenUntilFound(dom);
33
- }
34
- });
35
- domOnBeforeMatch(dom, () => {
36
- editor.update(() => {
37
- const containerNode = this.getParentOrThrow().getLatest();
38
- if (!$isCollapsibleContainerNode(containerNode)) {
39
- throw new Error('Expected parent node to be a CollapsibleContainerNode');
40
- }
41
- if (!containerNode.__open) {
42
- containerNode.toggleOpen();
43
- }
44
- });
45
- });
46
- }
47
- return dom;
48
- }
49
- updateDOM(prevNode, dom) {
50
- return false;
51
- }
52
- static importDOM() {
53
- return {
54
- div: (domNode) => {
55
- if (!domNode.hasAttribute('data-lexical-collapsible-content')) {
56
- return null;
57
- }
58
- return {
59
- conversion: $convertCollapsibleContentElement,
60
- priority: 2,
61
- };
62
- },
63
- };
64
- }
65
- exportDOM() {
66
- const element = document.createElement('div');
67
- element.classList.add('Collapsible__content');
68
- element.setAttribute('data-lexical-collapsible-content', 'true');
69
- return { element };
70
- }
71
- static importJSON(serializedNode) {
72
- return $createCollapsibleContentNode().updateFromJSON(serializedNode);
73
- }
74
- isShadowRoot() {
75
- return true;
76
- }
77
- }
78
- export function $createCollapsibleContentNode() {
79
- return new CollapsibleContentNode();
80
- }
81
- export function $isCollapsibleContentNode(node) {
82
- return node instanceof CollapsibleContentNode;
83
- }
@@ -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;