@flozy/editor 3.8.2 → 3.8.4

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 (113) hide show
  1. package/dist/Editor/ChatEditor.js +45 -55
  2. package/dist/Editor/CommonEditor.js +169 -111
  3. package/dist/Editor/Elements/AI/AIInput.js +16 -5
  4. package/dist/Editor/Elements/AI/PopoverAIInput.js +31 -17
  5. package/dist/Editor/Elements/AI/Styles.js +2 -1
  6. package/dist/Editor/Elements/AI/VoiceToText/AudioWave.js +73 -0
  7. package/dist/Editor/Elements/AI/VoiceToText/index.js +167 -0
  8. package/dist/Editor/Elements/AI/VoiceToText/style.js +40 -0
  9. package/dist/Editor/Elements/Accordion/Accordion.js +74 -7
  10. package/dist/Editor/Elements/Accordion/AccordionBtnPopup.js +3 -2
  11. package/dist/Editor/Elements/Accordion/AccordionSummary.js +4 -60
  12. package/dist/Editor/Elements/AppHeader/AppHeader.js +26 -4
  13. package/dist/Editor/Elements/Button/EditorButton.js +28 -16
  14. package/dist/Editor/Elements/Color Picker/ColorButtons.js +60 -17
  15. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  16. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  17. package/dist/Editor/Elements/Color Picker/Styles.js +2 -1
  18. package/dist/Editor/Elements/Embed/Image.js +28 -20
  19. package/dist/Editor/Elements/Embed/Video.js +15 -11
  20. package/dist/Editor/Elements/Emoji/EmojiPicker.js +2 -4
  21. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +2 -1
  22. package/dist/Editor/Elements/Grid/Grid.js +2 -0
  23. package/dist/Editor/Elements/Grid/GridItem.js +3 -1
  24. package/dist/Editor/Elements/Link/Link.js +6 -1
  25. package/dist/Editor/Elements/Link/LinkButton.js +4 -2
  26. package/dist/Editor/Elements/Link/LinkPopup.js +11 -3
  27. package/dist/Editor/Elements/Link/LinkPopupStyles.js +28 -0
  28. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +3 -3
  29. package/dist/Editor/Elements/Redo/RedoButton.js +14 -0
  30. package/dist/Editor/Elements/Table/Table.js +1 -1
  31. package/dist/Editor/Elements/Table/TableCell.js +1 -1
  32. package/dist/Editor/Elements/Undo/UndoButton.js +14 -0
  33. package/dist/Editor/MiniEditor.js +3 -1
  34. package/dist/Editor/Toolbar/Basic/index.js +4 -2
  35. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +26 -2
  36. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  37. package/dist/Editor/Toolbar/FormatTools/TextSize.js +29 -18
  38. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +4 -2
  39. package/dist/Editor/Toolbar/Mini/Options/Options.js +10 -0
  40. package/dist/Editor/Toolbar/Mini/Styles.js +7 -0
  41. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +4 -11
  42. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +213 -86
  43. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +2 -1
  44. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +20 -13
  45. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +52 -7
  46. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +438 -0
  47. package/dist/Editor/Toolbar/PopupTool/index.js +6 -5
  48. package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
  49. package/dist/Editor/assets/svg/AIIcons.js +153 -1
  50. package/dist/Editor/assets/svg/AddTemplateIcon.js +13 -10
  51. package/dist/Editor/assets/svg/RedoIcon.js +27 -0
  52. package/dist/Editor/assets/svg/SettingsIcon.js +28 -0
  53. package/dist/Editor/assets/svg/TextIcon.js +8 -5
  54. package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
  55. package/dist/Editor/assets/svg/UndoIcon.js +27 -0
  56. package/dist/Editor/common/ColorPickerButton.js +25 -9
  57. package/dist/Editor/common/CustomColorPicker/index.js +106 -0
  58. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  59. package/dist/Editor/common/CustomDialog/index.js +94 -0
  60. package/dist/Editor/common/CustomDialog/style.js +67 -0
  61. package/dist/Editor/common/CustomSelect.js +33 -0
  62. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  63. package/dist/Editor/common/EditorCmds.js +35 -0
  64. package/dist/Editor/common/Icon.js +43 -3
  65. package/dist/Editor/common/LinkSettings/NavComponents.js +5 -2
  66. package/dist/Editor/common/LinkSettings/index.js +2 -1
  67. package/dist/Editor/common/LinkSettings/navOptions.js +7 -2
  68. package/dist/Editor/common/MentionsPopup/MentionsListCard.js +1 -6
  69. package/dist/Editor/common/MentionsPopup/Styles.js +5 -2
  70. package/dist/Editor/common/Shorthands/elements.js +54 -0
  71. package/dist/Editor/common/StyleBuilder/accordionTitleBtnStyle.js +7 -7
  72. package/dist/Editor/common/StyleBuilder/accordionTitleStyle.js +16 -16
  73. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  74. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +13 -3
  75. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  76. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +1 -1
  77. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +31 -7
  78. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +13 -4
  79. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +14 -4
  80. package/dist/Editor/common/StyleBuilder/index.js +1 -1
  81. package/dist/Editor/common/iconslist.js +0 -31
  82. package/dist/Editor/helper/deserialize/index.js +14 -9
  83. package/dist/Editor/helper/theme.js +190 -4
  84. package/dist/Editor/hooks/useEditorTheme.js +139 -0
  85. package/dist/Editor/hooks/useMouseMove.js +4 -2
  86. package/dist/Editor/plugins/withEmbeds.js +1 -1
  87. package/dist/Editor/plugins/withHTML.js +47 -5
  88. package/dist/Editor/plugins/withLayout.js +15 -10
  89. package/dist/Editor/plugins/withTable.js +2 -2
  90. package/dist/Editor/theme/ThemeList.js +50 -173
  91. package/dist/Editor/theme/index.js +144 -0
  92. package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
  93. package/dist/Editor/themeSettings/buttons/index.js +290 -0
  94. package/dist/Editor/themeSettings/buttons/style.js +21 -0
  95. package/dist/Editor/themeSettings/colorTheme/index.js +290 -0
  96. package/dist/Editor/themeSettings/colorTheme/style.js +77 -0
  97. package/dist/Editor/themeSettings/fonts/PreviewElement.js +123 -0
  98. package/dist/Editor/themeSettings/fonts/index.js +213 -0
  99. package/dist/Editor/themeSettings/fonts/style.js +44 -0
  100. package/dist/Editor/themeSettings/icons.js +60 -0
  101. package/dist/Editor/themeSettings/index.js +320 -0
  102. package/dist/Editor/themeSettings/style.js +152 -0
  103. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  104. package/dist/Editor/themeSettingsAI/index.js +356 -0
  105. package/dist/Editor/themeSettingsAI/saveTheme.js +190 -0
  106. package/dist/Editor/themeSettingsAI/style.js +247 -0
  107. package/dist/Editor/utils/SlateUtilityFunctions.js +161 -25
  108. package/dist/Editor/utils/button.js +1 -17
  109. package/dist/Editor/utils/draftToSlate.js +1 -1
  110. package/dist/Editor/utils/events.js +11 -4
  111. package/dist/Editor/utils/font.js +40 -37
  112. package/dist/Editor/utils/helper.js +51 -1
  113. package/package.json +2 -1
