@flozy/editor 10.9.6 → 10.9.8

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 (159) hide show
  1. package/dist/Editor/ChatEditor.js +17 -16
  2. package/dist/Editor/CommonEditor.js +138 -27
  3. package/dist/Editor/DialogWrapper.js +31 -25
  4. package/dist/Editor/Editor.css +39 -11
  5. package/dist/Editor/Elements/AI/PopoverAIInput.js +11 -3
  6. package/dist/Editor/Elements/AI/Styles.js +1 -0
  7. package/dist/Editor/Elements/Accordion/Accordion.js +28 -22
  8. package/dist/Editor/Elements/Accordion/AccordionButton.js +12 -3
  9. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  10. package/dist/Editor/Elements/Attachments/AttachmentStyles.js +16 -0
  11. package/dist/Editor/Elements/Attachments/Attachments.js +153 -11
  12. package/dist/Editor/Elements/Attachments/AttachmentsButton.js +8 -3
  13. package/dist/Editor/Elements/Button/EditorButton.js +23 -7
  14. package/dist/Editor/Elements/Color Picker/ColorButtons.js +61 -14
  15. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  16. package/dist/Editor/Elements/Color Picker/ColorPicker.js +10 -7
  17. package/dist/Editor/Elements/Color Picker/Styles.js +15 -13
  18. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +134 -55
  19. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/SelectV1.js +7 -8
  20. package/dist/Editor/Elements/DataView/Layouts/DataTypes/PersonType.js +8 -3
  21. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +1 -1
  22. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +1 -1
  23. package/dist/Editor/Elements/Embed/Embed.css +5 -0
  24. package/dist/Editor/Elements/Embed/Embed.js +36 -43
  25. package/dist/Editor/Elements/Embed/Image.js +236 -23
  26. package/dist/Editor/Elements/Embed/Video.js +246 -15
  27. package/dist/Editor/Elements/Form/FormField.js +1 -1
  28. package/dist/Editor/Elements/Form/Workflow/Styles.js +24 -22
  29. package/dist/Editor/Elements/Form/Workflow/constant.js +25 -1
  30. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +39 -33
  31. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +7 -4
  32. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +1 -0
  33. package/dist/Editor/Elements/FreeGrid/Options/More.js +7 -7
  34. package/dist/Editor/Elements/FreeGrid/helper.js +115 -0
  35. package/dist/Editor/Elements/FreeGrid/styles.js +15 -0
  36. package/dist/Editor/Elements/Grid/GridItem.js +1 -1
  37. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +2 -1
  38. package/dist/Editor/Elements/SimpleText/index.js +4 -1
  39. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  40. package/dist/Editor/Elements/Table/Table.js +5 -4
  41. package/dist/Editor/Elements/Table/TableCell.js +10 -3
  42. package/dist/Editor/Elements/Title/title.js +10 -11
  43. package/dist/Editor/Elements/TopBanner/TopBanner.js +4 -2
  44. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +5 -3
  45. package/dist/Editor/Elements/Variables/VariableButton.js +10 -1
  46. package/dist/Editor/MiniEditor.js +2 -1
  47. package/dist/Editor/Styles/EditorStyles.js +20 -8
  48. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  49. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  50. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  51. package/dist/Editor/Toolbar/FormatTools/TextSize.js +33 -29
  52. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +2 -1
  53. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +4 -2
  54. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +25 -23
  55. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +25 -7
  56. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +167 -42
  57. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +24 -8
  58. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +2 -1
  59. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +70 -10
  60. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +73 -14
  61. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +439 -0
  62. package/dist/Editor/Toolbar/PopupTool/index.js +7 -4
  63. package/dist/Editor/Toolbar/toolbarGroups.js +56 -10
  64. package/dist/Editor/assets/svg/BackIcon.js +18 -0
  65. package/dist/Editor/assets/svg/ThemeIcons.js +293 -0
  66. package/dist/Editor/common/ColorPickerButton.js +38 -16
  67. package/dist/Editor/common/CustomColorPicker/index.js +130 -0
  68. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  69. package/dist/Editor/common/CustomDialog2/index.js +94 -0
  70. package/dist/Editor/common/CustomDialog2/style.js +67 -0
  71. package/dist/Editor/common/CustomSelect.js +43 -0
  72. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  73. package/dist/Editor/common/FontLoader/FontLoader.js +4 -0
  74. package/dist/Editor/common/Icon.js +28 -0
  75. package/dist/Editor/common/ImageSelector/ImageSelector.js +45 -7
  76. package/dist/Editor/common/ImageSelector/Options/Upload.js +26 -11
  77. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  78. package/dist/Editor/common/LinkSettings/NavComponents.js +6 -2
  79. package/dist/Editor/common/MentionsPopup/index.js +9 -1
  80. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  81. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  82. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  83. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  84. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  85. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
  86. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +20 -7
  87. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  88. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +9 -1
  89. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +20 -7
  90. package/dist/Editor/common/RnD/GuideLines/styles.js +1 -1
  91. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +11 -2
  92. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  93. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  94. package/dist/Editor/common/RnD/Utils/gridDropItem.js +28 -18
  95. package/dist/Editor/common/RnD/Utils/index.js +3 -1
  96. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +45 -58
  97. package/dist/Editor/common/RnD/VirtualElement/helper.js +320 -130
  98. package/dist/Editor/common/RnD/VirtualElement/styles.js +22 -0
  99. package/dist/Editor/common/RnD/index.js +48 -13
  100. package/dist/Editor/common/Shorthands/elements.js +62 -4
  101. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  102. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +4 -0
  103. package/dist/Editor/common/StyleBuilder/fieldStyle.js +1 -0
  104. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +15 -2
  105. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  106. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  107. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +16 -8
  108. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +36 -10
  109. package/dist/Editor/common/StyleBuilder/fieldTypes/embedUpload.js +115 -0
  110. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +16 -7
  111. package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
  112. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +2 -0
  113. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +0 -1
  114. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  115. package/dist/Editor/common/StyleBuilder/formStyle.js +19 -13
  116. package/dist/Editor/common/StyleBuilder/index.js +8 -4
  117. package/dist/Editor/common/Uploader.js +125 -17
  118. package/dist/Editor/common/UploaderWithProgress.js +183 -0
  119. package/dist/Editor/common/iconslist.js +21 -0
  120. package/dist/Editor/commonStyle.js +64 -45
  121. package/dist/Editor/helper/index.js +10 -2
  122. package/dist/Editor/helper/textIndeces.js +58 -0
  123. package/dist/Editor/helper/theme.js +203 -2
  124. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  125. package/dist/Editor/hooks/useMouseMove.js +9 -3
  126. package/dist/Editor/hooks/useTable.js +62 -1
  127. package/dist/Editor/hooks/useThemeValues.js +63 -0
  128. package/dist/Editor/plugins/withEmbeds.js +12 -1
  129. package/dist/Editor/plugins/withHTML.js +58 -3
  130. package/dist/Editor/plugins/withTable.js +1 -1
  131. package/dist/Editor/service/fileupload.js +70 -0
  132. package/dist/Editor/theme/ThemeList.js +50 -173
  133. package/dist/Editor/theme/index.js +149 -0
  134. package/dist/Editor/themeSettings/ActiveTheme.js +82 -0
  135. package/dist/Editor/themeSettings/buttons/index.js +300 -0
  136. package/dist/Editor/themeSettings/buttons/style.js +23 -0
  137. package/dist/Editor/themeSettings/colorTheme/index.js +310 -0
  138. package/dist/Editor/themeSettings/colorTheme/style.js +81 -0
  139. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  140. package/dist/Editor/themeSettings/fonts/index.js +240 -0
  141. package/dist/Editor/themeSettings/fonts/style.js +62 -0
  142. package/dist/Editor/themeSettings/icons.js +60 -0
  143. package/dist/Editor/themeSettings/index.js +380 -0
  144. package/dist/Editor/themeSettings/style.js +299 -0
  145. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  146. package/dist/Editor/themeSettingsAI/index.js +355 -0
  147. package/dist/Editor/themeSettingsAI/saveTheme.js +202 -0
  148. package/dist/Editor/themeSettingsAI/style.js +332 -0
  149. package/dist/Editor/utils/SlateUtilityFunctions.js +189 -40
  150. package/dist/Editor/utils/accordion.js +68 -40
  151. package/dist/Editor/utils/button.js +1 -17
  152. package/dist/Editor/utils/draftToSlate.js +3 -2
  153. package/dist/Editor/utils/events.js +94 -89
  154. package/dist/Editor/utils/font.js +40 -37
  155. package/dist/Editor/utils/formfield.js +2 -2
  156. package/dist/Editor/utils/helper.js +98 -22
  157. package/dist/Editor/utils/insertAppHeader.js +8 -4
  158. package/package.json +4 -4
  159. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +0 -454
