@flozy/editor 10.7.0 → 10.7.2

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 (143) hide show
  1. package/dist/Editor/ChatEditor.js +17 -16
  2. package/dist/Editor/CommonEditor.js +126 -15
  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 +25 -17
  8. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  9. package/dist/Editor/Elements/Attachments/AttachmentStyles.js +16 -0
  10. package/dist/Editor/Elements/Attachments/Attachments.js +153 -11
  11. package/dist/Editor/Elements/Attachments/AttachmentsButton.js +14 -4
  12. package/dist/Editor/Elements/Button/EditorButton.js +23 -7
  13. package/dist/Editor/Elements/Color Picker/ColorButtons.js +61 -14
  14. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  15. package/dist/Editor/Elements/Color Picker/ColorPicker.js +10 -7
  16. package/dist/Editor/Elements/Color Picker/Styles.js +15 -13
  17. package/dist/Editor/Elements/Embed/Embed.js +36 -43
  18. package/dist/Editor/Elements/Embed/Image.js +240 -23
  19. package/dist/Editor/Elements/Embed/Video.js +246 -15
  20. package/dist/Editor/Elements/Form/FormField.js +1 -1
  21. package/dist/Editor/Elements/Form/Workflow/Styles.js +24 -22
  22. package/dist/Editor/Elements/Form/Workflow/constant.js +25 -1
  23. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +39 -33
  24. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +7 -4
  25. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +1 -0
  26. package/dist/Editor/Elements/FreeGrid/Options/More.js +7 -7
  27. package/dist/Editor/Elements/FreeGrid/helper.js +115 -0
  28. package/dist/Editor/Elements/FreeGrid/styles.js +9 -0
  29. package/dist/Editor/Elements/Grid/GridItem.js +1 -1
  30. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +2 -1
  31. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  32. package/dist/Editor/Elements/Table/Table.js +3 -3
  33. package/dist/Editor/Elements/Title/title.js +6 -6
  34. package/dist/Editor/Elements/TopBanner/TopBanner.js +6 -1
  35. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +8 -2
  36. package/dist/Editor/Elements/Variables/VariableButton.js +10 -1
  37. package/dist/Editor/MiniEditor.js +2 -1
  38. package/dist/Editor/Styles/EditorStyles.js +20 -5
  39. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  40. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  41. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  42. package/dist/Editor/Toolbar/FormatTools/TextSize.js +10 -13
  43. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +2 -1
  44. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +4 -2
  45. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
  46. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +19 -5
  47. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +167 -42
  48. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +16 -7
  49. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +2 -1
  50. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +69 -9
  51. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +70 -12
  52. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +439 -0
  53. package/dist/Editor/Toolbar/PopupTool/index.js +5 -2
  54. package/dist/Editor/Toolbar/toolbarGroups.js +56 -10
  55. package/dist/Editor/assets/svg/BackIcon.js +18 -0
  56. package/dist/Editor/assets/svg/ThemeIcons.js +293 -0
  57. package/dist/Editor/common/ColorPickerButton.js +38 -16
  58. package/dist/Editor/common/CustomColorPicker/index.js +130 -0
  59. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  60. package/dist/Editor/common/CustomDialog2/index.js +94 -0
  61. package/dist/Editor/common/CustomDialog2/style.js +67 -0
  62. package/dist/Editor/common/CustomSelect.js +43 -0
  63. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  64. package/dist/Editor/common/FontLoader/FontLoader.js +3 -0
  65. package/dist/Editor/common/Icon.js +28 -0
  66. package/dist/Editor/common/ImageSelector/ImageSelector.js +45 -7
  67. package/dist/Editor/common/ImageSelector/Options/Upload.js +26 -11
  68. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  69. package/dist/Editor/common/LinkSettings/NavComponents.js +6 -2
  70. package/dist/Editor/common/MentionsPopup/index.js +9 -1
  71. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  72. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  73. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  74. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  75. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  76. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
  77. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +20 -7
  78. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  79. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +3 -1
  80. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +20 -7
  81. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +11 -2
  82. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  83. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  84. package/dist/Editor/common/RnD/Utils/gridDropItem.js +28 -18
  85. package/dist/Editor/common/RnD/Utils/index.js +3 -1
  86. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +45 -58
  87. package/dist/Editor/common/RnD/VirtualElement/helper.js +320 -130
  88. package/dist/Editor/common/RnD/VirtualElement/styles.js +22 -0
  89. package/dist/Editor/common/RnD/index.js +48 -13
  90. package/dist/Editor/common/Shorthands/elements.js +62 -4
  91. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  92. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +4 -0
  93. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +20 -2
  94. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  95. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  96. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +16 -8
  97. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +36 -10
  98. package/dist/Editor/common/StyleBuilder/fieldTypes/embedUpload.js +115 -0
  99. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +16 -7
  100. package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
  101. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +2 -0
  102. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  103. package/dist/Editor/common/StyleBuilder/index.js +8 -4
  104. package/dist/Editor/common/Uploader.js +125 -17
  105. package/dist/Editor/common/UploaderWithProgress.js +183 -0
  106. package/dist/Editor/common/iconslist.js +21 -0
  107. package/dist/Editor/commonStyle.js +107 -64
  108. package/dist/Editor/helper/index.js +10 -2
  109. package/dist/Editor/helper/textIndeces.js +58 -0
  110. package/dist/Editor/helper/theme.js +203 -2
  111. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  112. package/dist/Editor/hooks/useMouseMove.js +9 -3
  113. package/dist/Editor/hooks/useThemeValues.js +63 -0
  114. package/dist/Editor/plugins/withEmbeds.js +1 -1
  115. package/dist/Editor/plugins/withHTML.js +7 -3
  116. package/dist/Editor/plugins/withTable.js +1 -1
  117. package/dist/Editor/service/fileupload.js +53 -0
  118. package/dist/Editor/theme/ThemeList.js +50 -173
  119. package/dist/Editor/theme/index.js +149 -0
  120. package/dist/Editor/themeSettings/ActiveTheme.js +82 -0
  121. package/dist/Editor/themeSettings/buttons/index.js +300 -0
  122. package/dist/Editor/themeSettings/buttons/style.js +23 -0
  123. package/dist/Editor/themeSettings/colorTheme/index.js +310 -0
  124. package/dist/Editor/themeSettings/colorTheme/style.js +81 -0
  125. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  126. package/dist/Editor/themeSettings/fonts/index.js +240 -0
  127. package/dist/Editor/themeSettings/fonts/style.js +62 -0
  128. package/dist/Editor/themeSettings/icons.js +60 -0
  129. package/dist/Editor/themeSettings/index.js +380 -0
  130. package/dist/Editor/themeSettings/style.js +299 -0
  131. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  132. package/dist/Editor/themeSettingsAI/index.js +355 -0
  133. package/dist/Editor/themeSettingsAI/saveTheme.js +202 -0
  134. package/dist/Editor/themeSettingsAI/style.js +332 -0
  135. package/dist/Editor/utils/SlateUtilityFunctions.js +182 -21
  136. package/dist/Editor/utils/accordion.js +62 -34
  137. package/dist/Editor/utils/button.js +1 -17
  138. package/dist/Editor/utils/draftToSlate.js +3 -2
  139. package/dist/Editor/utils/font.js +40 -37
  140. package/dist/Editor/utils/helper.js +97 -21
  141. package/dist/Editor/utils/insertAppHeader.js +8 -4
  142. package/package.json +4 -4
  143. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +0 -454