@@ -0,0 +1,247 @@
1
+ const style = () => ({
2
+ ".fs-12": {
3
+ fontSize: "12px"
4
+ },
5
+ ".fs-14": {
6
+ fontSize: "14px"
7
+ },
8
+ ".fw-500": {
9
+ fontWeight: "500"
10
+ },
11
+ ".fw-600": {
12
+ fontWeight: "600"
13
+ },
14
+ ".pointer": {
15
+ cursor: "pointer"
16
+ },
17
+ ".transformNone": {
18
+ textTransform: "none"
19
+ },
20
+ ".settingsContainer": {
21
+ width: "340px",
22
+ padding: "16px 16px",
23
+ background: "#fff",
24
+ ".header": {
25
+ borderBottom: `1px solid #DCE4EC`,
26
+ paddingBottom: "8px"
27
+ // marginBottom: "16px",
28
+ }
29
+ },
30
+
31
+ ".title": {
32
+ fontWeight: "700",
33
+ fontSize: "14px"
34
+ },
35
+ ".closeBtn": {
36
+ width: "26px",
37
+ height: "26px",
38
+ BorderRadius: "4px",
39
+ flexShrik: "0",
40
+ padding: "4px",
41
+ background: " #F8FAFC",
42
+ borderRadius: "4px"
43
+ },
44
+ ".MuiTabs-scroller": {
45
+ borderBottom: `1px solid #DCE4EC`
46
+ },
47
+ ".themeCardWrapper": {
48
+ borderRadius: "4px",
49
+ ".active": {
50
+ background: "#ECF2FF"
51
+ }
52
+ },
53
+ ".primaryCard, .secondaryCard": {
54
+ width: "44px",
55
+ height: "44px",
56
+ borderRadius: "5px",
57
+ border: `1px solid #929292`
58
+ },
59
+ ".flexAlign": {
60
+ display: "flex",
61
+ alignItems: "center"
62
+ },
63
+ ".activeColorBox, .xsColorBox": {
64
+ width: "24px",
65
+ height: "24px",
66
+ borderRadius: "5px",
67
+ border: `1px solid #929292`
68
+ },
69
+ ".themeCard": {
70
+ borderRadius: "7px",
71
+ padding: "16px",
72
+ border: "1px solid #F3F3F3",
73
+ boxShadow: "1px 2px 5px 0px #00000014",
74
+ position: "relative",
75
+ flexWrap: "nowrap",
76
+ ".tickIcon": {
77
+ visibility: "hidden",
78
+ opacity: "0",
79
+ position: "absolute",
80
+ right: "-8px",
81
+ top: "-8px"
82
+ },
83
+ "&.selected": {
84
+ ".tickIcon": {
85
+ visibility: "visible",
86
+ opacity: "1"
87
+ }
88
+ }
89
+ },
90
+ ".otherColors": {
91
+ display: "flex",
92
+ flexWrap: "wrap",
93
+ width: "48px",
94
+ ".smallCard": {
95
+ width: "20px",
96
+ height: "20px",
97
+ borderRadius: "5px",
98
+ border: `1px solid #929292`
99
+ }
100
+ },
101
+ ".imageUpload": {
102
+ background: "#F3F3F3",
103
+ borderRadius: "12px",
104
+ padding: "10px",
105
+ height: "208px",
106
+ position: "relative",
107
+ "& .resetIcon": {
108
+ position: "absolute",
109
+ right: "10px",
110
+ top: "10px"
111
+ },
112
+ ".changeImgText": {
113
+ position: "absolute",
114
+ left: "50%",
115
+ top: "50%",
116
+ transform: "translate(-50%, -50%)",
117
+ zIndex: 1,
118
+ background: "#0000004D",
119
+ color: "#fff",
120
+ padding: "6px",
121
+ borderRadius: "6px",
122
+ fontSize: "12px",
123
+ fontWeight: 600,
124
+ opacity: "0",
125
+ visibility: "hidden"
126
+ },
127
+ "&:hover": {
128
+ ".changeImgText": {
129
+ opacity: "1",
130
+ visibility: "visible"
131
+ }
132
+ }
133
+ },
134
+ ".imgUploadInner": {
135
+ background: "#fff",
136
+ borderRadius: "10px",
137
+ border: "0.79px dashed #8360FD",
138
+ height: "100%"
139
+ },
140
+ ".outlineBtn": {
141
+ color: "#2563EB",
142
+ borderRadius: "8px",
143
+ boxShadow: "0px 4px 10px 0px #00000026",
144
+ border: "1px solid #2563EB",
145
+ background: "#EBF1F9",
146
+ height: "34px",
147
+ textTransform: "unset"
148
+ },
149
+ ".seondaryOutlineBtn": {
150
+ border: "1px solid #D8DDE1",
151
+ borderRadius: "8px",
152
+ // boxShadow: "0px 4px 10px 0px #00000026",
153
+ height: "34px",
154
+ textTransform: "unset",
155
+ background: "#eceef3",
156
+ color: "#64748B"
157
+ },
158
+ ".blueBtn": {
159
+ boxShadow: "0px 4px 10px 0px #00000026",
160
+ background: "#2563EB",
161
+ borderRadius: "8px",
162
+ textTransform: "unset",
163
+ height: "34px",
164
+ color: "#fff",
165
+ "&.disabled": {
166
+ background: "#D9D9DD !important",
167
+ color: "#fff !important"
168
+ }
169
+ },
170
+ ".generatedItem": {
171
+ border: "1px solid #E4E6E9",
172
+ borderRadius: "7px",
173
+ padding: "14px",
174
+ display: "flex",
175
+ gap: "16px",
176
+ position: "relative",
177
+ justifyContent: "space-between",
178
+ marginBottom: "12px",
179
+ ".tickIcon": {
180
+ visibility: "hidden",
181
+ opacity: "0",
182
+ position: "absolute",
183
+ right: "-8px",
184
+ top: "-8px"
185
+ },
186
+ "&.selected": {
187
+ border: "1px solid #2563EB",
188
+ boxShadow: " 3px 3px 8px 0px #2563EB40",
189
+ ".tickIcon": {
190
+ visibility: "visible",
191
+ opacity: "1"
192
+ }
193
+ },
194
+ ".colorBox": {
195
+ border: "1px solid #929292",
196
+ height: "28px",
197
+ width: "28px",
198
+ borderRadius: "5px"
199
+ }
200
+ },
201
+ ".textArea": {
202
+ background: "#F3F3F3",
203
+ borderRadius: "12px",
204
+ padding: "10px",
205
+ height: "208px",
206
+ "& textarea": {
207
+ width: "100%",
208
+ height: "100% !important",
209
+ border: "0.79px solid #8360FD",
210
+ background: "#FFFFFF",
211
+ borderRadius: "8px",
212
+ padding: "10px"
213
+ }
214
+ },
215
+ ".imageUrl": {
216
+ height: "auto !important",
217
+ ".MuiOutlinedInput-root": {
218
+ border: "0.79px solid #8360FD",
219
+ background: "#FFFFFF",
220
+ borderRadius: "8px",
221
+ ".tickIcon": {
222
+ width: "18px"
223
+ }
224
+ },
225
+ "&.invalidUrl": {
226
+ ".MuiInputAdornment-root": {
227
+ ".tickIcon": {
228
+ ".fillPath": {
229
+ fill: "#D9D9DD!important"
230
+ }
231
+ }
232
+ }
233
+ }
234
+ },
235
+ ".saveThemeContainer": {
236
+ ".MuiOutlinedInput-root": {
237
+ borderRadius: "8px",
238
+ boxShadow: "0px 4px 16px 0px #0000000D"
239
+ }
240
+ },
241
+ ".uploadedImage": {
242
+ width: "126px",
243
+ height: "126px",
244
+ borderRadius: "126px"
245
+ }
246
+ });
247
+ export default style;
@@ -1,4 +1,4 @@
1
- import { Editor, Transforms, Element as SlateElement } from "slate";
1
+ import { Editor, Transforms, Element as SlateElement, Range } from "slate";
2
2
  import { Box } from "@mui/material";
