@flozy/editor 3.9.1 → 3.9.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 (127) hide show
  1. package/dist/Editor/ChatEditor.js +45 -55
  2. package/dist/Editor/CommonEditor.js +111 -180
  3. package/dist/Editor/Editor.css +0 -7
  4. package/dist/Editor/Elements/AI/AIInput.js +18 -17
  5. package/dist/Editor/Elements/AI/CustomSelect.js +12 -19
  6. package/dist/Editor/Elements/AI/PopoverAIInput.js +28 -23
  7. package/dist/Editor/Elements/AI/Styles.js +1 -2
  8. package/dist/Editor/Elements/Accordion/Accordion.js +7 -74
  9. package/dist/Editor/Elements/Accordion/AccordionBtnPopup.js +2 -3
  10. package/dist/Editor/Elements/Accordion/AccordionSummary.js +60 -4
  11. package/dist/Editor/Elements/AppHeader/AppHeader.js +4 -26
  12. package/dist/Editor/Elements/Button/EditorButton.js +16 -28
  13. package/dist/Editor/Elements/Color Picker/ColorButtons.js +17 -60
  14. package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
  15. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  16. package/dist/Editor/Elements/Color Picker/Styles.js +1 -2
  17. package/dist/Editor/Elements/Embed/Image.js +19 -27
  18. package/dist/Editor/Elements/Embed/Video.js +10 -14
  19. package/dist/Editor/Elements/Emoji/EmojiPicker.js +2 -4
  20. package/dist/Editor/Elements/Form/Form.js +1 -1
  21. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +3 -12
  22. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +1 -2
  23. package/dist/Editor/Elements/Grid/Grid.js +3 -27
  24. package/dist/Editor/Elements/Grid/GridItem.js +1 -3
  25. package/dist/Editor/Elements/Link/Link.js +1 -6
  26. package/dist/Editor/Elements/Link/LinkButton.js +2 -4
  27. package/dist/Editor/Elements/Link/LinkPopup.js +3 -10
  28. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +4 -8
  29. package/dist/Editor/Elements/Signature/SignaturePopup.js +3 -14
  30. package/dist/Editor/Elements/Table/Styles.js +1 -23
  31. package/dist/Editor/Elements/Table/Table.js +2 -3
  32. package/dist/Editor/Elements/Table/TableCell.js +8 -70
  33. package/dist/Editor/Elements/TableContextMenu/TableContextMenu.js +0 -1
  34. package/dist/Editor/MiniEditor.js +1 -3
  35. package/dist/Editor/Styles/EditorStyles.js +1 -1
  36. package/dist/Editor/Toolbar/Basic/index.js +2 -4
  37. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +2 -26
  38. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  39. package/dist/Editor/Toolbar/FormatTools/TextSize.js +18 -29
  40. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +3 -29
  41. package/dist/Editor/Toolbar/Mini/Options/Options.js +0 -10
  42. package/dist/Editor/Toolbar/Mini/Styles.js +0 -7
  43. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +11 -4
  44. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +86 -213
  45. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +1 -2
  46. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +16 -22
  47. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +7 -52
  48. package/dist/Editor/Toolbar/PopupTool/index.js +17 -7
  49. package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
  50. package/dist/Editor/assets/svg/AIIcons.js +1 -153
  51. package/dist/Editor/assets/svg/AddTemplateIcon.js +10 -13
  52. package/dist/Editor/assets/svg/TextIcon.js +5 -8
  53. package/dist/Editor/common/ColorPickerButton.js +9 -25
  54. package/dist/Editor/common/DnD/DragHandleButton.js +47 -56
  55. package/dist/Editor/common/Icon.js +3 -43
  56. package/dist/Editor/common/LinkSettings/NavComponents.js +2 -5
  57. package/dist/Editor/common/LinkSettings/index.js +2 -4
  58. package/dist/Editor/common/LinkSettings/navOptions.js +2 -7
  59. package/dist/Editor/common/LinkSettings/style.js +8 -11
  60. package/dist/Editor/common/MentionsPopup/MentionsListCard.js +1 -6
  61. package/dist/Editor/common/MentionsPopup/Styles.js +2 -5
  62. package/dist/Editor/common/Section/index.js +7 -57
  63. package/dist/Editor/common/Section/styles.js +0 -11
  64. package/dist/Editor/common/Shorthands/elements.js +0 -54
  65. package/dist/Editor/common/StyleBuilder/accordionTitleBtnStyle.js +7 -7
  66. package/dist/Editor/common/StyleBuilder/accordionTitleStyle.js +16 -16
  67. package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
  68. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +3 -13
  69. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -15
  70. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +1 -1
  71. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +7 -31
  72. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +4 -13
  73. package/dist/Editor/common/StyleBuilder/fieldTypes/selectBox.js +3 -14
  74. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +4 -14
  75. package/dist/Editor/common/StyleBuilder/index.js +1 -1
  76. package/dist/Editor/common/iconslist.js +31 -0
  77. package/dist/Editor/helper/deserialize/index.js +9 -14
  78. package/dist/Editor/helper/theme.js +4 -190
  79. package/dist/Editor/hooks/useMouseMove.js +2 -4
  80. package/dist/Editor/hooks/useWindowMessage.js +7 -10
  81. package/dist/Editor/plugins/withEmbeds.js +1 -1
  82. package/dist/Editor/plugins/withHTML.js +5 -47
  83. package/dist/Editor/plugins/withLayout.js +10 -15
  84. package/dist/Editor/plugins/withTable.js +2 -2
  85. package/dist/Editor/theme/ThemeList.js +173 -50
  86. package/dist/Editor/utils/SlateUtilityFunctions.js +25 -161
  87. package/dist/Editor/utils/button.js +17 -1
  88. package/dist/Editor/utils/draftToSlate.js +1 -1
  89. package/dist/Editor/utils/events.js +6 -65
  90. package/dist/Editor/utils/font.js +37 -40
  91. package/dist/Editor/utils/helper.js +14 -74
  92. package/dist/Editor/utils/table.js +43 -51
  93. package/package.json +3 -4
  94. package/dist/Editor/Elements/AI/VoiceToText/AudioWave.js +0 -73
  95. package/dist/Editor/Elements/AI/VoiceToText/index.js +0 -177
  96. package/dist/Editor/Elements/AI/VoiceToText/style.js +0 -40
  97. package/dist/Editor/Elements/Link/LinkPopupStyles.js +0 -28
  98. package/dist/Editor/Elements/Redo/RedoButton.js +0 -14
  99. package/dist/Editor/Elements/Undo/UndoButton.js +0 -14
  100. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -438
  101. package/dist/Editor/assets/svg/RedoIcon.js +0 -27
  102. package/dist/Editor/assets/svg/SettingsIcon.js +0 -28
  103. package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
  104. package/dist/Editor/assets/svg/UndoIcon.js +0 -27
  105. package/dist/Editor/common/CustomColorPicker/index.js +0 -106
  106. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  107. package/dist/Editor/common/CustomDialog/index.js +0 -94
  108. package/dist/Editor/common/CustomDialog/style.js +0 -67
  109. package/dist/Editor/common/CustomSelect.js +0 -33
  110. package/dist/Editor/common/EditorCmds.js +0 -35
  111. package/dist/Editor/hooks/useEditorTheme.js +0 -139
  112. package/dist/Editor/theme/index.js +0 -144
  113. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  114. package/dist/Editor/themeSettings/buttons/index.js +0 -290
  115. package/dist/Editor/themeSettings/buttons/style.js +0 -21
  116. package/dist/Editor/themeSettings/colorTheme/index.js +0 -290
  117. package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
  118. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -123
  119. package/dist/Editor/themeSettings/fonts/index.js +0 -213
  120. package/dist/Editor/themeSettings/fonts/style.js +0 -44
  121. package/dist/Editor/themeSettings/icons.js +0 -60
  122. package/dist/Editor/themeSettings/index.js +0 -320
  123. package/dist/Editor/themeSettings/style.js +0 -152
  124. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  125. package/dist/Editor/themeSettingsAI/index.js +0 -356
  126. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -190
  127. package/dist/Editor/themeSettingsAI/style.js +0 -247
