@flozy/editor 8.0.8 → 9.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/Editor/ChatEditor.js +1 -2
  2. package/dist/Editor/CommonEditor.js +33 -112
  3. package/dist/Editor/DialogWrapper.js +25 -31
  4. package/dist/Editor/Editor.css +16 -32
  5. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  6. package/dist/Editor/Elements/Button/EditorButton.js +9 -25
  7. package/dist/Editor/Elements/Color Picker/ColorButtons.js +12 -57
  8. package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
  9. package/dist/Editor/Elements/Color Picker/ColorPicker.js +7 -9
  10. package/dist/Editor/Elements/Color Picker/Styles.js +1 -1
  11. package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +1 -4
  12. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +4 -3
  13. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +1 -6
  14. package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +9 -19
  15. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +2 -32
  16. package/dist/Editor/Elements/DataView/Layouts/TableView.js +29 -126
  17. package/dist/Editor/Elements/DataView/Layouts/ViewData.js +3 -3
  18. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +1 -1
  19. package/dist/Editor/Elements/DataView/styles.js +8 -8
  20. package/dist/Editor/Elements/Embed/Image.js +2 -2
  21. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +14 -0
  22. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +1 -2
  23. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +1 -2
  24. package/dist/Editor/Elements/FreeGrid/styles.js +0 -3
  25. package/dist/Editor/Elements/Grid/GridItem.js +3 -2
  26. package/dist/Editor/Elements/Link/Link.js +43 -70
  27. package/dist/Editor/Elements/SimpleText/index.js +12 -7
  28. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  29. package/dist/Editor/Elements/Table/Table.js +16 -17
  30. package/dist/Editor/Elements/Table/TableCell.js +3 -4
  31. package/dist/Editor/Elements/Title/title.js +1 -13
  32. package/dist/Editor/Elements/Variables/Style.js +2 -28
  33. package/dist/Editor/Elements/Variables/VariableButton.js +4 -17
  34. package/dist/Editor/Styles/EditorStyles.js +291 -287
  35. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +3 -27
  36. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +3 -4
  37. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  38. package/dist/Editor/Toolbar/FormatTools/TextSize.js +15 -7
  39. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +0 -1
  40. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +8 -9
  41. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +13 -6
  42. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +85 -210
  43. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +1 -2
  44. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +12 -16
  45. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +9 -56
  46. package/dist/Editor/Toolbar/PopupTool/index.js +38 -31
  47. package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
  48. package/dist/Editor/common/ColorPickerButton.js +9 -35
  49. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  50. package/dist/Editor/common/DnD/Draggable.js +1 -0
  51. package/dist/Editor/common/FontLoader/FontList.js +11 -3
  52. package/dist/Editor/common/FontLoader/FontLoader.js +42 -74
  53. package/dist/Editor/common/Icon.js +0 -28
  54. package/dist/Editor/common/ImageSelector/Options/Upload.js +1 -1
  55. package/dist/Editor/common/ImageSelector/Styles.js +9 -3
  56. package/dist/Editor/common/ImageSelector/UploadStyles.js +2 -1
  57. package/dist/Editor/common/LinkSettings/NavComponents.js +5 -1
  58. package/dist/Editor/common/LinkSettings/index.js +5 -1
  59. package/dist/Editor/common/LinkSettings/style.js +7 -0
  60. package/dist/Editor/common/MentionsPopup/Styles.js +12 -6
  61. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +1 -2
  62. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +2 -3
  63. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +2 -3
  64. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +2 -3
  65. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +2 -3
  66. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +2 -4
  67. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +2 -3
  68. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
  69. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +2 -3
  70. package/dist/Editor/common/RnD/ElementSettings/styles.js +1 -0
  71. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +2 -8
  72. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +3 -6
  73. package/dist/Editor/common/RnD/Utils/gridDropItem.js +4 -5
  74. package/dist/Editor/common/RnD/Utils/index.js +0 -45
  75. package/dist/Editor/common/RnD/index.js +3 -23
  76. package/dist/Editor/common/Section/index.js +89 -60
  77. package/dist/Editor/common/Shorthands/elements.js +0 -54
  78. package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
  79. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +0 -5
  80. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +2 -12
  81. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -15
  82. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +2 -10
  83. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +11 -35
  84. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +4 -13
  85. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +7 -15
  86. package/dist/Editor/common/Uploader.js +0 -8
  87. package/dist/Editor/commonStyle.js +69 -114
  88. package/dist/Editor/helper/deserialize/index.js +1 -1
  89. package/dist/Editor/helper/index.js +2 -2
  90. package/dist/Editor/helper/theme.js +2 -200
  91. package/dist/Editor/hooks/useEditorScroll.js +1 -1
  92. package/dist/Editor/hooks/useMouseMove.js +3 -9
  93. package/dist/Editor/plugins/withEmbeds.js +1 -1
  94. package/dist/Editor/plugins/withHTML.js +21 -20
  95. package/dist/Editor/plugins/withLayout.js +1 -1
  96. package/dist/Editor/plugins/withTable.js +1 -1
  97. package/dist/Editor/theme/ThemeList.js +173 -50
  98. package/dist/Editor/utils/SlateUtilityFunctions.js +49 -157
  99. package/dist/Editor/utils/button.js +14 -0
  100. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +0 -23
  101. package/dist/Editor/utils/draftToSlate.js +2 -3
  102. package/dist/Editor/utils/font.js +37 -40
  103. package/dist/Editor/utils/helper.js +19 -59
  104. package/dist/Editor/utils/link.js +1 -1
  105. package/package.json +2 -5
  106. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -438
  107. package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
  108. package/dist/Editor/common/CustomColorPicker/index.js +0 -106
  109. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  110. package/dist/Editor/common/CustomDialog/index.js +0 -90
  111. package/dist/Editor/common/CustomDialog/style.js +0 -67
  112. package/dist/Editor/common/CustomDialog/styles.js +0 -80
  113. package/dist/Editor/common/CustomSelect.js +0 -33
  114. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
  115. package/dist/Editor/hooks/useEditorTheme.js +0 -153
  116. package/dist/Editor/theme/index.js +0 -144
  117. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  118. package/dist/Editor/themeSettings/buttons/index.js +0 -283
  119. package/dist/Editor/themeSettings/buttons/style.js +0 -21
  120. package/dist/Editor/themeSettings/colorTheme/index.js +0 -292
  121. package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
  122. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
  123. package/dist/Editor/themeSettings/fonts/index.js +0 -220
  124. package/dist/Editor/themeSettings/fonts/style.js +0 -44
  125. package/dist/Editor/themeSettings/icons.js +0 -60
  126. package/dist/Editor/themeSettings/index.js +0 -320
  127. package/dist/Editor/themeSettings/style.js +0 -152
  128. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  129. package/dist/Editor/themeSettingsAI/index.js +0 -356
  130. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -197
  131. package/dist/Editor/themeSettingsAI/style.js +0 -250