3
3
  import { fontFamilyMap, sizeMap } from "./font";
4
4
  import Link from "../Elements/Link/Link";
@@ -34,12 +34,12 @@ import SimpleText from "../Elements/SimpleText";
34
34
  import CheckList from "../Elements/List/CheckList";
35
35
  import { isEmptyTextNode } from "../helper";
36
36
  import Attachments from "../Elements/Attachments/Attachments";
37
- import { getBreakPointsValue } from "../helper/theme";
37
+ import { getBreakPointsValue, textThemeFields } from "../helper/theme";
38
38
  import Variables from "../Elements/Variables/Variable";
39
- import insertNewLine from "./insertNewLine";
40
39
  import Divider from "../Elements/Divider/Divider";
41
40
  import { getBorderColor } from "./helper";
42
41
  import Code from "../Elements/EmbedScript/Code";
42
+ import { ReactEditor } from "slate-react";
43
43
  import { jsx as _jsx } from "react/jsx-runtime";
44
44
  const alignment = ["alignLeft", "alignRight", "alignCenter"];
45
45
  const list_types = ["orderedList", "unorderedList"];
@@ -47,7 +47,17 @@ const LIST_FORMAT_TYPE = {
47
47
  orderedList: "list-item",
48
48
  unorderedList: "list-item"
49
49
  };