@@ -1,58 +1,181 @@
1
- import { Box, MenuItem, Select } from "@mui/material";
2
- import { defaultTheme } from ".";
3
- import { useEditorTheme } from "../hooks/useEditorTheme";
4
- import { useEffect, useState } from "react";
1
+ import { MenuItem, Select, useTheme } from "@mui/material";
2
+ import { fontOptions } from "../utils/font";
3
+ import { toolbarGroups } from "../Toolbar/toolbarGroups";
5
4
  import { jsx as _jsx } from "react/jsx-runtime";
6
5
  import { jsxs as _jsxs } from "react/jsx-runtime";
7
- function ThemeList({
8
- editor,
9
- services = () => {}
10
- }) {
11
- const [themes, setThemes] = useState([]);
12
- const [loading, setLoading] = useState(false);
13
- console.log("loading", loading);
14
- const getThemesList = async () => {
15
- setLoading(true);
16
- try {
17
- const result = await services("getThemes", {});
18
- setThemes(result?.data || []);
19
- } catch (err) {
20
- console.log(err);
21
- }
22
- setLoading(false);
23
- };
6
+ const themes = [{
7
+ label: "Theme 1",
8
+ colors: ["#c90c1f", "#ff5d05"]
9
+ }, {
10
+ label: "Theme 2",
11
+ colors: ["#4c0be3", "#43f7ee"]
12
+ }, {
13
+ label: "Theme 3",
14
+ colors: ["#22f20f", "#fff705"]
15
+ }];
16
+ const allTools = toolbarGroups.flat();
17
+ function ThemeList(props) {
24
18
  const {
25
- updateTheme
26
- } = useEditorTheme();
27
- useEffect(() => {
28
- getThemesList();
29
- }, []);
30
- const handleThemeChange = e => {
31
- const {
32
- value
33
- } = e.target;
34
- const selectedTheme = themes.find(t => t.id === value) || defaultTheme;
35
- updateTheme(selectedTheme, "THEME_CHANGE");
19
+ selectedTheme,
20
+ setSelectedTheme
21
+ } = props;
22
+ const fontWeight = allTools.find(f => f.format === "fontWeight");
23
+ const fontStyles = [{
24
+ text: "Bold",
25
+ value: "bold",
26
+ styleField: "fontWeight"
27
+ }, {
28
+ text: "Italic",
29
+ value: "italic",
30
+ styleField: "fontStyle"
31
+ }
32
+ // {
33
+ // text: "Underline",
34
+ // value: "underline",
35
+ // styleField: "textDecoration",
36
+ // },
37
+ // {
38
+ // text: "Line through",
39
+ // value: "line-through",
40
+ // styleField: "textDecoration",
41
+ // },
42
+ ];
43
+
44
+ const theme = useTheme();
45
+ const colorVars = theme?.vars?.colors || {};
46
+ const handleTypographyTheme = (key, value, elementType) => {
47
+ setSelectedTheme(prev => {
48
+ const newValue = {
49
+ ...prev,
50
+ typography: {
51
+ ...(prev.typography || {}),
52
+ [elementType]: {
53
+ ...(prev?.typography?.[elementType] || {}),
54
+ [key]: value
55
+ }
56
+ }
57
+ };
58
+ if (!value) {
59
+ delete newValue?.typography?.[elementType]?.[key];
60
+ }
61
+ return newValue;
62
+ });
36
63
  };
37
- return /*#__PURE__*/_jsx(Box, {
38
- sx: {
39
- padding: "10px",
40
- background: "#efefef",
41
- borderRadius: "6px"
42
- },
43
- children: /*#__PURE__*/_jsxs(Select, {
44
- onChange: handleThemeChange,
45
- defaultValue: 0,
46
- children: [/*#__PURE__*/_jsx(MenuItem, {
47
- value: 0,
48
- children: "Default Theme"
49
- }), themes.map((theme, i) => {
50
- return /*#__PURE__*/_jsx(MenuItem, {
51
- value: theme?.id,
52
- children: theme?.name
53
- }, i);
64
+ return /*#__PURE__*/_jsxs("div", {
65
+ children: [themes.map((theme, i) => {
66
+ return /*#__PURE__*/_jsxs("button", {
67
+ style: {
68
+ margin: "10px"
69
+ },
70
+ onClick: () => setSelectedTheme(prev => ({
71
+ ...prev,
72
+ colors: theme.colors
73
+ })),
74
+ children: [theme.label, /*#__PURE__*/_jsx("div", {
75
+ children: theme.colors.map((c, j) => {
76
+ return /*#__PURE__*/_jsx("div", {
77
+ style: {
78
+ width: "20px",
79
+ height: "20px",
80
+ background: c,
81
+ margin: "10px"
82
+ }
83
+ }, j);
84
+ })
85
+ })]
86
+ }, i);
87
+ }), /*#__PURE__*/_jsxs("div", {
88
+ children: ["Heading 1 Font Family", /*#__PURE__*/_jsx(Select
89
+ // value={""}
90
+ , {
91
+ label: "Font Family",
92
+ onChange: e => {
93
+ handleTypographyTheme("fontFamily", e.target.value, "h1");
94
+ },
95
+ children: fontOptions.map((font, i) => {
96
+ const {
97
+ text,
98
+ value
99
+ } = font;
100
+ return /*#__PURE__*/_jsx(MenuItem, {
101
+ value: value,
102
+ children: text
103
+ }, i);
104
+ })
105
+ }), "Font Weight", /*#__PURE__*/_jsx(Select
106
+ // value={""}
107
+ , {
108
+ label: "Font Weight",
109
+ onChange: e => {
110
+ handleTypographyTheme("fontWeight", e.target.value, "h1");
111
+ },
112
+ children: fontWeight.options.map((option, i) => {
113
+ const {
114
+ text,
115
+ value
116
+ } = option;
117
+ return /*#__PURE__*/_jsx(MenuItem, {
118
+ value: value,
119
+ children: text
120
+ }, i);
121
+ })
122
+ }), /*#__PURE__*/_jsx("input", {
123
+ type: "number",
124
+ placeholder: "font size",
125
+ onChange: e => {
126
+ handleTypographyTheme("fontSize", e.target.value, "h1");
127
+ }
128
+ }), /*#__PURE__*/_jsxs("div", {
129
+ children: ["Text", /*#__PURE__*/_jsx("br", {}), "Theme color", Object.values(colorVars).map((colorVar, i) => {
130
+ return /*#__PURE__*/_jsx("button", {
131
+ style: {
132
+ width: "20px",
133
+ height: "20px",
134
+ background: colorVar,
135
+ margin: "10px",
136
+ outline: "none"
137
+ },
138
+ onClick: () => handleTypographyTheme("color", colorVar, "h1")
139
+ }, i);
140
+ }), "normal color", /*#__PURE__*/_jsx("button", {
141
+ style: {
142
+ width: "20px",
143
+ height: "20px",
144
+ background: "#ff00e1",
145
+ margin: "10px",
146
+ outline: "none"
147
+ },
148
+ onClick: () => handleTypographyTheme("color", "#ff00e1", "h1")
149
+ })]
150
+ }), /*#__PURE__*/_jsxs("div", {
151
+ children: ["Font styles", fontStyles.map((option, i) => {
152
+ const styles = selectedTheme?.typography?.h1 || {};
153
+ const {
154
+ text,
155
+ value,
156
+ styleField
157
+ } = option;
158
+ return /*#__PURE__*/_jsxs("button", {
159
+ onClick: () => {
160
+ handleTypographyTheme(styleField, styles[styleField] === value ? null : value, "h1");
161
+ },
162
+ children: [text, " ", styles[styleField] === value]
163
+ }, i);
164
+ })]
165
+ }), /*#__PURE__*/_jsx("input", {
166
+ type: "number",
167
+ placeholder: "Margin text Spacing",
168
+ onChange: e => {
169
+ handleTypographyTheme("letterSpacing", e.target.value, "h1");
170
+ }
171
+ }), /*#__PURE__*/_jsx("input", {
172
+ type: "number",
173
+ placeholder: "Line spacing",
174
+ onChange: e => {
175
+ handleTypographyTheme("lineHeight", e.target.value, "h1");
176
+ }
54
177
  })]
55
- })
178
+ })]
56
179
  });
57
180
  }
58
181
  export default ThemeList;
@@ -1,4 +1,4 @@
1
- import { Editor, Transforms, Element as SlateElement, Range } from "slate";
1
+ import { Editor, Transforms, Element as SlateElement } 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, textThemeFields } from "../helper/theme";
37
+ import { getBreakPointsValue } from "../helper/theme";
38
38
  import Variables from "../Elements/Variables/Variable";
39
+ import insertNewLine from "./insertNewLine";
39
40
  import Divider from "../Elements/Divider/Divider";
40
41
  import { getBorderColor } from "./helper";
41
42
  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,17 +47,7 @@ const LIST_FORMAT_TYPE = {
47
47
  orderedList: "list-item",
48
48
  unorderedList: "list-item"
49
49
  };
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"];
50
+ const NEWLINESAFTER = ["headingOne", "headingTwo", "headingThree"];
61
51
  export const toggleBlock = (editor, format, selection = true, attr = {}) => {
62
52
  const isActive = isBlockActive(editor, format);
63
53
  const isList = list_types.includes(format);
@@ -90,9 +80,8 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
90
80
  if (!selection) {
91
81
  Transforms.insertText(editor, "");
92
82
  }
93
- const forActiveType = THEME_BLOCK_FIELDS.some(f => f === format) ? format : "paragraph";
94
83
  Transforms.setNodes(editor, {
95
- type: isActive ? forActiveType : isList ? LIST_FORMAT_TYPE[format] : format,
84
+ type: isActive ? "paragraph" : isList ? LIST_FORMAT_TYPE[format] : format,
96
85
  ...attr
97
86
  });
98
87
  if (isList && !isActive) {
@@ -101,12 +90,10 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
101
90
  children: []
102
91
  });
103
92
  }
104
-
105
- // if (NEWLINESAFTER.indexOf(format) > -1) {
106
- // insertNewLine(editor);
107
- // }
93
+ if (NEWLINESAFTER.indexOf(format) > -1) {
94
+ insertNewLine(editor);
95
+ }
108
96
  };
109
-
110
97
  export const addMarkData = (editor, data) => {
111
98
  try {
112
99
  Editor.addMark(editor, data.format, data.value);
@@ -115,14 +102,9 @@ export const addMarkData = (editor, data) => {
115
102
  }
116
103
  };
117
104
  export const toggleMark = (editor, format) => {
118
- const isActive = isMarkBtnActive(editor, format);
105
+ const isActive = isMarkActive(editor, format);
119
106
  if (isActive) {
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
- }
107
+ Editor.removeMark(editor, format);
126
108
  } else {
127
109
  Editor.addMark(editor, format, true);
128
110
  }
@@ -136,53 +118,6 @@ export const isMarkActive = (editor, format) => {
136
118
  return null;
137
119
  }
138
120
  };
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
- };
186
121
  export const isBlockActive = (editor, format) => {
187
122
  const [match] = Editor.nodes(editor, {
188
123
  match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && n.type === format
@@ -225,31 +160,6 @@ export const activeMark = (editor, format) => {
225
160
  return null;
226
161
  }
227
162
  };
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
- };
253
163
  export const getMarked = (leaf, children) => {
254
164
  const className = leaf?.doublequote ? "doublequote" : "";
255
165
  if (leaf.bold) {
@@ -267,7 +177,6 @@ export const getMarked = (leaf, children) => {
267
177
  children: children
268
178
  });
269
179
  }
270
- children = getThemeMarkedLeaf(leaf, children);
271
180
  if (leaf.strikethrough) {
272
181
  children = /*#__PURE__*/_jsx("span", {
273
182
  style: {
@@ -301,22 +210,17 @@ export const getMarked = (leaf, children) => {
301
210
  } : {
302
211
  color: leaf.color
303
212
  };
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
- });
312
213
  children = /*#__PURE__*/_jsx("span", {
214
+ style: {
215
+ background: leaf.bgColor
216
+ },
313
217
  children: /*#__PURE__*/_jsx(Box, {
314
218
  className: className,
315
219
  component: "span",
316
220
  sx: {
317
- "& span": {
318
- fontSize: fontSizesImportant,
319
- background: leaf.bgColor
221
+ fontSize: {
222
+ lg: sizeMap[leaf.fontSize] || leaf.fontSize,
223
+ ...getBreakPointsValue(leaf.fontSize, null, "overrideText")
320
224
  },
321
225
  ...textStyles,
322
226
  fontFamily: family,
@@ -346,71 +250,31 @@ export const getBlock = props => {
346
250
  } = props;
347
251
  const attributes = props.attributes ?? {};
348
252
  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
- });
359
253
  switch (element.type) {
360
254
  case "headingOne":
361
255
  return /*#__PURE__*/_jsx("h1", {
362
- ...commonHeadingProps(),
256
+ ...attributes,
257
+ ...element.attr,
258
+ className: `content-editable ${isEmpty ? "empty" : ""}`,
363
259
  placeholder: "Heading 1",
364
260
  children: children
365
261
  });
366
262
  case "headingTwo":
367
263
  return /*#__PURE__*/_jsx("h2", {
368
- ...commonHeadingProps(),
264
+ ...attributes,
265
+ ...element.attr,
266
+ className: `content-editable ${isEmpty ? "empty" : ""}`,
369
267
  placeholder: "Heading 2",
370
268
  children: children
371
269
  });
372
270
  case "headingThree":
373
271
  return /*#__PURE__*/_jsx("h3", {
374
- ...commonHeadingProps(),
272
+ ...attributes,
273
+ ...element.attr,
274
+ className: `content-editable ${isEmpty ? "empty" : ""}`,
375
275
  placeholder: "Heading 3",
376
276
  children: children
377
277
  });
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
- });
414
278
  case "blockquote":
415
279
  return /*#__PURE__*/_jsx("blockquote", {
416
280
  ...attributes,
@@ -1,5 +1,6 @@
1
1
  import { Transforms } from "slate";
2
2
  import insertNewLine from "./insertNewLine";
3
+ import { windowVar } from "./helper";
3
4
  export const insertButton = editor => {
4
5
  const button = {
5
6
  type: "button",
@@ -9,7 +10,22 @@ export const insertButton = editor => {
9
10
  buttonLink: {
10
11
  linkType: "webAddress"
11
12
  },
12
- iconPosition: "start"
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 || {})
13
29
  };
14
30
  Transforms.insertNodes(editor, button);
15
31
  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 [{
@@ -1,9 +1,8 @@
1
- import { Editor, Transforms, Element, Node, Path, Range } from "slate";
1
+ import { Editor, Transforms, Element, Node, Path } from "slate";
2
2
  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";
7
6
  const HOTKEYS = {
8
7
  b: "bold",
9
8
  i: "italic",
@@ -64,8 +63,7 @@ export const commands = props => {
64
63
  try {
65
64
  const {
66
65
  event,
67
- editor,
68
- needLayout
66
+ editor
69
67
  } = props;
70
68
  if (HOTKEYS[event.key]) {
71
69
  event.preventDefault();
@@ -75,11 +73,6 @@ export const commands = props => {
75
73
  } else {
76
74
  Editor.addMark(editor, HOTKEYS[event.key], true);
77
75
  }
78
- } else if (EDITORCMDS[event.key]) {
79
- EDITORCMDS[event.key](event, {
80
- editor,
81
- needLayout
82
- });
83
76
  }
84
77
  } catch (err) {
85
78
  console.log(err);
@@ -103,7 +96,7 @@ export const indentation = props => {
103
96
  Transforms.wrapNodes(editor, {
104
97
  type: listItem.type,
105
98
  children: [{
106
- text: ""
99
+ text: ''
107
100
  }]
108
101
  });
109
102
  } else {
@@ -160,7 +153,7 @@ const checkListEnterEvent = (editor, type) => {
160
153
  Transforms.insertNodes(editor, {
161
154
  type: "check-list-item",
162
155
  children: [{
163
- text: ""
156
+ text: ''
164
157
  }]
165
158
  }, {
166
159
  at: newPath
@@ -169,7 +162,7 @@ const checkListEnterEvent = (editor, type) => {
169
162
  // focus on the end of the line
170
163
  Transforms.move(editor, {
171
164
  distance: 1,
172
- unit: "line"
165
+ unit: 'line'
173
166
  });
174
167
  } else {
175
168
  toggleBlock(editor, type);
@@ -179,6 +172,7 @@ const checkListEnterEvent = (editor, type) => {
179
172
  export const enterEvent = (e, editor, isMobile) => {
180
173
  try {
181
174
  const ele = isListItem(editor);
175
+
182
176
  // on shift enter break line in same node
183
177
  if (e.shiftKey && !isMobile) {
184
178
  e.preventDefault();
@@ -187,7 +181,6 @@ export const enterEvent = (e, editor, isMobile) => {
187
181
  const {
188
182
  type
189
183
  } = ele[0];
190
- const path = ele[1];
191
184
  const text = Node.string(ele[0]);
192
185
  switch (type) {
193
186
  case "list-item":
@@ -219,58 +212,6 @@ export const enterEvent = (e, editor, isMobile) => {
219
212
  insertAccordion(editor, nextPath);
220
213
  }
221
214
  break;
222
- case "headingOne":
223
- case "headingTwo":
224
- case "headingThree":
225
- const {
226
- selection
227
- } = editor;
228
- if (selection && Range.isCollapsed(selection)) {
229
- const isAtEnd = Editor.isEnd(editor, selection.anchor, path);
230
- const isAtStart = Editor.isStart(editor, selection.anchor, path);
231
- if (isAtEnd) {
232
- e.preventDefault();
233
- Transforms.insertNodes(editor, {
234
- type: 'paragraph',
235
- children: [{
236
- text: ''
237
- }]
238
- });
239
- const newLocation = Editor.after(editor, selection);
240
- if (newLocation) {
241
- Transforms.select(editor, newLocation);
242
- }
243
- } else if (!isAtStart) {
244
- e.preventDefault();
245
- Transforms.splitNodes(editor);
246
- Transforms.setNodes(editor, {
247
- type: 'paragraph'
248
- }, {
249
- at: Editor.after(editor, selection)
250
- });
251
- const newLocation = Editor.after(editor, selection);
252
- if (newLocation) {
253
- Transforms.select(editor, newLocation);
254
- }
255
- } else if (isAtStart) {
256
- e.preventDefault();
257
- Transforms.insertNodes(editor, {
258
- type: 'paragraph',
259
- children: [{
260
- text: ''
261
- }]
262
- }, {
263
- at: Editor.before(editor, selection)
264
- });
265
- Transforms.select(editor, Editor.before(editor, selection));
266
- const newLocation = Editor.before(editor, selection);
267
- if (newLocation) {
268
- Transforms.select(editor, newLocation);
269
- }
270
- }
271
- return;
272
- }
273
- break;
274
215
  default:
275
216
  }
276
217
  }