@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,26 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useCallback, useMemo, useState } from 'react';
3
- import Modal from '../ui/Modal';
4
- export default function useModal() {
5
- const [modalContent, setModalContent] = useState(null);
6
- const onClose = useCallback(() => {
7
- setModalContent(null);
8
- }, []);
9
- const modal = useMemo(() => {
10
- if (modalContent === null) {
11
- return null;
12
- }
13
- const { title, content, closeOnClickOutside } = modalContent;
14
- return (_jsx(Modal, { onClose: onClose, title: title, closeOnClickOutside: closeOnClickOutside, children: content }));
15
- }, [modalContent, onClose]);
16
- const showModal = useCallback((title,
17
- // eslint-disable-next-line no-shadow
18
- getContent, closeOnClickOutside = false) => {
19
- setModalContent({
20
- closeOnClickOutside,
21
- content: getContent(onClose),
22
- title,
23
- });
24
- }, [onClose]);
25
- return [modal, showModal];
26
- }
@@ -1 +0,0 @@
1
- export default function useReport(): (arg0: string) => ReturnType<typeof setTimeout>;
@@ -1,46 +0,0 @@
1
- import { useCallback, useEffect, useRef } from 'react';
2
- const getElement = () => {
3
- let element = document.getElementById('report-container');
4
- if (element === null) {
5
- element = document.createElement('div');
6
- element.id = 'report-container';
7
- element.style.position = 'fixed';
8
- element.style.top = '50%';
9
- element.style.left = '50%';
10
- element.style.fontSize = '32px';
11
- element.style.transform = 'translate(-50%, -50px)';
12
- element.style.padding = '20px';
13
- element.style.background = 'rgba(240, 240, 240, 0.4)';
14
- element.style.borderRadius = '20px';
15
- if (document.body) {
16
- document.body.appendChild(element);
17
- }
18
- }
19
- return element;
20
- };
21
- export default function useReport() {
22
- const timer = useRef(null);
23
- const cleanup = useCallback(() => {
24
- if (timer.current !== null) {
25
- clearTimeout(timer.current);
26
- timer.current = null;
27
- }
28
- if (document.body) {
29
- document.body.removeChild(getElement());
30
- }
31
- }, []);
32
- useEffect(() => {
33
- return cleanup;
34
- }, [cleanup]);
35
- return useCallback((content) => {
36
- // eslint-disable-next-line no-console
37
- console.log(content);
38
- const element = getElement();
39
- if (timer.current !== null) {
40
- clearTimeout(timer.current);
41
- }
42
- element.innerHTML = content;
43
- timer.current = setTimeout(cleanup, 1000);
44
- return timer.current;
45
- }, [cleanup]);
46
- }
package/lib/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './collab/loro';
package/lib/index.js DELETED
@@ -1 +0,0 @@
1
- export * from './collab/loro';
@@ -1,27 +0,0 @@
1
- import type { DOMExportOutput, EditorConfig, LexicalEditor, NodeKey, SerializedTextNode, Spread } from 'lexical';
2
- import { TextNode } from 'lexical';
3
- export type SerializedAutocompleteNode = Spread<{
4
- uuid: string;
5
- }, SerializedTextNode>;
6
- export declare class AutocompleteNode extends TextNode {
7
- /**
8
- * A unique uuid is generated for each session and assigned to the instance.
9
- * This helps to:
10
- * - Ensures max one Autocomplete node per session.
11
- * - Ensure that when collaboration is enabled, this node is not shown in
12
- * other sessions.
13
- * See https://github.com/facebook/lexical/blob/main/packages/lexical-playground/src/plugins/AutocompletePlugin/index.tsx
14
- */
15
- __uuid: string;
16
- static clone(node: AutocompleteNode): AutocompleteNode;
17
- static getType(): 'autocomplete';
18
- static importDOM(): any;
19
- static importJSON(serializedNode: SerializedAutocompleteNode): AutocompleteNode;
20
- exportJSON(): SerializedAutocompleteNode;
21
- constructor(text: string, uuid: string, key?: NodeKey);
22
- updateDOM(prevNode: this, dom: HTMLElement, config: EditorConfig): boolean;
23
- exportDOM(_: LexicalEditor): DOMExportOutput;
24
- excludeFromCopy(): boolean;
25
- createDOM(config: EditorConfig): HTMLElement;
26
- }
27
- export declare function $createAutocompleteNode(text: string, uuid: string): AutocompleteNode;
@@ -1,56 +0,0 @@
1
- import { TextNode } from 'lexical';
2
- import { uuid as UUID } from '../plugins/AutocompletePlugin';
3
- export class AutocompleteNode extends TextNode {
4
- /**
5
- * A unique uuid is generated for each session and assigned to the instance.
6
- * This helps to:
7
- * - Ensures max one Autocomplete node per session.
8
- * - Ensure that when collaboration is enabled, this node is not shown in
9
- * other sessions.
10
- * See https://github.com/facebook/lexical/blob/main/packages/lexical-playground/src/plugins/AutocompletePlugin/index.tsx
11
- */
12
- __uuid;
13
- static clone(node) {
14
- return new AutocompleteNode(node.__text, node.__uuid, node.__key);
15
- }
16
- static getType() {
17
- return 'autocomplete';
18
- }
19
- static importDOM() {
20
- // Never import from DOM
21
- return null;
22
- }
23
- static importJSON(serializedNode) {
24
- return $createAutocompleteNode(serializedNode.text, serializedNode.uuid).updateFromJSON(serializedNode);
25
- }
26
- exportJSON() {
27
- return {
28
- ...super.exportJSON(),
29
- uuid: this.__uuid,
30
- };
31
- }
32
- constructor(text, uuid, key) {
33
- super(text, key);
34
- this.__uuid = uuid;
35
- }
36
- updateDOM(prevNode, dom, config) {
37
- return false;
38
- }
39
- exportDOM(_) {
40
- return { element: null };
41
- }
42
- excludeFromCopy() {
43
- return true;
44
- }
45
- createDOM(config) {
46
- const dom = super.createDOM(config);
47
- dom.classList.add(config.theme.autocomplete);
48
- if (this.__uuid !== UUID) {
49
- dom.style.display = 'none';
50
- }
51
- return dom;
52
- }
53
- }
54
- export function $createAutocompleteNode(text, uuid) {
55
- return new AutocompleteNode(text, uuid).setMode('token');
56
- }
@@ -1,6 +0,0 @@
1
- import type { NodeKey } from 'lexical';
2
- import type { JSX } from 'react';
3
- export default function CounterComponent({ value, nodeKey, }: {
4
- value: number;
5
- nodeKey: NodeKey;
6
- }): JSX.Element;
@@ -1,137 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
3
- import { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection';
4
- import { mergeRegister } from '@lexical/utils';
5
- import { $getNodeByKey, $getSelection, $isNodeSelection, CLICK_COMMAND, COMMAND_PRIORITY_LOW, KEY_BACKSPACE_COMMAND, KEY_DELETE_COMMAND, SELECTION_CHANGE_COMMAND, } from 'lexical';
6
- import { useCallback, useEffect, useRef } from 'react';
7
- import { $isCounterNode } from './CounterNode';
8
- export default function CounterComponent({ value, nodeKey, }) {
9
- const [editor] = useLexicalComposerContext();
10
- const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey);
11
- const ref = useRef(null);
12
- const withCounterNode = (cb, onUpdate) => {
13
- editor.update(() => {
14
- const node = $getNodeByKey(nodeKey);
15
- if ($isCounterNode(node)) {
16
- cb(node);
17
- }
18
- }, { onUpdate });
19
- };
20
- const onDelete = useCallback((payload) => {
21
- if (isSelected && $isNodeSelection($getSelection())) {
22
- const event = payload;
23
- event.preventDefault();
24
- const node = $getNodeByKey(nodeKey);
25
- if ($isCounterNode(node)) {
26
- node.remove();
27
- return true;
28
- }
29
- }
30
- return false;
31
- }, [isSelected, nodeKey]);
32
- const onIncrement = useCallback(() => {
33
- withCounterNode((node) => {
34
- node.increment();
35
- });
36
- }, []);
37
- const onDecrement = useCallback(() => {
38
- withCounterNode((node) => {
39
- node.decrement();
40
- });
41
- }, []);
42
- const onReset = useCallback(() => {
43
- withCounterNode((node) => {
44
- node.setValue(0);
45
- });
46
- }, []);
47
- const onClick = useCallback((payload) => {
48
- const event = payload;
49
- if (event.target === ref.current) {
50
- if (event.shiftKey) {
51
- setSelected(!isSelected);
52
- }
53
- else {
54
- clearSelection();
55
- setSelected(true);
56
- }
57
- return true;
58
- }
59
- return false;
60
- }, [isSelected, setSelected, clearSelection]);
61
- useEffect(() => {
62
- return mergeRegister(editor.registerCommand(CLICK_COMMAND, onClick, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_DELETE_COMMAND, onDelete, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_BACKSPACE_COMMAND, onDelete, COMMAND_PRIORITY_LOW), editor.registerCommand(SELECTION_CHANGE_COMMAND, () => {
63
- if ($isNodeSelection($getSelection())) {
64
- return false;
65
- }
66
- clearSelection();
67
- return false;
68
- }, COMMAND_PRIORITY_LOW));
69
- }, [clearSelection, editor, onClick, onDelete]);
70
- useEffect(() => {
71
- const handleClickOutside = (event) => {
72
- if (ref.current && !ref.current.contains(event.target)) {
73
- clearSelection();
74
- }
75
- };
76
- if (isSelected) {
77
- document.addEventListener('mousedown', handleClickOutside);
78
- }
79
- return () => {
80
- document.removeEventListener('mousedown', handleClickOutside);
81
- };
82
- }, [clearSelection, isSelected]);
83
- return (_jsxs("div", { className: `counter-component ${isSelected ? 'selected' : ''}`, ref: ref, style: {
84
- display: 'inline-flex',
85
- alignItems: 'center',
86
- gap: '8px',
87
- padding: '8px 12px',
88
- border: '1px solid #ccc',
89
- borderRadius: '4px',
90
- backgroundColor: isSelected ? '#e3f2fd' : '#f9f9f9',
91
- fontFamily: 'monospace',
92
- fontSize: '14px',
93
- userSelect: 'none',
94
- cursor: 'pointer',
95
- }, children: [_jsx("button", { onClick: (e) => {
96
- e.stopPropagation();
97
- onDecrement();
98
- }, style: {
99
- background: '#dc3545',
100
- color: 'white',
101
- border: 'none',
102
- borderRadius: '3px',
103
- padding: '4px 8px',
104
- cursor: 'pointer',
105
- fontSize: '12px',
106
- fontWeight: 'bold',
107
- }, title: "Decrement", children: "-" }), _jsx("span", { style: {
108
- minWidth: '24px',
109
- textAlign: 'center',
110
- fontWeight: 'bold',
111
- }, children: value }), _jsx("button", { onClick: (e) => {
112
- e.stopPropagation();
113
- onIncrement();
114
- }, style: {
115
- background: '#28a745',
116
- color: 'white',
117
- border: 'none',
118
- borderRadius: '3px',
119
- padding: '4px 8px',
120
- cursor: 'pointer',
121
- fontSize: '12px',
122
- fontWeight: 'bold',
123
- }, title: "Increment", children: "+" }), _jsx("button", { onClick: (e) => {
124
- e.stopPropagation();
125
- onReset();
126
- }, style: {
127
- background: '#6c757d',
128
- color: 'white',
129
- border: 'none',
130
- borderRadius: '3px',
131
- padding: '4px 8px',
132
- cursor: 'pointer',
133
- fontSize: '12px',
134
- fontWeight: 'bold',
135
- marginLeft: '4px',
136
- }, title: "Reset to 0 (demonstrates NodeState)", children: "R" })] }));
137
- }
@@ -1,23 +0,0 @@
1
- import type { LexicalNode } from 'lexical';
2
- import type { JSX } from 'react';
3
- import { DecoratorNode } from 'lexical';
4
- export declare const counterValueState: import("lexical").StateConfig<"counterValue", number>;
5
- export declare class CounterNode extends DecoratorNode<JSX.Element> {
6
- $config(): import("lexical").StaticNodeConfigRecord<"counter", {
7
- extends: typeof DecoratorNode;
8
- stateConfigs: {
9
- flat: true;
10
- stateConfig: import("lexical").StateConfig<"counterValue", number>;
11
- }[];
12
- }>;
13
- getValue(): number;
14
- setValue(value: number): this;
15
- increment(): this;
16
- decrement(): this;
17
- createDOM(): HTMLElement;
18
- updateDOM(): false;
19
- decorate(): JSX.Element;
20
- isIsolated(): true;
21
- }
22
- export declare function $isCounterNode(node: LexicalNode | null | undefined): node is CounterNode;
23
- export declare function $createCounterNode(value?: number): CounterNode;
@@ -1,47 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { $getState, $setState, createState, DecoratorNode, } from 'lexical';
3
- import * as React from 'react';
4
- const CounterComponent = React.lazy(() => import('./CounterComponent'));
5
- export const counterValueState = createState('counterValue', {
6
- parse: (v) => (typeof v === 'number' ? v : 0),
7
- });
8
- export class CounterNode extends DecoratorNode {
9
- $config() {
10
- return this.config('counter', {
11
- extends: DecoratorNode,
12
- stateConfigs: [{ flat: true, stateConfig: counterValueState }],
13
- });
14
- }
15
- getValue() {
16
- return $getState(this, counterValueState);
17
- }
18
- setValue(value) {
19
- return $setState(this, counterValueState, value);
20
- }
21
- increment() {
22
- return $setState(this, counterValueState, prev => prev + 1);
23
- }
24
- decrement() {
25
- return $setState(this, counterValueState, prev => prev - 1);
26
- }
27
- createDOM() {
28
- const div = document.createElement('div');
29
- div.className = 'counter-node';
30
- return div;
31
- }
32
- updateDOM() {
33
- return false;
34
- }
35
- decorate() {
36
- return (_jsx(React.Suspense, { fallback: _jsx("div", { children: "Loading..." }), children: _jsx(CounterComponent, { value: this.getValue(), nodeKey: this.getKey() }) }));
37
- }
38
- isIsolated() {
39
- return true;
40
- }
41
- }
42
- export function $isCounterNode(node) {
43
- return node instanceof CounterNode;
44
- }
45
- export function $createCounterNode(value = 0) {
46
- return new CounterNode().setValue(value);
47
- }
@@ -1,8 +0,0 @@
1
- import type { JSX } from 'react';
2
- import 'react-day-picker/style.css';
3
- import './DateTimeNode.css';
4
- import { NodeKey } from 'lexical';
5
- export default function DateTimeComponent({ dateTime, nodeKey, }: {
6
- dateTime: Date | undefined;
7
- nodeKey: NodeKey;
8
- }): JSX.Element;
@@ -1,119 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import 'react-day-picker/style.css';
3
- import './DateTimeNode.css';
4
- import { autoUpdate, flip, FloatingFocusManager, FloatingOverlay, FloatingPortal, offset, shift, useDismiss, useFloating, useInteractions, useRole, } from '@floating-ui/react';
5
- import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
6
- import { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection';
7
- import { setHours, setMinutes } from 'date-fns';
8
- import { $getNodeByKey } from 'lexical';
9
- import { useEffect, useRef, useState } from 'react';
10
- import { DayPicker } from 'react-day-picker';
11
- import { $isDateTimeNode } from './DateTimeNode';
12
- const userTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
13
- export default function DateTimeComponent({ dateTime, nodeKey, }) {
14
- const [editor] = useLexicalComposerContext();
15
- const [isOpen, setIsOpen] = useState(false);
16
- const ref = useRef(null);
17
- const [selected, setSelected] = useState(dateTime);
18
- const [includeTime, setIncludeTime] = useState(false);
19
- const [timeValue, setTimeValue] = useState('00:00');
20
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
21
- const [isNodeSelected, setNodeSelected, clearNodeSelection] = useLexicalNodeSelection(nodeKey);
22
- const { refs, floatingStyles, context } = useFloating({
23
- elements: {
24
- reference: ref.current,
25
- },
26
- middleware: [
27
- offset(5),
28
- flip({
29
- fallbackPlacements: ['top-start'],
30
- }),
31
- shift({ padding: 10 }),
32
- ],
33
- onOpenChange: setIsOpen,
34
- open: isOpen,
35
- placement: 'bottom-start',
36
- strategy: 'fixed',
37
- whileElementsMounted: autoUpdate,
38
- });
39
- const role = useRole(context, { role: 'dialog' });
40
- const dismiss = useDismiss(context);
41
- const { getFloatingProps } = useInteractions([role, dismiss]);
42
- useEffect(() => {
43
- const dateTimePillRef = ref.current;
44
- function onClick(e) {
45
- e.preventDefault();
46
- setIsOpen(true);
47
- }
48
- if (dateTimePillRef) {
49
- dateTimePillRef.addEventListener('click', onClick);
50
- }
51
- return () => {
52
- if (dateTimePillRef) {
53
- dateTimePillRef.removeEventListener('click', onClick);
54
- }
55
- };
56
- }, [refs, editor]);
57
- const withDateTimeNode = (cb, onUpdate) => {
58
- editor.update(() => {
59
- const node = $getNodeByKey(nodeKey);
60
- if ($isDateTimeNode(node)) {
61
- cb(node);
62
- }
63
- }, { onUpdate });
64
- };
65
- const handleCheckboxChange = (e) => {
66
- withDateTimeNode((node) => {
67
- if (e.target.checked) {
68
- setIncludeTime(true);
69
- }
70
- else {
71
- if (selected) {
72
- const newSelectedDate = setHours(setMinutes(selected, 0), 0);
73
- node.setDateTime(newSelectedDate);
74
- }
75
- setIncludeTime(false);
76
- setTimeValue('00:00');
77
- }
78
- });
79
- };
80
- const handleTimeChange = (e) => {
81
- withDateTimeNode((node) => {
82
- const time = e.target.value;
83
- if (!selected) {
84
- setTimeValue(time);
85
- return;
86
- }
87
- const [hours, minutes] = time
88
- .split(':')
89
- .map((str) => parseInt(str, 10));
90
- const newSelectedDate = setHours(setMinutes(selected, minutes), hours);
91
- setSelected(newSelectedDate);
92
- node.setDateTime(newSelectedDate);
93
- setTimeValue(time);
94
- });
95
- };
96
- const handleDaySelect = (date) => {
97
- withDateTimeNode((node) => {
98
- if (!timeValue || !date) {
99
- setSelected(date);
100
- return;
101
- }
102
- const [hours, minutes] = timeValue
103
- .split(':')
104
- .map((str) => parseInt(str, 10));
105
- const newDate = new Date(date.getFullYear(), date.getMonth(), date.getDate(), hours, minutes);
106
- node.setDateTime(newDate);
107
- setSelected(newDate);
108
- });
109
- };
110
- return (_jsxs("div", { className: `dateTimePill ${isNodeSelected ? 'selected' : ''}`, ref: ref, style: { cursor: 'pointer', width: 'fit-content' }, children: [dateTime?.toDateString() + (includeTime ? ' ' + timeValue : '') ||
111
- 'Invalid Date', isOpen && (_jsx(FloatingPortal, { children: _jsx(FloatingOverlay, { lockScroll: true, children: _jsx(FloatingFocusManager, { context: context, initialFocus: -1, children: _jsxs("div", { className: 'dateTimePicker', ref: refs.setFloating, style: floatingStyles, ...getFloatingProps(), children: [_jsx(DayPicker, { captionLayout: "dropdown", navLayout: "after", fixedWeeks: false, showOutsideDays: false, mode: "single", selected: selected, required: true,
112
- // timeZone="BST" TODO: Support time zone selection
113
- onSelect: handleDaySelect, startMonth: new Date(1925, 0), endMonth: new Date(2042, 7) }), _jsx("form", { style: { marginBlockEnd: '1em' }, children: _jsxs("div", { style: {
114
- overflow: 'hidden',
115
- textOverflow: 'ellipsis',
116
- whiteSpace: 'nowrap',
117
- width: '300px',
118
- }, children: [_jsx("input", { type: "checkbox", id: "option1", name: "option1", value: "value1", checked: includeTime, onChange: handleCheckboxChange }), _jsx("label", { children: _jsx("input", { type: "time", value: timeValue, onChange: handleTimeChange, disabled: !includeTime }) }), _jsxs("span", { children: [" ", userTimeZone] })] }) })] }) }) }) }))] }));
119
- }
@@ -1,27 +0,0 @@
1
- import type { JSX } from 'react';
2
- import { DecoratorNode, DOMExportOutput, LexicalNode, SerializedLexicalNode, Spread, StateConfigValue, StateValueOrUpdater } from 'lexical';
3
- export type SerializedDateTimeNode = Spread<{
4
- dateTime?: string;
5
- }, SerializedLexicalNode>;
6
- declare const dateTimeState: import("lexical").StateConfig<"dateTime", Date>;
7
- export declare class DateTimeNode extends DecoratorNode<JSX.Element> {
8
- $config(): import("lexical").StaticNodeConfigRecord<"datetime", {
9
- extends: typeof DecoratorNode;
10
- importDOM: import("lexical").DOMConversionMap<HTMLElement>;
11
- stateConfigs: {
12
- flat: true;
13
- stateConfig: import("lexical").StateConfig<"dateTime", Date>;
14
- }[];
15
- }>;
16
- getDateTime(): StateConfigValue<typeof dateTimeState>;
17
- setDateTime(valueOrUpdater: StateValueOrUpdater<typeof dateTimeState>): this;
18
- getTextContent(): string;
19
- exportDOM(): DOMExportOutput;
20
- createDOM(): HTMLElement;
21
- updateDOM(): false;
22
- isInline(): boolean;
23
- decorate(): JSX.Element;
24
- }
25
- export declare function $createDateTimeNode(dateTime: Date): DateTimeNode;
26
- export declare function $isDateTimeNode(node: LexicalNode | null | undefined): node is DateTimeNode;
27
- export {};
@@ -1,82 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { $getState, $setState, buildImportMap, createState, DecoratorNode, } from 'lexical';
3
- import * as React from 'react';
4
- const DateTimeComponent = React.lazy(() => import('./DateTimeComponent'));
5
- const getDateTimeText = (dateTime) => {
6
- if (dateTime === undefined) {
7
- return '';
8
- }
9
- const hours = dateTime?.getHours();
10
- const minutes = dateTime?.getMinutes();
11
- return (dateTime.toDateString() +
12
- (hours === 0 && minutes === 0
13
- ? ''
14
- : ` ${hours.toString().padStart(2, '0')}:${minutes
15
- .toString()
16
- .padStart(2, '0')}`));
17
- };
18
- function $convertDateTimeElement(domNode) {
19
- const dateTimeValue = domNode.getAttribute('data-lexical-datetime');
20
- if (dateTimeValue) {
21
- const node = $createDateTimeNode(new Date(Date.parse(dateTimeValue)));
22
- return { node };
23
- }
24
- return null;
25
- }
26
- const dateTimeState = createState('dateTime', {
27
- parse: (v) => new Date(v),
28
- unparse: (v) => v.toISOString(),
29
- });
30
- export class DateTimeNode extends DecoratorNode {
31
- $config() {
32
- return this.config('datetime', {
33
- extends: DecoratorNode,
34
- importDOM: buildImportMap({
35
- span: (domNode) => domNode.getAttribute('data-lexical-datetime') !== null
36
- ? {
37
- conversion: $convertDateTimeElement,
38
- priority: 2,
39
- }
40
- : null,
41
- }),
42
- stateConfigs: [{ flat: true, stateConfig: dateTimeState }],
43
- });
44
- }
45
- getDateTime() {
46
- return $getState(this, dateTimeState);
47
- }
48
- setDateTime(valueOrUpdater) {
49
- return $setState(this, dateTimeState, valueOrUpdater);
50
- }
51
- getTextContent() {
52
- const dateTime = this.getDateTime();
53
- return getDateTimeText(dateTime);
54
- }
55
- exportDOM() {
56
- const element = document.createElement('span');
57
- element.textContent = getDateTimeText(this.getDateTime());
58
- element.setAttribute('data-lexical-datetime', this.getDateTime()?.toString() || '');
59
- return { element };
60
- }
61
- createDOM() {
62
- const element = document.createElement('span');
63
- element.setAttribute('data-lexical-datetime', this.getDateTime()?.toString() || '');
64
- element.style.display = 'inline-block';
65
- return element;
66
- }
67
- updateDOM() {
68
- return false;
69
- }
70
- isInline() {
71
- return true;
72
- }
73
- decorate() {
74
- return (_jsx(DateTimeComponent, { dateTime: this.getDateTime(), nodeKey: this.__key }));
75
- }
76
- }
77
- export function $createDateTimeNode(dateTime) {
78
- return new DateTimeNode().setDateTime(dateTime);
79
- }
80
- export function $isDateTimeNode(node) {
81
- return node instanceof DateTimeNode;
82
- }
@@ -1,18 +0,0 @@
1
- import type { EditorConfig, LexicalNode, NodeKey, SerializedTextNode, Spread } from 'lexical';
2
- import { TextNode } from 'lexical';
3
- export type SerializedEmojiNode = Spread<{
4
- className: string;
5
- }, SerializedTextNode>;
6
- export declare class EmojiNode extends TextNode {
7
- __className: string;
8
- static getType(): string;
9
- static clone(node: EmojiNode): EmojiNode;
10
- constructor(className: string, text: string, key?: NodeKey);
11
- createDOM(config: EditorConfig): HTMLElement;
12
- updateDOM(prevNode: this, dom: HTMLElement, config: EditorConfig): boolean;
13
- static importJSON(serializedNode: SerializedEmojiNode): EmojiNode;
14
- exportJSON(): SerializedEmojiNode;
15
- getClassName(): string;
16
- }
17
- export declare function $isEmojiNode(node: LexicalNode | null | undefined): node is EmojiNode;
18
- export declare function $createEmojiNode(className: string, emojiText: string): EmojiNode;