@flozy/editor 3.8.7 → 3.8.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (188) hide show
  1. package/dist/Editor/ChatEditor.js +2 -2
  2. package/dist/Editor/CommonEditor.js +170 -166
  3. package/dist/Editor/DialogWrapper.js +4 -3
  4. package/dist/Editor/Editor.css +4 -7
  5. package/dist/Editor/Elements/AI/AIInput.js +5 -16
  6. package/dist/Editor/Elements/AI/PopoverAIInput.js +64 -67
  7. package/dist/Editor/Elements/AI/Styles.js +1 -2
  8. package/dist/Editor/Elements/AppHeader/AppHeader.js +40 -49
  9. package/dist/Editor/Elements/Button/EditorButton.js +33 -38
  10. package/dist/Editor/Elements/Color Picker/ColorButtons.js +17 -60
  11. package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
  12. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  13. package/dist/Editor/Elements/Color Picker/Styles.js +1 -2
  14. package/dist/Editor/Elements/Embed/Image.js +15 -14
  15. package/dist/Editor/Elements/Embed/Video.js +12 -8
  16. package/dist/Editor/Elements/Emoji/EmojiButton.js +11 -7
  17. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +3 -12
  18. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +1 -2
  19. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +391 -0
  20. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +193 -0
  21. package/dist/Editor/Elements/FreeGrid/FreeGridButton.js +23 -0
  22. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +184 -0
  23. package/dist/Editor/Elements/FreeGrid/Options/AddElement.js +36 -0
  24. package/dist/Editor/Elements/FreeGrid/Options/More.js +24 -0
  25. package/dist/Editor/Elements/FreeGrid/Options/SectionSettings.js +47 -0
  26. package/dist/Editor/Elements/FreeGrid/Options/sectionItemOptions.js +11 -0
  27. package/dist/Editor/Elements/FreeGrid/breakpointConstants.js +75 -0
  28. package/dist/Editor/Elements/FreeGrid/styles.js +159 -0
  29. package/dist/Editor/Elements/Grid/Grid.js +14 -34
  30. package/dist/Editor/Elements/Grid/GridItem.js +31 -23
  31. package/dist/Editor/Elements/Link/Link.js +1 -6
  32. package/dist/Editor/Elements/Link/LinkButton.js +2 -4
  33. package/dist/Editor/Elements/Link/LinkPopup.js +3 -10
  34. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +3 -3
  35. package/dist/Editor/Elements/Signature/SignaturePopup.js +3 -14
  36. package/dist/Editor/Elements/SimpleText/index.js +9 -8
  37. package/dist/Editor/Elements/SimpleText/style.js +37 -0
  38. package/dist/Editor/Elements/Table/Styles.js +1 -23
  39. package/dist/Editor/Elements/Table/Table.js +1 -2
  40. package/dist/Editor/Elements/Table/TableCell.js +7 -69
  41. package/dist/Editor/Elements/TableContextMenu/TableContextMenu.js +0 -1
  42. package/dist/Editor/ErrorBoundary.js +30 -0
  43. package/dist/Editor/MiniEditor.js +1 -3
  44. package/dist/Editor/Styles/EditorStyles.js +23 -0
  45. package/dist/Editor/Toolbar/Basic/index.js +2 -4
  46. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +2 -26
  47. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  48. package/dist/Editor/Toolbar/FormatTools/TextSize.js +18 -29
  49. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +2 -4
  50. package/dist/Editor/Toolbar/Mini/Options/Options.js +0 -10
  51. package/dist/Editor/Toolbar/Mini/Styles.js +0 -7
  52. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +11 -4
  53. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +86 -213
  54. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +1 -2
  55. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +13 -20
  56. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +8 -52
  57. package/dist/Editor/Toolbar/PopupTool/index.js +13 -6
  58. package/dist/Editor/Toolbar/Toolbar.js +7 -0
  59. package/dist/Editor/Toolbar/toolbarGroups.js +11 -48
  60. package/dist/Editor/assets/svg/AIIcons.js +1 -153
  61. package/dist/Editor/assets/svg/AddTemplateIcon.js +10 -13
  62. package/dist/Editor/assets/svg/TextIcon.js +5 -8
  63. package/dist/Editor/common/ColorPickerButton.js +9 -25
  64. package/dist/Editor/common/DnD/DragHandleButton.js +47 -56
  65. package/dist/Editor/common/Icon.js +8 -41
  66. package/dist/Editor/common/LinkSettings/NavComponents.js +2 -5
  67. package/dist/Editor/common/LinkSettings/index.js +2 -4
  68. package/dist/Editor/common/LinkSettings/navOptions.js +2 -7
  69. package/dist/Editor/common/LinkSettings/style.js +8 -11
  70. package/dist/Editor/common/MentionsPopup/index.js +12 -8
  71. package/dist/Editor/common/RnD/ContextMenu/CMenus.js +105 -0
  72. package/dist/Editor/common/RnD/ContextMenu/index.js +38 -0
  73. package/dist/Editor/common/RnD/ContextMenu/styles.js +21 -0
  74. package/dist/Editor/common/RnD/DragInfo/index.js +31 -0
  75. package/dist/Editor/common/RnD/DragInfo/styles.js +15 -0
  76. package/dist/Editor/common/RnD/DragOver/index.js +46 -0
  77. package/dist/Editor/common/RnD/DragOver/styles.js +23 -0
  78. package/dist/Editor/common/RnD/ElementOptions/Actions.js +82 -0
  79. package/dist/Editor/common/RnD/ElementOptions/Icons/LinkIcon.js +26 -0
  80. package/dist/Editor/common/RnD/ElementOptions/index.js +93 -0
  81. package/dist/Editor/common/RnD/ElementOptions/styles.js +41 -0
  82. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Link.js +153 -0
  83. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +58 -0
  84. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/index.js +7 -0
  85. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +46 -0
  86. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +46 -0
  87. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +46 -0
  88. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +30 -0
  89. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +46 -0
  90. package/dist/Editor/common/RnD/ElementSettings/Settings/index.js +13 -0
  91. package/dist/Editor/common/RnD/ElementSettings/index.js +17 -0
  92. package/dist/Editor/common/RnD/ElementSettings/settingsConstants.js +14 -0
  93. package/dist/Editor/common/RnD/ElementSettings/styles.js +76 -0
  94. package/dist/Editor/common/RnD/GuideLines/BoundaryLine.js +52 -0
  95. package/dist/Editor/common/RnD/GuideLines/index.js +33 -0
  96. package/dist/Editor/common/RnD/GuideLines/styles.js +60 -0
  97. package/dist/Editor/common/RnD/OptionsPopup/index.js +50 -0
  98. package/dist/Editor/common/RnD/OptionsPopup/style.js +36 -0
  99. package/dist/Editor/common/RnD/RnDCopy.js +23 -0
  100. package/dist/Editor/common/RnD/ShadowElement.js +34 -0
  101. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +40 -0
  102. package/dist/Editor/common/RnD/SwitchViewport/styles.js +24 -0
  103. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +63 -0
  104. package/dist/Editor/common/RnD/TransformHandles/CornerHandle.js +19 -0
  105. package/dist/Editor/common/RnD/TransformHandles/Icons/BottomRightIcon.js +13 -0
  106. package/dist/Editor/common/RnD/TransformHandles/SizeHandle.js +18 -0
  107. package/dist/Editor/common/RnD/TransformHandles/index.js +62 -0
  108. package/dist/Editor/common/RnD/Utils/alignmentDetection.js +26 -0
  109. package/dist/Editor/common/RnD/Utils/calculateDropItem.js +98 -0
  110. package/dist/Editor/common/RnD/Utils/collisionDetection.js +52 -0
  111. package/dist/Editor/common/RnD/Utils/gridDropItem.js +148 -0
  112. package/dist/Editor/common/RnD/Utils/index.js +251 -0
  113. package/dist/Editor/common/RnD/VirtualElement/index.js +76 -0
  114. package/dist/Editor/common/RnD/VirtualElement/styles.js +27 -0
  115. package/dist/Editor/common/RnD/VirtualElement/updateAutoProps.js +28 -0
  116. package/dist/Editor/common/RnD/index.js +503 -0
  117. package/dist/Editor/common/RnD/styles.js +4 -0
  118. package/dist/Editor/common/Section/index.js +28 -69
  119. package/dist/Editor/common/Section/styles.js +6 -12
  120. package/dist/Editor/common/Shorthands/elements.js +12 -54
  121. package/dist/Editor/common/StyleBuilder/boxStyle.js +30 -0
  122. package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
  123. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +16 -19
  124. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -15
  125. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +1 -1
  126. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +7 -31
  127. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +4 -13
  128. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +4 -2
  129. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +4 -14
  130. package/dist/Editor/common/StyleBuilder/index.js +1 -1
  131. package/dist/Editor/common/StyleBuilder/sectionStyle.js +13 -2
  132. package/dist/Editor/common/iconslist.js +31 -0
  133. package/dist/Editor/helper/RnD/focusOnNewItem.js +39 -0
  134. package/dist/Editor/helper/RnD/scrollToNewSection.js +24 -0
  135. package/dist/Editor/helper/breakpoint.js +5 -0
  136. package/dist/Editor/helper/index.js +139 -0
  137. package/dist/Editor/helper/theme.js +48 -185
  138. package/dist/Editor/hooks/useBreakpoints.js +34 -0
  139. package/dist/Editor/hooks/useMouseMove.js +37 -12
  140. package/dist/Editor/hooks/useWindowMessage.js +7 -10
  141. package/dist/Editor/hooks/withCommon.js +2 -1
  142. package/dist/Editor/hooks/withErrorHandling.js +14 -0
  143. package/dist/Editor/plugins/withEmbeds.js +1 -1
  144. package/dist/Editor/plugins/withHTML.js +1 -1
  145. package/dist/Editor/plugins/withTable.js +1 -1
  146. package/dist/Editor/theme/ThemeList.js +173 -50
  147. package/dist/Editor/utils/RnD/RnDCtrlCmds.js +168 -0
  148. package/dist/Editor/utils/SlateUtilityFunctions.js +47 -163
  149. package/dist/Editor/utils/button.js +17 -1
  150. package/dist/Editor/utils/events.js +7 -54
  151. package/dist/Editor/utils/font.js +37 -40
  152. package/dist/Editor/utils/freegrid.js +49 -0
  153. package/dist/Editor/utils/helper.js +31 -31
  154. package/dist/Editor/utils/table.js +43 -51
  155. package/package.json +6 -4
  156. package/dist/Editor/Elements/AI/VoiceToText/AudioWave.js +0 -73
  157. package/dist/Editor/Elements/AI/VoiceToText/index.js +0 -167
  158. package/dist/Editor/Elements/AI/VoiceToText/style.js +0 -40
  159. package/dist/Editor/Elements/Link/LinkPopupStyles.js +0 -28
  160. package/dist/Editor/Elements/Redo/RedoButton.js +0 -14
  161. package/dist/Editor/Elements/Undo/UndoButton.js +0 -14
  162. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -438
  163. package/dist/Editor/assets/svg/RedoIcon.js +0 -27
  164. package/dist/Editor/assets/svg/SettingsIcon.js +0 -28
  165. package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
  166. package/dist/Editor/assets/svg/UndoIcon.js +0 -27
  167. package/dist/Editor/common/CustomColorPicker/index.js +0 -106
  168. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  169. package/dist/Editor/common/CustomDialog/index.js +0 -94
  170. package/dist/Editor/common/CustomDialog/style.js +0 -67
  171. package/dist/Editor/common/CustomSelect.js +0 -33
  172. package/dist/Editor/hooks/useEditorTheme.js +0 -139
  173. package/dist/Editor/theme/index.js +0 -144
  174. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  175. package/dist/Editor/themeSettings/buttons/index.js +0 -290
  176. package/dist/Editor/themeSettings/buttons/style.js +0 -21
  177. package/dist/Editor/themeSettings/colorTheme/index.js +0 -290
  178. package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
  179. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -123
  180. package/dist/Editor/themeSettings/fonts/index.js +0 -213
  181. package/dist/Editor/themeSettings/fonts/style.js +0 -44
  182. package/dist/Editor/themeSettings/icons.js +0 -60
  183. package/dist/Editor/themeSettings/index.js +0 -320
  184. package/dist/Editor/themeSettings/style.js +0 -152
  185. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  186. package/dist/Editor/themeSettingsAI/index.js +0 -356
  187. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -190
  188. package/dist/Editor/themeSettingsAI/style.js +0 -247