@@ -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 { getBreakpointLineSpacing, getBreakPointsValue, getDevice, groupByBreakpoint } from "../helper/theme";
37
+ import { getBreakpointLineSpacing, getBreakPointsValue, getDevice, getElementProperty, textThemeFields } from "../helper/theme";
38
38
  import Variables from "../Elements/Variables/Variable";
39
- import insertNewLine from "./insertNewLine";
40
39
  import Divider from "../Elements/Divider/Divider";
41
40
  import { getBorderColor, getSlateDom } from "./helper";
42
41
  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,17 +47,27 @@ 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
- const list_types = ["orderedList", "unorderedList"];
53
+ export const list_types = ["orderedList", "unorderedList"];
54
54
  const LIST_FORMAT_TYPE = {
55
55
  orderedList: "list-item",
56
56
  unorderedList: "list-item"
57
57
  };
58
- const NEWLINESAFTER = ["headingOne", "headingTwo", "headingThree", "headingFour", "headingFive", "headingSix"];
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"];
59
69
  export const toggleBlock = (editor, format, selection = true, attr = {}) => {
60
- const isActive = isBlockActive(editor, format);
70
+ let isActive = isBlockActive(editor, format);
61
71
  const isList = list_types.includes(format);
62
72
  const isIndent = alignment.includes(format);
63
73
  const isAligned = alignment.some(alignmentType => isBlockActive(editor, alignmentType));
@@ -88,8 +98,9 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
88
98
  if (!selection) {
89
99
  Transforms.insertText(editor, "");
90
100
  }
101
+ const forActiveType = THEME_BLOCK_FIELDS.some(f => f === format) ? format : "paragraph";
91
102
  Transforms.setNodes(editor, {
92
- type: isActive ? "paragraph" : isList ? LIST_FORMAT_TYPE[format] : format,
103
+ type: isActive ? forActiveType : isList ? LIST_FORMAT_TYPE[format] : format,
93
104
  ...attr
94
105
  });
95
106
  if (isList && !isActive) {
@@ -98,10 +109,12 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
98
109
  children: []
99
110
  });
