@webiny/lexical-editor 0.0.0-unstable.99666aeb00 → 0.0.0-unstable.a9593f74dd

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 (288) hide show
  1. package/commands/image.d.ts +6 -0
  2. package/commands/{insertFiles.js → image.js} +3 -1
  3. package/commands/image.js.map +1 -0
  4. package/commands/index.d.ts +3 -0
  5. package/commands/index.js +40 -0
  6. package/commands/index.js.map +1 -0
  7. package/commands/list.d.ts +7 -0
  8. package/commands/list.js +15 -0
  9. package/commands/list.js.map +1 -0
  10. package/commands/quote.d.ts +5 -0
  11. package/commands/quote.js +11 -0
  12. package/commands/quote.js.map +1 -0
  13. package/components/Editor/HeadingEditor.d.ts +2 -2
  14. package/components/Editor/HeadingEditor.js +10 -7
  15. package/components/Editor/HeadingEditor.js.map +1 -1
  16. package/components/Editor/ParagraphEditor.d.ts +2 -2
  17. package/components/Editor/ParagraphEditor.js +10 -7
  18. package/components/Editor/ParagraphEditor.js.map +1 -1
  19. package/components/Editor/RichTextEditor.d.ts +22 -20
  20. package/components/Editor/RichTextEditor.js +63 -46
  21. package/components/Editor/RichTextEditor.js.map +1 -1
  22. package/components/LexicalEditorConfig/LexicalEditorConfig.d.ts +3 -3
  23. package/components/LexicalEditorConfig/LexicalEditorConfig.js +3 -1
  24. package/components/LexicalEditorConfig/LexicalEditorConfig.js.map +1 -1
  25. package/components/LexicalEditorConfig/components/Node.d.ts +2 -2
  26. package/components/LexicalEditorConfig/components/Node.js +3 -1
  27. package/components/LexicalEditorConfig/components/Node.js.map +1 -1
  28. package/components/LexicalEditorConfig/components/Plugin.d.ts +1 -1
  29. package/components/LexicalEditorConfig/components/Plugin.js +3 -1
  30. package/components/LexicalEditorConfig/components/Plugin.js.map +1 -1
  31. package/components/LexicalEditorConfig/components/ToolbarElement.d.ts +1 -1
  32. package/components/LexicalEditorConfig/components/ToolbarElement.js +3 -1
  33. package/components/LexicalEditorConfig/components/ToolbarElement.js.map +1 -1
  34. package/components/LexicalHtmlRenderer.d.ts +7 -5
  35. package/components/LexicalHtmlRenderer.js +24 -18
  36. package/components/LexicalHtmlRenderer.js.map +1 -1
  37. package/components/Toolbar/StaticToolbar.d.ts +2 -2
  38. package/components/Toolbar/StaticToolbar.js +7 -78
  39. package/components/Toolbar/StaticToolbar.js.map +1 -1
  40. package/components/Toolbar/Toolbar.d.ts +1 -2
  41. package/components/Toolbar/Toolbar.js +30 -83
  42. package/components/Toolbar/Toolbar.js.map +1 -1
  43. package/components/ToolbarActions/BoldAction.js +10 -20
  44. package/components/ToolbarActions/BoldAction.js.map +1 -1
  45. package/components/ToolbarActions/BulletListAction.js +17 -24
  46. package/components/ToolbarActions/BulletListAction.js.map +1 -1
  47. package/components/ToolbarActions/CodeHighlightAction.js +10 -20
  48. package/components/ToolbarActions/CodeHighlightAction.js.map +1 -1
  49. package/components/ToolbarActions/FontColorAction.d.ts +7 -4
  50. package/components/ToolbarActions/FontColorAction.js +20 -37
  51. package/components/ToolbarActions/FontColorAction.js.map +1 -1
  52. package/components/ToolbarActions/FontSizeAction.js +11 -27
  53. package/components/ToolbarActions/FontSizeAction.js.map +1 -1
  54. package/components/ToolbarActions/ImageAction.js +11 -8
  55. package/components/ToolbarActions/ImageAction.js.map +1 -1
  56. package/components/ToolbarActions/ItalicAction.js +10 -20
  57. package/components/ToolbarActions/ItalicAction.js.map +1 -1
  58. package/components/ToolbarActions/LinkAction.js +18 -36
  59. package/components/ToolbarActions/LinkAction.js.map +1 -1
  60. package/components/ToolbarActions/NumberedListAction.js +18 -28
  61. package/components/ToolbarActions/NumberedListAction.js.map +1 -1
  62. package/components/ToolbarActions/QuoteAction.js +15 -24
  63. package/components/ToolbarActions/QuoteAction.js.map +1 -1
  64. package/components/ToolbarActions/TextAlignmentAction.d.ts +7 -4
  65. package/components/ToolbarActions/TextAlignmentAction.js +26 -21
  66. package/components/ToolbarActions/TextAlignmentAction.js.map +1 -1
  67. package/components/ToolbarActions/TypographyAction.d.ts +7 -4
  68. package/components/ToolbarActions/TypographyAction.js +53 -60
  69. package/components/ToolbarActions/TypographyAction.js.map +1 -1
  70. package/components/ToolbarActions/UnderlineAction.js +11 -21
  71. package/components/ToolbarActions/UnderlineAction.js.map +1 -1
  72. package/context/FontColorActionContext.js +3 -1
  73. package/context/FontColorActionContext.js.map +1 -1
  74. package/context/RichTextEditorContext.d.ts +3 -7
  75. package/context/RichTextEditorContext.js +20 -36
  76. package/context/RichTextEditorContext.js.map +1 -1
  77. package/context/SharedHistoryContext.d.ts +0 -1
  78. package/context/SharedHistoryContext.js +3 -1
  79. package/context/SharedHistoryContext.js.map +1 -1
  80. package/context/TextAlignmentActionContextProps.js +3 -1
  81. package/context/TextAlignmentActionContextProps.js.map +1 -1
  82. package/context/TypographyActionContext.d.ts +1 -1
  83. package/context/TypographyActionContext.js +3 -1
  84. package/context/TypographyActionContext.js.map +1 -1
  85. package/hooks/index.d.ts +7 -0
  86. package/hooks/index.js +84 -0
  87. package/hooks/index.js.map +1 -0
  88. package/hooks/useCurrentElement.d.ts +7 -0
  89. package/hooks/useCurrentElement.js +33 -0
  90. package/hooks/useCurrentElement.js.map +1 -0
  91. package/hooks/useCurrentSelection.d.ts +12 -0
  92. package/hooks/useCurrentSelection.js +72 -0
  93. package/hooks/useCurrentSelection.js.map +1 -0
  94. package/hooks/useFontColorPicker.js +3 -1
  95. package/hooks/useFontColorPicker.js.map +1 -1
  96. package/hooks/useIsMounted.d.ts +1 -0
  97. package/hooks/useIsMounted.js +20 -0
  98. package/hooks/useIsMounted.js.map +1 -0
  99. package/hooks/useList.js +31 -16
  100. package/hooks/useList.js.map +1 -1
  101. package/hooks/useQuote.d.ts +1 -1
  102. package/hooks/useQuote.js +9 -7
  103. package/hooks/useQuote.js.map +1 -1
  104. package/hooks/useRichTextEditor.js +3 -1
  105. package/hooks/useRichTextEditor.js.map +1 -1
  106. package/hooks/useTextAlignmentAction.js +3 -1
  107. package/hooks/useTextAlignmentAction.js.map +1 -1
  108. package/hooks/useTypographyAction.js +3 -1
  109. package/hooks/useTypographyAction.js.map +1 -1
  110. package/index.d.ts +4 -8
  111. package/index.js +71 -48
  112. package/index.js.map +1 -1
  113. package/package.json +16 -20
  114. package/plugins/BlurEventPlugin/BlurEventPlugin.js +3 -1
  115. package/plugins/BlurEventPlugin/BlurEventPlugin.js.map +1 -1
  116. package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.js +3 -1
  117. package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.js.map +1 -1
  118. package/plugins/CodeHighlightPlugin/index.js +3 -1
  119. package/plugins/CodeHighlightPlugin/index.js.map +1 -1
  120. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.d.ts +0 -2
  121. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js +15 -11
  122. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js.map +1 -1
  123. package/plugins/FloatingLinkEditorPlugin/index.js +3 -1
  124. package/plugins/FloatingLinkEditorPlugin/index.js.map +1 -1
  125. package/plugins/FontColorPlugin/FontColorPlugin.d.ts +1 -2
  126. package/plugins/FontColorPlugin/FontColorPlugin.js +8 -7
  127. package/plugins/FontColorPlugin/FontColorPlugin.js.map +1 -1
  128. package/plugins/ImagesPlugin/ImagesPlugin.d.ts +1 -2
  129. package/plugins/ImagesPlugin/ImagesPlugin.js +12 -11
  130. package/plugins/ImagesPlugin/ImagesPlugin.js.map +1 -1
  131. package/plugins/LexicalUpdateStatePlugin/UpdateStatePlugin.d.ts +9 -0
  132. package/plugins/LexicalUpdateStatePlugin/UpdateStatePlugin.js +49 -0
  133. package/plugins/LexicalUpdateStatePlugin/UpdateStatePlugin.js.map +1 -0
  134. package/plugins/LexicalUpdateStatePlugin/index.d.ts +1 -1
  135. package/plugins/LexicalUpdateStatePlugin/index.js +7 -5
  136. package/plugins/LexicalUpdateStatePlugin/index.js.map +1 -1
  137. package/plugins/LinkPlugin/LinkPlugin.d.ts +5 -0
  138. package/plugins/LinkPlugin/LinkPlugin.js +68 -0
  139. package/plugins/LinkPlugin/LinkPlugin.js.map +1 -0
  140. package/plugins/ListPLugin/ListPlugin.js +6 -5
  141. package/plugins/ListPLugin/ListPlugin.js.map +1 -1
  142. package/plugins/TypographyPlugin/TypographyPlugin.d.ts +1 -2
  143. package/plugins/TypographyPlugin/TypographyPlugin.js +7 -7
  144. package/plugins/TypographyPlugin/TypographyPlugin.js.map +1 -1
  145. package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.js +6 -4
  146. package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.js.map +1 -1
  147. package/types.d.ts +2 -61
  148. package/types.js +5 -3
  149. package/types.js.map +1 -1
  150. package/ui/ContentEditable.js +3 -1
  151. package/ui/ContentEditable.js.map +1 -1
  152. package/ui/Divider.js +3 -1
  153. package/ui/Divider.js.map +1 -1
  154. package/ui/DropDown.d.ts +0 -1
  155. package/ui/DropDown.js +3 -1
  156. package/ui/DropDown.js.map +1 -1
  157. package/ui/ImageResizer.d.ts +0 -2
  158. package/ui/ImageResizer.js +3 -1
  159. package/ui/ImageResizer.js.map +1 -1
  160. package/ui/LinkPreview.js +3 -1
  161. package/ui/LinkPreview.js.map +1 -1
  162. package/ui/Placeholder.js +3 -1
  163. package/ui/Placeholder.js.map +1 -1
  164. package/ui/TextInput.js +3 -1
  165. package/ui/TextInput.js.map +1 -1
  166. package/ui/ToolbarActionDialog.d.ts +1 -1
  167. package/ui/ToolbarActionDialog.js +4 -2
  168. package/ui/ToolbarActionDialog.js.map +1 -1
  169. package/utils/canUseDOM.js +3 -1
  170. package/utils/canUseDOM.js.map +1 -1
  171. package/utils/files.d.ts +1 -1
  172. package/utils/files.js +5 -3
  173. package/utils/files.js.map +1 -1
  174. package/utils/generateInitialLexicalValue.js +23 -19
  175. package/utils/generateInitialLexicalValue.js.map +1 -1
  176. package/utils/getDOMRangeRect.d.ts +0 -2
  177. package/utils/getDOMRangeRect.js +3 -1
  178. package/utils/getDOMRangeRect.js.map +1 -1
  179. package/utils/getSelectedNode.js +3 -1
  180. package/utils/getSelectedNode.js.map +1 -1
  181. package/utils/getTransparentImage.js +3 -1
  182. package/utils/getTransparentImage.js.map +1 -1
  183. package/utils/insertImage.d.ts +2 -0
  184. package/utils/{nodes/insertImage.js → insertImage.js} +6 -5
  185. package/utils/insertImage.js.map +1 -0
  186. package/utils/isHTMLElement.d.ts +0 -2
  187. package/utils/isHTMLElement.js +3 -1
  188. package/utils/isHTMLElement.js.map +1 -1
  189. package/utils/isUrlLinkReference.d.ts +1 -0
  190. package/utils/isUrlLinkReference.js +12 -0
  191. package/utils/isUrlLinkReference.js.map +1 -0
  192. package/utils/isValidJSON.js +3 -1
  193. package/utils/isValidJSON.js.map +1 -1
  194. package/utils/isValidLexicalData.d.ts +2 -0
  195. package/utils/isValidLexicalData.js +20 -12
  196. package/utils/isValidLexicalData.js.map +1 -1
  197. package/utils/point.js +3 -4
  198. package/utils/point.js.map +1 -1
  199. package/utils/rect.d.ts +0 -2
  200. package/utils/rect.js +3 -6
  201. package/utils/rect.js.map +1 -1
  202. package/utils/sanitizeUrl.d.ts +0 -7
  203. package/utils/sanitizeUrl.js +7 -1
  204. package/utils/sanitizeUrl.js.map +1 -1
  205. package/utils/setFloatingElemPosition.d.ts +0 -2
  206. package/utils/setFloatingElemPosition.js +3 -1
  207. package/utils/setFloatingElemPosition.js.map +1 -1
  208. package/commands/insertFiles.d.ts +0 -14
  209. package/commands/insertFiles.js.map +0 -1
  210. package/commands/webiny-list.d.ts +0 -7
  211. package/commands/webiny-list.js +0 -13
  212. package/commands/webiny-list.js.map +0 -1
  213. package/commands/webiny-quote.d.ts +0 -5
  214. package/commands/webiny-quote.js +0 -9
  215. package/commands/webiny-quote.js.map +0 -1
  216. package/components/ImageComponent.d.ts +0 -23
  217. package/components/ImageComponent.js +0 -252
  218. package/components/ImageComponent.js.map +0 -1
  219. package/nodes/FontColorNode.d.ts +0 -43
  220. package/nodes/FontColorNode.js +0 -127
  221. package/nodes/FontColorNode.js.map +0 -1
  222. package/nodes/HeadingNode.d.ts +0 -34
  223. package/nodes/HeadingNode.js +0 -192
  224. package/nodes/HeadingNode.js.map +0 -1
  225. package/nodes/ImageNode.d.ts +0 -50
  226. package/nodes/ImageNode.js +0 -217
  227. package/nodes/ImageNode.js.map +0 -1
  228. package/nodes/ListItemNode.d.ts +0 -46
  229. package/nodes/ListItemNode.js +0 -441
  230. package/nodes/ListItemNode.js.map +0 -1
  231. package/nodes/ListNode/formatList.d.ts +0 -12
  232. package/nodes/ListNode/formatList.js +0 -424
  233. package/nodes/ListNode/formatList.js.map +0 -1
  234. package/nodes/ListNode.d.ts +0 -42
  235. package/nodes/ListNode.js +0 -294
  236. package/nodes/ListNode.js.map +0 -1
  237. package/nodes/ParagraphNode.d.ts +0 -32
  238. package/nodes/ParagraphNode.js +0 -218
  239. package/nodes/ParagraphNode.js.map +0 -1
  240. package/nodes/QuoteNode.d.ts +0 -34
  241. package/nodes/QuoteNode.js +0 -225
  242. package/nodes/QuoteNode.js.map +0 -1
  243. package/nodes/TypographyElementNode.d.ts +0 -42
  244. package/nodes/TypographyElementNode.js +0 -155
  245. package/nodes/TypographyElementNode.js.map +0 -1
  246. package/nodes/imageNode.css +0 -43
  247. package/nodes/types.d.ts +0 -15
  248. package/nodes/types.js +0 -5
  249. package/nodes/types.js.map +0 -1
  250. package/nodes/webinyNodes.d.ts +0 -7
  251. package/nodes/webinyNodes.js +0 -46
  252. package/nodes/webinyNodes.js.map +0 -1
  253. package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.d.ts +0 -8
  254. package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.js +0 -34
  255. package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.js.map +0 -1
  256. package/themes/webinyLexicalTheme.css +0 -423
  257. package/themes/webinyLexicalTheme.d.ts +0 -9
  258. package/themes/webinyLexicalTheme.js +0 -90
  259. package/themes/webinyLexicalTheme.js.map +0 -1
  260. package/utils/findTypographyStyleByHtmlTag.d.ts +0 -8
  261. package/utils/findTypographyStyleByHtmlTag.js +0 -16
  262. package/utils/findTypographyStyleByHtmlTag.js.map +0 -1
  263. package/utils/getLexicalTextSelectionState.d.ts +0 -5
  264. package/utils/getLexicalTextSelectionState.js +0 -163
  265. package/utils/getLexicalTextSelectionState.js.map +0 -1
  266. package/utils/nodes/clearNodeFormating.d.ts +0 -2
  267. package/utils/nodes/clearNodeFormating.js +0 -28
  268. package/utils/nodes/clearNodeFormating.js.map +0 -1
  269. package/utils/nodes/formatToHeading.d.ts +0 -3
  270. package/utils/nodes/formatToHeading.js +0 -25
  271. package/utils/nodes/formatToHeading.js.map +0 -1
  272. package/utils/nodes/formatToParagraph.d.ts +0 -2
  273. package/utils/nodes/formatToParagraph.js +0 -20
  274. package/utils/nodes/formatToParagraph.js.map +0 -1
  275. package/utils/nodes/formatToQuote.d.ts +0 -2
  276. package/utils/nodes/formatToQuote.js +0 -25
  277. package/utils/nodes/formatToQuote.js.map +0 -1
  278. package/utils/nodes/insertImage.d.ts +0 -2
  279. package/utils/nodes/insertImage.js.map +0 -1
  280. package/utils/nodes/listNode.d.ts +0 -11
  281. package/utils/nodes/listNode.js +0 -107
  282. package/utils/nodes/listNode.js.map +0 -1
  283. package/utils/styleObjectToString.d.ts +0 -2
  284. package/utils/styleObjectToString.js +0 -22
  285. package/utils/styleObjectToString.js.map +0 -1
  286. package/utils/toTypographyEmotionMap.d.ts +0 -3
  287. package/utils/toTypographyEmotionMap.js +0 -36
  288. package/utils/toTypographyEmotionMap.js.map +0 -1