@@ -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,16 @@ 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
+ import FreeGrid from "../Elements/FreeGrid/FreeGrid";
44
+ import FreeGridItem from "../Elements/FreeGrid/FreeGridItem";
45
+ import FreeGridBox from "../Elements/FreeGrid/FreeGridBox";
46
+ import { wrapThemeBreakpoints } from "../Elements/FreeGrid/breakpointConstants";
43
47
  import { jsx as _jsx } from "react/jsx-runtime";
44
48
  const alignment = ["alignLeft", "alignRight", "alignCenter"];
45
49
  const list_types = ["orderedList", "unorderedList"];
@@ -47,17 +51,7 @@ const LIST_FORMAT_TYPE = {
47
51
  orderedList: "list-item",
48
52
  unorderedList: "list-item"
49
53
  };
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"];
54
+ const NEWLINESAFTER = ["headingOne", "headingTwo", "headingThree"];
61
55
  export const toggleBlock = (editor, format, selection = true, attr = {}) => {
62
56
  const isActive = isBlockActive(editor, format);
63
57
  const isList = list_types.includes(format);
@@ -90,9 +84,8 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
90
84
  if (!selection) {
91
85
  Transforms.insertText(editor, "");
92
86
  }
93
- const forActiveType = THEME_BLOCK_FIELDS.some(f => f === format) ? format : "paragraph";
94
87
  Transforms.setNodes(editor, {
95
- type: isActive ? forActiveType : isList ? LIST_FORMAT_TYPE[format] : format,
88
+ type: isActive ? "paragraph" : isList ? LIST_FORMAT_TYPE[format] : format,
96
89
  ...attr
97
90
  });
98
91
  if (isList && !isActive) {
@@ -101,12 +94,10 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
101
94
  children: []
102
95
  });