100
111
  }
101
- if (NEWLINESAFTER.indexOf(format) > -1) {
102
- insertNewLine(editor);
103
- }
112
+
113
+ // if (NEWLINESAFTER.indexOf(format) > -1) {
114
+ // insertNewLine(editor);
115
+ // }
104
116
  };
117
+
105
118
  export const addMarkData = (editor, data) => {
106
119
  try {
107
120
  Editor.addMark(editor, data.format, data.value);
@@ -110,9 +123,14 @@ export const addMarkData = (editor, data) => {
110
123
  }
111
124
  };
112
125
  export const toggleMark = (editor, format) => {
113
- const isActive = isMarkActive(editor, format);
126
+ const isActive = isMarkBtnActive(editor, format);
114
127
  if (isActive) {
115
- Editor.removeMark(editor, format);
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
+ }
116
134
  } else {
117
135
  Editor.addMark(editor, format, true);
118
136
  }
@@ -126,12 +144,91 @@ export const isMarkActive = (editor, format) => {
126
144
  return null;
127
145
  }
128
146
  };
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, format) => {
174
+ try {
175
+ if (!editor.selection) {
176
+ return "";
177
+ }
178
+ if (Range.isCollapsed(editor.selection)) {
179
+ return "";
180
+ }
181
+ if (format) {
182
+ const value = activeMark(editor, format, true);
183
+ if (value) {
184
+ return value;
185
+ }
186
+ }
187
+ const domRange = ReactEditor.toDOMRange(editor, editor.selection);
188
+ const selectedDomNode = domRange.commonAncestorContainer;
189
+
190
+ // If it's a text node, get its parent element
191
+ const selectedElement = selectedDomNode.nodeType === 3 ? selectedDomNode.parentElement : selectedDomNode;
192
+ if (selectedElement) {
193
+ return getElementProperty(selectedElement, styleProperty);
194
+ }
195
+ } catch (err) {
196
+ console.log(err);
197
+ }
198
+ };
129
199
  export const isBlockActive = (editor, format) => {
130
200
  const [match] = Editor.nodes(editor, {
131
201
  match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && n.type === format
132
202
  });
133
203
  return !!match;
134
204
  };