@@ -0,0 +1,6 @@
1
+ import { LexicalCommand, NodeKey } from "lexical";
2
+ import { ImageNodeProps } from "@webiny/lexical-nodes";
3
+ export interface ImagePayload extends ImageNodeProps {
4
+ key?: NodeKey;
5
+ }
6
+ export declare const INSERT_IMAGE_COMMAND: LexicalCommand<ImagePayload>;
@@ -6,4 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.INSERT_IMAGE_COMMAND = void 0;
7
7
  var _lexical = require("lexical");
8
8
  var INSERT_IMAGE_COMMAND = (0, _lexical.createCommand)("INSERT_IMAGE_COMMAND");
9
- exports.INSERT_IMAGE_COMMAND = INSERT_IMAGE_COMMAND;
9
+ exports.INSERT_IMAGE_COMMAND = INSERT_IMAGE_COMMAND;
10
+
11
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_lexical","require","INSERT_IMAGE_COMMAND","createCommand","exports"],"sources":["image.ts"],"sourcesContent":["import { createCommand, LexicalCommand, NodeKey } from \"lexical\";\nimport { ImageNodeProps } from \"@webiny/lexical-nodes\";\n\nexport interface ImagePayload extends ImageNodeProps {\n key?: NodeKey;\n}\n\nexport const INSERT_IMAGE_COMMAND: LexicalCommand<ImagePayload> =\n createCommand(\"INSERT_IMAGE_COMMAND\");\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAOO,IAAMC,oBAAkD,GAC3D,IAAAC,sBAAa,EAAC,sBAAsB,CAAC;AAACC,OAAA,CAAAF,oBAAA,GAAAA,oBAAA"}
@@ -0,0 +1,3 @@
1
+ export * from "./image";
2
+ export * from "./list";
3
+ export * from "./quote";
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _image = require("./image");
7
+ Object.keys(_image).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _image[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _image[key];
14
+ }
15
+ });
16
+ });
17
+ var _list = require("./list");
18
+ Object.keys(_list).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _list[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function get() {
24
+ return _list[key];
25
+ }
26
+ });
27
+ });
28
+ var _quote = require("./quote");
29
+ Object.keys(_quote).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _quote[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _quote[key];
36
+ }
37
+ });
38
+ });
39
+
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_image","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_list","_quote"],"sources":["index.ts"],"sourcesContent":["export * from \"~/commands/image\";\nexport * from \"~/commands/list\";\nexport * from \"~/commands/quote\";\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,KAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,KAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,KAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,KAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,MAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,MAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,MAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,MAAA,CAAAN,GAAA;IAAA;EAAA;AAAA"}
@@ -0,0 +1,7 @@
1
+ import { LexicalCommand } from "lexical";
2
+ export declare type ListCommandPayload = {
3
+ themeStyleId?: string;
4
+ };
5
+ export declare const INSERT_UNORDERED_LIST_COMMAND: LexicalCommand<ListCommandPayload>;
6
+ export declare const INSERT_ORDERED_LIST_COMMAND: LexicalCommand<ListCommandPayload>;
7
+ export declare const REMOVE_LIST_COMMAND: LexicalCommand<void>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.REMOVE_LIST_COMMAND = exports.INSERT_UNORDERED_LIST_COMMAND = exports.INSERT_ORDERED_LIST_COMMAND = void 0;
7
+ var _lexical = require("lexical");
8
+ var INSERT_UNORDERED_LIST_COMMAND = (0, _lexical.createCommand)("INSERT_UNORDERED_LIST_COMMAND");
9
+ exports.INSERT_UNORDERED_LIST_COMMAND = INSERT_UNORDERED_LIST_COMMAND;
10
+ var INSERT_ORDERED_LIST_COMMAND = (0, _lexical.createCommand)("INSERT_ORDERED_LIST_COMMAND");
11
+ exports.INSERT_ORDERED_LIST_COMMAND = INSERT_ORDERED_LIST_COMMAND;
12
+ var REMOVE_LIST_COMMAND = (0, _lexical.createCommand)("REMOVE_LIST_COMMAND");
13
+ exports.REMOVE_LIST_COMMAND = REMOVE_LIST_COMMAND;
14
+
15
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_lexical","require","INSERT_UNORDERED_LIST_COMMAND","createCommand","exports","INSERT_ORDERED_LIST_COMMAND","REMOVE_LIST_COMMAND"],"sources":["list.ts"],"sourcesContent":["import { createCommand, LexicalCommand } from \"lexical\";\n\nexport type ListCommandPayload = {\n themeStyleId?: string;\n};\n\nexport const INSERT_UNORDERED_LIST_COMMAND: LexicalCommand<ListCommandPayload> = createCommand(\n \"INSERT_UNORDERED_LIST_COMMAND\"\n);\n\nexport const INSERT_ORDERED_LIST_COMMAND: LexicalCommand<ListCommandPayload> = createCommand(\n \"INSERT_ORDERED_LIST_COMMAND\"\n);\n\nexport const REMOVE_LIST_COMMAND: LexicalCommand<void> = createCommand(\"REMOVE_LIST_COMMAND\");\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAMO,IAAMC,6BAAiE,GAAG,IAAAC,sBAAa,EAC1F,+BACJ,CAAC;AAACC,OAAA,CAAAF,6BAAA,GAAAA,6BAAA;AAEK,IAAMG,2BAA+D,GAAG,IAAAF,sBAAa,EACxF,6BACJ,CAAC;AAACC,OAAA,CAAAC,2BAAA,GAAAA,2BAAA;AAEK,IAAMC,mBAAyC,GAAG,IAAAH,sBAAa,EAAC,qBAAqB,CAAC;AAACC,OAAA,CAAAE,mBAAA,GAAAA,mBAAA"}
@@ -0,0 +1,5 @@
1
+ import { LexicalCommand } from "lexical";
2
+ export declare type QuoteCommandPayload = {
3
+ themeStyleId: string;
4
+ };
5
+ export declare const INSERT_QUOTE_COMMAND: LexicalCommand<QuoteCommandPayload>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.INSERT_QUOTE_COMMAND = void 0;
7
+ var _lexical = require("lexical");
8
+ var INSERT_QUOTE_COMMAND = (0, _lexical.createCommand)("INSERT_QUOTE_COMMAND");
9
+ exports.INSERT_QUOTE_COMMAND = INSERT_QUOTE_COMMAND;
10
+
11
+ //# sourceMappingURL=quote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_lexical","require","INSERT_QUOTE_COMMAND","createCommand","exports"],"sources":["quote.ts"],"sourcesContent":["import { createCommand, LexicalCommand } from \"lexical\";\n\nexport type QuoteCommandPayload = {\n themeStyleId: string;\n};\n\nexport const INSERT_QUOTE_COMMAND: LexicalCommand<QuoteCommandPayload> =\n createCommand(\"INSERT_QUOTE_COMMAND\");\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAMO,IAAMC,oBAAyD,GAClE,IAAAC,sBAAa,EAAC,sBAAsB,CAAC;AAACC,OAAA,CAAAF,oBAAA,GAAAA,oBAAA"}
@@ -1,7 +1,7 @@
1
- import React from "react";
1
+ /// <reference types="react" />
2
2
  import { RichTextEditorProps } from "./RichTextEditor";