@@ -1,6 +1,6 @@
1
1
  import { Editor, Range, Point, Element, Transforms, Node } from "slate";
2
2
  import { TableUtil, createTableCell } from "../utils/table";
3
- const NON_DELETABLE_BLOCKS = ["table-cell", "carousel-item", "page-settings"];
3
+ const NON_DELETABLE_BLOCKS = ["table-cell", "carousel-item"];
4
4
  const withTable = editor => {
5
5
  const {
6
6
  deleteBackward,
@@ -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;
@@ -34,12 +34,12 @@ import SimpleText from "../Elements/SimpleText";
34
34
  import CheckList from "../Elements/List/CheckList";
35
35
  import { getTextColor, isEmptyTextNode } from "../helper";
36
36
  import Attachments from "../Elements/Attachments/Attachments";
37
- import { getBreakPointsValue, textThemeFields, getElementProperty } from "../helper/theme";
37
+ import { getBreakPointsValue, groupByBreakpoint } 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
- import { getBorderColor } from "./helper";
41
+ import { getBorderColor, getSlateDom } from "./helper";
41
42
  import Code from "../Elements/EmbedScript/Code";
42
- import { ReactEditor } from "slate-react";
43
43
  import FreeGrid from "../Elements/FreeGrid/FreeGrid";
44
44
  import FreeGridItem from "../Elements/FreeGrid/FreeGridItem";
45
45
  import FreeGridBox from "../Elements/FreeGrid/FreeGridBox";
@@ -47,7 +47,7 @@ import DataView from "../Elements/DataView/DataView";
47
47
  import ViewData from "../Elements/DataView/Layouts/ViewData";
48
48
  import ColumnView from "../Elements/DataView/Layouts/ColumnView";
49
49
  import SearchAttachment from "../Elements/Search/SearchAttachment";
50
- import { wrapThemeBreakpoints } from "../Elements/FreeGrid/breakpointConstants";
50
+ // import { wrapThemeBreakpoints } from "../Elements/FreeGrid/breakpointConstants";
51
51
  import { jsx as _jsx } from "react/jsx-runtime";
52
52
  const alignment = ["alignLeft", "alignRight", "alignCenter", "alignJustify"];
53
53
  const list_types = ["orderedList", "unorderedList"];
@@ -55,17 +55,7 @@ const LIST_FORMAT_TYPE = {
55
55
  orderedList: "list-item",
56
56
  unorderedList: "list-item"
57
57
  };
58
-
59
- // const NEWLINESAFTER = [
60
- // "headingOne",
61
- // "headingTwo",
62
- // "headingThree",
63
- // "headingFour",
64
- // "headingFive",
65
- // "headingSix",
66
- // ];
67
-
68
- const THEME_BLOCK_FIELDS = ["headingOne", "headingTwo", "headingThree", "headingFour", "headingFive", "headingSix", "paragraphOne", "paragraphTwo", "paragraphThree"];
58
+ const NEWLINESAFTER = ["headingOne", "headingTwo", "headingThree"];
69
59
  export const toggleBlock = (editor, format, selection = true, attr = {}) => {
70
60
  const isActive = isBlockActive(editor, format);
71
61
  const isList = list_types.includes(format);
@@ -98,9 +88,8 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
98
88
  if (!selection) {
99
89
  Transforms.insertText(editor, "");
100
90
  }
101
- const forActiveType = THEME_BLOCK_FIELDS.some(f => f === format) ? format : "paragraph";
102
91
  Transforms.setNodes(editor, {
103
- type: isActive ? forActiveType : isList ? LIST_FORMAT_TYPE[format] : format,
92
+ type: isActive ? "paragraph" : isList ? LIST_FORMAT_TYPE[format] : format,
104
93
  ...attr
105
94
  });
106
95
  if (isList && !isActive) {
@@ -109,12 +98,10 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
109
98
  children: []
110
99
  });
111
100
  }
112
-
113
- // if (NEWLINESAFTER.indexOf(format) > -1) {
114
- // insertNewLine(editor);
115
- // }
101
+ if (NEWLINESAFTER.indexOf(format) > -1) {
102
+ insertNewLine(editor);
103
+ }
116
104
  };