205
+ export const isListActive = editor => {
206
+ const list_types = ["orderedList", "unorderedList", "check-list-item", "accordion"];
207
+ const [match] = Editor.nodes(editor, {
208
+ match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && list_types.includes(n.type),
209
+ mode: "lowest" // To ensure it's the closest parent
210
+ });
211
+
212
+ if (match) {
213
+ const [matchNode] = match;
214
+ return matchNode.type;
215
+ }
216
+ };
217
+ export const getListType = editor => {
218
+ const [accordionSummary] = Editor.nodes(editor, {
219
+ match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && n.type === "accordion-summary"
220
+ });
221
+ if (accordionSummary) {
222
+ return "accordion-summary";
223
+ }
224
+ const listItems = ["list-item", "check-list-item"];
225
+ const [listItem] = Editor.nodes(editor, {
226
+ match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && listItems.includes(n.type)
227
+ });
228
+ if (listItem) {
229
+ return "list-item";
230
+ }
231
+ };
135
232
  export const getBlockActive = (editor, format) => {
136
233
  const [match] = Editor.nodes(editor, {
137
234
  match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && n.type === format
@@ -151,7 +248,7 @@ export const upateBlockActive = (editor, format, attr = {}) => {
151
248
  });
152
249
  }
153
250
  };