3
3
  interface HeadingEditorProps extends RichTextEditorProps {
4
4
  tag?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
5
5
  }
6
- export declare const HeadingEditor: React.FC<HeadingEditorProps>;
6
+ export declare const HeadingEditor: ({ tag, placeholder, ...rest }: HeadingEditorProps) => JSX.Element;
7
7
  export {};
@@ -10,18 +10,21 @@ var _react = _interopRequireDefault(require("react"));
10
10
  var _RichTextEditor = require("./RichTextEditor");
11
11
  var _Toolbar = require("../Toolbar/Toolbar");
12
12
  var _excluded = ["tag", "placeholder"];
13
+ var styles = {
14
+ padding: 5
15
+ };
13
16
  var HeadingEditor = function HeadingEditor(_ref) {
14
17
  var tag = _ref.tag,
15
18
  placeholder = _ref.placeholder,
16
19
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
17
20
  return /*#__PURE__*/_react.default.createElement(_RichTextEditor.RichTextEditor, Object.assign({
18
21
  toolbar: /*#__PURE__*/_react.default.createElement(_Toolbar.Toolbar, null),
19
- tag: tag !== null && tag !== void 0 ? tag : "h1",
20
- placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : "Enter your heading text here..."
22
+ tag: tag ?? "h1",
23
+ placeholder: placeholder ?? "Enter your heading text here..."
21
24
  }, rest, {
22
- styles: {
23
- padding: 5
24
- }
25
- }), rest === null || rest === void 0 ? void 0 : rest.children);
25
+ styles: styles
26
+ }), rest?.children);
26
27
  };
27
- exports.HeadingEditor = HeadingEditor;
28
+ exports.HeadingEditor = HeadingEditor;
29
+
30
+ //# sourceMappingURL=HeadingEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["HeadingEditor","tag","placeholder","rest","padding","children"],"sources":["HeadingEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport { RichTextEditor, RichTextEditorProps } from \"~/components/Editor/RichTextEditor\";\nimport { Toolbar } from \"~/components/Toolbar/Toolbar\";\n\ninterface HeadingEditorProps extends RichTextEditorProps {\n tag?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n}\n\nexport const HeadingEditor: React.FC<HeadingEditorProps> = ({ tag, placeholder, ...rest }) => {\n return (\n <RichTextEditor\n toolbar={<Toolbar />}\n tag={tag ?? \"h1\"}\n placeholder={placeholder ?? \"Enter your heading text here...\"}\n {...rest}\n styles={{ padding: 5 }}\n >\n {rest?.children}\n </RichTextEditor>\n );\n};\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AAAuD;AAMhD,IAAMA,aAA2C,GAAG,SAA9CA,aAA2C,OAAsC;EAAA,IAAhCC,GAAG,QAAHA,GAAG;IAAEC,WAAW,QAAXA,WAAW;IAAKC,IAAI;EACnF,oBACI,6BAAC,8BAAc;IACX,OAAO,eAAE,6BAAC,gBAAO,OAAI;IACrB,GAAG,EAAEF,GAAG,aAAHA,GAAG,cAAHA,GAAG,GAAI,IAAK;IACjB,WAAW,EAAEC,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI;EAAkC,GAC1DC,IAAI;IACR,MAAM,EAAE;MAAEC,OAAO,EAAE;IAAE;EAAE,IAEtBD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEE,QAAQ,CACF;AAEzB,CAAC;AAAC"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_RichTextEditor","_Toolbar","_excluded","styles","padding","HeadingEditor","_ref","tag","placeholder","rest","_objectWithoutProperties2","default","createElement","RichTextEditor","Object","assign","toolbar","Toolbar","children","exports"],"sources":["HeadingEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport { RichTextEditor, RichTextEditorProps } from \"~/components/Editor/RichTextEditor\";\nimport { Toolbar } from \"~/components/Toolbar/Toolbar\";\n\ninterface HeadingEditorProps extends RichTextEditorProps {\n tag?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n}\n\nconst styles = { padding: 5 };\n\nexport const HeadingEditor = ({ tag, placeholder, ...rest }: HeadingEditorProps) => {\n return (\n <RichTextEditor\n toolbar={<Toolbar />}\n tag={tag ?? \"h1\"}\n placeholder={placeholder ?? \"Enter your heading text here...\"}\n {...rest}\n styles={styles}\n >\n {rest?.children}\n </RichTextEditor>\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAAuD,IAAAG,SAAA;AAMvD,IAAMC,MAAM,GAAG;EAAEC,OAAO,EAAE;AAAE,CAAC;AAEtB,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAA0D;EAAA,IAApDC,GAAG,GAAAD,IAAA,CAAHC,GAAG;IAAEC,WAAW,GAAAF,IAAA,CAAXE,WAAW;IAAKC,IAAI,OAAAC,yBAAA,CAAAC,OAAA,EAAAL,IAAA,EAAAJ,SAAA;EACrD,oBACIL,MAAA,CAAAc,OAAA,CAAAC,aAAA,CAACZ,eAAA,CAAAa,cAAc,EAAAC,MAAA,CAAAC,MAAA;IACXC,OAAO,eAAEnB,MAAA,CAAAc,OAAA,CAAAC,aAAA,CAACX,QAAA,CAAAgB,OAAO,MAAE,CAAE;IACrBV,GAAG,EAAEA,GAAG,IAAI,IAAK;IACjBC,WAAW,EAAEA,WAAW,IAAI;EAAkC,GAC1DC,IAAI;IACRN,MAAM,EAAEA;EAAO,IAEdM,IAAI,EAAES,QACK,CAAC;AAEzB,CAAC;AAACC,OAAA,CAAAd,aAAA,GAAAA,aAAA"}
@@ -1,7 +1,7 @@
1
- import React from "react";
1
+ /// <reference types="react" />
2
2
  import { RichTextEditorProps } from "./RichTextEditor";
3
3
  interface ParagraphLexicalEditorProps extends RichTextEditorProps {
4
4
  tag?: "p";
5
5
  }
6
- declare const ParagraphEditor: React.FC<ParagraphLexicalEditorProps>;
6
+ declare const ParagraphEditor: ({ placeholder, tag, ...rest }: ParagraphLexicalEditorProps) => JSX.Element;
7
7
  export { ParagraphEditor };
@@ -10,18 +10,21 @@ var _react = _interopRequireDefault(require("react"));
10
10
  var _RichTextEditor = require("./RichTextEditor");
11
11
  var _Toolbar = require("../Toolbar/Toolbar");
12
12
  var _excluded = ["placeholder", "tag"];
13
+ var styles = {
14
+ padding: 5
15
+ };
13
16
  var ParagraphEditor = function ParagraphEditor(_ref) {
14
17
  var placeholder = _ref.placeholder,
15
18
  tag = _ref.tag,
16
19
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
17
20
  return /*#__PURE__*/_react.default.createElement(_RichTextEditor.RichTextEditor, Object.assign({
18
21
  toolbar: /*#__PURE__*/_react.default.createElement(_Toolbar.Toolbar, null),
19
- tag: tag !== null && tag !== void 0 ? tag : "p",
20
- placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : "Enter your text here..."
22
+ tag: tag ?? "p",
23
+ placeholder: placeholder ?? "Enter your text here..."
21
24
  }, rest, {
22
- styles: {
23
- padding: 5
24
- }
25
- }), rest === null || rest === void 0 ? void 0 : rest.children);
25
+ styles: styles
26
+ }), rest?.children);
26
27
  };
