@webiny/lexical-editor 5.37.8 → 5.38.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) 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.js +3 -1
  14. package/components/Editor/ParagraphEditor.js +3 -1
  15. package/components/Editor/RichTextEditor.d.ts +2 -2
  16. package/components/Editor/RichTextEditor.js +19 -12
  17. package/components/Editor/RichTextEditor.js.map +1 -1
  18. package/components/LexicalEditorConfig/LexicalEditorConfig.js +3 -1
  19. package/components/LexicalEditorConfig/components/Node.js +3 -1
  20. package/components/LexicalEditorConfig/components/Plugin.js +3 -1
  21. package/components/LexicalEditorConfig/components/ToolbarElement.js +3 -1
  22. package/components/LexicalHtmlRenderer.d.ts +2 -2
  23. package/components/LexicalHtmlRenderer.js +24 -17
  24. package/components/LexicalHtmlRenderer.js.map +1 -1
  25. package/components/Toolbar/StaticToolbar.d.ts +2 -2
  26. package/components/Toolbar/StaticToolbar.js +7 -78
  27. package/components/Toolbar/StaticToolbar.js.map +1 -1
  28. package/components/Toolbar/Toolbar.d.ts +1 -1
  29. package/components/Toolbar/Toolbar.js +27 -80
  30. package/components/Toolbar/Toolbar.js.map +1 -1
  31. package/components/ToolbarActions/BoldAction.js +10 -20
  32. package/components/ToolbarActions/BoldAction.js.map +1 -1
  33. package/components/ToolbarActions/BulletListAction.js +17 -23
  34. package/components/ToolbarActions/BulletListAction.js.map +1 -1
  35. package/components/ToolbarActions/CodeHighlightAction.js +10 -20
  36. package/components/ToolbarActions/CodeHighlightAction.js.map +1 -1
  37. package/components/ToolbarActions/FontColorAction.js +20 -37
  38. package/components/ToolbarActions/FontColorAction.js.map +1 -1
  39. package/components/ToolbarActions/FontSizeAction.js +11 -27
  40. package/components/ToolbarActions/FontSizeAction.js.map +1 -1
  41. package/components/ToolbarActions/ImageAction.js +6 -4
  42. package/components/ToolbarActions/ImageAction.js.map +1 -1
  43. package/components/ToolbarActions/ItalicAction.js +10 -20
  44. package/components/ToolbarActions/ItalicAction.js.map +1 -1
  45. package/components/ToolbarActions/LinkAction.js +18 -36
  46. package/components/ToolbarActions/LinkAction.js.map +1 -1
  47. package/components/ToolbarActions/NumberedListAction.js +18 -27
  48. package/components/ToolbarActions/NumberedListAction.js.map +1 -1
  49. package/components/ToolbarActions/QuoteAction.js +15 -24
  50. package/components/ToolbarActions/QuoteAction.js.map +1 -1
  51. package/components/ToolbarActions/TextAlignmentAction.js +27 -21
  52. package/components/ToolbarActions/TextAlignmentAction.js.map +1 -1
  53. package/components/ToolbarActions/TypographyAction.js +53 -60
  54. package/components/ToolbarActions/TypographyAction.js.map +1 -1
  55. package/components/ToolbarActions/UnderlineAction.js +11 -21
  56. package/components/ToolbarActions/UnderlineAction.js.map +1 -1
  57. package/context/FontColorActionContext.js +3 -1
  58. package/context/RichTextEditorContext.d.ts +2 -6
  59. package/context/RichTextEditorContext.js +20 -36
  60. package/context/RichTextEditorContext.js.map +1 -1
  61. package/context/SharedHistoryContext.js +3 -1
  62. package/context/TextAlignmentActionContextProps.js +3 -1
  63. package/context/TypographyActionContext.d.ts +1 -1
  64. package/context/TypographyActionContext.js +3 -1
  65. package/context/TypographyActionContext.js.map +1 -1
  66. package/hooks/index.d.ts +7 -0
  67. package/hooks/index.js +84 -0
  68. package/hooks/index.js.map +1 -0
  69. package/hooks/useCurrentElement.d.ts +7 -0
  70. package/hooks/useCurrentElement.js +33 -0
  71. package/hooks/useCurrentElement.js.map +1 -0
  72. package/hooks/useCurrentSelection.d.ts +12 -0
  73. package/hooks/useCurrentSelection.js +72 -0
  74. package/hooks/useCurrentSelection.js.map +1 -0
  75. package/hooks/useFontColorPicker.js +3 -1
  76. package/hooks/useIsMounted.d.ts +1 -0
  77. package/hooks/useIsMounted.js +20 -0
  78. package/hooks/useIsMounted.js.map +1 -0
  79. package/hooks/useList.js +22 -21
  80. package/hooks/useList.js.map +1 -1
  81. package/hooks/useQuote.d.ts +1 -1
  82. package/hooks/useQuote.js +9 -7
  83. package/hooks/useQuote.js.map +1 -1
  84. package/hooks/useRichTextEditor.js +3 -1
  85. package/hooks/useTextAlignmentAction.js +3 -1
  86. package/hooks/useTypographyAction.js +3 -1
  87. package/index.d.ts +4 -8
  88. package/index.js +71 -48
  89. package/index.js.map +1 -1
  90. package/package.json +16 -20
  91. package/plugins/BlurEventPlugin/BlurEventPlugin.js +3 -1
  92. package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.js +3 -1
  93. package/plugins/CodeHighlightPlugin/index.js +3 -1
  94. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js +11 -9
  95. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js.map +1 -1
  96. package/plugins/FloatingLinkEditorPlugin/index.js +3 -1
  97. package/plugins/FontColorPlugin/FontColorPlugin.js +8 -7
  98. package/plugins/FontColorPlugin/FontColorPlugin.js.map +1 -1
  99. package/plugins/ImagesPlugin/ImagesPlugin.d.ts +1 -1
  100. package/plugins/ImagesPlugin/ImagesPlugin.js +11 -9
  101. package/plugins/ImagesPlugin/ImagesPlugin.js.map +1 -1
  102. package/plugins/LexicalUpdateStatePlugin/UpdateStatePlugin.d.ts +9 -0
  103. package/plugins/LexicalUpdateStatePlugin/{LexicalUpdateStatePlugin.js → UpdateStatePlugin.js} +22 -14
  104. package/plugins/LexicalUpdateStatePlugin/UpdateStatePlugin.js.map +1 -0
  105. package/plugins/LexicalUpdateStatePlugin/index.d.ts +1 -1
  106. package/plugins/LexicalUpdateStatePlugin/index.js +7 -5
  107. package/plugins/LexicalUpdateStatePlugin/index.js.map +1 -1
  108. package/plugins/LinkPlugin/LinkPlugin.d.ts +5 -0
  109. package/plugins/LinkPlugin/LinkPlugin.js +68 -0
  110. package/plugins/LinkPlugin/LinkPlugin.js.map +1 -0
  111. package/plugins/ListPLugin/ListPlugin.js +6 -5
  112. package/plugins/ListPLugin/ListPlugin.js.map +1 -1
  113. package/plugins/TypographyPlugin/TypographyPlugin.js +7 -7
  114. package/plugins/TypographyPlugin/TypographyPlugin.js.map +1 -1
  115. package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.js +6 -4
  116. package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.js.map +1 -1
  117. package/types.d.ts +1 -60
  118. package/types.js +5 -3
  119. package/types.js.map +1 -1
  120. package/ui/ContentEditable.js +3 -1
  121. package/ui/Divider.js +3 -1
  122. package/ui/DropDown.js +3 -1
  123. package/ui/ImageResizer.js +3 -1
  124. package/ui/LinkPreview.js +3 -1
  125. package/ui/Placeholder.js +3 -1
  126. package/ui/TextInput.js +3 -1
  127. package/ui/ToolbarActionDialog.js +3 -1
  128. package/utils/canUseDOM.js +3 -1
  129. package/utils/files.d.ts +1 -1
  130. package/utils/files.js +3 -1
  131. package/utils/files.js.map +1 -1
  132. package/utils/generateInitialLexicalValue.js +3 -1
  133. package/utils/getDOMRangeRect.js +3 -1
  134. package/utils/getSelectedNode.js +3 -1
  135. package/utils/getTransparentImage.js +3 -1
  136. package/utils/insertImage.d.ts +2 -0
  137. package/utils/{nodes/insertImage.js → insertImage.js} +6 -5
  138. package/utils/insertImage.js.map +1 -0
  139. package/utils/isHTMLElement.js +3 -1
  140. package/utils/isUrlLinkReference.js +3 -1
  141. package/utils/isValidJSON.js +3 -1
  142. package/utils/isValidLexicalData.js +3 -1
  143. package/utils/point.js +3 -1
  144. package/utils/rect.js +3 -1
  145. package/utils/sanitizeUrl.js +3 -1
  146. package/utils/setFloatingElemPosition.js +3 -1
  147. package/commands/insertFiles.d.ts +0 -14
  148. package/commands/insertFiles.js.map +0 -1
  149. package/commands/webiny-list.d.ts +0 -7
  150. package/commands/webiny-list.js +0 -13
  151. package/commands/webiny-list.js.map +0 -1
  152. package/commands/webiny-quote.d.ts +0 -5
  153. package/commands/webiny-quote.js +0 -9
  154. package/commands/webiny-quote.js.map +0 -1
  155. package/components/ImageComponent.d.ts +0 -23
  156. package/components/ImageComponent.js +0 -252
  157. package/components/ImageComponent.js.map +0 -1
  158. package/nodes/FontColorNode.d.ts +0 -43
  159. package/nodes/FontColorNode.js +0 -123
  160. package/nodes/FontColorNode.js.map +0 -1
  161. package/nodes/HeadingNode.d.ts +0 -34
  162. package/nodes/HeadingNode.js +0 -191
  163. package/nodes/HeadingNode.js.map +0 -1
  164. package/nodes/ImageNode.d.ts +0 -50
  165. package/nodes/ImageNode.js +0 -206
  166. package/nodes/ImageNode.js.map +0 -1
  167. package/nodes/ListItemNode.d.ts +0 -46
  168. package/nodes/ListItemNode.js +0 -447
  169. package/nodes/ListItemNode.js.map +0 -1
  170. package/nodes/ListNode/formatList.d.ts +0 -19
  171. package/nodes/ListNode/formatList.js +0 -447
  172. package/nodes/ListNode/formatList.js.map +0 -1
  173. package/nodes/ListNode.d.ts +0 -42
  174. package/nodes/ListNode.js +0 -288
  175. package/nodes/ListNode.js.map +0 -1
  176. package/nodes/ParagraphNode.d.ts +0 -32
  177. package/nodes/ParagraphNode.js +0 -218
  178. package/nodes/ParagraphNode.js.map +0 -1
  179. package/nodes/QuoteNode.d.ts +0 -34
  180. package/nodes/QuoteNode.js +0 -225
  181. package/nodes/QuoteNode.js.map +0 -1
  182. package/nodes/TypographyElementNode.d.ts +0 -42
  183. package/nodes/TypographyElementNode.js +0 -151
  184. package/nodes/TypographyElementNode.js.map +0 -1
  185. package/nodes/imageNode.css +0 -43
  186. package/nodes/link-node.d.ts +0 -19
  187. package/nodes/link-node.js +0 -120
  188. package/nodes/link-node.js.map +0 -1
  189. package/nodes/types.d.ts +0 -15
  190. package/nodes/types.js +0 -5
  191. package/nodes/types.js.map +0 -1
  192. package/nodes/webinyNodes.d.ts +0 -7
  193. package/nodes/webinyNodes.js +0 -60
  194. package/nodes/webinyNodes.js.map +0 -1
  195. package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.d.ts +0 -8
  196. package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.js.map +0 -1
  197. package/themes/webinyLexicalTheme.css +0 -423
  198. package/themes/webinyLexicalTheme.d.ts +0 -9
  199. package/themes/webinyLexicalTheme.js +0 -90
  200. package/themes/webinyLexicalTheme.js.map +0 -1
  201. package/utils/findTypographyStyleByHtmlTag.d.ts +0 -8
  202. package/utils/findTypographyStyleByHtmlTag.js +0 -16
  203. package/utils/findTypographyStyleByHtmlTag.js.map +0 -1
  204. package/utils/getLexicalTextSelectionState.d.ts +0 -5
  205. package/utils/getLexicalTextSelectionState.js +0 -167
  206. package/utils/getLexicalTextSelectionState.js.map +0 -1
  207. package/utils/nodes/clearNodeFormating.d.ts +0 -2
  208. package/utils/nodes/clearNodeFormating.js +0 -28
  209. package/utils/nodes/clearNodeFormating.js.map +0 -1
  210. package/utils/nodes/formatToHeading.d.ts +0 -3
  211. package/utils/nodes/formatToHeading.js +0 -25
  212. package/utils/nodes/formatToHeading.js.map +0 -1
  213. package/utils/nodes/formatToParagraph.d.ts +0 -2
  214. package/utils/nodes/formatToParagraph.js +0 -20
  215. package/utils/nodes/formatToParagraph.js.map +0 -1
  216. package/utils/nodes/formatToQuote.d.ts +0 -2
  217. package/utils/nodes/formatToQuote.js +0 -25
  218. package/utils/nodes/formatToQuote.js.map +0 -1
  219. package/utils/nodes/insertImage.d.ts +0 -2
  220. package/utils/nodes/insertImage.js.map +0 -1
  221. package/utils/nodes/listNode.d.ts +0 -11
  222. package/utils/nodes/listNode.js +0 -107
  223. package/utils/nodes/listNode.js.map +0 -1
  224. package/utils/styleObjectToString.d.ts +0 -2
  225. package/utils/styleObjectToString.js +0 -22
  226. package/utils/styleObjectToString.js.map +0 -1
  227. package/utils/toTypographyEmotionMap.d.ts +0 -3
  228. package/utils/toTypographyEmotionMap.js +0 -41
  229. package/utils/toTypographyEmotionMap.js.map +0 -1