154
- export const activeMark = (editor, format) => {
251
+ export const activeMark = (editor, format, noDefaultValue) => {
155
252
  const defaultMarkData = {
156
253
  color: "#000000",
157
254
  bgColor: "#FFFFFF",
@@ -161,7 +258,7 @@ export const activeMark = (editor, format) => {
161
258
  };
162
259
  try {
163
260
  const marks = Editor.marks(editor);
164
- let defaultValue = defaultMarkData[format];
261
+ let defaultValue = noDefaultValue ? "" : defaultMarkData[format];
165
262
  const {
166
263
  selection
167
264
  } = editor || {};
@@ -178,6 +275,31 @@ export const activeMark = (editor, format) => {
178
275
  return null;
179
276
  }
180
277
  };
278
+
279
+ // to avoid the styles, that automatically assign from themes
280
+ const getThemeMarkedLeaf = (leaf, children) => {
281
+ const {
282
+ italic,
283
+ bold
284
+ } = leaf || {};
285
+ const style = {};
286
+ if (italic === false) {
287
+ style.fontStyle = "normal";
288
+ }
289
+ if (bold === false) {
290
+ style.fontWeight = "normal";
291
+ }
292
+ if (Object.keys(style).length) {
293
+ children = /*#__PURE__*/_jsx(Box, {
294
+ component: "span",
295
+ sx: {
296
+ "& span": style
297
+ },
298
+ children: children
299
+ });
300
+ }
301
+ return children;
302
+ };
181
303
  export const getMarked = (leaf, children, theme) => {
182
304
  const className = leaf?.doublequote ? "doublequote" : "";
183
305
  const lineH = leaf?.lineHeight;
@@ -207,6 +329,7 @@ export const getMarked = (leaf, children, theme) => {
207
329
  children: children
208
330
  });
209
331
  }
332
+ children = getThemeMarkedLeaf(leaf, children);
210
333
  if (leaf.strikethrough) {
211
334
  children = /*#__PURE__*/_jsx("span", {
212
335
  style: {
@@ -234,6 +357,15 @@ export const getMarked = (leaf, children, theme) => {
234
357
  if (leaf.color || leaf.bgColor || leaf.fontSize || leaf.fontFamily || leaf.fontWeight || lineHeight || className) {
235
358
  const family = leaf?.fontFamily;
236
359
  const textStyles = getTextColor(leaf?.color);
360
+ const fontSize = {
361
+ lg: sizeMap[leaf.fontSize] || leaf.fontSize,
362
+ ...getBreakPointsValue(leaf.fontSize, null, "overrideText")
363
+ };
364
+ const fontSizesImportant = {};
365
+ Object.entries(fontSize).forEach(([key, value]) => {
366
+ fontSizesImportant[key] = `${value} !important`;
367
+ });
368
+ const fontSizeWithBreakpoints = wrapThemeBreakpoints(fontSizesImportant, "fontSize", theme);
237
369
  children = /*#__PURE__*/_jsx("span", {
238
370
  style: {
239
371
  background: leaf.bgColor
@@ -242,12 +374,13 @@ export const getMarked = (leaf, children, theme) => {
242
374
  className: `${className} leaf-item`,
243
375
  component: "span",
244
376
  sx: {
245
- ...groupByBreakpoint({
246
- fontSize: {
247
- lg: sizeMap[leaf.fontSize] || leaf.fontSize,
248
- ...getBreakPointsValue(leaf.fontSize, null, "overrideText")
249
- }
250
- }, theme),
377
+ "& span": {
378
+ // fontSize: fontSizesImportant,
379
+ // ...groupByBreakpoint(fontSizesImportant, theme),
380
+ background: leaf.bgColor,
381
+ ...fontSizeWithBreakpoints
382
+ },
383
+ ...fontSizeWithBreakpoints,
251
384
  // ...wrapThemeBreakpoints(
252
385
  // {
253
386
  // lg: sizeMap[leaf.fontSize] || leaf.fontSize,
@@ -299,63 +432,78 @@ export const getBlock = props => {
299
432
  const {
300
433
  translation
301
434
  } = customProps;
435
+ const commonHeadingProps = () => ({
436
+ ...attributes,
437
+ ...element.attr,
438
+ className: `edt-headings content-editable ${isEmpty ? "empty" : ""} theme-element disablePointerEvent`
439
+ });
440
+ const commonParaProps = paraType => ({
441
+ ...attributes,
442
+ ...element.attr,
443
+ className: `edt-paragraphs content-editable ${isEmpty ? "empty" : ""} theme-element disablePointerEvent ${paraType}`
444
+ });
302
445
  const breakpoint = getDevice(window.innerWidth);
303
446
  const lineH = element?.children[0]?.lineHeight;
304
447
  const selectedLineHeight = getBreakpointLineSpacing(lineH, breakpoint);
305
448
  switch (element.type) {
306
449
  case "headingOne":
307
450
  return /*#__PURE__*/_jsx("h1", {
308
- ...attributes,
309
- ...element.attr,
310
- className: `edt-headings content-editable ${isEmpty ? "empty" : ""} disablePointerEvent`,
451
+ ...commonHeadingProps(),
311
452
  placeholder: translation("Heading 1"),
312
453
  children: children
313
454
  });
314
455
  case "headingTwo":
315
456
  return /*#__PURE__*/_jsx("h2", {
316
- ...attributes,
317
- ...element.attr,
318
- className: `edt-headings content-editable ${isEmpty ? "empty" : ""} disablePointerEvent`,
457
+ ...commonHeadingProps(),
319
458
  placeholder: translation("Heading 2"),
320
459
  children: children
321
460
  });
322
461
  case "headingThree":
323
462
  return /*#__PURE__*/_jsx("h3", {
324
- ...attributes,
325
- ...element.attr,
326
- className: `edt-headings content-editable ${isEmpty ? "empty" : ""} disablePointerEvent`,
463
+ ...commonHeadingProps(),
327
464
  placeholder: translation("Heading 3"),
328
465
  children: children
329
466
  });
330
467
  case "headingFour":
331
468
  return /*#__PURE__*/_jsx("h4", {
332
- ...attributes,
333
- ...element.attr,
334
- className: `edt-headings content-editable ${isEmpty ? "empty" : ""} disablePointerEvent`,
469
+ ...commonHeadingProps(),
335
470
  placeholder: translation("Heading 4"),
336
471
  children: children
337
472
  });
338
473
  case "headingFive":
339
474
  return /*#__PURE__*/_jsx("h5", {
340
- ...attributes,
341
- ...element.attr,
342
- className: `edt-headings content-editable ${isEmpty ? "empty" : ""} disablePointerEvent`,
475
+ ...commonHeadingProps(),
343
476
  placeholder: translation("Heading 5"),
344
477
  children: children
345
478
  });
346
479
  case "headingSix":
347
480
  return /*#__PURE__*/_jsx("h6", {
348
- ...attributes,
349
- ...element.attr,
350
- className: `edt-headings content-editable ${isEmpty ? "empty" : ""} disablePointerEvent`,
481
+ ...commonHeadingProps(),
351
482
  placeholder: translation("Heading 6"),
352
483
  children: children
353
484
  });
485
+ case "paragraphOne":
486
+ return /*#__PURE__*/_jsx("p", {
487
+ ...commonParaProps("para1"),
488
+ placeholder: "Paragraph 1",
489
+ children: children
490
+ });
491
+ case "paragraphTwo":
492
+ return /*#__PURE__*/_jsx("p", {
493
+ ...commonParaProps("para2"),
494
+ placeholder: "Paragraph 2",
495
+ children: children
496
+ });
497
+ case "paragraphThree":
498
+ return /*#__PURE__*/_jsx("p", {
499
+ ...commonParaProps("para3"),
500
+ placeholder: "Paragraph 3",
501
+ children: children
502
+ });
354
503
  case "blockquote":
355
504
  return /*#__PURE__*/_jsx("blockquote", {
356
505
  ...attributes,
357
506
  ...element.attr,
358
- className: "blockQuoteComp",
359
507
  style: {
360
508
  // borderColor: element?.color || "transparent",
361
509
  ...getBorderColor(element?.color || "transparent", 3),
@@ -585,7 +733,8 @@ export const getBlock = props => {
585
733
  case "docs":
586
734
  case "pdf":
587
735
  case "xls":
588
- case "csv":
736
+ case "doc":
737
+ case "ppt":
589
738
  return /*#__PURE__*/_jsx(Attachments, {
590
739
  ...props
591
740
  });
@@ -1,7 +1,5 @@
1
1
  import { Editor, Element, Path, Transforms } from "slate";
2
- import insertNewLine from "./insertNewLine";
3
- import { ALLOWED_TEXT_NODES, getNode, getNodeText, getNodeWithType, getSelectedText } from "./helper";
4
- import { isMobileWindow } from "../helper";
2
+ import { ALLOWED_TEXT_NODES, getNode, getNodeText, getNodeWithType } from "./helper";
5
3
  import { removeAccordion } from "./events";
6
4
  import { ReactEditor } from "slate-react";
7
5
  const focusAccordion = (editor, upPath) => {
@@ -9,51 +7,74 @@ const focusAccordion = (editor, upPath) => {
9
7
  path: upPath,
10
8
  offset: 0
11
9
  });
10
+ ReactEditor.focus(editor);
12
11
  };
13
- export const insertAccordion = (editor, path) => {
14
- try {
15
- const selectedText = getSelectedText(editor);
16
- const accordion = {
17
- type: "accordion",
12
+ const getAccordionNode = summaryNode => {
13
+ return {
14
+ type: "accordion",
15
+ children: [{
16
+ type: "accordion-summary",
17
+ children: summaryNode
18
+ }, {
19
+ type: "accordion-details",
18
20
  children: [{
19
- type: "accordion-summary",
21
+ type: "paragraph",
20
22
  children: [{
21
- type: "paragraph",
22
- children: [{
23
- text: selectedText || ""
24
- }]
23
+ text: ""
25
24
  }]
26
- }, {
27
- type: "accordion-details",
25
+ }]
26
+ }]
27
+ };
28
+ };
29
+ export const insertAccordion = (editor, path) => {
30
+ try {
31
+ const {
32
+ selection
33
+ } = editor;
34
+ let accordionPath;
35
+ if (path) {
36
+ const summaryNode = {
37
+ type: "paragraph",
28
38
  children: [{
29
- type: "paragraph",
30
- children: [{
31
- text: ""
32
- }]
39
+ text: ""
33
40
  }]
34
- }]
35
- };
36
- const props = path ? {
37
- at: path,
38
- select: true
39
- } : {
40
- select: true
41
- };
42
- Transforms.insertNodes(editor, accordion, props);
43
- const curPath = [...editor?.selection?.anchor?.path];
44
- const upPath = [...curPath];
45
- // get title index
46
- const summaryIndex = upPath.length - 3;
47
- upPath[summaryIndex] = upPath[summaryIndex] === 0 ? 0 : upPath[summaryIndex] - 1;
41
+ };
42
+ const accordion = getAccordionNode([summaryNode]);
43
+ Transforms.insertNodes(editor, accordion, {
44
+ at: path
45
+ });
46
+ accordionPath = path;
47
+ } else if (selection) {
48
+ const selectedNodes = Array.from(Editor.nodes(editor, {
49
+ match: n => Element.isElement(n),
50
+ mode: "lowest" // use 'lowest' to get individual blocks
51
+ }));
48
52
 
49
- // select accordion title by default
50
- if (isMobileWindow()) {
51
- // timeout to resolve focus issue in mobile
52
- setTimeout(() => focusAccordion(editor, upPath), 0);
53
- } else {
54
- focusAccordion(editor, upPath);
53
+ for (const [node, path] of selectedNodes) {
54
+ let currNode = node;
55
+ // const isListItem = node.type === "list-item";
56
+ // if (isListItem) {
57
+ // currNode = {
58
+ // type: "paragraph",
59
+ // children: node.children,
60
+ // };
61
+ // }
62
+
63
+ let accordion = getAccordionNode([currNode]);
64
+ Transforms.removeNodes(editor, {
65
+ at: path
66
+ });
67
+ Transforms.insertNodes(editor, accordion, {
68
+ at: path
69
+ });
70
+ accordionPath = path;
71
+ }
72
+ const lastNode = selectedNodes[selectedNodes.length - 1];
73
+ const lastNodePath = lastNode[1];
74
+ accordionPath = lastNodePath;
55
75
  }
56
- insertNewLine(editor);
76
+ const focusPath = [...accordionPath, 0, 0, 0];
77
+ focusAccordion(editor, focusPath);
57
78
  } catch (err) {
58
79
  console.log(err);
59
80
  }
@@ -133,4 +154,11 @@ export const onDeleteBackwardAccordion = editor => {
133
154
  } catch (err) {
134
155
  console.log(err);
135
156
  }
157
+ };
158
+ export const toggleAccordion = editor => {
159
+ const parentAccordion = Editor.above(editor, {
160
+ match: node => Element.isElement(node) && node.type === "accordion"
161
+ });
162
+ const [, accordionPath] = parentAccordion;
163
+ removeAccordion(editor, accordionPath);
136
164
  };
@@ -1,6 +1,5 @@
1
1
  import { Path, Transforms } from "slate";
2
2
  import insertNewLine from "./insertNewLine";
3
- import { windowVar } from "./helper";
4
3
  import { getCurrentElementText } from "../plugins/withHTML";
5
4
  export const insertButton = editor => {
6
5
  const button = {
@@ -11,22 +10,7 @@ export const insertButton = editor => {
11
10
  buttonLink: {
12
11
  linkType: "webAddress"
13
12
  },
14
- iconPosition: "start",
15
- bgColor: "#2563EB",
16
- textColor: "#FFF",
17
- borderRadius: {
18
- topLeft: 30,
19
- topRight: 30,
20
- bottomLeft: 30,
21
- bottomRight: 30
22
- },
23
- bannerSpacing: {
24
- left: 16,
25
- top: 8,
26
- right: 16,
27
- bottom: 8
28
- },
29
- ...(windowVar.lastButtonProps || {})
13
+ iconPosition: "start"
30
14
  };
31
15
  const hasText = getCurrentElementText(editor);
32
16
  const insertPath = hasText ? Path.next(Path.parent(editor?.selection.focus.path)) : editor?.selection.focus.path;
@@ -82,7 +82,8 @@ const splitInlineStyleRanges = (text, inlineStyleRanges, data) => {
82
82
  };
83
83
  export const draftToSlate = props => {
84
84
  const {
85
- data
85
+ data,
86
+ needLayout
86
87
  } = props;
87
88
  if (data?.blocks && data?.blocks?.length > 0) {
88
89
  const converted = data?.blocks?.reduce((a, b) => {
@@ -104,7 +105,7 @@ export const draftToSlate = props => {
104
105
  return data;
105
106
  } else {
106
107
  return [{
107
- type: "paragraph",
108
+ type: needLayout ? "title" : "paragraph",
108
109
  children: [{
109
110
  text: ""
110
111
  }]