27
- exports.ParagraphEditor = ParagraphEditor;
28
+ exports.ParagraphEditor = ParagraphEditor;
29
+
30
+ //# sourceMappingURL=ParagraphEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ParagraphEditor","placeholder","tag","rest","padding","children"],"sources":["ParagraphEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport { RichTextEditor, RichTextEditorProps } from \"~/components/Editor/RichTextEditor\";\nimport { Toolbar } from \"~/components/Toolbar/Toolbar\";\n\ninterface ParagraphLexicalEditorProps extends RichTextEditorProps {\n tag?: \"p\";\n}\n\nconst ParagraphEditor: React.FC<ParagraphLexicalEditorProps> = ({ placeholder, tag, ...rest }) => {\n return (\n <RichTextEditor\n toolbar={<Toolbar />}\n tag={tag ?? \"p\"}\n placeholder={placeholder ?? \"Enter your text here...\"}\n {...rest}\n styles={{ padding: 5 }}\n >\n {rest?.children}\n </RichTextEditor>\n );\n};\n\nexport { ParagraphEditor };\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AAAuD;AAMvD,IAAMA,eAAsD,GAAG,SAAzDA,eAAsD,OAAsC;EAAA,IAAhCC,WAAW,QAAXA,WAAW;IAAEC,GAAG,QAAHA,GAAG;IAAKC,IAAI;EACvF,oBACI,6BAAC,8BAAc;IACX,OAAO,eAAE,6BAAC,gBAAO,OAAI;IACrB,GAAG,EAAED,GAAG,aAAHA,GAAG,cAAHA,GAAG,GAAI,GAAI;IAChB,WAAW,EAAED,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI;EAA0B,GAClDE,IAAI;IACR,MAAM,EAAE;MAAEC,OAAO,EAAE;IAAE;EAAE,IAEtBD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEE,QAAQ,CACF;AAEzB,CAAC;AAAC"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_RichTextEditor","_Toolbar","_excluded","styles","padding","ParagraphEditor","_ref","placeholder","tag","rest","_objectWithoutProperties2","default","createElement","RichTextEditor","Object","assign","toolbar","Toolbar","children","exports"],"sources":["ParagraphEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport { RichTextEditor, RichTextEditorProps } from \"~/components/Editor/RichTextEditor\";\nimport { Toolbar } from \"~/components/Toolbar/Toolbar\";\n\ninterface ParagraphLexicalEditorProps extends RichTextEditorProps {\n tag?: \"p\";\n}\n\nconst styles = { padding: 5 };\n\nconst ParagraphEditor = ({ placeholder, tag, ...rest }: ParagraphLexicalEditorProps) => {\n return (\n <RichTextEditor\n toolbar={<Toolbar />}\n tag={tag ?? \"p\"}\n placeholder={placeholder ?? \"Enter your text here...\"}\n {...rest}\n styles={styles}\n >\n {rest?.children}\n </RichTextEditor>\n );\n};\n\nexport { ParagraphEditor };\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAAuD,IAAAG,SAAA;AAMvD,IAAMC,MAAM,GAAG;EAAEC,OAAO,EAAE;AAAE,CAAC;AAE7B,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,IAAA,EAAmE;EAAA,IAA7DC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IAAEC,GAAG,GAAAF,IAAA,CAAHE,GAAG;IAAKC,IAAI,OAAAC,yBAAA,CAAAC,OAAA,EAAAL,IAAA,EAAAJ,SAAA;EAChD,oBACIL,MAAA,CAAAc,OAAA,CAAAC,aAAA,CAACZ,eAAA,CAAAa,cAAc,EAAAC,MAAA,CAAAC,MAAA;IACXC,OAAO,eAAEnB,MAAA,CAAAc,OAAA,CAAAC,aAAA,CAACX,QAAA,CAAAgB,OAAO,MAAE,CAAE;IACrBT,GAAG,EAAEA,GAAG,IAAI,GAAI;IAChBD,WAAW,EAAEA,WAAW,IAAI;EAA0B,GAClDE,IAAI;IACRN,MAAM,EAAEA;EAAO,IAEdM,IAAI,EAAES,QACK,CAAC;AAEzB,CAAC;AAACC,OAAA,CAAAd,eAAA,GAAAA,eAAA"}
@@ -1,32 +1,34 @@
1
1
  import React from "react";
2
- import { LexicalValue, ThemeEmotionMap, ToolbarActionPlugin } from "../../types";
2
+ import { CSSObject } from "@emotion/react";
3
3
  import { Klass, LexicalNode } from "lexical";
4
- import { WebinyTheme } from "../../themes/webinyLexicalTheme";
4
+ import { LexicalValue, ToolbarActionPlugin } from "../../types";
5
+ import { WebinyTheme, ThemeEmotionMap } from "@webiny/lexical-theme";
5
6
  export interface RichTextEditorProps {
6
- toolbar?: React.ReactNode;
7
- staticToolbar?: React.ReactNode;
8
- toolbarActionPlugins?: ToolbarActionPlugin[];
9
- tag?: string;
10
- onChange?: (json: LexicalValue) => void;
11
- value: LexicalValue | null;
7
+ children?: React.ReactNode | React.ReactNode[];
8
+ classes?: string;
9
+ contentEditableStyles?: React.CSSProperties;
12
10
  focus?: boolean;
13
- placeholder?: string;
11
+ height?: number | string;
14
12
  nodes?: Klass<LexicalNode>[];
15
- /**
16
- * @description Lexical plugins
17
- */
18
- children?: React.ReactNode | React.ReactNode[];
19
13
  onBlur?: (editorState: LexicalValue) => void;
20
- height?: number | string;
21
- width?: number | string;
22
- theme: WebinyTheme;
23
- themeEmotionMap?: ThemeEmotionMap;
14
+ onChange?: (json: LexicalValue) => void;
15
+ placeholder?: string;
24
16
  placeholderStyles?: React.CSSProperties;
17
+ staticToolbar?: React.ReactNode;
25
18
  styles?: React.CSSProperties;
26
- contentEditableStyles?: React.CSSProperties;
27
- classes?: string;
19
+ tag?: string;
20
+ theme: WebinyTheme;
21
+ themeEmotionMap?: ThemeEmotionMap;
22
+ themeStylesTransformer?: (cssObject: Record<string, any>) => CSSObject;
23
+ toolbar?: React.ReactNode;
24
+ toolbarActionPlugins?: ToolbarActionPlugin[];
25
+ value: LexicalValue | null;
26
+ width?: number | string;
28
27
  }
29
28
  /**
30
29
  * @description Main editor container
31
30
  */
32
- export declare const RichTextEditor: import("@webiny/react-composition").ComposableFC<RichTextEditorProps>;
31
+ export declare const RichTextEditor: React.FunctionComponent<RichTextEditorProps> & {
32
+ original: React.ComponentType<RichTextEditorProps>;
33
+ originalName: string;
34
+ };
@@ -10,8 +10,7 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/obje
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
12
  var _react = _interopRequireWildcard(require("react"));
13
- var _Placeholder = require("../../ui/Placeholder");
14
- var _generateInitialLexicalValue = require("../../utils/generateInitialLexicalValue");
13
+ var _react2 = require("@emotion/react");
15
14
  var _LexicalComposer = require("@lexical/react/LexicalComposer");
16
15
  var _LexicalOnChangePlugin = require("@lexical/react/LexicalOnChangePlugin");
17
16
  var _LexicalAutoFocusPlugin = require("@lexical/react/LexicalAutoFocusPlugin");
@@ -19,18 +18,18 @@ var _LexicalClearEditorPlugin = require("@lexical/react/LexicalClearEditorPlugin
19
18
  var _LexicalRichTextPlugin = require("@lexical/react/LexicalRichTextPlugin");
20
19
  var _LexicalErrorBoundary = _interopRequireDefault(require("@lexical/react/LexicalErrorBoundary"));
21
20
  var _reactComposition = require("@webiny/react-composition");
21
+ var _LexicalHistoryPlugin = require("@lexical/react/LexicalHistoryPlugin");
22
22
  var _LexicalContentEditable = require("@lexical/react/LexicalContentEditable");
23
23
  var _RichTextEditorContext = require("../../context/RichTextEditorContext");
24
24
  var _isValidLexicalData = require("../../utils/isValidLexicalData");
25
25
  var _LexicalUpdateStatePlugin = require("../../plugins/LexicalUpdateStatePlugin");
26
26
  var _BlurEventPlugin = require("../../plugins/BlurEventPlugin/BlurEventPlugin");
27
- var _webinyLexicalTheme = require("../../themes/webinyLexicalTheme");
28
- var _webinyNodes = require("../../nodes/webinyNodes");
29
- var _LexicalHistoryPlugin = require("@lexical/react/LexicalHistoryPlugin");
27
+ var _Placeholder = require("../../ui/Placeholder");
28
+ var _generateInitialLexicalValue = require("../../utils/generateInitialLexicalValue");
29
+ var _lexicalTheme = require("@webiny/lexical-theme");
30
+ var _lexicalNodes = require("@webiny/lexical-nodes");
30
31
  var _SharedHistoryContext = require("../../context/SharedHistoryContext");
31
32
  var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
32
- var _react2 = require("@emotion/react");
33
- var _toTypographyEmotionMap = require("../../utils/toTypographyEmotionMap");
34
33
  var _LexicalEditorConfig = require("../LexicalEditorConfig/LexicalEditorConfig");
35
34
  var BaseRichTextEditor = function BaseRichTextEditor(_ref) {
36
35
  var toolbar = _ref.toolbar,
@@ -50,6 +49,7 @@ var BaseRichTextEditor = function BaseRichTextEditor(_ref) {
50
49
  toolbarActionPlugins = _ref.toolbarActionPlugins,
51
50
  contentEditableStyles = _ref.contentEditableStyles,
52
51
  placeholderStyles = _ref.placeholderStyles;
52
+ var editorTheme = (0, _react.useRef)((0, _lexicalTheme.createTheme)());
53
53
  var config = (0, _LexicalEditorConfig.useLexicalEditorConfig)();
54
54
  var _useSharedHistoryCont = (0, _SharedHistoryContext.useSharedHistoryContext)(),
55
55
  historyState = _useSharedHistoryCont.historyState;
@@ -91,14 +91,17 @@ var BaseRichTextEditor = function BaseRichTextEditor(_ref) {
91
91
  key: plugin.name
92
92
  }, plugin.element);
93
93
  });
94
+ var editorValue = (0, _isValidLexicalData.isValidLexicalData)(value) ? value : (0, _generateInitialLexicalValue.generateInitialLexicalValue)();
94
95
  var initialConfig = {
95
- editorState: (0, _isValidLexicalData.isValidLexicalData)(value) ? value : (0, _generateInitialLexicalValue.generateInitialLexicalValue)(),
96
+ // We update the state via the `<LexicalUpdateStatePlugin/>`.
97
+ editorState: null,
96
98
  namespace: "webiny",
97
- onError: function onError(error) {
98
- throw error;
99
+ onError: function onError() {
100
+ // Ignore errors. We don't want to break the app because of errors caused by config/value updates.
101
+ // These are usually resolved in the next component render cycle.
99
102
  },
100
- nodes: [].concat((0, _toConsumableArray2.default)(_webinyNodes.WebinyNodes), (0, _toConsumableArray2.default)(configNodes), (0, _toConsumableArray2.default)(nodes || [])),
101
- theme: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _webinyLexicalTheme.webinyEditorTheme), {}, {
103
+ nodes: [].concat((0, _toConsumableArray2.default)(_lexicalNodes.allNodes), (0, _toConsumableArray2.default)(configNodes), (0, _toConsumableArray2.default)(nodes || [])),
104
+ theme: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, editorTheme.current), {}, {
102
105
  emotionMap: themeEmotionMap
103
106
  })
104
107
  };