103
96
  }
104
-
105
- // if (NEWLINESAFTER.indexOf(format) > -1) {
106
- // insertNewLine(editor);
107
- // }
97
+ if (NEWLINESAFTER.indexOf(format) > -1) {
98
+ insertNewLine(editor);
99
+ }
108
100
  };
109
-
110
101
  export const addMarkData = (editor, data) => {
111
102
  try {
112
103
  Editor.addMark(editor, data.format, data.value);
@@ -115,14 +106,9 @@ export const addMarkData = (editor, data) => {
115
106
  }
116
107
  };
117
108
  export const toggleMark = (editor, format) => {
118
- const isActive = isMarkBtnActive(editor, format);
109
+ const isActive = isMarkActive(editor, format);
119
110
  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
- }
111
+ Editor.removeMark(editor, format);
126
112
  } else {
127
113
  Editor.addMark(editor, format, true);
128
114
  }
@@ -136,53 +122,6 @@ export const isMarkActive = (editor, format) => {
136
122
  return null;
137
123
  }
138
124
  };
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
125
  export const isBlockActive = (editor, format) => {
187
126
  const [match] = Editor.nodes(editor, {
188
127
  match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && n.type === format
@@ -225,32 +164,7 @@ export const activeMark = (editor, format) => {
225
164
  return null;
226
165
  }
227
166
  };
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
- export const getMarked = (leaf, children) => {
167
+ export const getMarked = (leaf, children, theme) => {
254
168
  const className = leaf?.doublequote ? "doublequote" : "";
255
169
  if (leaf.bold) {
256
170
  children = /*#__PURE__*/_jsx("strong", {
@@ -267,7 +181,6 @@ export const getMarked = (leaf, children) => {
267
181
  children: children
268
182
  });
269
183
  }
270
- children = getThemeMarkedLeaf(leaf, children);
271
184
  if (leaf.strikethrough) {
272
185
  children = /*#__PURE__*/_jsx("span", {
273
186
  style: {
@@ -301,23 +214,22 @@ export const getMarked = (leaf, children) => {
301
214
  } : {
302
215
  color: leaf.color
303
216
  };
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
217
  children = /*#__PURE__*/_jsx("span", {
218
+ style: {
219
+ background: leaf.bgColor
220
+ },
313
221
  children: /*#__PURE__*/_jsx(Box, {
314
222
  className: className,
315
223
  component: "span",
316
224
  sx: {
317
- "& span": {
318
- fontSize: fontSizesImportant,
319
- background: leaf.bgColor
320
- },
225
+ ...wrapThemeBreakpoints({
226
+ lg: sizeMap[leaf.fontSize] || leaf.fontSize,
227
+ ...getBreakPointsValue(leaf.fontSize, null, "overrideText")
228
+ }, "fontSize", theme),
229
+ // fontSize: {
230
+ // lg: sizeMap[leaf.fontSize] || leaf.fontSize,
231
+ // ...getBreakPointsValue(leaf.fontSize, null, "overrideText"),
232
+ // },
321
233
  ...textStyles,
322
234
  fontFamily: family,
323
235
  fontWeight: leaf.fontWeight
@@ -346,71 +258,31 @@ export const getBlock = props => {
346
258
  } = props;
347
259
  const attributes = props.attributes ?? {};
348
260
  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
261
  switch (element.type) {
360
262
  case "headingOne":
361
263
  return /*#__PURE__*/_jsx("h1", {
362
- ...commonHeadingProps(),
264
+ ...attributes,
265
+ ...element.attr,
266
+ className: `content-editable ${isEmpty ? "empty" : ""}`,
363
267
  placeholder: "Heading 1",
364
268
  children: children
365
269
  });
366
270
  case "headingTwo":
367
271
  return /*#__PURE__*/_jsx("h2", {
368
- ...commonHeadingProps(),
272
+ ...attributes,
273
+ ...element.attr,
274
+ className: `content-editable ${isEmpty ? "empty" : ""}`,
369
275
  placeholder: "Heading 2",
370
276
  children: children
371
277
  });
372
278
  case "headingThree":
373
279
  return /*#__PURE__*/_jsx("h3", {
374
- ...commonHeadingProps(),
280
+ ...attributes,
281
+ ...element.attr,
282
+ className: `content-editable ${isEmpty ? "empty" : ""}`,
375
283
  placeholder: "Heading 3",
376
284
  children: children
377
285
  });
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
286
  case "blockquote":
415
287
  return /*#__PURE__*/_jsx("blockquote", {
416
288
  ...attributes,
@@ -543,6 +415,18 @@ export const getBlock = props => {
543
415
  return /*#__PURE__*/_jsx(Grid, {
544
416
  ...props
545
417
  });
418
+ case "freegrid":
419
+ return /*#__PURE__*/_jsx(FreeGrid, {
420
+ ...props
421
+ });
422
+ case "freegridItem":
423
+ return /*#__PURE__*/_jsx(FreeGridItem, {
424
+ ...props
425
+ });
426
+ case "freegridBox":
427
+ return /*#__PURE__*/_jsx(FreeGridBox, {
428
+ ...props
429
+ });
546
430
  case "grid-item":
547
431
  return /*#__PURE__*/_jsx(GridItem, {
548
432
  ...props,
@@ -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);
@@ -1,8 +1,9 @@
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 RnDCtrlCmds from "./RnD/RnDCtrlCmds";
6
7
  import EDITORCMDS from "../common/EditorCmds";
7
8
  const HOTKEYS = {
8
9
  b: "bold",
@@ -75,6 +76,10 @@ export const commands = props => {
75
76
  } else {
76
77
  Editor.addMark(editor, HOTKEYS[event.key], true);
77
78
  }
79
+ } else if (RnDCtrlCmds[event.key]) {
80
+ RnDCtrlCmds[event.key](event, {
81
+ editor
82
+ });
78
83
  } else if (EDITORCMDS[event.key]) {
79
84
  EDITORCMDS[event.key](event, {
80
85
  editor,
@@ -179,6 +184,7 @@ const checkListEnterEvent = (editor, type) => {
179
184
  export const enterEvent = (e, editor, isMobile) => {
180
185
  try {
181
186
  const ele = isListItem(editor);
187
+
182
188
  // on shift enter break line in same node
183
189
  if (e.shiftKey && !isMobile) {
184
190
  e.preventDefault();
@@ -187,7 +193,6 @@ export const enterEvent = (e, editor, isMobile) => {
187
193
  const {
188
194
  type
189
195
  } = ele[0];
190
- const path = ele[1];
191
196
  const text = Node.string(ele[0]);
192
197
  switch (type) {
193
198
  case "list-item":
@@ -219,58 +224,6 @@ export const enterEvent = (e, editor, isMobile) => {
219
224
  insertAccordion(editor, nextPath);
220
225
  }
221
226
  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
227
  default:
275
228
  }
276
229
  }
@@ -7,43 +7,43 @@ export const sizeMap = {
7
7
  export const fontFamilyMap = {
8
8
  PoppinsRegular: "PoppinsRegular",
9
9
  PoppinsBold: "PoppinsBold",
10
- sans: 'Helvetica, Arial, "sans serif"',
11
- serif: 'Georgia, "Times New Roaman", serif',
12
- monospace: 'Monaco, "Courier New", monospace',
13
- roboto: "Roboto, sans-serif",
14
- qwitcher: '"Qwitcher Grypen", cursive',
15
- garamond: '"EB Garamond", serif',
16
- anton: "Anton, sans-serif",
17
- dmserif: '"DM Serif Text", serif',
18
- inter: "Inter, sans-serif",
19
- libre: '"Libre Baskerville", serif',
20
- montserrat: "Montserrat, sans-serif",
21
- opensans: '"Open Sans", sans-serif',
22
- publicsans: '"Public Sans", sans-serif',
23
- raleway: "Raleway, sans-serif",
24
- spacemono: '"Space Mono", sans-serif',
25
- bulgarian: '"Bulgarian Garamond", monospace',
26
- impact: "Impact, serif",
27
- redacted: '"Redacted Script", cursive',
28
- greatVibes: '"Great Vibes", cursive',
29
- zeyada: "Zeyada, cursive",
30
- allura: "Allura, cursive",
31
- pinyon: '"Pinyon Script", cursive',
32
- muellerhoff: '"Herr Von Muellerhoff", cursive',
33
- dawning: '"Dawning of a New Day", cursive',
10
+ sans: "Helvetica,Arial, sans serif",
11
+ serif: "Georgia, Times New Roaman,serif",
12
+ monospace: "Monaco, Courier New,monospace",
13
+ roboto: "'Roboto', sans-serif",
14
+ qwitcher: "'Qwitcher Grypen', cursive",
15
+ garamond: "'EB Garamond', serif",
16
+ anton: "'Anton', sans-serif",
17
+ dmserif: "'DM Serif Text', serif",
18
+ inter: "'Inter', sans-serif",
19
+ libre: "'Libre Baskerville', serif",
20
+ montserrat: "'Montserrat', sans-serif",
21
+ opensans: "'Open Sans', sans-serif",
22
+ publicsans: "'Public Sans', sans-serif",
23
+ raleway: "'Raleway', sans-serif",
24
+ spacemono: "'Space Mono', sans-serif",
25
+ bulgarian: "'Bulgarian Garamond', monospace",
26
+ impact: "'Impact', serif",
27
+ redacted: "'Redacted Script', cursive",
28
+ greatVibes: "'Great Vibes', cursive",
29
+ zeyada: "'Zeyada', cursive",
30
+ allura: "'Allura', cursive",
31
+ pinyon: "'Pinyon Script', cursive",
32
+ muellerhoff: "'Herr Von Muellerhoff', cursive",
33
+ dawning: "'Dawning of a New Day', cursive",
34
34
  // New Font Added for Type Signature
35
- comingsoon: '"Coming Soon", cursive',
36
- dancingScript: '"Dancing Script", cursive',
37
- engagement: "Engagement, cursive",
38
- gaegu: "Gaegu, cursive",
39
- ingridDarling: '"Ingrid Darling", cursive',
40
- kitaOne: "Times",
41
- laBelleAurore: '"La Belle Aurore", cursive',
42
- lobster: "Lobster, cursive",
43
- meaCulpa: '"Mea Culpa", cursive',
44
- meddon: "Meddon, cursive",
45
- merriWeather: "Merriweather, serif",
46
- theGirlNextDoor: '"The Girl Next Door", cursive'
35
+ comingsoon: "'Coming Soon', cursive",
36
+ dancingScript: "'Dancing Script', cursive",
37
+ engagement: "'Engagement', cursive",
38
+ gaegu: "'Gaegu', cursive",
39
+ ingridDarling: "'Ingrid Darling', cursive",
40
+ kitaOne: "'Kite One', sans - serif",
41
+ laBelleAurore: "'La Belle Aurore', cursive",
42
+ lobster: "'Lobster', cursive",
43
+ meaCulpa: "'Mea Culpa', cursive",
44
+ meddon: "'Meddon', cursive",
45
+ merriWeather: "'Merriweather', serif",
46
+ theGirlNextDoor: "'The Girl Next Door', cursive"
47
47
  };
48
48
  export const fontOptions = Object.keys(fontFamilyMap).map(m => {
49
49
  return {
@@ -62,8 +62,5 @@ export const signedTextFonts = Object.keys(fontFamilyMap).slice(-12).map(m => {
62
62
  export const headingMap = {
63
63
  "headingOne": "32px",
64
64
  "headingTwo": "24px",
65
- "headingThree": "19px",
66
- "headingFour": "16px",
67
- "headingFive": "13px",
68
- "headingSix": "11px"
65
+ "headingThree": "19px"
69
66
  };
@@ -0,0 +1,49 @@
1
+ import { Transforms } from "slate";
2
+ import insertNewLine from "./insertNewLine";
3
+ import scrollToNewSection from "../helper/RnD/scrollToNewSection";
4
+ const Default_text_Node = {
5
+ type: "paragraph",
6
+ children: [{
7
+ text: "Effortless Business Growth"
8
+ }]
9
+ };
10
+ export const insertFreeGridItem = (childType, childTypeNode, extProps = {}, type = "freegridItem") => {
11
+ return {
12
+ type: type || "freegridItem",
13
+ childType: childType || "text",
14
+ children: [childTypeNode || Default_text_Node],
15
+ gridArea: "1 / 1 / 2 / 2",
16
+ height: 300,
17
+ width: 250,
18
+ left: 401,
19
+ top: 0,
20
+ marginTop: 47,
21
+ left_xs: 24,
22
+ top_xs: 24,
23
+ marginTop_xs: 12,
24
+ width_xs: 250,
25
+ height_xs: 300,
26
+ gridArea_xs: "1 / 1 / 2 / 2",
27
+ sectionBgColor: "rgb(240, 108, 131)",
28
+ ...(extProps || {})
29
+ };
30
+ };
31
+ export const insertFreeGrid = (editor, path, extProps) => {
32
+ const items = Array.from(Array(1).keys()).map(() => insertFreeGridItem());
33
+ const freegridData = [{
34
+ type: "paragraph",
35
+ children: [{
36
+ type: "freegrid",
37
+ height: 500,
38
+ gridTemplateRows: "var(--rows)",
39
+ gridTemplateColumns: "var(--cols)",
40
+ children: [...items]
41
+ }]
42
+ }];
43
+ const newPath = path ? path : editor?.selection?.anchor?.path;
44
+ Transforms.insertNodes(editor, freegridData, {
45
+ at: newPath
46
+ });
47
+ scrollToNewSection(editor, newPath, extProps);
48
+ insertNewLine(editor);
49
+ };
@@ -146,7 +146,7 @@ export const handleInsertLastElement = (event, editor) => {
146
146
  }
147
147
  };
148
148
  export const isListItem = editor => {
149
- const format = ["list-item", "check-list-item", "accordion-summary", "headingOne", "headingTwo", "headingThree"];
149
+ const format = ["list-item", "check-list-item", "accordion-summary"];
150
150
  const [node] = Editor.nodes(editor, {
151
151
  match: n => !Editor.isEditor(n) && Element.isElement(n) && format.indexOf(n.type) > -1
152
152
  });
@@ -246,8 +246,7 @@ export const handleLinkType = (url, linkType, readOnly, openInNewTab, onClick =
246
246
  props.target = "_blank";
247
247
  }
248
248
  break;
249
- case "nextTrigger":
250
- case "prevTrigger":
249
+ case "actionTrigger":
251
250
  if (!readOnly) {
252
251
  props.component = "button";
253
252
  props.onClick = () => {};
@@ -379,34 +378,6 @@ export const decodeString = str => {
379
378
  console.log(err);
380
379
  }
381
380
  };
382
- export const getContrastColor = color => {
383
- let r, g, b;
384
-
385
- // Check if the color is in hex format
386
- if (color.startsWith("#")) {
387
- r = parseInt(color.substring(1, 3), 16);
388
- g = parseInt(color.substring(3, 5), 16);
389
- b = parseInt(color.substring(5, 7), 16);
390
- }
391
- // Check if the color is in RGB/RGBA format
392
- else if (color.startsWith("rgb")) {
393
- const rgbValues = color.replace(/^rgba?\(|\s+|\)$/g, "") // Remove the rgb/rgba and spaces
394
- .split(","); // Split the values into an array
395
-
396
- r = parseInt(rgbValues[0]);
397
- g = parseInt(rgbValues[1]);
398
- b = parseInt(rgbValues[2]);
399
- } else {
400
- // If the format is not recognized, default to black text
401
- return "#000000";
402
- }
403
-
404
- // Calculate relative luminance
405
- const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
406
-
407
- // Return black for light colors, white for dark colors
408
- return luminance > 0.5 ? "#000000" : "#FFFFFF";
409
- };
410
381
  export const onDeleteKey = (event, {
411
382
  editor
412
383
  }) => {
@@ -427,4 +398,33 @@ export const onDeleteKey = (event, {
427
398
  } catch (err) {
428
399
  console.log(err);
429
400
  }
401
+ };
402
+ export const selectText = (editor, {
403
+ path,
404
+ cursorOnly
405
+ }) => {
406
+ try {
407
+ ReactEditor.focus(editor);
408
+ const range = Editor.range(editor, path);
409
+ const textNode = Node.get(editor, path);
410
+ if (!cursorOnly) {
411
+ Transforms.select(editor, range);
412
+ }
413
+ if (cursorOnly && textNode) {
414
+ const textLength = Node.string(textNode).length;
415
+ editor.selection = {
416
+ anchor: {
417
+ path: path,
418
+ offset: textLength
419
+ },
420
+ focus: {
421
+ path: path,
422
+ offset: textLength
423
+ }
424
+ };
425
+ }
426
+ ReactEditor.focus(editor);
427
+ } catch (err) {
428
+ console.log(err);
429
+ }
430
430
  };