50
- const NEWLINESAFTER = ["headingOne", "headingTwo", "headingThree"];
50
+
51
+ // const NEWLINESAFTER = [
52
+ // "headingOne",
53
+ // "headingTwo",
54
+ // "headingThree",
55
+ // "headingFour",
56
+ // "headingFive",
57
+ // "headingSix",
58
+ // ];
59
+
60
+ const THEME_BLOCK_FIELDS = ["headingOne", "headingTwo", "headingThree", "headingFour", "headingFive", "headingSix", "paragraphOne", "paragraphTwo", "paragraphThree"];
51
61
  export const toggleBlock = (editor, format, selection = true, attr = {}) => {
52
62
  const isActive = isBlockActive(editor, format);
53
63
  const isList = list_types.includes(format);
@@ -80,8 +90,9 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
80
90
  if (!selection) {
81
91
  Transforms.insertText(editor, "");
82
92
  }
93
+ const forActiveType = THEME_BLOCK_FIELDS.some(f => f === format) ? format : "paragraph";
83
94
  Transforms.setNodes(editor, {
84
- type: isActive ? "paragraph" : isList ? LIST_FORMAT_TYPE[format] : format,
95
+ type: isActive ? forActiveType : isList ? LIST_FORMAT_TYPE[format] : format,
85
96
  ...attr
86
97
  });
87
98
  if (isList && !isActive) {
@@ -90,10 +101,12 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
90
101
  children: []
91
102
  });