@@ -110,37 +113,50 @@ var BaseRichTextEditor = function BaseRichTextEditor(_ref) {
110
113
  }
111
114
  });
112
115
  }
113
- return /*#__PURE__*/_react.default.createElement(_LexicalComposer.LexicalComposer, {
114
- initialConfig: initialConfig
115
- }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, staticToolbar && staticToolbar, /*#__PURE__*/_react.default.createElement("div", {
116
- className: "editor-shell",
117
- ref: scrollRef,
118
- style: (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, styles), sizeStyle), {}, {
119
- overflow: "auto"
120
- })
121
- }, /*#__PURE__*/_react.default.createElement(_LexicalOnChangePlugin.OnChangePlugin, {
122
- onChange: handleOnChange
123
- }), value && /*#__PURE__*/_react.default.createElement(_LexicalUpdateStatePlugin.LexicalUpdateStatePlugin, {
124
- value: value
125
- }), /*#__PURE__*/_react.default.createElement(_LexicalClearEditorPlugin.ClearEditorPlugin, null), /*#__PURE__*/_react.default.createElement(_LexicalHistoryPlugin.HistoryPlugin, {
126
- externalHistoryState: historyState
127
- }), onBlur && /*#__PURE__*/_react.default.createElement(_BlurEventPlugin.BlurEventPlugin, {
128
- onBlur: onBlur
129
- }), focus && /*#__PURE__*/_react.default.createElement(_LexicalAutoFocusPlugin.AutoFocusPlugin, null), configPlugins, children, /*#__PURE__*/_react.default.createElement(_LexicalRichTextPlugin.RichTextPlugin, {
130
- contentEditable: /*#__PURE__*/_react.default.createElement("div", {
131
- className: "editor-scroller",
132
- style: (0, _objectSpread2.default)({}, sizeStyle)
133
- }, /*#__PURE__*/_react.default.createElement("div", {
134
- className: "editor",
135
- ref: onRef
136
- }, /*#__PURE__*/_react.default.createElement(_LexicalContentEditable.ContentEditable, {
137
- style: (0, _objectSpread2.default)({
138
- outline: 0
139
- }, contentEditableStyles)
140
- }))),
141
- placeholder: placeholderElem,
142
- ErrorBoundary: _LexicalErrorBoundary.default
143
- }), floatingAnchorElem && toolbar)));
116
+ return (
117
+ /*#__PURE__*/
118
+ /**
119
+ * Once the LexicalComposer is mounted, it caches the `initialConfig` internally, and all future
120
+ * updates to the config will be ignored. This is a problem because we pull in Nodes from our config,
121
+ * and initially, there can be multiple re-renders, while the config object is settled.
122
+ *
123
+ * To bypass this issue, we generate a naive `key` based on the number of Nodes.
124
+ */
125
+ _react.default.createElement(_LexicalComposer.LexicalComposer, {
126
+ initialConfig: initialConfig,
127
+ key: initialConfig.nodes.length
128
+ }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, staticToolbar && staticToolbar, /*#__PURE__*/_react.default.createElement("div", {
129
+ /* This className is necessary for targeting of editor container from CSS files. */
130
+ className: "editor-shell",
131
+ ref: scrollRef,
132
+ style: (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, styles), sizeStyle), {}, {
133
+ overflow: "auto",
134
+ position: "relative"
135
+ })
136
+ }, /*#__PURE__*/_react.default.createElement(_LexicalOnChangePlugin.OnChangePlugin, {
137
+ onChange: handleOnChange
138
+ }), /*#__PURE__*/_react.default.createElement(_LexicalUpdateStatePlugin.UpdateStatePlugin, {
139
+ value: editorValue
140
+ }), /*#__PURE__*/_react.default.createElement(_LexicalClearEditorPlugin.ClearEditorPlugin, null), /*#__PURE__*/_react.default.createElement(_LexicalHistoryPlugin.HistoryPlugin, {
141
+ externalHistoryState: historyState
142
+ }), onBlur && /*#__PURE__*/_react.default.createElement(_BlurEventPlugin.BlurEventPlugin, {
143
+ onBlur: onBlur
144
+ }), focus && /*#__PURE__*/_react.default.createElement(_LexicalAutoFocusPlugin.AutoFocusPlugin, null), configPlugins, children, /*#__PURE__*/_react.default.createElement(_LexicalRichTextPlugin.RichTextPlugin, {
145
+ contentEditable: /*#__PURE__*/_react.default.createElement("div", {
146
+ className: "editor-scroller",
147
+ style: (0, _objectSpread2.default)({}, sizeStyle)
148
+ }, /*#__PURE__*/_react.default.createElement("div", {
149
+ className: "editor",
150
+ ref: onRef
151
+ }, /*#__PURE__*/_react.default.createElement(_LexicalContentEditable.ContentEditable, {
152
+ style: (0, _objectSpread2.default)({
153
+ outline: 0
154
+ }, contentEditableStyles)
155
+ }))),
156
+ placeholder: placeholderElem,
157
+ ErrorBoundary: _LexicalErrorBoundary.default
158
+ }), floatingAnchorElem && toolbar)))
159
+ );
144
160
  };
145
161
 
146
162
  /**
@@ -148,12 +164,13 @@ var BaseRichTextEditor = function BaseRichTextEditor(_ref) {
148
164
  */
149
165
  var RichTextEditor = (0, _reactComposition.makeComposable)("RichTextEditor", function (props) {
150
166
  return /*#__PURE__*/_react.default.createElement(_LexicalEditorConfig.LexicalEditorWithConfig, null, /*#__PURE__*/_react.default.createElement(_RichTextEditorContext.RichTextEditorProvider, null, /*#__PURE__*/_react.default.createElement(_react2.ClassNames, null, function (_ref2) {
151
- var _props$themeEmotionMa;
152
167
  var css = _ref2.css;
153
- var themeEmotionMap = (_props$themeEmotionMa = props === null || props === void 0 ? void 0 : props.themeEmotionMap) !== null && _props$themeEmotionMa !== void 0 ? _props$themeEmotionMa : (0, _toTypographyEmotionMap.toTypographyEmotionMap)(css, props.theme);
168
+ var themeEmotionMap = props?.themeEmotionMap ?? (0, _lexicalTheme.toTypographyEmotionMap)(css, props.theme, props.themeStylesTransformer);
154
169
  return /*#__PURE__*/_react.default.createElement(_SharedHistoryContext.SharedHistoryContext, null, /*#__PURE__*/_react.default.createElement(BaseRichTextEditor, Object.assign({}, props, {
155
170
  themeEmotionMap: themeEmotionMap
156
171
  })));
157
172
  })));
158
173
  });
