@flozy/editor 10.8.9 → 10.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) 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.js +36 -43
  24. package/dist/Editor/Elements/Embed/Image.js +236 -23
  25. package/dist/Editor/Elements/Embed/Video.js +246 -15
  26. package/dist/Editor/Elements/Form/FormField.js +1 -1
  27. package/dist/Editor/Elements/Form/Workflow/Styles.js +24 -22
  28. package/dist/Editor/Elements/Form/Workflow/constant.js +25 -1
  29. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +39 -33
  30. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +7 -4
  31. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +1 -0
  32. package/dist/Editor/Elements/FreeGrid/Options/More.js +7 -7
  33. package/dist/Editor/Elements/FreeGrid/helper.js +115 -0
  34. package/dist/Editor/Elements/FreeGrid/styles.js +9 -0
  35. package/dist/Editor/Elements/Grid/GridItem.js +1 -1
  36. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +2 -1
  37. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  38. package/dist/Editor/Elements/Table/Table.js +3 -3
  39. package/dist/Editor/Elements/Title/title.js +6 -6
  40. package/dist/Editor/Elements/TopBanner/TopBanner.js +4 -2
  41. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +5 -3
  42. package/dist/Editor/Elements/Variables/VariableButton.js +10 -1
  43. package/dist/Editor/MiniEditor.js +2 -1
  44. package/dist/Editor/Styles/EditorStyles.js +20 -5
  45. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  46. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  47. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  48. package/dist/Editor/Toolbar/FormatTools/TextSize.js +33 -29
  49. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +2 -1
  50. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +4 -2
  51. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +23 -23
  52. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +25 -7
  53. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +167 -42
  54. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +24 -8
  55. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +2 -1
  56. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +70 -10
  57. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +73 -14
  58. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +439 -0
  59. package/dist/Editor/Toolbar/PopupTool/index.js +5 -2
  60. package/dist/Editor/Toolbar/toolbarGroups.js +56 -10
  61. package/dist/Editor/assets/svg/BackIcon.js +18 -0
  62. package/dist/Editor/assets/svg/ThemeIcons.js +293 -0
  63. package/dist/Editor/common/ColorPickerButton.js +38 -16
  64. package/dist/Editor/common/CustomColorPicker/index.js +130 -0
  65. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  66. package/dist/Editor/common/CustomDialog2/index.js +94 -0
  67. package/dist/Editor/common/CustomDialog2/style.js +67 -0
  68. package/dist/Editor/common/CustomSelect.js +43 -0
  69. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  70. package/dist/Editor/common/FontLoader/FontLoader.js +4 -0
  71. package/dist/Editor/common/Icon.js +28 -0
  72. package/dist/Editor/common/ImageSelector/ImageSelector.js +45 -7
  73. package/dist/Editor/common/ImageSelector/Options/Upload.js +26 -11
  74. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  75. package/dist/Editor/common/LinkSettings/NavComponents.js +6 -2
  76. package/dist/Editor/common/MentionsPopup/index.js +9 -1
  77. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  78. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  79. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  80. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  81. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  82. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
  83. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +20 -7
  84. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  85. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +9 -1
  86. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +20 -7
  87. package/dist/Editor/common/RnD/GuideLines/styles.js +1 -1
  88. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +11 -2
  89. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  90. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  91. package/dist/Editor/common/RnD/Utils/gridDropItem.js +28 -18
  92. package/dist/Editor/common/RnD/Utils/index.js +3 -1
  93. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +45 -58
  94. package/dist/Editor/common/RnD/VirtualElement/helper.js +320 -130
  95. package/dist/Editor/common/RnD/VirtualElement/styles.js +22 -0
  96. package/dist/Editor/common/RnD/index.js +48 -13
  97. package/dist/Editor/common/Shorthands/elements.js +62 -4
  98. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  99. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +4 -0
  100. package/dist/Editor/common/StyleBuilder/fieldStyle.js +1 -0
  101. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +15 -2
  102. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  103. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  104. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +16 -8
  105. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +36 -10
  106. package/dist/Editor/common/StyleBuilder/fieldTypes/embedUpload.js +115 -0
  107. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +16 -7
  108. package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
  109. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +2 -0
  110. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  111. package/dist/Editor/common/StyleBuilder/index.js +8 -4
  112. package/dist/Editor/common/Uploader.js +125 -17
  113. package/dist/Editor/common/UploaderWithProgress.js +183 -0
  114. package/dist/Editor/common/iconslist.js +21 -0
  115. package/dist/Editor/commonStyle.js +107 -64
  116. package/dist/Editor/helper/index.js +10 -2
  117. package/dist/Editor/helper/textIndeces.js +58 -0
  118. package/dist/Editor/helper/theme.js +203 -2
  119. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  120. package/dist/Editor/hooks/useMouseMove.js +9 -3
  121. package/dist/Editor/hooks/useThemeValues.js +63 -0
  122. package/dist/Editor/plugins/withEmbeds.js +12 -1
  123. package/dist/Editor/plugins/withHTML.js +58 -3
  124. package/dist/Editor/plugins/withTable.js +1 -1
  125. package/dist/Editor/service/fileupload.js +70 -0
  126. package/dist/Editor/theme/ThemeList.js +50 -173
  127. package/dist/Editor/theme/index.js +149 -0
  128. package/dist/Editor/themeSettings/ActiveTheme.js +82 -0
  129. package/dist/Editor/themeSettings/buttons/index.js +300 -0
  130. package/dist/Editor/themeSettings/buttons/style.js +23 -0
  131. package/dist/Editor/themeSettings/colorTheme/index.js +310 -0
  132. package/dist/Editor/themeSettings/colorTheme/style.js +81 -0
  133. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  134. package/dist/Editor/themeSettings/fonts/index.js +240 -0
  135. package/dist/Editor/themeSettings/fonts/style.js +62 -0
  136. package/dist/Editor/themeSettings/icons.js +60 -0
  137. package/dist/Editor/themeSettings/index.js +380 -0
  138. package/dist/Editor/themeSettings/style.js +299 -0
  139. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  140. package/dist/Editor/themeSettingsAI/index.js +355 -0
  141. package/dist/Editor/themeSettingsAI/saveTheme.js +202 -0
  142. package/dist/Editor/themeSettingsAI/style.js +332 -0
  143. package/dist/Editor/utils/SlateUtilityFunctions.js +183 -21
  144. package/dist/Editor/utils/accordion.js +68 -40
  145. package/dist/Editor/utils/button.js +1 -17
  146. package/dist/Editor/utils/draftToSlate.js +3 -2
  147. package/dist/Editor/utils/events.js +94 -89
  148. package/dist/Editor/utils/font.js +40 -37
  149. package/dist/Editor/utils/helper.js +97 -21
  150. package/dist/Editor/utils/insertAppHeader.js +8 -4
  151. package/package.json +4 -4
  152. 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,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,6 +432,16 @@ 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`
439
+ });
440
+ const commonParaProps = paraType => ({
441
+ ...attributes,
442
+ ...element.attr,
443
+ className: `edt-paragraphs content-editable ${isEmpty ? "empty" : ""} theme-element ${paraType}`
444
+ });
302
445
  const breakpoint = getDevice(window.innerWidth);
303
446
  const lineH = element?.children[0]?.lineHeight;
304
447
  const selectedLineHeight = getBreakpointLineSpacing(lineH, breakpoint);
@@ -351,6 +494,24 @@ export const getBlock = props => {
351
494
  placeholder: translation("Heading 6"),
352
495
  children: children
353
496
  });
497
+ case "paragraphOne":
498
+ return /*#__PURE__*/_jsx("p", {
499
+ ...commonParaProps("para1"),
500
+ placeholder: "Paragraph 1",
501
+ children: children
502
+ });
503
+ case "paragraphTwo":
504
+ return /*#__PURE__*/_jsx("p", {
505
+ ...commonParaProps("para2"),
506
+ placeholder: "Paragraph 2",
507
+ children: children
508
+ });
509
+ case "paragraphThree":
510
+ return /*#__PURE__*/_jsx("p", {
511
+ ...commonParaProps("para3"),
512
+ placeholder: "Paragraph 3",
513
+ children: children
514
+ });
354
515
  case "blockquote":
355
516
  return /*#__PURE__*/_jsx("blockquote", {
356
517
  ...attributes,
@@ -584,7 +745,8 @@ export const getBlock = props => {
584
745
  case "docs":
585
746
  case "pdf":
586
747
  case "xls":
587
- case "csv":
748
+ case "doc":
749
+ case "ppt":
588
750
  return /*#__PURE__*/_jsx(Attachments, {
589
751
  ...props
590
752
  });