@@ -9,9 +9,11 @@ exports.TextAlignmentAction = exports.BaseTextAlignmentDropDown = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _lexical = require("lexical");
12
- var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
12
+ var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
13
13
  var _reactComposition = require("@webiny/react-composition");
14
14
  var _TextAlignmentActionContextProps = require("../../context/TextAlignmentActionContextProps");
15
+ var _useCurrentSelection = require("../../hooks/useCurrentSelection");
16
+ var _getSelectedNode = require("../../utils/getSelectedNode");
15
17
  /*
16
18
  * Base text alignment dropdown composable component.
17
19
  * Note: To add a custom dropdown component use @see LexicalEditorConfig API.
@@ -35,36 +37,40 @@ var TextAlignmentActionDropDown = function TextAlignmentActionDropDown(_ref) {
35
37
  });
36
38
  };
37
39
  var TextAlignmentAction = function TextAlignmentAction() {
38
- var _useRichTextEditor = (0, _useRichTextEditor2.useRichTextEditor)(),
39
- activeEditor = _useRichTextEditor.activeEditor;
40
- var _useState = (0, _react.useState)(""),
41
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
42
- alignmentValue = _useState2[0],
43
- setAlignmentValue = _useState2[1];
44
- var applyTextAlignment = function applyTextAlignment(value) {
45
- if (activeEditor) {
46
- activeEditor.dispatchCommand(_lexical.FORMAT_ELEMENT_COMMAND, value);
47
- setAlignmentValue(value);
40
+ var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
41
+ _useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
42
+ editor = _useLexicalComposerCo2[0];
43
+ var alignmentValue = (0, _useCurrentSelection.useDeriveValueFromSelection)(function (_ref2) {
44
+ var rangeSelection = _ref2.rangeSelection;
45
+ var node = rangeSelection ? (0, _getSelectedNode.getSelectedNode)(rangeSelection) : null;
46
+ if (node) {
47
+ var _node$getParent;
48
+ return ((_node$getParent = node.getParent()) === null || _node$getParent === void 0 ? void 0 : _node$getParent.getFormatType()) || "";
48
49
  }
50
+ return "";
51
+ });
52
+ var applyTextAlignment = function applyTextAlignment(value) {
53
+ editor.dispatchCommand(_lexical.FORMAT_ELEMENT_COMMAND, value);
49
54
  };
50
55
  var outdentText = function outdentText() {
51
- if (activeEditor) {
52
- activeEditor.dispatchCommand(_lexical.OUTDENT_CONTENT_COMMAND, undefined);
53
- }
56
+ editor.dispatchCommand(_lexical.OUTDENT_CONTENT_COMMAND, undefined);
54
57
  };
55
58
  var indentText = function indentText() {
56
- if (activeEditor) {
57
- activeEditor.dispatchCommand(_lexical.INDENT_CONTENT_COMMAND, undefined);
58
- }
59
+ editor.dispatchCommand(_lexical.INDENT_CONTENT_COMMAND, undefined);
59
60
  };
60
- return /*#__PURE__*/_react.default.createElement(_TextAlignmentActionContextProps.TextAlignmentActionContext.Provider, {
61
- value: {
61
+ var context = (0, _react.useMemo)(function () {
62
+ return {
62
63
  value: alignmentValue,
63
64
  applyTextAlignment: applyTextAlignment,
64
65
  outdentText: outdentText,
65
66
  indentText: indentText
66
- }
67
+ };
68
+ }, [alignmentValue]);
69
+ return /*#__PURE__*/_react.default.createElement(_TextAlignmentActionContextProps.TextAlignmentActionContext.Provider, {
70
+ value: context
67
71
  }, /*#__PURE__*/_react.default.createElement(BaseTextAlignmentDropDown, null));
68
72
  };
69
73
  exports.TextAlignmentAction = TextAlignmentAction;
70
- TextAlignmentAction.TextAlignmentDropDown = TextAlignmentActionDropDown;
74
+ TextAlignmentAction.TextAlignmentDropDown = TextAlignmentActionDropDown;
75
+
76
+ //# sourceMappingURL=TextAlignmentAction.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_lexical","_useRichTextEditor2","_reactComposition","_TextAlignmentActionContextProps","BaseTextAlignmentDropDown","makeComposable","useEffect","console","log","exports","TextAlignmentActionDropDown","_ref","element","default","createElement","Compose","component","with","_with","TextAlignmentAction","_useRichTextEditor","useRichTextEditor","activeEditor","_useState","useState","_useState2","_slicedToArray2","alignmentValue","setAlignmentValue","applyTextAlignment","value","dispatchCommand","FORMAT_ELEMENT_COMMAND","outdentText","OUTDENT_CONTENT_COMMAND","undefined","indentText","INDENT_CONTENT_COMMAND","TextAlignmentActionContext","Provider","TextAlignmentDropDown"],"sources":["TextAlignmentAction.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport {\n ElementFormatType,\n FORMAT_ELEMENT_COMMAND,\n INDENT_CONTENT_COMMAND,\n OUTDENT_CONTENT_COMMAND\n} from \"lexical\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\nimport { Compose, makeComposable } from \"@webiny/react-composition\";\nimport { TextAlignmentActionContext } from \"~/context/TextAlignmentActionContextProps\";\n\n/*\n * Base text alignment dropdown composable component.\n * Note: To add a custom dropdown component use @see LexicalEditorConfig API.\n */\nexport const BaseTextAlignmentDropDown = makeComposable(\n \"BaseTextAlignmentDropDown\",\n (): JSX.Element | null => {\n useEffect(() => {\n console.log(\"Default BaseTextAlignmentDropDown, please add your own component\");\n }, []);\n return null;\n }\n);\n\ninterface TextAlignmentActionDropdownProps {\n element: JSX.Element;\n}\n\nconst TextAlignmentActionDropDown: React.FC<TextAlignmentActionDropdownProps> = ({\n element\n}): JSX.Element => {\n return <Compose component={BaseTextAlignmentDropDown} with={() => () => element} />;\n};\n\nexport interface TextAlignmentAction extends React.FC<unknown> {\n TextAlignmentDropDown: typeof TextAlignmentActionDropDown;\n}\n\nexport const TextAlignmentAction: TextAlignmentAction = () => {\n const { activeEditor } = useRichTextEditor();\n const [alignmentValue, setAlignmentValue] = useState<ElementFormatType>(\"\");\n const applyTextAlignment = (value: ElementFormatType) => {\n if (activeEditor) {\n activeEditor.dispatchCommand(FORMAT_ELEMENT_COMMAND, value);\n setAlignmentValue(value);\n }\n };\n\n const outdentText = () => {\n if (activeEditor) {\n activeEditor.dispatchCommand(OUTDENT_CONTENT_COMMAND, undefined);\n }\n };\n\n const indentText = () => {\n if (activeEditor) {\n activeEditor.dispatchCommand(INDENT_CONTENT_COMMAND, undefined);\n }\n };\n\n return (\n <TextAlignmentActionContext.Provider\n value={{ value: alignmentValue, applyTextAlignment, outdentText, indentText }}\n >\n <BaseTextAlignmentDropDown />\n </TextAlignmentActionContext.Provider>\n );\n};\n\nTextAlignmentAction.TextAlignmentDropDown = TextAlignmentActionDropDown;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAMA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,gCAAA,GAAAJ,OAAA;AAEA;AACA;AACA;AACA;AACO,IAAMK,yBAAyB,GAAG,IAAAC,gCAAc,EACnD,2BAA2B,EAC3B,YAA0B;EACtB,IAAAC,gBAAS,EAAC,YAAM;IACZC,OAAO,CAACC,GAAG,CAAC,kEAAkE,CAAC;EACnF,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CACJ,CAAC;AAACC,OAAA,CAAAL,yBAAA,GAAAA,yBAAA;AAMF,IAAMM,2BAAuE,GAAG,SAA1EA,2BAAuEA,CAAAC,IAAA,EAE1D;EAAA,IADfC,OAAO,GAAAD,IAAA,CAAPC,OAAO;EAEP,oBAAOf,MAAA,CAAAgB,OAAA,CAAAC,aAAA,CAACZ,iBAAA,CAAAa,OAAO;IAACC,SAAS,EAAEZ,yBAA0B;IAACa,IAAI,EAAE,SAAAC,MAAA;MAAA,OAAM;QAAA,OAAMN,OAAO;MAAA;IAAA;EAAC,CAAE,CAAC;AACvF,CAAC;AAMM,IAAMO,mBAAwC,GAAG,SAA3CA,mBAAwCA,CAAA,EAAS;EAC1D,IAAAC,kBAAA,GAAyB,IAAAC,qCAAiB,EAAC,CAAC;IAApCC,YAAY,GAAAF,kBAAA,CAAZE,YAAY;EACpB,IAAAC,SAAA,GAA4C,IAAAC,eAAQ,EAAoB,EAAE,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAAb,OAAA,EAAAU,SAAA;IAApEI,cAAc,GAAAF,UAAA;IAAEG,iBAAiB,GAAAH,UAAA;EACxC,IAAMI,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,KAAwB,EAAK;IACrD,IAAIR,YAAY,EAAE;MACdA,YAAY,CAACS,eAAe,CAACC,+BAAsB,EAAEF,KAAK,CAAC;MAC3DF,iBAAiB,CAACE,KAAK,CAAC;IAC5B;EACJ,CAAC;EAED,IAAMG,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACtB,IAAIX,YAAY,EAAE;MACdA,YAAY,CAACS,eAAe,CAACG,gCAAuB,EAAEC,SAAS,CAAC;IACpE;EACJ,CAAC;EAED,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;IACrB,IAAId,YAAY,EAAE;MACdA,YAAY,CAACS,eAAe,CAACM,+BAAsB,EAAEF,SAAS,CAAC;IACnE;EACJ,CAAC;EAED,oBACItC,MAAA,CAAAgB,OAAA,CAAAC,aAAA,CAACX,gCAAA,CAAAmC,0BAA0B,CAACC,QAAQ;IAChCT,KAAK,EAAE;MAAEA,KAAK,EAAEH,cAAc;MAAEE,kBAAkB,EAAlBA,kBAAkB;MAAEI,WAAW,EAAXA,WAAW;MAAEG,UAAU,EAAVA;IAAW;EAAE,gBAE9EvC,MAAA,CAAAgB,OAAA,CAAAC,aAAA,CAACV,yBAAyB,MAAE,CACK,CAAC;AAE9C,CAAC;AAACK,OAAA,CAAAU,mBAAA,GAAAA,mBAAA;AAEFA,mBAAmB,CAACqB,qBAAqB,GAAG9B,2BAA2B"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_lexical","_LexicalComposerContext","_reactComposition","_TextAlignmentActionContextProps","_useCurrentSelection","_getSelectedNode","BaseTextAlignmentDropDown","makeComposable","useEffect","console","log","exports","TextAlignmentActionDropDown","_ref","element","default","createElement","Compose","component","with","_with","TextAlignmentAction","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","_slicedToArray2","editor","alignmentValue","useDeriveValueFromSelection","_ref2","rangeSelection","node","getSelectedNode","_node$getParent","getParent","getFormatType","applyTextAlignment","value","dispatchCommand","FORMAT_ELEMENT_COMMAND","outdentText","OUTDENT_CONTENT_COMMAND","undefined","indentText","INDENT_CONTENT_COMMAND","context","useMemo","TextAlignmentActionContext","Provider","TextAlignmentDropDown"],"sources":["TextAlignmentAction.tsx"],"sourcesContent":["import React, { useEffect, useMemo } from \"react\";\nimport {\n ElementFormatType,\n FORMAT_ELEMENT_COMMAND,\n INDENT_CONTENT_COMMAND,\n OUTDENT_CONTENT_COMMAND\n} from \"lexical\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { Compose, makeComposable } from \"@webiny/react-composition\";\nimport { TextAlignmentActionContext } from \"~/context/TextAlignmentActionContextProps\";\nimport { useDeriveValueFromSelection } from \"~/hooks/useCurrentSelection\";\nimport { getSelectedNode } from \"~/utils/getSelectedNode\";\n\n/*\n * Base text alignment dropdown composable component.\n * Note: To add a custom dropdown component use @see LexicalEditorConfig API.\n */\nexport const BaseTextAlignmentDropDown = makeComposable(\n \"BaseTextAlignmentDropDown\",\n (): JSX.Element | null => {\n useEffect(() => {\n console.log(\"Default BaseTextAlignmentDropDown, please add your own component\");\n }, []);\n return null;\n }\n);\n\ninterface TextAlignmentActionDropdownProps {\n element: JSX.Element;\n}\n\nconst TextAlignmentActionDropDown: React.FC<TextAlignmentActionDropdownProps> = ({\n element\n}): JSX.Element => {\n return <Compose component={BaseTextAlignmentDropDown} with={() => () => element} />;\n};\n\nexport interface TextAlignmentAction extends React.FC<unknown> {\n TextAlignmentDropDown: typeof TextAlignmentActionDropDown;\n}\n\nexport const TextAlignmentAction: TextAlignmentAction = () => {\n const [editor] = useLexicalComposerContext();\n const alignmentValue: ElementFormatType = useDeriveValueFromSelection(({ rangeSelection }) => {\n const node = rangeSelection ? getSelectedNode(rangeSelection) : null;\n if (node) {\n return node.getParent()?.getFormatType() || \"\";\n }\n return \"\";\n });\n\n const applyTextAlignment = (value: ElementFormatType) => {\n editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, value);\n };\n\n const outdentText = () => {\n editor.dispatchCommand(OUTDENT_CONTENT_COMMAND, undefined);\n };\n\n const indentText = () => {\n editor.dispatchCommand(INDENT_CONTENT_COMMAND, undefined);\n };\n\n const context = useMemo(\n () => ({\n value: alignmentValue,\n applyTextAlignment,\n outdentText,\n indentText\n }),\n [alignmentValue]\n );\n\n return (\n <TextAlignmentActionContext.Provider value={context}>\n <BaseTextAlignmentDropDown />\n </TextAlignmentActionContext.Provider>\n );\n};\n\nTextAlignmentAction.TextAlignmentDropDown = TextAlignmentActionDropDown;\n"],"mappings":"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"}
@@ -11,13 +11,10 @@ var _react = _interopRequireWildcard(require("react"));
11
11
  var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
12
12
  var _reactComposition = require("@webiny/react-composition");
13
13
  var _TypographyActionContext = require("../../context/TypographyActionContext");
14
- var _TypographyElementNode = require("../../nodes/TypographyElementNode");
14
+ var _lexicalNodes = require("@webiny/lexical-nodes");
15
15
  var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
16
- var _webinyList = require("../../commands/webiny-list");
17
- var _webinyQuote = require("../../commands/webiny-quote");
18
- var _ParagraphNode = require("../../nodes/ParagraphNode");
19
- var _HeadingNode = require("../../nodes/HeadingNode");
20
- var _QuoteNode = require("../../nodes/QuoteNode");
16
+ var _commands = require("../../commands");
17
+ var _useCurrentElement2 = require("../../hooks/useCurrentElement");
21
18
  /*
22
19
  * Base composable action component that is mounted on toolbar action as a placeholder for the custom toolbar action.
23
20
  * Note: Toa add custom component access trough @see LexicalEditorConfig API
@@ -41,7 +38,6 @@ var TypographyActionDropDown = function TypographyActionDropDown(_ref) {
41
38
  });
42
39
  };
43
40
  var TypographyAction = function TypographyAction() {
44
- var _textBlockSelection$s, _textBlockSelection$s2, _textBlockSelection$s3, _textBlockSelection$s4, _textBlockSelection$s5;
45
41
  var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
46
42
  _useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
47
43
  editor = _useLexicalComposerCo2[0];
@@ -50,87 +46,85 @@ var TypographyAction = function TypographyAction() {
50
46
  typography = _useState2[0],
51
47
  setTypography = _useState2[1];
52
48
  var _useRichTextEditor = (0, _useRichTextEditor2.useRichTextEditor)(),
53
- textBlockSelection = _useRichTextEditor.textBlockSelection,
54
49
  themeEmotionMap = _useRichTextEditor.themeEmotionMap;
55
- var isTypographySelected = (textBlockSelection === null || textBlockSelection === void 0 ? void 0 : (_textBlockSelection$s = textBlockSelection.state) === null || _textBlockSelection$s === void 0 ? void 0 : _textBlockSelection$s.typography.isSelected) || false;
56
- var isParagraphSelected = (textBlockSelection === null || textBlockSelection === void 0 ? void 0 : (_textBlockSelection$s2 = textBlockSelection.state) === null || _textBlockSelection$s2 === void 0 ? void 0 : _textBlockSelection$s2.paragraph.isSelected) || false;
57
- var isHeadingSelected = (textBlockSelection === null || textBlockSelection === void 0 ? void 0 : (_textBlockSelection$s3 = textBlockSelection.state) === null || _textBlockSelection$s3 === void 0 ? void 0 : _textBlockSelection$s3.heading.isSelected) || false;
58
- var textType = textBlockSelection === null || textBlockSelection === void 0 ? void 0 : (_textBlockSelection$s4 = textBlockSelection.state) === null || _textBlockSelection$s4 === void 0 ? void 0 : _textBlockSelection$s4.textType;
59
- var isQuoteSelected = (textBlockSelection === null || textBlockSelection === void 0 ? void 0 : (_textBlockSelection$s5 = textBlockSelection.state) === null || _textBlockSelection$s5 === void 0 ? void 0 : _textBlockSelection$s5.quote.isSelected) || false;
50
+ var _useCurrentElement = (0, _useCurrentElement2.useCurrentElement)(),
51
+ element = _useCurrentElement.element;
52
+ var isTypographySelected = (0, _lexicalNodes.$isTypographyNode)(element);
53
+ var isParagraphSelected = (0, _lexicalNodes.$isParagraphNode)(element);
54
+ var isHeadingSelected = (0, _lexicalNodes.$isHeadingNode)(element);
55
+ var isQuoteSelected = (0, _lexicalNodes.$isQuoteNode)(element);
60
56
  var setTypographySelect = (0, _react.useCallback)(function (value) {
61
57
  setTypography(value);
62
58
  }, [typography]);
63
59
  var onTypographySelect = (0, _react.useCallback)(function (value) {
64
60
  setTypographySelect(value);
65
61
  if (value.tag.includes("h") || value.tag.includes("p")) {
66
- editor.dispatchCommand(_TypographyElementNode.ADD_TYPOGRAPHY_ELEMENT_COMMAND, {
62
+ editor.dispatchCommand(_lexicalNodes.ADD_TYPOGRAPHY_COMMAND, {
67
63
  value: value
68
64
  });
69
65
  }
70
66
  if (value.tag === "ol") {
71
- editor.dispatchCommand(_webinyList.INSERT_ORDERED_WEBINY_LIST_COMMAND, {
67
+ editor.dispatchCommand(_commands.INSERT_ORDERED_LIST_COMMAND, {
72
68
  themeStyleId: value.id
73
69
  });
74
70
  }
75
71
  if (value.tag === "ul") {
76
- editor.dispatchCommand(_webinyList.INSERT_UNORDERED_WEBINY_LIST_COMMAND, {
72
+ editor.dispatchCommand(_commands.INSERT_UNORDERED_LIST_COMMAND, {
77
73
  themeStyleId: value.id
78
74
  });
79
75
  }
80
76
  if (value.tag === "quoteblock") {
81
- editor.dispatchCommand(_webinyQuote.INSERT_WEBINY_QUOTE_COMMAND, {
77
+ editor.dispatchCommand(_commands.INSERT_QUOTE_COMMAND, {
82
78
  themeStyleId: value.id
83
79
  });
84
80
  }
85
81
  }, []);
86
82
  (0, _react.useEffect)(function () {
87
- if (textBlockSelection) {
88
- var _textBlockSelection$e;
89
- // header and paragraph elements inserted with typography node
90
- if ((0, _TypographyElementNode.$isTypographyElementNode)(textBlockSelection === null || textBlockSelection === void 0 ? void 0 : textBlockSelection.element)) {
91
- var el = textBlockSelection.element;
92
- setTypography(el.getTypographyValue());
83
+ if (!element) {
84
+ return;
85
+ }
86
+ // header and paragraph elements inserted with typography node
87
+ if (isTypographySelected) {
88
+ var el = element;
89
+ setTypography(el.getTypographyValue());
90
+ return;
91
+ }
92
+ if (isParagraphSelected || isHeadingSelected || isQuoteSelected) {
93
+ var styleId = element.getTypographyStyleId();
94
+ if (!styleId) {
93
95
  return;
94
96
  }
95
- if ((0, _ParagraphNode.$isParagraphNode)(textBlockSelection === null || textBlockSelection === void 0 ? void 0 : textBlockSelection.element) || (0, _HeadingNode.$isHeadingNode)(textBlockSelection === null || textBlockSelection === void 0 ? void 0 : textBlockSelection.element) || (0, _QuoteNode.$isQuoteNode)(textBlockSelection === null || textBlockSelection === void 0 ? void 0 : textBlockSelection.element)) {
96
- var elementWithThemeStyle = textBlockSelection === null || textBlockSelection === void 0 ? void 0 : textBlockSelection.element;
97
- var styleId = elementWithThemeStyle.getTypographyStyleId();
98
- if (!styleId) {
99
- return;
100
- }
101
- if (!themeEmotionMap) {
102
- return;
103
- }
104
- var style = themeEmotionMap[styleId];
105
- if (style) {
106
- setTypography({
107
- name: style === null || style === void 0 ? void 0 : style.name,
108
- id: style.id,
109
- css: style.styles,
110
- tag: style.tag
111
- });
112
- }
97
+ if (!themeEmotionMap) {
113
98
  return;
114
99
  }
100
+ var style = themeEmotionMap[styleId];
101
+ if (style) {
102
+ setTypography({
103
+ name: style === null || style === void 0 ? void 0 : style.name,
104
+ id: style.id,
105
+ css: style.styles,
106
+ tag: style.tag
107
+ });
108
+ }
109
+ return;
110
+ }
115
111
 
116
- // list and quote element
117
- if (themeEmotionMap && textBlockSelection !== null && textBlockSelection !== void 0 && (_textBlockSelection$e = textBlockSelection.element) !== null && _textBlockSelection$e !== void 0 && _textBlockSelection$e.getStyleId) {
118
- var _textBlockSelection$e2;
119
- var themeStyleId = (textBlockSelection === null || textBlockSelection === void 0 ? void 0 : (_textBlockSelection$e2 = textBlockSelection.element) === null || _textBlockSelection$e2 === void 0 ? void 0 : _textBlockSelection$e2.getStyleId()) || undefined;
120
- if (themeStyleId) {
121
- var elementStyle = themeEmotionMap[themeStyleId];
122
- if (elementStyle) {
123
- setTypography({
124
- id: elementStyle.id,
125
- css: elementStyle.styles,
126
- name: elementStyle.name,
127
- tag: elementStyle.tag
128
- });
129
- }
112
+ // list and quote element
113
+ if (themeEmotionMap && element !== null && element !== void 0 && element.getStyleId) {
114
+ var themeStyleId = (element === null || element === void 0 ? void 0 : element.getStyleId()) || undefined;
115
+ if (themeStyleId) {
116
+ var elementStyle = themeEmotionMap[themeStyleId];
117
+ if (elementStyle) {
118
+ setTypography({
119
+ id: elementStyle.id,
120
+ css: elementStyle.styles,
121
+ name: elementStyle.name,
122
+ tag: elementStyle.tag
123
+ });
130
124
  }
131
125
  }
132
126
  }
133
- }, [isTypographySelected, textType, isQuoteSelected, isParagraphSelected, isHeadingSelected]);
127
+ }, [element, isTypographySelected, isQuoteSelected, isParagraphSelected, isHeadingSelected]);
134
128
  return /*#__PURE__*/_react.default.createElement(_TypographyActionContext.TypographyActionContext.Provider, {
135
129
  value: {
136
130
  value: typography,
@@ -139,7 +133,6 @@ var TypographyAction = function TypographyAction() {
139
133
  }, /*#__PURE__*/_react.default.createElement(BaseTypographyActionDropDown, null));
140
134
  };
141
135
  exports.TypographyAction = TypographyAction;
142
- {
143
- /* Typography dropdown settings */
144
- }
145
- TypographyAction.TypographyDropDown = TypographyActionDropDown;
136
+ TypographyAction.TypographyDropDown = TypographyActionDropDown;
137
+
138
+ //# sourceMappingURL=TypographyAction.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_LexicalComposerContext","_reactComposition","_TypographyActionContext","_TypographyElementNode","_useRichTextEditor2","_webinyList","_webinyQuote","_ParagraphNode","_HeadingNode","_QuoteNode","BaseTypographyActionDropDown","makeComposable","useEffect","console","log","exports","TypographyActionDropDown","_ref","element","default","createElement","Compose","component","with","_with","TypographyAction","_textBlockSelection$s","_textBlockSelection$s2","_textBlockSelection$s3","_textBlockSelection$s4","_textBlockSelection$s5","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","_slicedToArray2","editor","_useState","useState","_useState2","typography","setTypography","_useRichTextEditor","useRichTextEditor","textBlockSelection","themeEmotionMap","isTypographySelected","state","isSelected","isParagraphSelected","paragraph","isHeadingSelected","heading","textType","isQuoteSelected","quote","setTypographySelect","useCallback","value","onTypographySelect","tag","includes","dispatchCommand","ADD_TYPOGRAPHY_ELEMENT_COMMAND","INSERT_ORDERED_WEBINY_LIST_COMMAND","themeStyleId","id","INSERT_UNORDERED_WEBINY_LIST_COMMAND","INSERT_WEBINY_QUOTE_COMMAND","_textBlockSelection$e","$isTypographyElementNode","el","getTypographyValue","$isParagraphNode","$isHeadingNode","$isQuoteNode","elementWithThemeStyle","styleId","getTypographyStyleId","style","name","css","styles","getStyleId","_textBlockSelection$e2","undefined","elementStyle","TypographyActionContext","Provider","applyTypography","TypographyDropDown"],"sources":["TypographyAction.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { LexicalCommand } from \"lexical\";\nimport { Compose, makeComposable } from \"@webiny/react-composition\";\nimport { TypographyActionContext } from \"~/context/TypographyActionContext\";\n\nimport { TypographyValue } from \"~/types\";\nimport {\n $isTypographyElementNode,\n ADD_TYPOGRAPHY_ELEMENT_COMMAND,\n TypographyElementNode,\n TypographyPayload\n} from \"~/nodes/TypographyElementNode\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\nimport {\n INSERT_ORDERED_WEBINY_LIST_COMMAND,\n INSERT_UNORDERED_WEBINY_LIST_COMMAND,\n WebinyListCommandPayload\n} from \"~/commands/webiny-list\";\nimport { INSERT_WEBINY_QUOTE_COMMAND, WebinyQuoteCommandPayload } from \"~/commands/webiny-quote\";\nimport { $isParagraphNode } from \"~/nodes/ParagraphNode\";\nimport { $isHeadingNode } from \"~/nodes/HeadingNode\";\nimport { $isQuoteNode } from \"~/nodes/QuoteNode\";\n\n/*\n * Base composable action component that is mounted on toolbar action as a placeholder for the custom toolbar action.\n * Note: Toa add custom component access trough @see LexicalEditorConfig API\n * */\nexport const BaseTypographyActionDropDown = makeComposable(\n \"BaseTypographyActionDropDown\",\n (): JSX.Element | null => {\n useEffect(() => {\n console.log(\"Default BaseTypographyActionDropDown, please add your own component\");\n }, []);\n return null;\n }\n);\n\ninterface TypographyActionDropdownProps {\n element: JSX.Element;\n}\n\nconst TypographyActionDropDown: React.FC<TypographyActionDropdownProps> = ({\n element\n}): JSX.Element => {\n return <Compose component={BaseTypographyActionDropDown} with={() => () => element} />;\n};\n\nexport interface TypographyAction extends React.FC<unknown> {\n TypographyDropDown: typeof TypographyActionDropDown;\n}\n\nexport const TypographyAction: TypographyAction = () => {\n const [editor] = useLexicalComposerContext();\n const [typography, setTypography] = useState<TypographyValue>();\n const { textBlockSelection, themeEmotionMap } = useRichTextEditor();\n const isTypographySelected = textBlockSelection?.state?.typography.isSelected || false;\n const isParagraphSelected = textBlockSelection?.state?.paragraph.isSelected || false;\n const isHeadingSelected = textBlockSelection?.state?.heading.isSelected || false;\n const textType = textBlockSelection?.state?.textType;\n const isQuoteSelected = textBlockSelection?.state?.quote.isSelected || false;\n const setTypographySelect = useCallback(\n (value: TypographyValue) => {\n setTypography(value);\n },\n [typography]\n );\n\n const onTypographySelect = useCallback((value: TypographyValue) => {\n setTypographySelect(value);\n if (value.tag.includes(\"h\") || value.tag.includes(\"p\")) {\n editor.dispatchCommand<LexicalCommand<TypographyPayload>>(\n ADD_TYPOGRAPHY_ELEMENT_COMMAND,\n {\n value\n }\n );\n }\n\n if (value.tag === \"ol\") {\n editor.dispatchCommand<LexicalCommand<WebinyListCommandPayload>>(\n INSERT_ORDERED_WEBINY_LIST_COMMAND,\n {\n themeStyleId: value.id\n }\n );\n }\n\n if (value.tag === \"ul\") {\n editor.dispatchCommand<LexicalCommand<WebinyListCommandPayload>>(\n INSERT_UNORDERED_WEBINY_LIST_COMMAND,\n {\n themeStyleId: value.id\n }\n );\n }\n\n if (value.tag === \"quoteblock\") {\n editor.dispatchCommand<LexicalCommand<WebinyQuoteCommandPayload>>(\n INSERT_WEBINY_QUOTE_COMMAND,\n {\n themeStyleId: value.id\n }\n );\n }\n }, []);\n\n useEffect(() => {\n if (textBlockSelection) {\n // header and paragraph elements inserted with typography node\n if ($isTypographyElementNode(textBlockSelection?.element)) {\n const el = textBlockSelection.element as TypographyElementNode;\n setTypography(el.getTypographyValue());\n return;\n }\n\n if (\n $isParagraphNode(textBlockSelection?.element) ||\n $isHeadingNode(textBlockSelection?.element) ||\n $isQuoteNode(textBlockSelection?.element)\n ) {\n const elementWithThemeStyle = textBlockSelection?.element;\n const styleId = elementWithThemeStyle.getTypographyStyleId();\n if (!styleId) {\n return;\n }\n\n if (!themeEmotionMap) {\n return;\n }\n\n const style = themeEmotionMap[styleId];\n if (style) {\n setTypography({\n name: style?.name,\n id: style.id,\n css: style.styles,\n tag: style.tag\n });\n }\n return;\n }\n\n // list and quote element\n if (themeEmotionMap && textBlockSelection?.element?.getStyleId) {\n const themeStyleId = textBlockSelection?.element?.getStyleId() || undefined;\n if (themeStyleId) {\n const elementStyle = themeEmotionMap[themeStyleId];\n if (elementStyle) {\n setTypography({\n id: elementStyle.id,\n css: elementStyle.styles,\n name: elementStyle.name,\n tag: elementStyle.tag\n });\n }\n }\n }\n }\n }, [isTypographySelected, textType, isQuoteSelected, isParagraphSelected, isHeadingSelected]);\n\n return (\n <TypographyActionContext.Provider\n value={{\n value: typography,\n applyTypography: onTypographySelect\n }}\n >\n <BaseTypographyActionDropDown />\n </TypographyActionContext.Provider>\n );\n};\n\n{\n /* Typography dropdown settings */\n}\nTypographyAction.TypographyDropDown = TypographyActionDropDown;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,wBAAA,GAAAH,OAAA;AAGA,IAAAI,sBAAA,GAAAJ,OAAA;AAMA,IAAAK,mBAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAKA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,cAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAT,OAAA;AACA,IAAAU,UAAA,GAAAV,OAAA;AAEA;AACA;AACA;AACA;AACO,IAAMW,4BAA4B,GAAG,IAAAC,gCAAc,EACtD,8BAA8B,EAC9B,YAA0B;EACtB,IAAAC,gBAAS,EAAC,YAAM;IACZC,OAAO,CAACC,GAAG,CAAC,qEAAqE,CAAC;EACtF,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CACJ,CAAC;AAACC,OAAA,CAAAL,4BAAA,GAAAA,4BAAA;AAMF,IAAMM,wBAAiE,GAAG,SAApEA,wBAAiEA,CAAAC,IAAA,EAEpD;EAAA,IADfC,OAAO,GAAAD,IAAA,CAAPC,OAAO;EAEP,oBAAOrB,MAAA,CAAAsB,OAAA,CAAAC,aAAA,CAACnB,iBAAA,CAAAoB,OAAO;IAACC,SAAS,EAAEZ,4BAA6B;IAACa,IAAI,EAAE,SAAAC,MAAA;MAAA,OAAM;QAAA,OAAMN,OAAO;MAAA;IAAA;EAAC,CAAE,CAAC;AAC1F,CAAC;AAMM,IAAMO,gBAAkC,GAAG,SAArCA,gBAAkCA,CAAA,EAAS;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EACpD,IAAAC,qBAAA,GAAiB,IAAAC,iDAAyB,EAAC,CAAC;IAAAC,sBAAA,OAAAC,eAAA,CAAAf,OAAA,EAAAY,qBAAA;IAArCI,MAAM,GAAAF,sBAAA;EACb,IAAAG,SAAA,GAAoC,IAAAC,eAAQ,EAAkB,CAAC;IAAAC,UAAA,OAAAJ,eAAA,CAAAf,OAAA,EAAAiB,SAAA;IAAxDG,UAAU,GAAAD,UAAA;IAAEE,aAAa,GAAAF,UAAA;EAChC,IAAAG,kBAAA,GAAgD,IAAAC,qCAAiB,EAAC,CAAC;IAA3DC,kBAAkB,GAAAF,kBAAA,CAAlBE,kBAAkB;IAAEC,eAAe,GAAAH,kBAAA,CAAfG,eAAe;EAC3C,IAAMC,oBAAoB,GAAG,CAAAF,kBAAkB,aAAlBA,kBAAkB,wBAAAjB,qBAAA,GAAlBiB,kBAAkB,CAAEG,KAAK,cAAApB,qBAAA,uBAAzBA,qBAAA,CAA2Ba,UAAU,CAACQ,UAAU,KAAI,KAAK;EACtF,IAAMC,mBAAmB,GAAG,CAAAL,kBAAkB,aAAlBA,kBAAkB,wBAAAhB,sBAAA,GAAlBgB,kBAAkB,CAAEG,KAAK,cAAAnB,sBAAA,uBAAzBA,sBAAA,CAA2BsB,SAAS,CAACF,UAAU,KAAI,KAAK;EACpF,IAAMG,iBAAiB,GAAG,CAAAP,kBAAkB,aAAlBA,kBAAkB,wBAAAf,sBAAA,GAAlBe,kBAAkB,CAAEG,KAAK,cAAAlB,sBAAA,uBAAzBA,sBAAA,CAA2BuB,OAAO,CAACJ,UAAU,KAAI,KAAK;EAChF,IAAMK,QAAQ,GAAGT,kBAAkB,aAAlBA,kBAAkB,wBAAAd,sBAAA,GAAlBc,kBAAkB,CAAEG,KAAK,cAAAjB,sBAAA,uBAAzBA,sBAAA,CAA2BuB,QAAQ;EACpD,IAAMC,eAAe,GAAG,CAAAV,kBAAkB,aAAlBA,kBAAkB,wBAAAb,sBAAA,GAAlBa,kBAAkB,CAAEG,KAAK,cAAAhB,sBAAA,uBAAzBA,sBAAA,CAA2BwB,KAAK,CAACP,UAAU,KAAI,KAAK;EAC5E,IAAMQ,mBAAmB,GAAG,IAAAC,kBAAW,EACnC,UAACC,KAAsB,EAAK;IACxBjB,aAAa,CAACiB,KAAK,CAAC;EACxB,CAAC,EACD,CAAClB,UAAU,CACf,CAAC;EAED,IAAMmB,kBAAkB,GAAG,IAAAF,kBAAW,EAAC,UAACC,KAAsB,EAAK;IAC/DF,mBAAmB,CAACE,KAAK,CAAC;IAC1B,IAAIA,KAAK,CAACE,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC,IAAIH,KAAK,CAACE,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;MACpDzB,MAAM,CAAC0B,eAAe,CAClBC,qDAA8B,EAC9B;QACIL,KAAK,EAALA;MACJ,CACJ,CAAC;IACL;IAEA,IAAIA,KAAK,CAACE,GAAG,KAAK,IAAI,EAAE;MACpBxB,MAAM,CAAC0B,eAAe,CAClBE,8CAAkC,EAClC;QACIC,YAAY,EAAEP,KAAK,CAACQ;MACxB,CACJ,CAAC;IACL;IAEA,IAAIR,KAAK,CAACE,GAAG,KAAK,IAAI,EAAE;MACpBxB,MAAM,CAAC0B,eAAe,CAClBK,gDAAoC,EACpC;QACIF,YAAY,EAAEP,KAAK,CAACQ;MACxB,CACJ,CAAC;IACL;IAEA,IAAIR,KAAK,CAACE,GAAG,KAAK,YAAY,EAAE;MAC5BxB,MAAM,CAAC0B,eAAe,CAClBM,wCAA2B,EAC3B;QACIH,YAAY,EAAEP,KAAK,CAACQ;MACxB,CACJ,CAAC;IACL;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,IAAArD,gBAAS,EAAC,YAAM;IACZ,IAAI+B,kBAAkB,EAAE;MAAA,IAAAyB,qBAAA;MACpB;MACA,IAAI,IAAAC,+CAAwB,EAAC1B,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAEzB,OAAO,CAAC,EAAE;QACvD,IAAMoD,EAAE,GAAG3B,kBAAkB,CAACzB,OAAgC;QAC9DsB,aAAa,CAAC8B,EAAE,CAACC,kBAAkB,CAAC,CAAC,CAAC;QACtC;MACJ;MAEA,IACI,IAAAC,+BAAgB,EAAC7B,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAEzB,OAAO,CAAC,IAC7C,IAAAuD,2BAAc,EAAC9B,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAEzB,OAAO,CAAC,IAC3C,IAAAwD,uBAAY,EAAC/B,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAEzB,OAAO,CAAC,EAC3C;QACE,IAAMyD,qBAAqB,GAAGhC,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAEzB,OAAO;QACzD,IAAM0D,OAAO,GAAGD,qBAAqB,CAACE,oBAAoB,CAAC,CAAC;QAC5D,IAAI,CAACD,OAAO,EAAE;UACV;QACJ;QAEA,IAAI,CAAChC,eAAe,EAAE;UAClB;QACJ;QAEA,IAAMkC,KAAK,GAAGlC,eAAe,CAACgC,OAAO,CAAC;QACtC,IAAIE,KAAK,EAAE;UACPtC,aAAa,CAAC;YACVuC,IAAI,EAAED,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,IAAI;YACjBd,EAAE,EAAEa,KAAK,CAACb,EAAE;YACZe,GAAG,EAAEF,KAAK,CAACG,MAAM;YACjBtB,GAAG,EAAEmB,KAAK,CAACnB;UACf,CAAC,CAAC;QACN;QACA;MACJ;;MAEA;MACA,IAAIf,eAAe,IAAID,kBAAkB,aAAlBA,kBAAkB,gBAAAyB,qBAAA,GAAlBzB,kBAAkB,CAAEzB,OAAO,cAAAkD,qBAAA,eAA3BA,qBAAA,CAA6Bc,UAAU,EAAE;QAAA,IAAAC,sBAAA;QAC5D,IAAMnB,YAAY,GAAG,CAAArB,kBAAkB,aAAlBA,kBAAkB,wBAAAwC,sBAAA,GAAlBxC,kBAAkB,CAAEzB,OAAO,cAAAiE,sBAAA,uBAA3BA,sBAAA,CAA6BD,UAAU,CAAC,CAAC,KAAIE,SAAS;QAC3E,IAAIpB,YAAY,EAAE;UACd,IAAMqB,YAAY,GAAGzC,eAAe,CAACoB,YAAY,CAAC;UAClD,IAAIqB,YAAY,EAAE;YACd7C,aAAa,CAAC;cACVyB,EAAE,EAAEoB,YAAY,CAACpB,EAAE;cACnBe,GAAG,EAAEK,YAAY,CAACJ,MAAM;cACxBF,IAAI,EAAEM,YAAY,CAACN,IAAI;cACvBpB,GAAG,EAAE0B,YAAY,CAAC1B;YACtB,CAAC,CAAC;UACN;QACJ;MACJ;IACJ;EACJ,CAAC,EAAE,CAACd,oBAAoB,EAAEO,QAAQ,EAAEC,eAAe,EAAEL,mBAAmB,EAAEE,iBAAiB,CAAC,CAAC;EAE7F,oBACIrD,MAAA,CAAAsB,OAAA,CAAAC,aAAA,CAAClB,wBAAA,CAAAoF,uBAAuB,CAACC,QAAQ;IAC7B9B,KAAK,EAAE;MACHA,KAAK,EAAElB,UAAU;MACjBiD,eAAe,EAAE9B;IACrB;EAAE,gBAEF7D,MAAA,CAAAsB,OAAA,CAAAC,aAAA,CAACV,4BAA4B,MAAE,CACD,CAAC;AAE3C,CAAC;AAACK,OAAA,CAAAU,gBAAA,GAAAA,gBAAA;AAEF;EACI;AAAA;AAEJA,gBAAgB,CAACgE,kBAAkB,GAAGzE,wBAAwB"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_LexicalComposerContext","_reactComposition","_TypographyActionContext","_lexicalNodes","_useRichTextEditor2","_commands","_useCurrentElement2","BaseTypographyActionDropDown","makeComposable","useEffect","console","log","exports","TypographyActionDropDown","_ref","element","default","createElement","Compose","component","with","_with","TypographyAction","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","_slicedToArray2","editor","_useState","useState","_useState2","typography","setTypography","_useRichTextEditor","useRichTextEditor","themeEmotionMap","_useCurrentElement","useCurrentElement","isTypographySelected","$isTypographyNode","isParagraphSelected","$isParagraphNode","isHeadingSelected","$isHeadingNode","isQuoteSelected","$isQuoteNode","setTypographySelect","useCallback","value","onTypographySelect","tag","includes","dispatchCommand","ADD_TYPOGRAPHY_COMMAND","INSERT_ORDERED_LIST_COMMAND","themeStyleId","id","INSERT_UNORDERED_LIST_COMMAND","INSERT_QUOTE_COMMAND","el","getTypographyValue","styleId","getTypographyStyleId","style","name","css","styles","getStyleId","undefined","elementStyle","TypographyActionContext","Provider","applyTypography","TypographyDropDown"],"sources":["TypographyAction.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { LexicalCommand } from \"lexical\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { Compose, makeComposable } from \"@webiny/react-composition\";\nimport { TypographyValue } from \"@webiny/lexical-theme\";\nimport { TypographyActionContext } from \"~/context/TypographyActionContext\";\nimport {\n $isHeadingNode,\n $isParagraphNode,\n $isQuoteNode,\n $isTypographyNode,\n ADD_TYPOGRAPHY_COMMAND,\n TypographyNode,\n TypographyPayload\n} from \"@webiny/lexical-nodes\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\nimport {\n INSERT_ORDERED_LIST_COMMAND,\n INSERT_UNORDERED_LIST_COMMAND,\n INSERT_QUOTE_COMMAND,\n ListCommandPayload,\n QuoteCommandPayload\n} from \"~/commands\";\nimport { useCurrentElement } from \"~/hooks/useCurrentElement\";\n\n/*\n * Base composable action component that is mounted on toolbar action as a placeholder for the custom toolbar action.\n * Note: Toa add custom component access trough @see LexicalEditorConfig API\n * */\nexport const BaseTypographyActionDropDown = makeComposable(\n \"BaseTypographyActionDropDown\",\n (): JSX.Element | null => {\n useEffect(() => {\n console.log(\"Default BaseTypographyActionDropDown, please add your own component\");\n }, []);\n return null;\n }\n);\n\ninterface TypographyActionDropdownProps {\n element: JSX.Element;\n}\n\nconst TypographyActionDropDown: React.FC<TypographyActionDropdownProps> = ({\n element\n}): JSX.Element => {\n return <Compose component={BaseTypographyActionDropDown} with={() => () => element} />;\n};\n\nexport interface TypographyAction extends React.FC<unknown> {\n TypographyDropDown: typeof TypographyActionDropDown;\n}\n\nexport const TypographyAction: TypographyAction = () => {\n const [editor] = useLexicalComposerContext();\n const [typography, setTypography] = useState<TypographyValue>();\n const { themeEmotionMap } = useRichTextEditor();\n const { element } = useCurrentElement();\n const isTypographySelected = $isTypographyNode(element);\n const isParagraphSelected = $isParagraphNode(element);\n const isHeadingSelected = $isHeadingNode(element);\n const isQuoteSelected = $isQuoteNode(element);\n\n const setTypographySelect = useCallback(\n (value: TypographyValue) => {\n setTypography(value);\n },\n [typography]\n );\n\n const onTypographySelect = useCallback((value: TypographyValue) => {\n setTypographySelect(value);\n if (value.tag.includes(\"h\") || value.tag.includes(\"p\")) {\n editor.dispatchCommand<LexicalCommand<TypographyPayload>>(ADD_TYPOGRAPHY_COMMAND, {\n value\n });\n }\n\n if (value.tag === \"ol\") {\n editor.dispatchCommand<LexicalCommand<ListCommandPayload>>(\n INSERT_ORDERED_LIST_COMMAND,\n {\n themeStyleId: value.id\n }\n );\n }\n\n if (value.tag === \"ul\") {\n editor.dispatchCommand<LexicalCommand<ListCommandPayload>>(\n INSERT_UNORDERED_LIST_COMMAND,\n {\n themeStyleId: value.id\n }\n );\n }\n\n if (value.tag === \"quoteblock\") {\n editor.dispatchCommand<LexicalCommand<QuoteCommandPayload>>(INSERT_QUOTE_COMMAND, {\n themeStyleId: value.id\n });\n }\n }, []);\n\n useEffect(() => {\n if (!element) {\n return;\n }\n // header and paragraph elements inserted with typography node\n if (isTypographySelected) {\n const el = element as TypographyNode;\n setTypography(el.getTypographyValue());\n return;\n }\n\n if (isParagraphSelected || isHeadingSelected || isQuoteSelected) {\n const styleId = element.getTypographyStyleId();\n if (!styleId) {\n return;\n }\n\n if (!themeEmotionMap) {\n return;\n }\n\n const style = themeEmotionMap[styleId];\n if (style) {\n setTypography({\n name: style?.name,\n id: style.id,\n css: style.styles,\n tag: style.tag\n });\n }\n return;\n }\n\n // list and quote element\n if (themeEmotionMap && element?.getStyleId) {\n const themeStyleId = element?.getStyleId() || undefined;\n if (themeStyleId) {\n const elementStyle = themeEmotionMap[themeStyleId];\n if (elementStyle) {\n setTypography({\n id: elementStyle.id,\n css: elementStyle.styles,\n name: elementStyle.name,\n tag: elementStyle.tag\n });\n }\n }\n }\n }, [element, isTypographySelected, isQuoteSelected, isParagraphSelected, isHeadingSelected]);\n\n return (\n <TypographyActionContext.Provider\n value={{\n value: typography,\n applyTypography: onTypographySelect\n }}\n >\n <BaseTypographyActionDropDown />\n </TypographyActionContext.Provider>\n );\n};\n\nTypographyAction.TypographyDropDown = TypographyActionDropDown;\n"],"mappings":"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"}
@@ -1,43 +1,33 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.UnderlineAction = void 0;
9
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
- var _react = _interopRequireWildcard(require("react"));
11
- var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
9
+ var _react = _interopRequireDefault(require("react"));
12
10
  var _lexical = require("lexical");
13
- var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
11
+ var _useCurrentSelection2 = require("../../hooks/useCurrentSelection");
12
+ var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
14
13
  var UnderlineAction = function UnderlineAction() {
15
- var _textBlockSelection$s;
16
14
  var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
17
15
  _useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
18
16
  editor = _useLexicalComposerCo2[0];
19
- var _useState = (0, _react.useState)(false),
20
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
21
- isUnderline = _useState2[0],
22
- setIsUnderline = _useState2[1];
23
- var _useRichTextEditor = (0, _useRichTextEditor2.useRichTextEditor)(),
24
- textBlockSelection = _useRichTextEditor.textBlockSelection;
25
- var isUnderlineSelected = !!(textBlockSelection !== null && textBlockSelection !== void 0 && (_textBlockSelection$s = textBlockSelection.state) !== null && _textBlockSelection$s !== void 0 && _textBlockSelection$s.underline);
26
- (0, _react.useEffect)(function () {
27
- setIsUnderline(isUnderlineSelected);
28
- }, [isUnderlineSelected]);
17
+ var _useCurrentSelection = (0, _useCurrentSelection2.useCurrentSelection)(),
18
+ rangeSelection = _useCurrentSelection.rangeSelection;
19
+ var isUnderlineSelected = rangeSelection ? rangeSelection.hasFormat("underline") : false;
29
20
  var handleClick = function handleClick() {
30
21
  editor.dispatchCommand(_lexical.FORMAT_TEXT_COMMAND, "underline");
31
- setIsUnderline(!isUnderline);
32
22
  };
33
23
  return /*#__PURE__*/_react.default.createElement("button", {
34
- onClick: function onClick() {
35
- return handleClick();
36
- },
37
- className: "popup-item spaced " + (isUnderline ? "active" : ""),
24
+ onClick: handleClick,
25
+ className: "popup-item spaced " + (isUnderlineSelected ? "active" : ""),
38
26
  "aria-label": "Format text as italic"
39
27
  }, /*#__PURE__*/_react.default.createElement("i", {
40
28
  className: "format underline"
41
29
  }));
42
30
  };
43
- exports.UnderlineAction = UnderlineAction;
31
+ exports.UnderlineAction = UnderlineAction;
32
+
33
+ //# sourceMappingURL=UnderlineAction.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_LexicalComposerContext","_lexical","_useRichTextEditor2","UnderlineAction","_textBlockSelection$s","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","_slicedToArray2","default","editor","_useState","useState","_useState2","isUnderline","setIsUnderline","_useRichTextEditor","useRichTextEditor","textBlockSelection","isUnderlineSelected","state","underline","useEffect","handleClick","dispatchCommand","FORMAT_TEXT_COMMAND","createElement","onClick","className","exports"],"sources":["UnderlineAction.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { FORMAT_TEXT_COMMAND } from \"lexical\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\n\nexport const UnderlineAction = () => {\n const [editor] = useLexicalComposerContext();\n const [isUnderline, setIsUnderline] = useState(false);\n const { textBlockSelection } = useRichTextEditor();\n const isUnderlineSelected = !!textBlockSelection?.state?.underline;\n\n useEffect(() => {\n setIsUnderline(isUnderlineSelected);\n }, [isUnderlineSelected]);\n\n const handleClick = () => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, \"underline\");\n setIsUnderline(!isUnderline);\n };\n\n return (\n <button\n onClick={() => handleClick()}\n className={\"popup-item spaced \" + (isUnderline ? \"active\" : \"\")}\n aria-label=\"Format text as italic\"\n >\n <i className=\"format underline\" />\n </button>\n );\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AAEO,IAAMI,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;EAAA,IAAAC,qBAAA;EACjC,IAAAC,qBAAA,GAAiB,IAAAC,iDAAyB,EAAC,CAAC;IAAAC,sBAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,qBAAA;IAArCK,MAAM,GAAAH,sBAAA;EACb,IAAAI,SAAA,GAAsC,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAAC,UAAA,OAAAL,eAAA,CAAAC,OAAA,EAAAE,SAAA;IAA9CG,WAAW,GAAAD,UAAA;IAAEE,cAAc,GAAAF,UAAA;EAClC,IAAAG,kBAAA,GAA+B,IAAAC,qCAAiB,EAAC,CAAC;IAA1CC,kBAAkB,GAAAF,kBAAA,CAAlBE,kBAAkB;EAC1B,IAAMC,mBAAmB,GAAG,CAAC,EAACD,kBAAkB,aAAlBA,kBAAkB,gBAAAd,qBAAA,GAAlBc,kBAAkB,CAAEE,KAAK,cAAAhB,qBAAA,eAAzBA,qBAAA,CAA2BiB,SAAS;EAElE,IAAAC,gBAAS,EAAC,YAAM;IACZP,cAAc,CAACI,mBAAmB,CAAC;EACvC,CAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzB,IAAMI,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACtBb,MAAM,CAACc,eAAe,CAACC,4BAAmB,EAAE,WAAW,CAAC;IACxDV,cAAc,CAAC,CAACD,WAAW,CAAC;EAChC,CAAC;EAED,oBACIjB,MAAA,CAAAY,OAAA,CAAAiB,aAAA;IACIC,OAAO,EAAE,SAAAA,QAAA;MAAA,OAAMJ,WAAW,CAAC,CAAC;IAAA,CAAC;IAC7BK,SAAS,EAAE,oBAAoB,IAAId,WAAW,GAAG,QAAQ,GAAG,EAAE,CAAE;IAChE,cAAW;EAAuB,gBAElCjB,MAAA,CAAAY,OAAA,CAAAiB,aAAA;IAAGE,SAAS,EAAC;EAAkB,CAAE,CAC7B,CAAC;AAEjB,CAAC;AAACC,OAAA,CAAA1B,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_lexical","_useCurrentSelection2","_LexicalComposerContext","UnderlineAction","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","_slicedToArray2","default","editor","_useCurrentSelection","useCurrentSelection","rangeSelection","isUnderlineSelected","hasFormat","handleClick","dispatchCommand","FORMAT_TEXT_COMMAND","createElement","onClick","className","exports"],"sources":["UnderlineAction.tsx"],"sourcesContent":["import React from \"react\";\nimport { FORMAT_TEXT_COMMAND } from \"lexical\";\nimport { useCurrentSelection } from \"~/hooks/useCurrentSelection\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\n\nexport const UnderlineAction = () => {\n const [editor] = useLexicalComposerContext();\n const { rangeSelection } = useCurrentSelection();\n const isUnderlineSelected = rangeSelection ? rangeSelection.hasFormat(\"underline\") : false;\n\n const handleClick = () => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, \"underline\");\n };\n\n return (\n <button\n onClick={handleClick}\n className={\"popup-item spaced \" + (isUnderlineSelected ? \"active\" : \"\")}\n aria-label=\"Format text as italic\"\n >\n <i className=\"format underline\" />\n </button>\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAH,OAAA;AAEO,IAAMI,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;EACjC,IAAAC,qBAAA,GAAiB,IAAAC,iDAAyB,EAAC,CAAC;IAAAC,sBAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,qBAAA;IAArCK,MAAM,GAAAH,sBAAA;EACb,IAAAI,oBAAA,GAA2B,IAAAC,yCAAmB,EAAC,CAAC;IAAxCC,cAAc,GAAAF,oBAAA,CAAdE,cAAc;EACtB,IAAMC,mBAAmB,GAAGD,cAAc,GAAGA,cAAc,CAACE,SAAS,CAAC,WAAW,CAAC,GAAG,KAAK;EAE1F,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACtBN,MAAM,CAACO,eAAe,CAACC,4BAAmB,EAAE,WAAW,CAAC;EAC5D,CAAC;EAED,oBACIpB,MAAA,CAAAW,OAAA,CAAAU,aAAA;IACIC,OAAO,EAAEJ,WAAY;IACrBK,SAAS,EAAE,oBAAoB,IAAIP,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAE;IACxE,cAAW;EAAuB,gBAElChB,MAAA,CAAAW,OAAA,CAAAU,aAAA;IAAGE,SAAS,EAAC;EAAkB,CAAE,CAC7B,CAAC;AAEjB,CAAC;AAACC,OAAA,CAAAlB,eAAA,GAAAA,eAAA"}
@@ -7,4 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.FontColorActionContext = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var FontColorActionContext = /*#__PURE__*/_react.default.createContext(undefined);
10
- exports.FontColorActionContext = FontColorActionContext;
10
+ exports.FontColorActionContext = FontColorActionContext;
11
+
12
+ //# sourceMappingURL=FontColorActionContext.js.map
@@ -1,14 +1,10 @@
1
1
  import React from "react";
2
- import { TextBlockSelection, ThemeEmotionMap, ToolbarActionPlugin, ToolbarType } from "../types";
3
- import { WebinyTheme } from "../themes/webinyLexicalTheme";
4
2
  import { LexicalEditor } from "lexical";
3
+ import type { ThemeEmotionMap, WebinyTheme } from "@webiny/lexical-theme";
4
+ import { ToolbarActionPlugin, ToolbarType } from "../types";
5
5
  export interface RichTextEditorContext {
6
- nodeIsText: boolean;
7
- setNodeIsText: (nodeIsText: boolean) => void;
8
6
  toolbarType?: ToolbarType;
9
7
  setToolbarType: (type: ToolbarType) => void;
10
- textBlockSelection: TextBlockSelection | null;
11
- setTextBlockSelection: (textBlockSelection: TextBlockSelection) => void;
12
8
  theme?: WebinyTheme;
13
9
  setTheme: (theme: WebinyTheme) => void;
14
10
  themeEmotionMap?: ThemeEmotionMap;
@@ -12,52 +12,34 @@ var RichTextEditorContext = /*#__PURE__*/(0, _react.createContext)(undefined);
12
12
  exports.RichTextEditorContext = RichTextEditorContext;
13
13
  var RichTextEditorProvider = function RichTextEditorProvider(_ref) {
14
14
  var children = _ref.children;
15
- var _useState = (0, _react.useState)(false),
15
+ var _useState = (0, _react.useState)(),
16
16
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
17
- nodeIsText = _useState2[0],
18
- setIsText = _useState2[1];
19
- var _useState3 = (0, _react.useState)(),
17
+ toolbarType = _useState2[0],
18
+ setToolbarType = _useState2[1];
19
+ var _useState3 = (0, _react.useState)(undefined),
20
20
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
21
- toolbarType = _useState4[0],
22
- setToolbarType = _useState4[1];
21
+ theme = _useState4[0],
22
+ setTheme = _useState4[1];
23
23
  var _useState5 = (0, _react.useState)(undefined),
24
24
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
25
- theme = _useState6[0],
26
- setTheme = _useState6[1];
27
- var _useState7 = (0, _react.useState)(undefined),
25
+ themeEmotionMap = _useState6[0],
26
+ setThemeEmotionMap = _useState6[1];
27
+ var _useState7 = (0, _react.useState)([]),
28
28
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
29
- themeEmotionMap = _useState8[0],
30
- setThemeEmotionMap = _useState8[1];
31
- var _useState9 = (0, _react.useState)([]),
29
+ toolbarActionPlugins = _useState8[0],
30
+ setToolbarActionPlugins = _useState8[1];
31
+ var _useState9 = (0, _react.useState)(),
32
32
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
33
- toolbarActionPlugins = _useState10[0],
34
- setToolbarActionPlugins = _useState10[1];
35
- var _useState11 = (0, _react.useState)(),
33
+ activeEditor = _useState10[0],
34
+ setActiveEditor = _useState10[1];
35
+ var _useState11 = (0, _react.useState)(false),
36
36
  _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
37
- activeEditor = _useState12[0],
38
- setActiveEditor = _useState12[1];
39
- var _useState13 = (0, _react.useState)(false),
40
- _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
41
- isEditable = _useState14[0],
42
- setIsEditable = _useState14[1];
43
- /*
44
- * @desc Keeps data from current user text selection like range selection, nodes, node key...
45
- */
46
- var _useState15 = (0, _react.useState)(null),
47
- _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
48
- textBlockSelection = _useState16[0],
49
- setTextBlockSelection = _useState16[1];
50
- var setNodeIsText = function setNodeIsText(nodeIsText) {
51
- setIsText(nodeIsText);
52
- };
37
+ isEditable = _useState12[0],
38
+ setIsEditable = _useState12[1];
53
39
  return /*#__PURE__*/_react.default.createElement(RichTextEditorContext.Provider, {
54
40
  value: {
55
- nodeIsText: nodeIsText,
56
- setNodeIsText: setNodeIsText,
57
41
  toolbarType: toolbarType,
58
42
  setToolbarType: setToolbarType,
59
- textBlockSelection: textBlockSelection,
60
- setTextBlockSelection: setTextBlockSelection,
61
43
  theme: theme,
62
44
  setTheme: setTheme,
63
45
  themeEmotionMap: themeEmotionMap,
@@ -71,4 +53,6 @@ var RichTextEditorProvider = function RichTextEditorProvider(_ref) {
71
53
  }
72
54
  }, children);
73
55
  };
74
- exports.RichTextEditorProvider = RichTextEditorProvider;
56
+ exports.RichTextEditorProvider = RichTextEditorProvider;
57
+
58
+ //# sourceMappingURL=RichTextEditorContext.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","RichTextEditorContext","createContext","undefined","exports","RichTextEditorProvider","_ref","children","_useState","useState","_useState2","_slicedToArray2","default","nodeIsText","setIsText","_useState3","_useState4","toolbarType","setToolbarType","_useState5","_useState6","theme","setTheme","_useState7","_useState8","themeEmotionMap","setThemeEmotionMap","_useState9","_useState10","toolbarActionPlugins","setToolbarActionPlugins","_useState11","_useState12","activeEditor","setActiveEditor","_useState13","_useState14","isEditable","setIsEditable","_useState15","_useState16","textBlockSelection","setTextBlockSelection","setNodeIsText","createElement","Provider","value"],"sources":["RichTextEditorContext.tsx"],"sourcesContent":["import React, { createContext, useState } from \"react\";\nimport { TextBlockSelection, ThemeEmotionMap, ToolbarActionPlugin, ToolbarType } from \"~/types\";\nimport { WebinyTheme } from \"~/themes/webinyLexicalTheme\";\nimport { LexicalEditor } from \"lexical\";\n\nexport interface RichTextEditorContext {\n nodeIsText: boolean;\n setNodeIsText: (nodeIsText: boolean) => void;\n toolbarType?: ToolbarType;\n setToolbarType: (type: ToolbarType) => void;\n textBlockSelection: TextBlockSelection | null;\n setTextBlockSelection: (textBlockSelection: TextBlockSelection) => void;\n theme?: WebinyTheme;\n setTheme: (theme: WebinyTheme) => void;\n themeEmotionMap?: ThemeEmotionMap;\n setThemeEmotionMap: (themeEmotionMap?: ThemeEmotionMap) => void;\n toolbarActionPlugins: ToolbarActionPlugin[];\n setToolbarActionPlugins: (actionPlugins: ToolbarActionPlugin[]) => void;\n activeEditor?: LexicalEditor;\n setActiveEditor: (editor: LexicalEditor) => void;\n isEditable: boolean;\n setIsEditable: (isEditable: boolean) => void;\n}\n\nexport const RichTextEditorContext = createContext<RichTextEditorContext | undefined>(undefined);\n\ninterface RichTextEditorProviderProps {\n children?: React.ReactNode | React.ReactNode[];\n}\n\nexport const RichTextEditorProvider: React.FC<RichTextEditorProviderProps> = ({ children }) => {\n const [nodeIsText, setIsText] = useState<boolean>(false);\n const [toolbarType, setToolbarType] = useState<ToolbarType | undefined>();\n const [theme, setTheme] = useState<WebinyTheme | undefined>(undefined);\n const [themeEmotionMap, setThemeEmotionMap] = useState<ThemeEmotionMap | undefined>(undefined);\n const [toolbarActionPlugins, setToolbarActionPlugins] = useState<ToolbarActionPlugin[]>([]);\n const [activeEditor, setActiveEditor] = useState<LexicalEditor>();\n const [isEditable, setIsEditable] = useState<boolean>(false);\n /*\n * @desc Keeps data from current user text selection like range selection, nodes, node key...\n */\n const [textBlockSelection, setTextBlockSelection] = useState<TextBlockSelection | null>(null);\n\n const setNodeIsText = (nodeIsText: boolean) => {\n setIsText(nodeIsText);\n };\n\n return (\n <RichTextEditorContext.Provider\n value={{\n nodeIsText,\n setNodeIsText,\n toolbarType,\n setToolbarType,\n textBlockSelection,\n setTextBlockSelection,\n theme,\n setTheme,\n themeEmotionMap,\n setThemeEmotionMap,\n activeEditor,\n setActiveEditor,\n isEditable,\n setIsEditable,\n toolbarActionPlugins,\n setToolbarActionPlugins\n }}\n >\n {children}\n </RichTextEditorContext.Provider>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","RichTextEditorContext","createContext","undefined","exports","RichTextEditorProvider","_ref","children","_useState","useState","_useState2","_slicedToArray2","default","toolbarType","setToolbarType","_useState3","_useState4","theme","setTheme","_useState5","_useState6","themeEmotionMap","setThemeEmotionMap","_useState7","_useState8","toolbarActionPlugins","setToolbarActionPlugins","_useState9","_useState10","activeEditor","setActiveEditor","_useState11","_useState12","isEditable","setIsEditable","createElement","Provider","value"],"sources":["RichTextEditorContext.tsx"],"sourcesContent":["import React, { createContext, useState } from \"react\";\nimport { LexicalEditor } from \"lexical\";\nimport type { ThemeEmotionMap, WebinyTheme } from \"@webiny/lexical-theme\";\nimport { ToolbarActionPlugin, ToolbarType } from \"~/types\";\n\nexport interface RichTextEditorContext {\n toolbarType?: ToolbarType;\n setToolbarType: (type: ToolbarType) => void;\n theme?: WebinyTheme;\n setTheme: (theme: WebinyTheme) => void;\n themeEmotionMap?: ThemeEmotionMap;\n setThemeEmotionMap: (themeEmotionMap?: ThemeEmotionMap) => void;\n toolbarActionPlugins: ToolbarActionPlugin[];\n setToolbarActionPlugins: (actionPlugins: ToolbarActionPlugin[]) => void;\n activeEditor?: LexicalEditor;\n setActiveEditor: (editor: LexicalEditor) => void;\n isEditable: boolean;\n setIsEditable: (isEditable: boolean) => void;\n}\n\nexport const RichTextEditorContext = createContext<RichTextEditorContext | undefined>(undefined);\n\ninterface RichTextEditorProviderProps {\n children?: React.ReactNode | React.ReactNode[];\n}\n\nexport const RichTextEditorProvider: React.FC<RichTextEditorProviderProps> = ({ children }) => {\n const [toolbarType, setToolbarType] = useState<ToolbarType | undefined>();\n const [theme, setTheme] = useState<WebinyTheme | undefined>(undefined);\n const [themeEmotionMap, setThemeEmotionMap] = useState<ThemeEmotionMap | undefined>(undefined);\n const [toolbarActionPlugins, setToolbarActionPlugins] = useState<ToolbarActionPlugin[]>([]);\n const [activeEditor, setActiveEditor] = useState<LexicalEditor>();\n const [isEditable, setIsEditable] = useState<boolean>(false);\n\n return (\n <RichTextEditorContext.Provider\n value={{\n toolbarType,\n setToolbarType,\n theme,\n setTheme,\n themeEmotionMap,\n setThemeEmotionMap,\n activeEditor,\n setActiveEditor,\n isEditable,\n setIsEditable,\n toolbarActionPlugins,\n setToolbarActionPlugins\n }}\n >\n {children}\n </RichTextEditorContext.Provider>\n );\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAoBO,IAAMC,qBAAqB,gBAAG,IAAAC,oBAAa,EAAoCC,SAAS,CAAC;AAACC,OAAA,CAAAH,qBAAA,GAAAA,qBAAA;AAM1F,IAAMI,sBAA6D,GAAG,SAAhEA,sBAA6DA,CAAAC,IAAA,EAAqB;EAAA,IAAfC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EACpF,IAAAC,SAAA,GAAsC,IAAAC,eAAQ,EAA0B,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,SAAA;IAAlEK,WAAW,GAAAH,UAAA;IAAEI,cAAc,GAAAJ,UAAA;EAClC,IAAAK,UAAA,GAA0B,IAAAN,eAAQ,EAA0BN,SAAS,CAAC;IAAAa,UAAA,OAAAL,eAAA,CAAAC,OAAA,EAAAG,UAAA;IAA/DE,KAAK,GAAAD,UAAA;IAAEE,QAAQ,GAAAF,UAAA;EACtB,IAAAG,UAAA,GAA8C,IAAAV,eAAQ,EAA8BN,SAAS,CAAC;IAAAiB,UAAA,OAAAT,eAAA,CAAAC,OAAA,EAAAO,UAAA;IAAvFE,eAAe,GAAAD,UAAA;IAAEE,kBAAkB,GAAAF,UAAA;EAC1C,IAAAG,UAAA,GAAwD,IAAAd,eAAQ,EAAwB,EAAE,CAAC;IAAAe,UAAA,OAAAb,eAAA,CAAAC,OAAA,EAAAW,UAAA;IAApFE,oBAAoB,GAAAD,UAAA;IAAEE,uBAAuB,GAAAF,UAAA;EACpD,IAAAG,UAAA,GAAwC,IAAAlB,eAAQ,EAAgB,CAAC;IAAAmB,WAAA,OAAAjB,eAAA,CAAAC,OAAA,EAAAe,UAAA;IAA1DE,YAAY,GAAAD,WAAA;IAAEE,eAAe,GAAAF,WAAA;EACpC,IAAAG,WAAA,GAAoC,IAAAtB,eAAQ,EAAU,KAAK,CAAC;IAAAuB,WAAA,OAAArB,eAAA,CAAAC,OAAA,EAAAmB,WAAA;IAArDE,UAAU,GAAAD,WAAA;IAAEE,aAAa,GAAAF,WAAA;EAEhC,oBACIlC,MAAA,CAAAc,OAAA,CAAAuB,aAAA,CAAClC,qBAAqB,CAACmC,QAAQ;IAC3BC,KAAK,EAAE;MACHxB,WAAW,EAAXA,WAAW;MACXC,cAAc,EAAdA,cAAc;MACdG,KAAK,EAALA,KAAK;MACLC,QAAQ,EAARA,QAAQ;MACRG,eAAe,EAAfA,eAAe;MACfC,kBAAkB,EAAlBA,kBAAkB;MAClBO,YAAY,EAAZA,YAAY;MACZC,eAAe,EAAfA,eAAe;MACfG,UAAU,EAAVA,UAAU;MACVC,aAAa,EAAbA,aAAa;MACbT,oBAAoB,EAApBA,oBAAoB;MACpBC,uBAAuB,EAAvBA;IACJ;EAAE,GAEDnB,QAC2B,CAAC;AAEzC,CAAC;AAACH,OAAA,CAAAC,sBAAA,GAAAA,sBAAA"}
@@ -23,4 +23,6 @@ exports.SharedHistoryContext = SharedHistoryContext;
23
23
  var useSharedHistoryContext = function useSharedHistoryContext() {
24
24
  return (0, React.useContext)(Context);
25
25
  };
26
- exports.useSharedHistoryContext = useSharedHistoryContext;
26
+ exports.useSharedHistoryContext = useSharedHistoryContext;
27
+
28
+ //# sourceMappingURL=SharedHistoryContext.js.map
@@ -7,4 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.TextAlignmentActionContext = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var TextAlignmentActionContext = /*#__PURE__*/_react.default.createContext(undefined);
10
- exports.TextAlignmentActionContext = TextAlignmentActionContext;
10
+ exports.TextAlignmentActionContext = TextAlignmentActionContext;
11
+
12
+ //# sourceMappingURL=TextAlignmentActionContextProps.js.map
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { TypographyValue } from "../types";
2
+ import { TypographyValue } from "@webiny/lexical-theme";
3
3
  export interface TypographyActionContextProps {
4
4
  value: TypographyValue | undefined;
5
5
  applyTypography: (value: TypographyValue) => void;
@@ -7,4 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.TypographyActionContext = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var TypographyActionContext = /*#__PURE__*/_react.default.createContext(undefined);
10
- exports.TypographyActionContext = TypographyActionContext;
10
+ exports.TypographyActionContext = TypographyActionContext;
11
+
12
+ //# sourceMappingURL=TypographyActionContext.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","TypographyActionContext","React","createContext","undefined","exports"],"sources":["TypographyActionContext.tsx"],"sourcesContent":["import React from \"react\";\nimport { TypographyValue } from \"~/types\";\n\nexport interface TypographyActionContextProps {\n /*\n * @desc Current selected typography\n * */\n value: TypographyValue | undefined;\n\n /*\n * @desc Apply font family to selected text.\n * @params: value\n */\n applyTypography: (value: TypographyValue) => void;\n}\n\nexport const TypographyActionContext = React.createContext<\n TypographyActionContextProps | undefined\n>(undefined);\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAgBO,IAAMC,uBAAuB,gBAAGC,cAAK,CAACC,aAAa,CAExDC,SAAS,CAAC;AAACC,OAAA,CAAAJ,uBAAA,GAAAA,uBAAA"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","TypographyActionContext","React","createContext","undefined","exports"],"sources":["TypographyActionContext.tsx"],"sourcesContent":["import React from \"react\";\nimport { TypographyValue } from \"@webiny/lexical-theme\";\n\nexport interface TypographyActionContextProps {\n /*\n * @desc Current selected typography\n * */\n value: TypographyValue | undefined;\n\n /*\n * @desc Apply font family to selected text.\n * @params: value\n */\n applyTypography: (value: TypographyValue) => void;\n}\n\nexport const TypographyActionContext = React.createContext<\n TypographyActionContextProps | undefined\n>(undefined);\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAgBO,IAAMC,uBAAuB,gBAAGC,cAAK,CAACC,aAAa,CAExDC,SAAS,CAAC;AAACC,OAAA,CAAAJ,uBAAA,GAAAA,uBAAA"}
@@ -0,0 +1,7 @@
1
+ export * from "./useRichTextEditor";
2
+ export * from "./useFontColorPicker";
3
+ export * from "./useTypographyAction";
4
+ export * from "./useTextAlignmentAction";
5
+ export * from "./useCurrentSelection";
6
+ export * from "./useCurrentElement";
7
+ export * from "./useIsMounted";