159
- exports.RichTextEditor = RichTextEditor;
174
+ exports.RichTextEditor = RichTextEditor;
175
+
176
+ //# sourceMappingURL=RichTextEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BaseRichTextEditor","toolbar","staticToolbar","onChange","value","nodes","placeholder","children","onBlur","focus","styles","width","height","theme","themeEmotionMap","toolbarActionPlugins","contentEditableStyles","placeholderStyles","config","useLexicalEditorConfig","useSharedHistoryContext","historyState","placeholderElem","scrollRef","useRef","useState","undefined","floatingAnchorElem","setFloatingAnchorElem","useRichTextEditor","setTheme","setThemeEmotionMap","setToolbarActionPlugins","useEffect","onRef","_floatingAnchorElem","sizeStyle","configNodes","map","node","configPlugins","plugins","plugin","name","element","initialConfig","editorState","isValidLexicalData","generateInitialLexicalValue","namespace","onError","error","WebinyNodes","webinyEditorTheme","emotionMap","handleOnChange","editor","read","getEditorState","JSON","stringify","toJSON","overflow","outline","LexicalErrorBoundary","RichTextEditor","makeComposable","props","css","toTypographyEmotionMap"],"sources":["RichTextEditor.tsx"],"sourcesContent":["import React, { Fragment, useEffect, useRef, useState } from \"react\";\nimport { LexicalValue, ThemeEmotionMap, ToolbarActionPlugin } from \"~/types\";\nimport { Placeholder } from \"~/ui/Placeholder\";\nimport { generateInitialLexicalValue } from \"~/utils/generateInitialLexicalValue\";\nimport { EditorState } from \"lexical/LexicalEditorState\";\nimport { Klass, LexicalEditor, LexicalNode } from \"lexical\";\nimport { LexicalComposer } from \"@lexical/react/LexicalComposer\";\nimport { OnChangePlugin } from \"@lexical/react/LexicalOnChangePlugin\";\nimport { AutoFocusPlugin } from \"@lexical/react/LexicalAutoFocusPlugin\";\nimport { ClearEditorPlugin } from \"@lexical/react/LexicalClearEditorPlugin\";\nimport { RichTextPlugin } from \"@lexical/react/LexicalRichTextPlugin\";\nimport LexicalErrorBoundary from \"@lexical/react/LexicalErrorBoundary\";\nimport { makeComposable } from \"@webiny/react-composition\";\nimport { ContentEditable } from \"@lexical/react/LexicalContentEditable\";\nimport { RichTextEditorProvider } from \"~/context/RichTextEditorContext\";\nimport { isValidLexicalData } from \"~/utils/isValidLexicalData\";\nimport { LexicalUpdateStatePlugin } from \"~/plugins/LexicalUpdateStatePlugin\";\nimport { BlurEventPlugin } from \"~/plugins/BlurEventPlugin/BlurEventPlugin\";\nimport { webinyEditorTheme, WebinyTheme } from \"~/themes/webinyLexicalTheme\";\nimport { WebinyNodes } from \"~/nodes/webinyNodes\";\nimport { HistoryPlugin } from \"@lexical/react/LexicalHistoryPlugin\";\nimport { SharedHistoryContext, useSharedHistoryContext } from \"~/context/SharedHistoryContext\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\nimport { ClassNames } from \"@emotion/react\";\nimport { toTypographyEmotionMap } from \"~/utils/toTypographyEmotionMap\";\nimport {\n LexicalEditorWithConfig,\n useLexicalEditorConfig\n} from \"~/components/LexicalEditorConfig/LexicalEditorConfig\";\n\nexport interface RichTextEditorProps {\n toolbar?: React.ReactNode;\n staticToolbar?: React.ReactNode;\n toolbarActionPlugins?: ToolbarActionPlugin[];\n tag?: string;\n onChange?: (json: LexicalValue) => void;\n value: LexicalValue | null;\n focus?: boolean;\n placeholder?: string;\n nodes?: Klass<LexicalNode>[];\n /**\n * @description Lexical plugins\n */\n children?: React.ReactNode | React.ReactNode[];\n onBlur?: (editorState: LexicalValue) => void;\n height?: number | string;\n width?: number | string;\n /*\n * @description Theme to be injected into lexical editor\n */\n theme: WebinyTheme;\n themeEmotionMap?: ThemeEmotionMap;\n\n placeholderStyles?: React.CSSProperties;\n /*\n * Set inline styles to lexical editor container\n * */\n styles?: React.CSSProperties;\n\n /*\n * Set inline styles to lexical editor editable content\n * */\n contentEditableStyles?: React.CSSProperties;\n\n /*\n * Set classes to lexical input container\n * */\n classes?: string;\n}\n\nconst BaseRichTextEditor: React.FC<RichTextEditorProps> = ({\n toolbar,\n staticToolbar,\n onChange,\n value,\n nodes,\n placeholder,\n children,\n onBlur,\n focus,\n styles,\n width,\n height,\n theme,\n themeEmotionMap,\n toolbarActionPlugins,\n contentEditableStyles,\n placeholderStyles\n}: RichTextEditorProps) => {\n const config = useLexicalEditorConfig();\n const { historyState } = useSharedHistoryContext();\n const placeholderElem = (\n <Placeholder styles={placeholderStyles}>{placeholder || \"Enter text...\"}</Placeholder>\n );\n const scrollRef = useRef(null);\n const [floatingAnchorElem, setFloatingAnchorElem] = useState<HTMLElement | undefined>(\n undefined\n );\n const { setTheme, setThemeEmotionMap, setToolbarActionPlugins } = useRichTextEditor();\n\n useEffect(() => {\n setTheme(theme);\n setThemeEmotionMap(themeEmotionMap);\n }, [themeEmotionMap, theme]);\n\n useEffect(() => {\n if (toolbarActionPlugins) {\n setToolbarActionPlugins(toolbarActionPlugins || []);\n }\n }, [toolbarActionPlugins]);\n\n const onRef = (_floatingAnchorElem: HTMLDivElement) => {\n if (_floatingAnchorElem !== null) {\n setFloatingAnchorElem(_floatingAnchorElem);\n }\n };\n\n const sizeStyle = {\n height: height || \"\",\n width: width || \"\"\n };\n\n const configNodes = config.nodes.map(node => node.node);\n const configPlugins = config.plugins.map(plugin => (\n <Fragment key={plugin.name}>{plugin.element}</Fragment>\n ));\n\n const initialConfig = {\n editorState: isValidLexicalData(value) ? value : generateInitialLexicalValue(),\n namespace: \"webiny\",\n onError: (error: Error) => {\n throw error;\n },\n nodes: [...WebinyNodes, ...configNodes, ...(nodes || [])],\n theme: { ...webinyEditorTheme, emotionMap: themeEmotionMap }\n };\n\n function handleOnChange(editorState: EditorState, editor: LexicalEditor) {\n editorState.read(() => {\n if (typeof onChange === \"function\") {\n const editorState = editor.getEditorState();\n onChange(JSON.stringify(editorState.toJSON()));\n }\n });\n }\n\n return (\n <LexicalComposer initialConfig={initialConfig}>\n <>\n {staticToolbar && staticToolbar}\n <div\n className={\"editor-shell\"}\n ref={scrollRef}\n style={{ ...styles, ...sizeStyle, overflow: \"auto\" }}\n >\n {/* data */}\n <OnChangePlugin onChange={handleOnChange} />\n {value && <LexicalUpdateStatePlugin value={value} />}\n <ClearEditorPlugin />\n <HistoryPlugin externalHistoryState={historyState} />\n {/* Events */}\n {onBlur && <BlurEventPlugin onBlur={onBlur} />}\n {focus && <AutoFocusPlugin />}\n {/* External plugins and components */}\n {configPlugins}\n {children}\n <RichTextPlugin\n contentEditable={\n <div className=\"editor-scroller\" style={{ ...sizeStyle }}>\n <div className=\"editor\" ref={onRef}>\n <ContentEditable\n style={{ outline: 0, ...contentEditableStyles }}\n />\n </div>\n </div>\n }\n placeholder={placeholderElem}\n ErrorBoundary={LexicalErrorBoundary}\n />\n {/* Toolbar */}\n {floatingAnchorElem && toolbar}\n </div>\n </>\n </LexicalComposer>\n );\n};\n\n/**\n * @description Main editor container\n */\nexport const RichTextEditor = makeComposable<RichTextEditorProps>(\"RichTextEditor\", props => {\n return (\n <LexicalEditorWithConfig>\n <RichTextEditorProvider>\n <ClassNames>\n {({ css }) => {\n const themeEmotionMap =\n props?.themeEmotionMap ?? toTypographyEmotionMap(css, props.theme);\n return (\n <SharedHistoryContext>\n <BaseRichTextEditor {...props} themeEmotionMap={themeEmotionMap} />\n </SharedHistoryContext>\n );\n }}\n </ClassNames>\n </RichTextEditorProvider>\n </LexicalEditorWithConfig>\n );\n});\n"],"mappings":";;;;;;;;;;;AAAA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6CA,IAAMA,kBAAiD,GAAG,SAApDA,kBAAiD,OAkB5B;EAAA,IAjBvBC,OAAO,QAAPA,OAAO;IACPC,aAAa,QAAbA,aAAa;IACbC,QAAQ,QAARA,QAAQ;IACRC,KAAK,QAALA,KAAK;IACLC,KAAK,QAALA,KAAK;IACLC,WAAW,QAAXA,WAAW;IACXC,QAAQ,QAARA,QAAQ;IACRC,MAAM,QAANA,MAAM;IACNC,KAAK,QAALA,KAAK;IACLC,MAAM,QAANA,MAAM;IACNC,KAAK,QAALA,KAAK;IACLC,MAAM,QAANA,MAAM;IACNC,KAAK,QAALA,KAAK;IACLC,eAAe,QAAfA,eAAe;IACfC,oBAAoB,QAApBA,oBAAoB;IACpBC,qBAAqB,QAArBA,qBAAqB;IACrBC,iBAAiB,QAAjBA,iBAAiB;EAEjB,IAAMC,MAAM,GAAG,IAAAC,2CAAsB,GAAE;EACvC,4BAAyB,IAAAC,6CAAuB,GAAE;IAA1CC,YAAY,yBAAZA,YAAY;EACpB,IAAMC,eAAe,gBACjB,6BAAC,wBAAW;IAAC,MAAM,EAAEL;EAAkB,GAAEX,WAAW,IAAI,eAAe,CAC1E;EACD,IAAMiB,SAAS,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAC9B,gBAAoD,IAAAC,eAAQ,EACxDC,SAAS,CACZ;IAAA;IAFMC,kBAAkB;IAAEC,qBAAqB;EAGhD,yBAAkE,IAAAC,qCAAiB,GAAE;IAA7EC,QAAQ,sBAARA,QAAQ;IAAEC,kBAAkB,sBAAlBA,kBAAkB;IAAEC,uBAAuB,sBAAvBA,uBAAuB;EAE7D,IAAAC,gBAAS,EAAC,YAAM;IACZH,QAAQ,CAACjB,KAAK,CAAC;IACfkB,kBAAkB,CAACjB,eAAe,CAAC;EACvC,CAAC,EAAE,CAACA,eAAe,EAAED,KAAK,CAAC,CAAC;EAE5B,IAAAoB,gBAAS,EAAC,YAAM;IACZ,IAAIlB,oBAAoB,EAAE;MACtBiB,uBAAuB,CAACjB,oBAAoB,IAAI,EAAE,CAAC;IACvD;EACJ,CAAC,EAAE,CAACA,oBAAoB,CAAC,CAAC;EAE1B,IAAMmB,KAAK,GAAG,SAARA,KAAK,CAAIC,mBAAmC,EAAK;IACnD,IAAIA,mBAAmB,KAAK,IAAI,EAAE;MAC9BP,qBAAqB,CAACO,mBAAmB,CAAC;IAC9C;EACJ,CAAC;EAED,IAAMC,SAAS,GAAG;IACdxB,MAAM,EAAEA,MAAM,IAAI,EAAE;IACpBD,KAAK,EAAEA,KAAK,IAAI;EACpB,CAAC;EAED,IAAM0B,WAAW,GAAGnB,MAAM,CAACb,KAAK,CAACiC,GAAG,CAAC,UAAAC,IAAI;IAAA,OAAIA,IAAI,CAACA,IAAI;EAAA,EAAC;EACvD,IAAMC,aAAa,GAAGtB,MAAM,CAACuB,OAAO,CAACH,GAAG,CAAC,UAAAI,MAAM;IAAA,oBAC3C,6BAAC,eAAQ;MAAC,GAAG,EAAEA,MAAM,CAACC;IAAK,GAAED,MAAM,CAACE,OAAO,CAAY;EAAA,CAC1D,CAAC;EAEF,IAAMC,aAAa,GAAG;IAClBC,WAAW,EAAE,IAAAC,sCAAkB,EAAC3C,KAAK,CAAC,GAAGA,KAAK,GAAG,IAAA4C,wDAA2B,GAAE;IAC9EC,SAAS,EAAE,QAAQ;IACnBC,OAAO,EAAE,iBAACC,KAAY,EAAK;MACvB,MAAMA,KAAK;IACf,CAAC;IACD9C,KAAK,6CAAM+C,wBAAW,oCAAKf,WAAW,oCAAMhC,KAAK,IAAI,EAAE,EAAE;IACzDQ,KAAK,8DAAOwC,qCAAiB;MAAEC,UAAU,EAAExC;IAAe;EAC9D,CAAC;EAED,SAASyC,cAAc,CAACT,WAAwB,EAAEU,MAAqB,EAAE;IACrEV,WAAW,CAACW,IAAI,CAAC,YAAM;MACnB,IAAI,OAAOtD,QAAQ,KAAK,UAAU,EAAE;QAChC,IAAM2C,YAAW,GAAGU,MAAM,CAACE,cAAc,EAAE;QAC3CvD,QAAQ,CAACwD,IAAI,CAACC,SAAS,CAACd,YAAW,CAACe,MAAM,EAAE,CAAC,CAAC;MAClD;IACJ,CAAC,CAAC;EACN;EAEA,oBACI,6BAAC,gCAAe;IAAC,aAAa,EAAEhB;EAAc,gBAC1C,4DACK3C,aAAa,IAAIA,aAAa,eAC/B;IACI,SAAS,EAAE,cAAe;IAC1B,GAAG,EAAEqB,SAAU;IACf,KAAK,0FAAOb,MAAM,GAAK0B,SAAS;MAAE0B,QAAQ,EAAE;IAAM;EAAG,gBAGrD,6BAAC,qCAAc;IAAC,QAAQ,EAAEP;EAAe,EAAG,EAC3CnD,KAAK,iBAAI,6BAAC,kDAAwB;IAAC,KAAK,EAAEA;EAAM,EAAG,eACpD,6BAAC,2CAAiB,OAAG,eACrB,6BAAC,mCAAa;IAAC,oBAAoB,EAAEiB;EAAa,EAAG,EAEpDb,MAAM,iBAAI,6BAAC,gCAAe;IAAC,MAAM,EAAEA;EAAO,EAAG,EAC7CC,KAAK,iBAAI,6BAAC,uCAAe,OAAG,EAE5B+B,aAAa,EACbjC,QAAQ,eACT,6BAAC,qCAAc;IACX,eAAe,eACX;MAAK,SAAS,EAAC,iBAAiB;MAAC,KAAK,kCAAO6B,SAAS;IAAG,gBACrD;MAAK,SAAS,EAAC,QAAQ;MAAC,GAAG,EAAEF;IAAM,gBAC/B,6BAAC,uCAAe;MACZ,KAAK;QAAI6B,OAAO,EAAE;MAAC,GAAK/C,qBAAqB;IAAG,EAClD,CACA,CAEb;IACD,WAAW,EAAEM,eAAgB;IAC7B,aAAa,EAAE0C;EAAqB,EACtC,EAEDrC,kBAAkB,IAAI1B,OAAO,CAC5B,CACP,CACW;AAE1B,CAAC;;AAED;AACA;AACA;AACO,IAAMgE,cAAc,GAAG,IAAAC,gCAAc,EAAsB,gBAAgB,EAAE,UAAAC,KAAK,EAAI;EACzF,oBACI,6BAAC,4CAAuB,qBACpB,6BAAC,6CAAsB,qBACnB,6BAAC,kBAAU,QACN,iBAAa;IAAA;IAAA,IAAVC,GAAG,SAAHA,GAAG;IACH,IAAMtD,eAAe,4BACjBqD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAErD,eAAe,yEAAI,IAAAuD,8CAAsB,EAACD,GAAG,EAAED,KAAK,CAACtD,KAAK,CAAC;IACtE,oBACI,6BAAC,0CAAoB,qBACjB,6BAAC,kBAAkB,oBAAKsD,KAAK;MAAE,eAAe,EAAErD;IAAgB,GAAG,CAChD;EAE/B,CAAC,CACQ,CACQ,CACH;AAElC,CAAC,CAAC;AAAC"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_react2","_LexicalComposer","_LexicalOnChangePlugin","_LexicalAutoFocusPlugin","_LexicalClearEditorPlugin","_LexicalRichTextPlugin","_LexicalErrorBoundary","_interopRequireDefault","_reactComposition","_LexicalHistoryPlugin","_LexicalContentEditable","_RichTextEditorContext","_isValidLexicalData","_LexicalUpdateStatePlugin","_BlurEventPlugin","_Placeholder","_generateInitialLexicalValue","_lexicalTheme","_lexicalNodes","_SharedHistoryContext","_useRichTextEditor2","_LexicalEditorConfig","BaseRichTextEditor","_ref","toolbar","staticToolbar","onChange","value","nodes","placeholder","children","onBlur","focus","styles","width","height","theme","themeEmotionMap","toolbarActionPlugins","contentEditableStyles","placeholderStyles","editorTheme","useRef","createTheme","config","useLexicalEditorConfig","_useSharedHistoryCont","useSharedHistoryContext","historyState","placeholderElem","default","createElement","Placeholder","scrollRef","_useState","useState","undefined","_useState2","_slicedToArray2","floatingAnchorElem","setFloatingAnchorElem","_useRichTextEditor","useRichTextEditor","setTheme","setThemeEmotionMap","setToolbarActionPlugins","useEffect","onRef","_floatingAnchorElem","sizeStyle","configNodes","map","node","configPlugins","plugins","plugin","Fragment","key","name","element","editorValue","isValidLexicalData","generateInitialLexicalValue","initialConfig","editorState","namespace","onError","concat","_toConsumableArray2","allNodes","_objectSpread2","current","emotionMap","handleOnChange","editor","read","getEditorState","JSON","stringify","toJSON","LexicalComposer","length","className","ref","style","overflow","position","OnChangePlugin","UpdateStatePlugin","ClearEditorPlugin","HistoryPlugin","externalHistoryState","BlurEventPlugin","AutoFocusPlugin","RichTextPlugin","contentEditable","ContentEditable","outline","ErrorBoundary","LexicalErrorBoundary","RichTextEditor","makeComposable","props","LexicalEditorWithConfig","RichTextEditorProvider","ClassNames","_ref2","css","toTypographyEmotionMap","themeStylesTransformer","SharedHistoryContext","Object","assign","exports"],"sources":["RichTextEditor.tsx"],"sourcesContent":["import React, { Fragment, useEffect, useRef, useState } from \"react\";\nimport { ClassNames, CSSObject } from \"@emotion/react\";\nimport { Klass, LexicalEditor, LexicalNode } from \"lexical\";\nimport { EditorState } from \"lexical/LexicalEditorState\";\nimport { LexicalComposer } from \"@lexical/react/LexicalComposer\";\nimport { OnChangePlugin } from \"@lexical/react/LexicalOnChangePlugin\";\nimport { AutoFocusPlugin } from \"@lexical/react/LexicalAutoFocusPlugin\";\nimport { ClearEditorPlugin } from \"@lexical/react/LexicalClearEditorPlugin\";\nimport { RichTextPlugin } from \"@lexical/react/LexicalRichTextPlugin\";\nimport LexicalErrorBoundary from \"@lexical/react/LexicalErrorBoundary\";\nimport { makeComposable } from \"@webiny/react-composition\";\nimport { HistoryPlugin } from \"@lexical/react/LexicalHistoryPlugin\";\nimport { ContentEditable } from \"@lexical/react/LexicalContentEditable\";\nimport { RichTextEditorProvider } from \"~/context/RichTextEditorContext\";\nimport { isValidLexicalData } from \"~/utils/isValidLexicalData\";\nimport { UpdateStatePlugin } from \"~/plugins/LexicalUpdateStatePlugin\";\nimport { BlurEventPlugin } from \"~/plugins/BlurEventPlugin/BlurEventPlugin\";\nimport { LexicalValue, ToolbarActionPlugin } from \"~/types\";\nimport { Placeholder } from \"~/ui/Placeholder\";\nimport { generateInitialLexicalValue } from \"~/utils/generateInitialLexicalValue\";\nimport {\n createTheme,\n WebinyTheme,\n ThemeEmotionMap,\n toTypographyEmotionMap\n} from \"@webiny/lexical-theme\";\nimport { allNodes } from \"@webiny/lexical-nodes\";\nimport { SharedHistoryContext, useSharedHistoryContext } from \"~/context/SharedHistoryContext\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\nimport {\n LexicalEditorWithConfig,\n useLexicalEditorConfig\n} from \"~/components/LexicalEditorConfig/LexicalEditorConfig\";\n\nexport interface RichTextEditorProps {\n children?: React.ReactNode | React.ReactNode[];\n classes?: string;\n contentEditableStyles?: React.CSSProperties;\n focus?: boolean;\n height?: number | string;\n nodes?: Klass<LexicalNode>[];\n onBlur?: (editorState: LexicalValue) => void;\n onChange?: (json: LexicalValue) => void;\n placeholder?: string;\n placeholderStyles?: React.CSSProperties;\n staticToolbar?: React.ReactNode;\n styles?: React.CSSProperties;\n tag?: string;\n theme: WebinyTheme;\n themeEmotionMap?: ThemeEmotionMap;\n themeStylesTransformer?: (cssObject: Record<string, any>) => CSSObject;\n toolbar?: React.ReactNode;\n toolbarActionPlugins?: ToolbarActionPlugin[];\n value: LexicalValue | null;\n width?: number | string;\n}\n\nconst BaseRichTextEditor = ({\n toolbar,\n staticToolbar,\n onChange,\n value,\n nodes,\n placeholder,\n children,\n onBlur,\n focus,\n styles,\n width,\n height,\n theme,\n themeEmotionMap,\n toolbarActionPlugins,\n contentEditableStyles,\n placeholderStyles\n}: RichTextEditorProps) => {\n const editorTheme = useRef(createTheme());\n const config = useLexicalEditorConfig();\n const { historyState } = useSharedHistoryContext();\n const placeholderElem = (\n <Placeholder styles={placeholderStyles}>{placeholder || \"Enter text...\"}</Placeholder>\n );\n const scrollRef = useRef(null);\n const [floatingAnchorElem, setFloatingAnchorElem] = useState<HTMLElement | undefined>(\n undefined\n );\n const { setTheme, setThemeEmotionMap, setToolbarActionPlugins } = useRichTextEditor();\n\n useEffect(() => {\n setTheme(theme);\n setThemeEmotionMap(themeEmotionMap);\n }, [themeEmotionMap, theme]);\n\n useEffect(() => {\n if (toolbarActionPlugins) {\n setToolbarActionPlugins(toolbarActionPlugins || []);\n }\n }, [toolbarActionPlugins]);\n\n const onRef = (_floatingAnchorElem: HTMLDivElement) => {\n if (_floatingAnchorElem !== null) {\n setFloatingAnchorElem(_floatingAnchorElem);\n }\n };\n\n const sizeStyle = {\n height: height || \"\",\n width: width || \"\"\n };\n\n const configNodes = config.nodes.map(node => node.node);\n const configPlugins = config.plugins.map(plugin => (\n <Fragment key={plugin.name}>{plugin.element}</Fragment>\n ));\n\n const editorValue = isValidLexicalData(value) ? value : generateInitialLexicalValue();\n\n const initialConfig = {\n // We update the state via the `<LexicalUpdateStatePlugin/>`.\n editorState: null,\n namespace: \"webiny\",\n onError: () => {\n // Ignore errors. We don't want to break the app because of errors caused by config/value updates.\n // These are usually resolved in the next component render cycle.\n },\n nodes: [...allNodes, ...configNodes, ...(nodes || [])],\n theme: { ...editorTheme.current, emotionMap: themeEmotionMap }\n };\n\n function handleOnChange(editorState: EditorState, editor: LexicalEditor) {\n editorState.read(() => {\n if (typeof onChange === \"function\") {\n const editorState = editor.getEditorState();\n onChange(JSON.stringify(editorState.toJSON()));\n }\n });\n }\n\n return (\n /**\n * Once the LexicalComposer is mounted, it caches the `initialConfig` internally, and all future\n * updates to the config will be ignored. This is a problem because we pull in Nodes from our config,\n * and initially, there can be multiple re-renders, while the config object is settled.\n *\n * To bypass this issue, we generate a naive `key` based on the number of Nodes.\n */\n <LexicalComposer initialConfig={initialConfig} key={initialConfig.nodes.length}>\n <>\n {staticToolbar && staticToolbar}\n <div\n /* This className is necessary for targeting of editor container from CSS files. */\n className={\"editor-shell\"}\n ref={scrollRef}\n style={{ ...styles, ...sizeStyle, overflow: \"auto\", position: \"relative\" }}\n >\n {/* data */}\n <OnChangePlugin onChange={handleOnChange} />\n <UpdateStatePlugin value={editorValue} />\n <ClearEditorPlugin />\n <HistoryPlugin externalHistoryState={historyState} />\n {/* Events */}\n {onBlur && <BlurEventPlugin onBlur={onBlur} />}\n {focus && <AutoFocusPlugin />}\n {/* External plugins and components */}\n {configPlugins}\n {children}\n <RichTextPlugin\n contentEditable={\n <div className=\"editor-scroller\" style={{ ...sizeStyle }}>\n <div className=\"editor\" ref={onRef}>\n <ContentEditable\n style={{ outline: 0, ...contentEditableStyles }}\n />\n </div>\n </div>\n }\n placeholder={placeholderElem}\n ErrorBoundary={LexicalErrorBoundary}\n />\n {/* Toolbar */}\n {floatingAnchorElem && toolbar}\n </div>\n </>\n </LexicalComposer>\n );\n};\n\n/**\n * @description Main editor container\n */\nexport const RichTextEditor = makeComposable<RichTextEditorProps>(\"RichTextEditor\", props => {\n return (\n <LexicalEditorWithConfig>\n <RichTextEditorProvider>\n <ClassNames>\n {({ css }) => {\n const themeEmotionMap =\n props?.themeEmotionMap ??\n toTypographyEmotionMap(css, props.theme, props.themeStylesTransformer);\n return (\n <SharedHistoryContext>\n <BaseRichTextEditor {...props} themeEmotionMap={themeEmotionMap} />\n </SharedHistoryContext>\n );\n }}\n </ClassNames>\n </RichTextEditorProvider>\n </LexicalEditorWithConfig>\n );\n});\n"],"mappings":"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"}
@@ -6,9 +6,9 @@ export declare const LexicalEditorConfig: {
6
6
  ({ children }: {
7
7
  children: React.ReactNode;
8
8
  }): JSX.Element;
9
- ToolbarElement: React.FC<import("./components/ToolbarElement").ToolbarElementProps>;
10
- Plugin: React.FC<import("./components/Plugin").PluginProps>;
11
- Node: React.FC<import("./components/Node").NodeProps>;
9
+ ToolbarElement: ({ name, element, after, before, remove }: import("./components/ToolbarElement").ToolbarElementProps) => JSX.Element;
10
+ Plugin: ({ name, element, after, before, remove }: import("./components/Plugin").PluginProps) => JSX.Element;
11
+ Node: ({ name, node, after, before, remove }: import("./components/Node").NodeProps) => JSX.Element;
12
12
  };
