@flozy/editor 3.8.7 → 3.8.9

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 (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
  };