92
103
  }
93
- if (NEWLINESAFTER.indexOf(format) > -1) {
94
- insertNewLine(editor);
95
- }
104
+
105
+ // if (NEWLINESAFTER.indexOf(format) > -1) {
106
+ // insertNewLine(editor);
107
+ // }
96
108
  };
109
+
97
110
  export const addMarkData = (editor, data) => {
98
111
  try {
99
112
  Editor.addMark(editor, data.format, data.value);
@@ -102,9 +115,14 @@ export const addMarkData = (editor, data) => {
102
115
  }
103
116
  };
104
117
  export const toggleMark = (editor, format) => {
105
- const isActive = isMarkActive(editor, format);
118
+ const isActive = isMarkBtnActive(editor, format);
106
119
  if (isActive) {
107
- Editor.removeMark(editor, format);
120
+ const isThemeSupportedMark = textThemeFields.some(f => f === format);
121
+ if (isThemeSupportedMark) {
122
+ Editor.addMark(editor, format, false);
123
+ } else {
124
+ Editor.removeMark(editor, format);
125
+ }
108
126
  } else {
109
127
  Editor.addMark(editor, format, true);
110
128
  }
@@ -118,6 +136,53 @@ export const isMarkActive = (editor, format) => {
118
136
  return null;
119
137
  }
120
138
  };
139
+ export const isMarkBtnActive = (editor, format) => {
140
+ switch (format) {
141
+ case "bold":
142
+ {
143
+ const style = getSelectedElementStyle("font-weight", editor);
144
+ return style === "700";
145
+ }
146
+ case "italic":
147
+ {
148
+ const style = getSelectedElementStyle("font-style", editor);
149
+ return style === format;
150
+ }
151
+ // case "underline": {
152
+ // const style = getSelectedElementStyle("text-decoration");
153
+
154
+ // return style?.includes(format);
155
+ // }
156
+ // case "strikethrough": {
157
+ // const style = getSelectedElementStyle("text-decoration");
158
+
159
+ // return style?.includes("line-through");
160
+ // }
161
+ default:
162
+ return isMarkActive(editor, format);
163
+ }
164
+ };
165
+ export const getSelectedElementStyle = (styleProperty, editor) => {
166
+ try {
167
+ if (!editor.selection) {
168
+ return "";
169
+ }
170
+ if (Range.isCollapsed(editor.selection)) {
171
+ return "";
172
+ }
173
+ const domRange = ReactEditor.toDOMRange(editor, editor.selection);
174
+ const selectedDomNode = domRange.commonAncestorContainer;
175
+
176
+ // If it's a text node, get its parent element
177
+ const selectedElement = selectedDomNode.nodeType === 3 ? selectedDomNode.parentElement : selectedDomNode;
178
+ if (selectedElement) {
179
+ const computedStyle = window.getComputedStyle(selectedElement);
180
+ return computedStyle.getPropertyValue(styleProperty) || "";
181
+ }
182
+ } catch (err) {
183
+ console.log(err);
184
+ }
185
+ };
121
186
  export const isBlockActive = (editor, format) => {
122
187
  const [match] = Editor.nodes(editor, {
123
188
  match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && n.type === format
@@ -160,6 +225,31 @@ export const activeMark = (editor, format) => {
160
225
  return null;
161
226
  }
162
227
  };
228
+
229
+ // to avoid the styles, that automatically assign from themes
230
+ const getThemeMarkedLeaf = (leaf, children) => {
231
+ const {
232
+ italic,
233
+ bold
234
+ } = leaf || {};
235
+ const style = {};
236
+ if (italic === false) {
237
+ style.fontStyle = "normal";
238
+ }
239
+ if (bold === false) {
240
+ style.fontWeight = "normal";
241
+ }
242
+ if (Object.keys(style).length) {
243
+ children = /*#__PURE__*/_jsx(Box, {
244
+ component: "span",
245
+ sx: {
246
+ "& span": style
247
+ },
248
+ children: children
249
+ });
250
+ }
251
+ return children;
252
+ };
163
253
  export const getMarked = (leaf, children) => {
164
254
  const className = leaf?.doublequote ? "doublequote" : "";
165
255
  if (leaf.bold) {
@@ -177,6 +267,7 @@ export const getMarked = (leaf, children) => {
177
267
  children: children
178
268
  });
179
269
  }
270
+ children = getThemeMarkedLeaf(leaf, children);
180
271
  if (leaf.strikethrough) {
181
272
  children = /*#__PURE__*/_jsx("span", {
182
273
  style: {
@@ -210,17 +301,22 @@ export const getMarked = (leaf, children) => {
210
301
  } : {
211
302
  color: leaf.color
212
303
  };
304
+ const fontSize = {
305
+ lg: sizeMap[leaf.fontSize] || leaf.fontSize,
306
+ ...getBreakPointsValue(leaf.fontSize, null, "overrideText")
307
+ };
308
+ const fontSizesImportant = {};
309
+ Object.entries(fontSize).forEach(([key, value]) => {
310
+ fontSizesImportant[key] = `${value} !important`;
311
+ });
213
312
  children = /*#__PURE__*/_jsx("span", {
214
- style: {
215
- background: leaf.bgColor
216
- },
217
313
  children: /*#__PURE__*/_jsx(Box, {
218
314
  className: className,
219
315
  component: "span",
220
316
  sx: {
221
- fontSize: {
222
- lg: sizeMap[leaf.fontSize] || leaf.fontSize,
223
- ...getBreakPointsValue(leaf.fontSize, null, "overrideText")
317
+ "& span": {
318
+ fontSize: fontSizesImportant,
319
+ background: leaf.bgColor
224
320
  },
225
321
  ...textStyles,
226
322
  fontFamily: family,
@@ -250,31 +346,71 @@ export const getBlock = props => {
250
346
  } = props;
251
347
  const attributes = props.attributes ?? {};
252
348
  const isEmpty = isEmptyTextNode(element);
349
+ const commonHeadingProps = () => ({
350
+ ...attributes,
351
+ ...element.attr,
352
+ className: `content-editable ${isEmpty ? "empty" : ""} theme-element`
353
+ });
354
+ const commonParaProps = paraType => ({
355
+ ...attributes,
356
+ ...element.attr,
357
+ className: `content-editable ${isEmpty ? "empty" : ""} theme-element ${paraType}`
358
+ });
253
359
  switch (element.type) {
254
360
  case "headingOne":
255
361
  return /*#__PURE__*/_jsx("h1", {
256
- ...attributes,
257
- ...element.attr,
258
- className: `content-editable ${isEmpty ? "empty" : ""}`,
362
+ ...commonHeadingProps(),
259
363
  placeholder: "Heading 1",
260
364
  children: children
261
365
  });
262
366
  case "headingTwo":
263
367
  return /*#__PURE__*/_jsx("h2", {
264
- ...attributes,
265
- ...element.attr,
266
- className: `content-editable ${isEmpty ? "empty" : ""}`,
368
+ ...commonHeadingProps(),
267
369
  placeholder: "Heading 2",
268
370
  children: children
269
371
  });
270
372
  case "headingThree":
271
373
  return /*#__PURE__*/_jsx("h3", {
272
- ...attributes,
273
- ...element.attr,
274
- className: `content-editable ${isEmpty ? "empty" : ""}`,
374
+ ...commonHeadingProps(),
275
375
  placeholder: "Heading 3",
276
376
  children: children
277
377
  });
378
+ case "headingFour":
379
+ return /*#__PURE__*/_jsx("h4", {
380
+ ...commonHeadingProps(),
381
+ placeholder: "Heading 4",
382
+ children: children
383
+ });
384
+ case "headingFive":
385
+ return /*#__PURE__*/_jsx("h5", {
386
+ ...commonHeadingProps(),
387
+ placeholder: "Heading 5",
388
+ children: children
389
+ });
390
+ case "headingSix":
391
+ return /*#__PURE__*/_jsx("h6", {
392
+ ...commonHeadingProps(),
393
+ placeholder: "Heading 6",
394
+ children: children
395
+ });
396
+ case "paragraphOne":
397
+ return /*#__PURE__*/_jsx("p", {
398
+ ...commonParaProps("para1"),
399
+ placeholder: "Paragraph 1",
400
+ children: children
401
+ });
402
+ case "paragraphTwo":
403
+ return /*#__PURE__*/_jsx("p", {
404
+ ...commonParaProps("para2"),
405
+ placeholder: "Paragraph 2",
406
+ children: children
407
+ });
408
+ case "paragraphThree":
409
+ return /*#__PURE__*/_jsx("p", {
410
+ ...commonParaProps("para3"),
411
+ placeholder: "Paragraph 3",
412
+ children: children
413
+ });
278
414
  case "blockquote":
279
415
  return /*#__PURE__*/_jsx("blockquote", {
280
416
  ...attributes,
@@ -1,6 +1,5 @@
1
1
  import { Transforms } from "slate";
2
2
  import insertNewLine from "./insertNewLine";
3
- import { windowVar } from "./helper";
4
3
  export const insertButton = editor => {
5
4
  const button = {
6
5
  type: "button",
@@ -10,22 +9,7 @@ export const insertButton = editor => {
10
9
  buttonLink: {
11
10
  linkType: "webAddress"
12
11
  },
13
- iconPosition: "start",
14
- bgColor: "#2563EB",
15
- textColor: "#FFF",
16
- borderRadius: {
17
- topLeft: 30,
18
- topRight: 30,
19
- bottomLeft: 30,
20
- bottomRight: 30
21
- },
22
- bannerSpacing: {
23
- left: 16,
24
- top: 8,
25
- right: 16,
26
- bottom: 8
27
- },
28
- ...(windowVar.lastButtonProps || {})
12
+ iconPosition: "start"
29
13
  };
30
14
  Transforms.insertNodes(editor, button);
31
15
  Transforms.move(editor);
@@ -100,7 +100,7 @@ export const draftToSlate = props => {
100
100
  return a;
101
101
  }, []);
102
102
  return converted;
103
- } else if (data?.length > 0) {
103
+ } else if (data?.length) {
104
104
  return data;
105
105
  } else {
106
106
  return [{
@@ -3,6 +3,7 @@ import { toggleBlock } from "./SlateUtilityFunctions";
3
3
  import insertNewLine from "./insertNewLine";
4
4
  import { insertAccordion } from "./accordion";
5
5
  import { isListItem } from "./helper";
6
+ import EDITORCMDS from "../common/EditorCmds";
6
7
  const HOTKEYS = {
7
8
  b: "bold",
8
9
  i: "italic",
@@ -63,7 +64,8 @@ export const commands = props => {
63
64
  try {
64
65
  const {
65
66
  event,
66
- editor
67
+ editor,
68
+ needLayout
67
69
  } = props;
68
70
  if (HOTKEYS[event.key]) {
69
71
  event.preventDefault();
@@ -73,6 +75,11 @@ export const commands = props => {
73
75
  } else {
74
76
  Editor.addMark(editor, HOTKEYS[event.key], true);
75
77
  }
78
+ } else if (EDITORCMDS[event.key]) {
79
+ EDITORCMDS[event.key](event, {
80
+ editor,
81
+ needLayout
82
+ });
76
83
  }
77
84
  } catch (err) {
78
85
  console.log(err);
@@ -96,7 +103,7 @@ export const indentation = props => {
96
103
  Transforms.wrapNodes(editor, {
97
104
  type: listItem.type,
98
105
  children: [{
99
- text: ''
106
+ text: ""
100
107
  }]
101
108
  });
102
109
  } else {
@@ -153,7 +160,7 @@ const checkListEnterEvent = (editor, type) => {
153
160
  Transforms.insertNodes(editor, {
154
161
  type: "check-list-item",
155
162
  children: [{
156
- text: ''
163
+ text: ""
157
164
  }]
158
165
  }, {
159
166
  at: newPath
@@ -162,7 +169,7 @@ const checkListEnterEvent = (editor, type) => {
162
169
  // focus on the end of the line
163
170
  Transforms.move(editor, {
164
171
  distance: 1,
165
- unit: 'line'
172
+ unit: "line"
166
173
  });
167
174
  } else {
168
175
  toggleBlock(editor, type);