@@ -0,0 +1,332 @@
1
+ const style = ({
2
+ appTheme: theme
3
+ }) => ({
4
+ ".fs-12": {
5
+ fontSize: "12px"
6
+ },
7
+ ".fs-14": {
8
+ fontSize: "14px"
9
+ },
10
+ ".fw-500": {
11
+ fontWeight: "500"
12
+ },
13
+ ".fw-600": {
14
+ fontWeight: "600"
15
+ },
16
+ ".pointer": {
17
+ cursor: "pointer"
18
+ },
19
+ ".transformNone": {
20
+ textTransform: "none"
21
+ },
22
+ ".settingsContainer": {
23
+ width: "340px",
24
+ padding: "16px 16px",
25
+ background: "#fff",
26
+ ".header": {
27
+ borderBottom: `1px solid #DCE4EC`,
28
+ paddingBottom: "8px"
29
+ // marginBottom: "16px",
30
+ }
31
+ },
32
+
33
+ ".title": {
34
+ fontWeight: "700",
35
+ fontSize: "14px"
36
+ },
37
+ ".closeBtn": {
38
+ width: "26px",
39
+ height: "26px",
40
+ BorderRadius: "4px",
41
+ flexShrik: "0",
42
+ padding: "4px",
43
+ background: " #F8FAFC",
44
+ borderRadius: "4px"
45
+ },
46
+ ".MuiTabs-scroller": {
47
+ borderBottom: `1px solid #DCE4EC`
48
+ },
49
+ ".themeCardWrapper": {
50
+ borderRadius: "4px",
51
+ ".active": {
52
+ background: "#ECF2FF"
53
+ }
54
+ },
55
+ ".primaryCard, .secondaryCard": {
56
+ width: "44px",
57
+ height: "44px",
58
+ borderRadius: "5px",
59
+ border: `1px solid #929292`
60
+ },
61
+ ".flexAlign": {
62
+ display: "flex",
63
+ alignItems: "center",
64
+ flexWrap: "wrap"
65
+ },
66
+ ".flexItem": {
67
+ maxWidth: "50%",
68
+ flex: "1 1 50%" /* allow shrink and grow but cap at 50% */,
69
+ minWidth: 0 /* important for flex children */
70
+ },
71
+
72
+ ".activeColorBox, .xsColorBox": {
73
+ width: "24px",
74
+ height: "24px",
75
+ borderRadius: "5px",
76
+ border: `1px solid #929292`
77
+ },
78
+ ".themeCard": {
79
+ borderRadius: "7px",
80
+ padding: "16px",
81
+ border: "1px solid #F3F3F3",
82
+ boxShadow: "1px 2px 5px 0px #00000014",
83
+ position: "relative",
84
+ flexWrap: "nowrap",
85
+ ".tickIcon": {
86
+ visibility: "hidden",
87
+ opacity: "0",
88
+ position: "absolute",
89
+ right: "-8px",
90
+ top: "-8px"
91
+ },
92
+ "&.selected": {
93
+ ".tickIcon": {
94
+ visibility: "visible",
95
+ opacity: "1"
96
+ }
97
+ }
98
+ },
99
+ ".otherColors": {
100
+ display: "flex",
101
+ flexWrap: "wrap",
102
+ width: "48px",
103
+ ".smallCard": {
104
+ width: "20px",
105
+ height: "20px",
106
+ borderRadius: "5px",
107
+ border: `1px solid #929292`
108
+ }
109
+ },
110
+ ".imageUpload": {
111
+ background: "#F3F3F3",
112
+ borderRadius: "12px",
113
+ padding: "10px",
114
+ height: "208px",
115
+ position: "relative",
116
+ "& .resetIcon": {
117
+ position: "absolute",
118
+ right: "10px",
119
+ top: "10px"
120
+ },
121
+ ".changeImgText": {
122
+ position: "absolute",
123
+ left: "50%",
124
+ top: "50%",
125
+ transform: "translate(-50%, -50%)",
126
+ zIndex: 1,
127
+ background: "#0000004D",
128
+ color: "#fff",
129
+ padding: "6px",
130
+ borderRadius: "6px",
131
+ fontSize: "12px",
132
+ fontWeight: 600,
133
+ opacity: "0",
134
+ visibility: "hidden"
135
+ },
136
+ "&:hover": {
137
+ ".changeImgText": {
138
+ opacity: "1",
139
+ visibility: "visible"
140
+ }
141
+ }
142
+ },
143
+ ".imgUploadInner": {
144
+ background: "#fff",
145
+ borderRadius: "10px",
146
+ border: "0.79px dashed #8360FD",
147
+ height: "100%"
148
+ },
149
+ ".outlineBtn": {
150
+ color: "#2563EB",
151
+ borderRadius: "10px",
152
+ boxShadow: "0px 4px 10px 0px #00000026",
153
+ border: "1px solid #2563EB",
154
+ background: "#EBF1F9",
155
+ height: "34px",
156
+ textTransform: "unset",
157
+ fontWeight: "bold",
158
+ "&:hover": {
159
+ background: "#EBF1F9"
160
+ }
161
+ },
162
+ ".seondaryOutlineBtn": {
163
+ border: "1px solid #D8DDE1",
164
+ borderRadius: "8px",
165
+ // boxShadow: "0px 4px 10px 0px #00000026",
166
+ height: "34px",
167
+ textTransform: "unset",
168
+ background: "#f5f6f9 !important",
169
+ color: "#64748B !important",
170
+ "&:hover": {
171
+ border: "1px solid #D8DDE1",
172
+ background: "#f5f6f9 !important"
173
+ }
174
+ },
175
+ ".blueBtn": {
176
+ boxShadow: "0px 4px 10px 0px #00000026",
177
+ background: "#2563EB",
178
+ borderRadius: "8px",
179
+ textTransform: "unset",
180
+ height: "34px",
181
+ color: "#fff",
182
+ fontWeight: "bold",
183
+ "&.disabled": {
184
+ background: "#D9D9DD !important",
185
+ color: "#fff !important"
186
+ }
187
+ },
188
+ ".generatedItem": {
189
+ border: "1px solid #E4E6E9",
190
+ borderRadius: "7px",
191
+ padding: "14px",
192
+ display: "flex",
193
+ gap: "16px",
194
+ position: "relative",
195
+ justifyContent: "space-between",
196
+ marginBottom: "12px",
197
+ ".tickIcon": {
198
+ visibility: "hidden",
199
+ opacity: "0",
200
+ position: "absolute",
201
+ right: "-8px",
202
+ top: "-8px"
203
+ },
204
+ "&.selected": {
205
+ border: "1px solid #2563EB",
206
+ boxShadow: " 3px 3px 8px 0px #2563EB40",
207
+ ".tickIcon": {
208
+ visibility: "visible",
209
+ opacity: "1"
210
+ }
211
+ },
212
+ ".colorBox": {
213
+ border: "1px solid #929292",
214
+ height: "28px",
215
+ width: "28px",
216
+ borderRadius: "5px"
217
+ }
218
+ },
219
+ ".textArea": {
220
+ background: "#F3F3F3",
221
+ borderRadius: "12px",
222
+ padding: "10px",
223
+ height: "208px",
224
+ "& textarea": {
225
+ width: "100%",
226
+ height: "100% !important",
227
+ border: "0.79px solid #8360FD",
228
+ background: "#FFFFFF",
229
+ borderRadius: "8px",
230
+ padding: "10px"
231
+ }
232
+ },
233
+ ".imageUrl": {
234
+ height: "auto !important",
235
+ ".MuiOutlinedInput-root": {
236
+ border: "0.79px solid #8360FD",
237
+ background: "#FFFFFF",
238
+ borderRadius: "8px",
239
+ ".tickIcon": {
240
+ width: "18px"
241
+ }
242
+ },
243
+ "&.invalidUrl": {
244
+ ".MuiInputAdornment-root": {
245
+ ".tickIcon": {
246
+ ".fillPath": {
247
+ fill: "#D9D9DD!important"
248
+ }
249
+ }
250
+ }
251
+ }
252
+ },
253
+ ".saveThemeContainer": {
254
+ ".MuiOutlinedInput-root": {
255
+ borderRadius: "8px",
256
+ boxShadow: "0px 4px 16px 0px #0000000D"
257
+ }
258
+ },
259
+ ".uploadedImage": {
260
+ width: "126px",
261
+ height: "126px",
262
+ borderRadius: "126px"
263
+ },
264
+ ".MuiDialog-paper": {
265
+ borderRadius: "10px",
266
+ background: theme?.palette?.editor?.miniToolBarBackground
267
+ },
268
+ "& .MuiInputBase-root": {
269
+ borderRadius: "8px",
270
+ background: theme?.palette?.editor?.inputFieldBgColor,
271
+ border: `none`,
272
+ height: "40px",
273
+ boxShadow: "0px 4px 16px 0px #0000000D",
274
+ fontFamily: "Inter, sans-serif",
275
+ "&:hover .MuiOutlinedInput-notchedOutline": {
276
+ border: `1px solid ${theme?.palette?.editor?.inputFieldBorder}`
277
+ },
278
+ "& input::placeholder": {
279
+ color: "#94A3B8 !important",
280
+ opacity: "unset",
281
+ fontFamily: "Inter, sans-serif"
282
+ },
283
+ "& .colorPickerButton": {
284
+ border: `2px solid ${theme?.palette?.editor?.buttonBorder2} !important`
285
+ }
286
+ },
287
+ "& .MuiInputBase-root:has(.colorPickerButton)": {
288
+ "& .MuiInputBase-input": {
289
+ padding: "8.5px 14px 8.5px 0px",
290
+ fontFamily: "Inter, sans-serif"
291
+ }
292
+ },
293
+ "& .MuiInputBase-input": {
294
+ color: theme?.palette?.editor?.deletePopUpButtonTextColor,
295
+ textTransform: "math-auto",
296
+ fontFamily: "Inter, sans-serif"
297
+ },
298
+ "& .MuiOutlinedInput-notchedOutline": {
299
+ border: `1px solid ${theme?.palette?.editor?.inputFieldBorder}`
300
+ },
301
+ "& fieldset": {
302
+ border: `1px solid transparent`,
303
+ borderRadius: "8px"
304
+ },
305
+ "& .saveThemeActionBtns": {
306
+ "& button": {
307
+ fontWeight: 600,
308
+ fontSize: "14px",
309
+ opacity: 1,
310
+ borderRadius: "8px",
311
+ textTransform: "math-auto",
312
+ padding: "4px 20px",
313
+ height: "fit-content",
314
+ minWidth: "90px",
315
+ lineHeight: "1.75 !important",
316
+ "@media only screen and (max-width: 899px)": {
317
+ width: "50%"
318
+ },
319
+ "&.confirmBtn": {
320
+ backgroundColor: "#2563EB",
321
+ color: "#ffffff",
322
+ border: `1px solid #2563EB`
323
+ },
324
+ "&.cancelBtn": {
325
+ backgroundColor: theme?.palette?.editor?.closeButtonBackground,
326
+ color: theme?.palette?.editor?.customDialogueCloseBtnColor,
327
+ border: `1px solid ${theme?.palette?.editor?.customDialogueCloseBtnBorder}`
328
+ }
329
+ }
330
+ }
331
+ });
332
+ export default style;
@@ -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,90 @@ 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 [listItem] = Editor.nodes(editor, {
225
+ match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && n.type === "list-item"
226
+ });
227
+ if (listItem) {
228
+ return "list-item";
229
+ }
230
+ };
135
231
  export const getBlockActive = (editor, format) => {
136
232
  const [match] = Editor.nodes(editor, {
137
233
  match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && n.type === format
@@ -151,7 +247,7 @@ export const upateBlockActive = (editor, format, attr = {}) => {
151
247
  });
152
248
  }
153
249
  };