117
-
118
105
  export const addMarkData = (editor, data) => {
119
106
  try {
120
107
  Editor.addMark(editor, data.format, data.value);
@@ -123,14 +110,9 @@ export const addMarkData = (editor, data) => {
123
110
  }
124
111
  };
125
112
  export const toggleMark = (editor, format) => {
126
- const isActive = isMarkBtnActive(editor, format);
113
+ const isActive = isMarkActive(editor, format);
127
114
  if (isActive) {
128
- const isThemeSupportedMark = textThemeFields.some(f => f === format);
129
- if (isThemeSupportedMark) {
130
- Editor.addMark(editor, format, false);
131
- } else {
132
- Editor.removeMark(editor, format);
133
- }
115
+ Editor.removeMark(editor, format);
134
116
  } else {
135
117
  Editor.addMark(editor, format, true);
136
118
  }
@@ -144,52 +126,6 @@ export const isMarkActive = (editor, format) => {
144
126
  return null;
145
127
  }
146
128
  };
147
- export const isMarkBtnActive = (editor, format) => {
148
- switch (format) {
149
- case "bold":
150
- {
151
- const style = getSelectedElementStyle("font-weight", editor);
152
- return style === "700";
153
- }
154
- case "italic":
155
- {
156
- const style = getSelectedElementStyle("font-style", editor);
157
- return style === format;
158
- }
159
- // case "underline": {
160
- // const style = getSelectedElementStyle("text-decoration");
161
-
162
- // return style?.includes(format);
163
- // }
164
- // case "strikethrough": {
165
- // const style = getSelectedElementStyle("text-decoration");
166
-
167
- // return style?.includes("line-through");
168
- // }
169
- default:
170
- return isMarkActive(editor, format);
171
- }
172
- };
173
- export const getSelectedElementStyle = (styleProperty, editor) => {
174
- try {
175
- if (!editor.selection) {
176
- return "";
177
- }
178
- if (Range.isCollapsed(editor.selection)) {
179
- return "";
180
- }
181
- const domRange = ReactEditor.toDOMRange(editor, editor.selection);
182
- const selectedDomNode = domRange.commonAncestorContainer;
183
-
184
- // If it's a text node, get its parent element
185
- const selectedElement = selectedDomNode.nodeType === 3 ? selectedDomNode.parentElement : selectedDomNode;
186
- if (selectedElement) {
187
- return getElementProperty(selectedElement, styleProperty);
188
- }
189
- } catch (err) {
190
- console.log(err);
191
- }
192
- };
193
129
  export const isBlockActive = (editor, format) => {
194
130
  const [match] = Editor.nodes(editor, {
195
131
  match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && n.type === format
@@ -225,38 +161,23 @@ export const activeMark = (editor, format) => {
225
161
  };
226
162
  try {
227
163
  const marks = Editor.marks(editor);
228
- const defaultValue = defaultMarkData[format];
164
+ let defaultValue = defaultMarkData[format];
165
+ const {
166
+ selection
167
+ } = editor || {};
168
+ if (format === "fontSize" && selection && !Range.isCollapsed(selection)) {
169
+ const slateDom = getSlateDom(editor, editor?.selection);
170
+ if (slateDom) {
171
+ const parentElement = slateDom.commonAncestorContainer.parentElement;
172
+ defaultValue = window.getComputedStyle(parentElement).fontSize;
173
+ }
174
+ }
229
175
  return marks?.[format] ?? defaultValue;
230
176
  } catch (err) {
231
177
  console.log(err);
232
178
  return null;
233
179
  }
234
180
  };
235
-
236
- // to avoid the styles, that automatically assign from themes
237
- const getThemeMarkedLeaf = (leaf, children) => {
238
- const {
239
- italic,
240
- bold
241
- } = leaf || {};
242
- const style = {};
243
- if (italic === false) {
244
- style.fontStyle = "normal";
245
- }
246
- if (bold === false) {
247
- style.fontWeight = "normal";
248
- }
249
- if (Object.keys(style).length) {
250
- children = /*#__PURE__*/_jsx(Box, {
251
- component: "span",
252
- sx: {
253
- "& span": style
254
- },
255
- children: children
256
- });
257
- }
258
- return children;
259
- };
260
181
  export const getMarked = (leaf, children, theme) => {
261
182
  const className = leaf?.doublequote ? "doublequote" : "";
262
183
  if (leaf.highlight) {
@@ -283,7 +204,6 @@ export const getMarked = (leaf, children, theme) => {
283
204
  children: children
284
205
  });
285
206
  }
286
- children = getThemeMarkedLeaf(leaf, children);
287
207
  if (leaf.strikethrough) {
288
208
  children = /*#__PURE__*/_jsx("span", {
289
209
  style: {
@@ -311,27 +231,20 @@ export const getMarked = (leaf, children, theme) => {
311
231
  if (leaf.color || leaf.bgColor || leaf.fontSize || leaf.fontFamily || leaf.fontWeight || className) {
312
232
  const family = leaf?.fontFamily;
313
233
  const textStyles = getTextColor(leaf?.color);
314
- const fontSize = {
315
- lg: sizeMap[leaf.fontSize] || leaf.fontSize,
316
- ...getBreakPointsValue(leaf.fontSize, null, "overrideText")
317
- };
318
- const fontSizesImportant = {};
319
- Object.entries(fontSize).forEach(([key, value]) => {
320
- fontSizesImportant[key] = `${value} !important`;
321
- });
322
- const fontSizeWithBreakpoints = wrapThemeBreakpoints(fontSizesImportant, "fontSize", theme);
323
234
  children = /*#__PURE__*/_jsx("span", {
235
+ style: {
236
+ background: leaf.bgColor
237
+ },
324
238
  children: /*#__PURE__*/_jsx(Box, {
325
239
  className: className,
326
240
  component: "span",
327
241
  sx: {
328
- "& span": {
329
- // fontSize: fontSizesImportant,
330
- // ...groupByBreakpoint(fontSizesImportant, theme),
331
- background: leaf.bgColor,
332
- ...fontSizeWithBreakpoints
333
- },
334
- ...fontSizeWithBreakpoints,
242
+ ...groupByBreakpoint({
243
+ fontSize: {
244
+ lg: sizeMap[leaf.fontSize] || leaf.fontSize,
245
+ ...getBreakPointsValue(leaf.fontSize, null, "overrideText")
246
+ }
247
+ }, theme),
335
248
  // ...wrapThemeBreakpoints(
336
249
  // {
337
250
  // lg: sizeMap[leaf.fontSize] || leaf.fontSize,
@@ -373,71 +286,55 @@ export const getBlock = props => {
373
286
  } = props;
374
287
  const attributes = props.attributes ?? {};
375
288
  const isEmpty = isEmptyTextNode(element);
376
- const commonHeadingProps = () => ({
377
- ...attributes,
378
- ...element.attr,
379
- className: `edt-headings content-editable ${isEmpty ? "empty" : ""} theme-element`
380
- });
381
- const commonParaProps = paraType => ({
382
- ...attributes,
383
- ...element.attr,
384
- className: `content-editable ${isEmpty ? "empty" : ""} theme-element ${paraType}`
385
- });
386
289
  switch (element.type) {
387
290
  case "headingOne":
388
291
  return /*#__PURE__*/_jsx("h1", {
389
- ...commonHeadingProps(),
292
+ ...attributes,
293
+ ...element.attr,
294
+ className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
390
295
  placeholder: "Heading 1",
391
296
  children: children
392
297
  });
393
298
  case "headingTwo":
394
299
  return /*#__PURE__*/_jsx("h2", {
395
- ...commonHeadingProps(),
300
+ ...attributes,
301
+ ...element.attr,
302
+ className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
396
303
  placeholder: "Heading 2",
397
304
  children: children
398
305
  });
399
306
  case "headingThree":
400
307
  return /*#__PURE__*/_jsx("h3", {
401
- ...commonHeadingProps(),
308
+ ...attributes,
309
+ ...element.attr,
310
+ className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
402
311
  placeholder: "Heading 3",
403
312
  children: children
404
313
  });
405
314
  case "headingFour":
406
315
  return /*#__PURE__*/_jsx("h4", {
407
- ...commonHeadingProps(),
316
+ ...attributes,
317
+ ...element.attr,
318
+ className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
408
319
  placeholder: "Heading 4",
409
320
  children: children
410
321
  });
411
322
  case "headingFive":
412
323
  return /*#__PURE__*/_jsx("h5", {
413
- ...commonHeadingProps(),
324
+ ...attributes,
325
+ ...element.attr,
326
+ className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
414
327
  placeholder: "Heading 5",
415
328
  children: children
416
329
  });
417
330
  case "headingSix":
418
331
  return /*#__PURE__*/_jsx("h6", {
419
- ...commonHeadingProps(),
332
+ ...attributes,
333
+ ...element.attr,
334
+ className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
420
335
  placeholder: "Heading 6",
421
336
  children: children
422
337
  });
423
- case "paragraphOne":
424
- return /*#__PURE__*/_jsx("p", {
425
- ...commonParaProps("para1"),
426
- placeholder: "Paragraph 1",
427
- children: children
428
- });
429
- case "paragraphTwo":
430
- return /*#__PURE__*/_jsx("p", {
431
- ...commonParaProps("para2"),
432
- placeholder: "Paragraph 2",
433
- children: children
434
- });
435
- case "paragraphThree":
436
- return /*#__PURE__*/_jsx("p", {
437
- ...commonParaProps("para3"),
438
- placeholder: "Paragraph 3",
439
- children: children
440
- });
441
338
  case "blockquote":
442
339
  return /*#__PURE__*/_jsx("blockquote", {
443
340
  ...attributes,
@@ -733,11 +630,6 @@ export const getBlock = props => {
733
630
  children: children
734
631
  });
735
632
  default:
736
- // return (
737
- // <span {...attributes} {...element.attr}>
738
- // {children}
739
- // </span>
740
- // );
741
633
  return /*#__PURE__*/_jsx(SimpleText, {
742
634
  ...props,
743
635
  isEmpty: isEmpty
@@ -11,6 +11,20 @@ export const insertButton = editor => {
11
11
  linkType: "webAddress"
12
12
  },
13
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
+ },
14
28
  ...(windowVar.lastButtonProps || {})
15
29
  };
16
30
  Transforms.insertNodes(editor, button);
@@ -8,9 +8,6 @@ import { isEmptyTextNode } from "../../helper";
8
8
  import { getBreakPointsValue } from "../../helper/theme";
9
9
  import insertNewLine from "../insertNewLine";
10
10
  import { getBorderColor } from "../helper";
11
- import Table from "../../Elements/Table/Table";
12
- import TableRow from "../../Elements/Table/TableRow";
13
- import TableCell from "../../Elements/Table/TableCell";
14
11
  import { jsx as _jsx } from "react/jsx-runtime";
15
12
  const alignment = ["alignLeft", "alignRight", "alignCenter"];
16
13
  const list_types = ["orderedList", "unorderedList"];
@@ -409,26 +406,6 @@ export const getBlock = props => {
409
406
  return /*#__PURE__*/_jsx(Mentions, {
410
407
  ...props
411
408
  });
412
- case "table":
413
- return /*#__PURE__*/_jsx(Table, {
414
- ...props
415
- });
416
- case "table-head":
417
- return /*#__PURE__*/_jsx("thead", {
418
- children: children
419
- });
420
- case "table-body":
421
- return /*#__PURE__*/_jsx("tbody", {
422
- children: children
423
- });
424
- case "table-row":
425
- return /*#__PURE__*/_jsx(TableRow, {
426
- ...props
427
- });
428
- case "table-cell":
429
- return /*#__PURE__*/_jsx(TableCell, {
430
- ...props
431
- });
432
409
  default:
433
410
  return /*#__PURE__*/_jsx(SimpleText, {
434
411
  ...props,
@@ -82,8 +82,7 @@ const splitInlineStyleRanges = (text, inlineStyleRanges, data) => {
82
82
  };
83
83
  export const draftToSlate = props => {
84
84
  const {
85
- data,
86
- needLayout
85
+ data
87
86
  } = props;
88
87
  if (data?.blocks && data?.blocks?.length > 0) {
89
88
  const converted = data?.blocks?.reduce((a, b) => {
@@ -105,7 +104,7 @@ export const draftToSlate = props => {
105
104
  return data;
106
105
  } else {
107
106
  return [{
108
- type: needLayout ? "title" : "paragraph",
107
+ type: "paragraph",
109
108
  children: [{
110
109
  text: ""
111
110
  }]