13
13
  export declare const LexicalEditorWithConfig: ({ children }: {
14
14
  children: React.ReactNode;
@@ -70,4 +70,6 @@ function useLexicalEditorConfig() {
70
70
  plugins: config.plugins || [],
71
71
  nodes: config.nodes || []
72
72
  };
73
- }
73
+ }
74
+
75
+ //# sourceMappingURL=LexicalEditorConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["LexicalEditorConfigApply","makeComposable","children","createHOC","newChildren","BaseComponent","ConfigHOC","LexicalEditorConfig","ToolbarElement","Plugin","Node","ViewContext","React","createContext","properties","LexicalEditorWithConfig","useState","setProperties","context","stateUpdater","useLexicalEditorConfig","useContext","config","useMemo","toObject","toolbarElements","plugins","nodes"],"sources":["LexicalEditorConfig.tsx"],"sourcesContent":["import React, { useContext, useMemo, useState } from \"react\";\nimport { makeComposable, Compose, HigherOrderComponent } from \"@webiny/react-composition\";\nimport { Property, Properties, toObject } from \"@webiny/react-properties\";\nimport { ToolbarElement, ToolbarElementConfig } from \"./components/ToolbarElement\";\nimport { Plugin, PluginConfig } from \"./components/Plugin\";\nimport { Node, NodeConfig } from \"./components/Node\";\n\nconst LexicalEditorConfigApply = makeComposable(\"LexicalEditorConfigApply\", ({ children }) => {\n return <>{children}</>;\n});\n\nconst createHOC =\n (newChildren: React.ReactNode): HigherOrderComponent =>\n BaseComponent => {\n return function ConfigHOC({ children }) {\n return (\n <BaseComponent>\n {newChildren}\n {children}\n </BaseComponent>\n );\n };\n };\n\nexport const LexicalEditorConfig = ({ children }: { children: React.ReactNode }) => {\n return <Compose component={LexicalEditorConfigApply} with={createHOC(children)} />;\n};\n\nLexicalEditorConfig.ToolbarElement = ToolbarElement;\nLexicalEditorConfig.Plugin = Plugin;\nLexicalEditorConfig.Node = Node;\n\ninterface ViewContext {\n properties: Property[];\n}\n\nconst ViewContext = React.createContext<ViewContext>({ properties: [] });\n\nexport const LexicalEditorWithConfig = ({ children }: { children: React.ReactNode }) => {\n const [properties, setProperties] = useState<Property[]>([]);\n const context = { properties };\n\n const stateUpdater = (properties: Property[]) => {\n setProperties(properties);\n };\n\n return (\n <ViewContext.Provider value={context}>\n <Properties onChange={stateUpdater}>\n <LexicalEditorConfigApply />\n {children}\n </Properties>\n </ViewContext.Provider>\n );\n};\n\ninterface LexicalEditorConfigData {\n toolbarElements: ToolbarElementConfig[];\n plugins: PluginConfig[];\n nodes: NodeConfig[];\n}\n\nexport function useLexicalEditorConfig() {\n const { properties } = useContext(ViewContext);\n\n const config = useMemo(() => {\n return toObject<LexicalEditorConfigData>(properties);\n }, [properties]);\n\n return {\n toolbarElements: config.toolbarElements || [],\n plugins: config.plugins || [],\n nodes: config.nodes || []\n };\n}\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMA,wBAAwB,GAAG,IAAAC,gCAAc,EAAC,0BAA0B,EAAE,gBAAkB;EAAA,IAAfC,QAAQ,QAARA,QAAQ;EACnF,oBAAO,4DAAGA,QAAQ,CAAI;AAC1B,CAAC,CAAC;AAEF,IAAMC,SAAS,GACX,SADEA,SAAS,CACVC,WAA4B;EAAA,OAC7B,UAAAC,aAAa,EAAI;IACb,OAAO,SAASC,SAAS,QAAe;MAAA,IAAZJ,QAAQ,SAARA,QAAQ;MAChC,oBACI,6BAAC,aAAa,QACTE,WAAW,EACXF,QAAQ,CACG;IAExB,CAAC;EACL,CAAC;AAAA;AAEE,IAAMK,mBAAmB,GAAG,SAAtBA,mBAAmB,QAAoD;EAAA,IAA9CL,QAAQ,SAARA,QAAQ;EAC1C,oBAAO,6BAAC,yBAAO;IAAC,SAAS,EAAEF,wBAAyB;IAAC,IAAI,EAAEG,SAAS,CAACD,QAAQ;EAAE,EAAG;AACtF,CAAC;AAAC;AAEFK,mBAAmB,CAACC,cAAc,GAAGA,8BAAc;AACnDD,mBAAmB,CAACE,MAAM,GAAGA,cAAM;AACnCF,mBAAmB,CAACG,IAAI,GAAGA,UAAI;AAM/B,IAAMC,WAAW,gBAAGC,cAAK,CAACC,aAAa,CAAc;EAAEC,UAAU,EAAE;AAAG,CAAC,CAAC;AAEjE,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuB,QAAoD;EAAA,IAA9Cb,QAAQ,SAARA,QAAQ;EAC9C,gBAAoC,IAAAc,eAAQ,EAAa,EAAE,CAAC;IAAA;IAArDF,UAAU;IAAEG,aAAa;EAChC,IAAMC,OAAO,GAAG;IAAEJ,UAAU,EAAVA;EAAW,CAAC;EAE9B,IAAMK,YAAY,GAAG,SAAfA,YAAY,CAAIL,UAAsB,EAAK;IAC7CG,aAAa,CAACH,UAAU,CAAC;EAC7B,CAAC;EAED,oBACI,6BAAC,WAAW,CAAC,QAAQ;IAAC,KAAK,EAAEI;EAAQ,gBACjC,6BAAC,2BAAU;IAAC,QAAQ,EAAEC;EAAa,gBAC/B,6BAAC,wBAAwB,OAAG,EAC3BjB,QAAQ,CACA,CACM;AAE/B,CAAC;AAAC;AAQK,SAASkB,sBAAsB,GAAG;EACrC,kBAAuB,IAAAC,iBAAU,EAACV,WAAW,CAAC;IAAtCG,UAAU,eAAVA,UAAU;EAElB,IAAMQ,MAAM,GAAG,IAAAC,cAAO,EAAC,YAAM;IACzB,OAAO,IAAAC,yBAAQ,EAA0BV,UAAU,CAAC;EACxD,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAEhB,OAAO;IACHW,eAAe,EAAEH,MAAM,CAACG,eAAe,IAAI,EAAE;IAC7CC,OAAO,EAAEJ,MAAM,CAACI,OAAO,IAAI,EAAE;IAC7BC,KAAK,EAAEL,MAAM,CAACK,KAAK,IAAI;EAC3B,CAAC;AACL"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactComposition","_reactProperties","_ToolbarElement","_Plugin","_Node","LexicalEditorConfigApply","makeComposable","_ref","children","default","createElement","Fragment","createHOC","newChildren","BaseComponent","ConfigHOC","_ref2","LexicalEditorConfig","_ref3","Compose","component","with","exports","ToolbarElement","Plugin","Node","ViewContext","React","createContext","properties","LexicalEditorWithConfig","_ref4","_useState","useState","_useState2","_slicedToArray2","setProperties","context","stateUpdater","Provider","value","Properties","onChange","useLexicalEditorConfig","_useContext","useContext","config","useMemo","toObject","toolbarElements","plugins","nodes"],"sources":["LexicalEditorConfig.tsx"],"sourcesContent":["import React, { useContext, useMemo, useState } from \"react\";\nimport { makeComposable, Compose, HigherOrderComponent } from \"@webiny/react-composition\";\nimport { Property, Properties, toObject } from \"@webiny/react-properties\";\nimport { ToolbarElement, ToolbarElementConfig } from \"./components/ToolbarElement\";\nimport { Plugin, PluginConfig } from \"./components/Plugin\";\nimport { Node, NodeConfig } from \"./components/Node\";\n\nconst LexicalEditorConfigApply = makeComposable(\"LexicalEditorConfigApply\", ({ children }) => {\n return <>{children}</>;\n});\n\nconst createHOC =\n (newChildren: React.ReactNode): HigherOrderComponent =>\n BaseComponent => {\n return function ConfigHOC({ children }) {\n return (\n <BaseComponent>\n {newChildren}\n {children}\n </BaseComponent>\n );\n };\n };\n\nexport const LexicalEditorConfig = ({ children }: { children: React.ReactNode }) => {\n return <Compose component={LexicalEditorConfigApply} with={createHOC(children)} />;\n};\n\nLexicalEditorConfig.ToolbarElement = ToolbarElement;\nLexicalEditorConfig.Plugin = Plugin;\nLexicalEditorConfig.Node = Node;\n\ninterface ViewContext {\n properties: Property[];\n}\n\nconst ViewContext = React.createContext<ViewContext>({ properties: [] });\n\nexport const LexicalEditorWithConfig = ({ children }: { children: React.ReactNode }) => {\n const [properties, setProperties] = useState<Property[]>([]);\n const context = { properties };\n\n const stateUpdater = (properties: Property[]) => {\n setProperties(properties);\n };\n\n return (\n <ViewContext.Provider value={context}>\n <Properties onChange={stateUpdater}>\n <LexicalEditorConfigApply />\n {children}\n </Properties>\n </ViewContext.Provider>\n );\n};\n\ninterface LexicalEditorConfigData {\n toolbarElements: ToolbarElementConfig[];\n plugins: PluginConfig[];\n nodes: NodeConfig[];\n}\n\nexport function useLexicalEditorConfig() {\n const { properties } = useContext(ViewContext);\n\n const config = useMemo(() => {\n return toObject<LexicalEditorConfigData>(properties);\n }, [properties]);\n\n return {\n toolbarElements: config.toolbarElements || [],\n plugins: config.plugins || [],\n nodes: config.nodes || []\n };\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React from "react";
1
+ /// <reference types="react" />
2
2
  import { Klass, LexicalNode } from "lexical";
3
3
  export interface NodeConfig {
4
4
  name: string;
@@ -11,4 +11,4 @@ export interface NodeProps {
11
11
  before?: string;
12
12
  after?: string;
13
13
  }
14
- export declare const Node: React.FC<NodeProps>;
14
+ export declare const Node: ({ name, node, after, before, remove }: NodeProps) => JSX.Element;