154
- export const activeMark = (editor, format) => {
250
+ export const activeMark = (editor, format, noDefaultValue) => {
155
251
  const defaultMarkData = {
156
252
  color: "#000000",
157
253
  bgColor: "#FFFFFF",
@@ -161,7 +257,7 @@ export const activeMark = (editor, format) => {
161
257
  };
162
258
  try {
163
259
  const marks = Editor.marks(editor);
164
- let defaultValue = defaultMarkData[format];
260
+ let defaultValue = noDefaultValue ? "" : defaultMarkData[format];
165
261
  const {
166
262
  selection
167
263
  } = editor || {};
@@ -178,6 +274,31 @@ export const activeMark = (editor, format) => {
178
274
  return null;
179
275
  }
180
276
  };
277
+
278
+ // to avoid the styles, that automatically assign from themes
279
+ const getThemeMarkedLeaf = (leaf, children) => {
280
+ const {
281
+ italic,
282
+ bold
283
+ } = leaf || {};
284
+ const style = {};
285
+ if (italic === false) {
286
+ style.fontStyle = "normal";
287
+ }
288
+ if (bold === false) {
289
+ style.fontWeight = "normal";
290
+ }
291
+ if (Object.keys(style).length) {
292
+ children = /*#__PURE__*/_jsx(Box, {
293
+ component: "span",
294
+ sx: {
295
+ "& span": style
296
+ },
297
+ children: children
298
+ });
299
+ }
300
+ return children;
301
+ };
181
302
  export const getMarked = (leaf, children, theme) => {
182
303
  const className = leaf?.doublequote ? "doublequote" : "";
183
304
  const lineH = leaf?.lineHeight;
@@ -207,6 +328,7 @@ export const getMarked = (leaf, children, theme) => {
207
328
  children: children
208
329
  });
209
330
  }
331
+ children = getThemeMarkedLeaf(leaf, children);
210
332
  if (leaf.strikethrough) {
211
333
  children = /*#__PURE__*/_jsx("span", {
212
334
  style: {
@@ -234,6 +356,15 @@ export const getMarked = (leaf, children, theme) => {
234
356
  if (leaf.color || leaf.bgColor || leaf.fontSize || leaf.fontFamily || leaf.fontWeight || lineHeight || className) {
235
357
  const family = leaf?.fontFamily;
236
358
  const textStyles = getTextColor(leaf?.color);
359
+ const fontSize = {
360
+ lg: sizeMap[leaf.fontSize] || leaf.fontSize,
361
+ ...getBreakPointsValue(leaf.fontSize, null, "overrideText")
362
+ };
363
+ const fontSizesImportant = {};
364
+ Object.entries(fontSize).forEach(([key, value]) => {
365
+ fontSizesImportant[key] = `${value} !important`;
366
+ });
367
+ const fontSizeWithBreakpoints = wrapThemeBreakpoints(fontSizesImportant, "fontSize", theme);
237
368
  children = /*#__PURE__*/_jsx("span", {
238
369
  style: {
239
370
  background: leaf.bgColor
@@ -242,12 +373,13 @@ export const getMarked = (leaf, children, theme) => {
242
373
  className: `${className} leaf-item`,
243
374
  component: "span",
244
375
  sx: {
245
- ...groupByBreakpoint({
246
- fontSize: {
247
- lg: sizeMap[leaf.fontSize] || leaf.fontSize,
248
- ...getBreakPointsValue(leaf.fontSize, null, "overrideText")
249
- }
250
- }, theme),
376
+ "& span": {
377
+ // fontSize: fontSizesImportant,
378
+ // ...groupByBreakpoint(fontSizesImportant, theme),
379
+ background: leaf.bgColor,
380
+ ...fontSizeWithBreakpoints
381
+ },
382
+ ...fontSizeWithBreakpoints,
251
383
  // ...wrapThemeBreakpoints(
252
384
  // {
253
385
  // lg: sizeMap[leaf.fontSize] || leaf.fontSize,
@@ -299,6 +431,16 @@ export const getBlock = props => {
299
431
  const {
300
432
  translation
301
433
  } = customProps;
434
+ const commonHeadingProps = () => ({
435
+ ...attributes,
436
+ ...element.attr,
437
+ className: `edt-headings content-editable ${isEmpty ? "empty" : ""} theme-element`
438
+ });
439
+ const commonParaProps = paraType => ({
440
+ ...attributes,
441
+ ...element.attr,
442
+ className: `edt-paragraphs content-editable ${isEmpty ? "empty" : ""} theme-element ${paraType}`
443
+ });
302
444
  const breakpoint = getDevice(window.innerWidth);
303
445
  const lineH = element?.children[0]?.lineHeight;
304
446
  const selectedLineHeight = getBreakpointLineSpacing(lineH, breakpoint);
@@ -351,6 +493,24 @@ export const getBlock = props => {
351
493
  placeholder: translation("Heading 6"),
352
494
  children: children
353
495
  });
496
+ case "paragraphOne":
497
+ return /*#__PURE__*/_jsx("p", {
498
+ ...commonParaProps("para1"),
499
+ placeholder: "Paragraph 1",
500
+ children: children
501
+ });
502
+ case "paragraphTwo":
503
+ return /*#__PURE__*/_jsx("p", {
504
+ ...commonParaProps("para2"),
505
+ placeholder: "Paragraph 2",
506
+ children: children
507
+ });
508
+ case "paragraphThree":
509
+ return /*#__PURE__*/_jsx("p", {
510
+ ...commonParaProps("para3"),
511
+ placeholder: "Paragraph 3",
512
+ children: children
513
+ });
354
514
  case "blockquote":
355
515
  return /*#__PURE__*/_jsx("blockquote", {
356
516
  ...attributes,
@@ -584,7 +744,8 @@ export const getBlock = props => {
584
744
  case "docs":
585
745
  case "pdf":
586
746
  case "xls":
587
- case "csv":
747
+ case "doc":
748
+ case "ppt":
588
749
  return /*#__PURE__*/_jsx(Attachments, {
589
750
  ...props
590
751
  });