@flozy/editor 10.1.0 → 10.1.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.
- package/dist/Editor/ChatEditor.js +17 -16
- package/dist/Editor/CommonEditor.js +115 -15
- package/dist/Editor/DialogWrapper.js +31 -25
- package/dist/Editor/Editor.css +16 -8
- package/dist/Editor/Elements/AI/PopoverAIInput.js +11 -3
- package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
- package/dist/Editor/Elements/Button/EditorButton.js +25 -9
- package/dist/Editor/Elements/Color Picker/ColorButtons.js +61 -14
- package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
- package/dist/Editor/Elements/Color Picker/ColorPicker.js +10 -7
- package/dist/Editor/Elements/Color Picker/Styles.js +15 -13
- package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +4 -2
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +454 -0
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +21 -6
- package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +5 -1
- package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +3 -2
- package/dist/Editor/Elements/DataView/Layouts/Options/index.js +11 -0
- package/dist/Editor/Elements/DataView/Layouts/ViewData.js +8 -4
- package/dist/Editor/Elements/Embed/Image.js +3 -2
- package/dist/Editor/Elements/Embed/Video.js +1 -1
- package/dist/Editor/Elements/EmbedScript/Code.js +14 -2
- package/dist/Editor/Elements/EmbedScript/EmbedScriptPopup.js +57 -28
- package/dist/Editor/Elements/EmbedScript/styles.js +89 -0
- package/dist/Editor/Elements/Form/Form.js +179 -168
- package/dist/Editor/Elements/Form/FormField.js +10 -4
- package/dist/Editor/Elements/Form/Workflow/Styles.js +24 -22
- package/dist/Editor/Elements/FreeGrid/FreeGrid.js +6 -24
- package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +7 -4
- package/dist/Editor/Elements/FreeGrid/Options/More.js +8 -8
- package/dist/Editor/Elements/FreeGrid/styles.js +67 -7
- package/dist/Editor/Elements/Grid/GridItem.js +1 -1
- package/dist/Editor/Elements/List/CheckList.js +4 -1
- package/dist/Editor/Elements/Search/SearchAttachment.js +40 -9
- package/dist/Editor/Elements/Search/SearchButton.js +9 -8
- package/dist/Editor/Elements/Search/SearchList.js +9 -7
- package/dist/Editor/Elements/SimpleText/index.js +6 -1
- package/dist/Editor/Elements/SimpleText/style.js +2 -2
- package/dist/Editor/Elements/Table/Table.js +3 -3
- package/dist/Editor/Elements/Title/title.js +6 -6
- package/dist/Editor/Elements/Variables/VariableButton.js +10 -1
- package/dist/Editor/MiniEditor.js +2 -1
- package/dist/Editor/Styles/EditorStyles.js +5 -5
- package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
- package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
- package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
- package/dist/Editor/Toolbar/FormatTools/TextSize.js +10 -13
- package/dist/Editor/Toolbar/Mini/MiniToolbar.js +2 -1
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +4 -2
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +167 -42
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +7 -4
- package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +2 -1
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +72 -12
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +100 -27
- package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +439 -0
- package/dist/Editor/Toolbar/PopupTool/index.js +1 -1
- package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
- package/dist/Editor/assets/svg/BackIcon.js +18 -0
- package/dist/Editor/assets/svg/ClearAllRounded.js +31 -0
- package/dist/Editor/assets/svg/ResetIconNew.js +23 -0
- package/dist/Editor/assets/svg/SettingsIcon.js +1 -0
- package/dist/Editor/assets/svg/ThemeIcons.js +293 -0
- package/dist/Editor/common/ColorPickerButton.js +38 -16
- package/dist/Editor/common/CustomColorPicker/index.js +130 -0
- package/dist/Editor/common/CustomColorPicker/style.js +53 -0
- package/dist/Editor/common/CustomDialog2/index.js +94 -0
- package/dist/Editor/common/CustomDialog2/style.js +67 -0
- package/dist/Editor/common/CustomSelect.js +43 -0
- package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
- package/dist/Editor/common/FontLoader/FontLoader.js +3 -0
- package/dist/Editor/common/Icon.js +31 -1
- package/dist/Editor/common/ImageSelector/Styles.js +3 -9
- package/dist/Editor/common/LinkSettings/NavComponents.js +34 -8
- package/dist/Editor/common/LinkSettings/index.js +84 -68
- package/dist/Editor/common/LinkSettings/style.js +245 -30
- package/dist/Editor/common/RnD/ElementOptions/Actions.js +13 -14
- package/dist/Editor/common/RnD/ElementOptions/Icons/LinkIcon.js +1 -0
- package/dist/Editor/common/RnD/ElementOptions/index.js +2 -2
- package/dist/Editor/common/RnD/ElementOptions/styles.js +28 -1
- package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +6 -5
- package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +3 -1
- package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/styles.js +147 -12
- package/dist/Editor/common/RnD/OptionsPopup/index.js +8 -5
- package/dist/Editor/common/RnD/OptionsPopup/style.js +121 -19
- package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +8 -5
- package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
- package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
- package/dist/Editor/common/RnD/Utils/gridDropItem.js +1 -2
- package/dist/Editor/common/RnD/index.js +5 -6
- package/dist/Editor/common/Select/index.js +2 -0
- package/dist/Editor/common/Shorthands/elements.js +54 -0
- package/dist/Editor/common/SnackBar/index.js +43 -0
- package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +5 -0
- package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
- package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +16 -8
- package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +36 -10
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +16 -7
- package/dist/Editor/common/StyleBuilder/fieldTypes/lineSpacing.js +7 -6
- package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +13 -6
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
- package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +5 -7
- package/dist/Editor/common/Uploader.js +8 -0
- package/dist/Editor/common/iconListV2.js +101 -6
- package/dist/Editor/common/iconslist.js +24 -0
- package/dist/Editor/commonStyle.js +174 -61
- package/dist/Editor/helper/textIndeces.js +58 -0
- package/dist/Editor/helper/theme.js +203 -2
- package/dist/Editor/hooks/useEditorTheme.js +153 -0
- package/dist/Editor/hooks/useMouseMove.js +8 -5
- package/dist/Editor/hooks/useThemeValues.js +63 -0
- package/dist/Editor/plugins/withEmbeds.js +1 -1
- package/dist/Editor/plugins/withHTML.js +3 -1
- package/dist/Editor/plugins/withTable.js +1 -1
- package/dist/Editor/theme/ThemeList.js +50 -173
- package/dist/Editor/theme/index.js +149 -0
- package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
- package/dist/Editor/themeSettings/buttons/index.js +290 -0
- package/dist/Editor/themeSettings/buttons/style.js +23 -0
- package/dist/Editor/themeSettings/colorTheme/index.js +309 -0
- package/dist/Editor/themeSettings/colorTheme/style.js +81 -0
- package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
- package/dist/Editor/themeSettings/fonts/index.js +240 -0
- package/dist/Editor/themeSettings/fonts/style.js +62 -0
- package/dist/Editor/themeSettings/icons.js +60 -0
- package/dist/Editor/themeSettings/index.js +361 -0
- package/dist/Editor/themeSettings/style.js +292 -0
- package/dist/Editor/themeSettingsAI/icons.js +96 -0
- package/dist/Editor/themeSettingsAI/index.js +355 -0
- package/dist/Editor/themeSettingsAI/saveTheme.js +202 -0
- package/dist/Editor/themeSettingsAI/style.js +324 -0
- package/dist/Editor/utils/SlateUtilityFunctions.js +166 -43
- package/dist/Editor/utils/button.js +1 -17
- package/dist/Editor/utils/draftToSlate.js +3 -2
- package/dist/Editor/utils/font.js +40 -37
- package/dist/Editor/utils/helper.js +90 -19
- package/package.json +4 -4
@@ -1273,6 +1273,7 @@ export const GridSettingsIcon = props => /*#__PURE__*/_jsxs("svg", {
|
|
1273
1273
|
height: "22",
|
1274
1274
|
viewBox: "0 0 22 22",
|
1275
1275
|
fill: "none",
|
1276
|
+
className: "commonSvgStyle",
|
1276
1277
|
children: [/*#__PURE__*/_jsx("path", {
|
1277
1278
|
d: "M11 13.75C12.5188 13.75 13.75 12.5188 13.75 11C13.75 9.48122 12.5188 8.25 11 8.25C9.48122 8.25 8.25 9.48122 8.25 11C8.25 12.5188 9.48122 13.75 11 13.75Z",
|
1278
1279
|
stroke: "#64748B",
|
@@ -1341,6 +1342,7 @@ export const GridAddSectionIcon = props => /*#__PURE__*/_jsxs("svg", {
|
|
1341
1342
|
height: "20",
|
1342
1343
|
viewBox: "0 0 20 20",
|
1343
1344
|
fill: "none",
|
1345
|
+
className: "addIconCircle",
|
1344
1346
|
children: [/*#__PURE__*/_jsx("path", {
|
1345
1347
|
d: "M10 19C14.9706 19 19 14.9706 19 10C19 5.02944 14.9706 1 10 1C5.02944 1 1 5.02944 1 10C1 14.9706 5.02944 19 10 19Z",
|
1346
1348
|
stroke: "#64748B",
|
@@ -1675,6 +1677,27 @@ export const CloseIcon = props => /*#__PURE__*/_jsxs("svg", {
|
|
1675
1677
|
strokeLinejoin: "round"
|
1676
1678
|
})]
|
1677
1679
|
});
|
1680
|
+
export const CloseIcon2 = props => /*#__PURE__*/_jsxs("svg", {
|
1681
|
+
width: "10",
|
1682
|
+
height: "10",
|
1683
|
+
viewBox: "0 0 10 10",
|
1684
|
+
fill: "none",
|
1685
|
+
xmlns: "http://www.w3.org/2000/svg",
|
1686
|
+
...(props || {}),
|
1687
|
+
children: [/*#__PURE__*/_jsx("path", {
|
1688
|
+
d: "M9.12476 0.875L0.875176 9.12458",
|
1689
|
+
stroke: "#8F9CAE",
|
1690
|
+
strokeWidth: "1.5",
|
1691
|
+
strokeLinecap: "round",
|
1692
|
+
strokeLinejoin: "round"
|
1693
|
+
}), /*#__PURE__*/_jsx("path", {
|
1694
|
+
d: "M0.875183 0.875L9.12476 9.12458",
|
1695
|
+
stroke: "#8F9CAE",
|
1696
|
+
strokeWidth: "1.5",
|
1697
|
+
strokeLinecap: "round",
|
1698
|
+
strokeLinejoin: "round"
|
1699
|
+
})]
|
1700
|
+
});
|
1678
1701
|
export const SearchIcon = () => /*#__PURE__*/_jsxs("svg", {
|
1679
1702
|
width: "18",
|
1680
1703
|
height: "18",
|
@@ -1786,6 +1809,7 @@ export const Text = props => /*#__PURE__*/_jsxs("svg", {
|
|
1786
1809
|
viewBox: "0 0 15 14",
|
1787
1810
|
fill: "none",
|
1788
1811
|
xmlns: "http://www.w3.org/2000/svg",
|
1812
|
+
className: "commonSvgStyle",
|
1789
1813
|
children: [/*#__PURE__*/_jsx("path", {
|
1790
1814
|
d: "M2.5 4.1825V3.12083C2.5 2.45 3.0425 1.91333 3.7075 1.91333H12.1775C12.8483 1.91333 13.385 2.45583 13.385 3.12083V4.1825",
|
1791
1815
|
stroke: props?.stroke || "#000",
|
@@ -49,15 +49,19 @@ const useCommonStyle = theme => ({
|
|
49
49
|
fontWeight: "500",
|
50
50
|
fontFamily: "Inter, sans-serif"
|
51
51
|
},
|
52
|
+
"& .MuiPaper-root": {
|
53
|
+
border: `unset !important`,
|
54
|
+
borderRadius: "0px",
|
55
|
+
height: "fit-content",
|
56
|
+
padding: "2px"
|
57
|
+
},
|
52
58
|
"& p": {
|
53
59
|
marginBottom: "7px",
|
54
60
|
marginTop: "4px"
|
55
61
|
},
|
56
|
-
"&
|
57
|
-
|
58
|
-
|
59
|
-
height: 'fit-content',
|
60
|
-
padding: '2px'
|
62
|
+
"& p": {
|
63
|
+
marginBottom: "7px",
|
64
|
+
marginTop: "4px"
|
61
65
|
},
|
62
66
|
"& .muiIconsListParent": {
|
63
67
|
"& svg": {
|
@@ -65,15 +69,12 @@ const useCommonStyle = theme => ({
|
|
65
69
|
},
|
66
70
|
"&::-webkit-scrollbar-thumb": {
|
67
71
|
background: `${theme?.palette?.editor?.brainPopupScroll} !important`
|
68
|
-
},
|
69
|
-
"&::-webkit-scrollbar-track": {
|
70
|
-
visibility: "hidden"
|
71
72
|
}
|
72
73
|
},
|
73
74
|
"& .MuiGrid-root>.MuiGrid-item": {
|
74
75
|
paddingRight: "0px !important",
|
75
76
|
fontFamily: "Inter, sans-serif",
|
76
|
-
height:
|
77
|
+
height: "fit-content"
|
77
78
|
},
|
78
79
|
"& .MuiInputBase-root": {
|
79
80
|
borderRadius: "10px",
|
@@ -132,16 +133,16 @@ const useCommonStyle = theme => ({
|
|
132
133
|
background: theme?.palette?.editor?.inputFieldBgColor,
|
133
134
|
border: `1px solid ${theme?.palette?.editor?.inputFieldBorder}`,
|
134
135
|
borderRadius: "10px",
|
135
|
-
width: "
|
136
|
+
width: "52px !important",
|
136
137
|
marginLeft: "10px",
|
137
|
-
height:
|
138
|
+
height: "36px !important"
|
138
139
|
},
|
139
140
|
"& .spacingSlider": {
|
140
141
|
width: "calc(100% - 18px)"
|
141
142
|
}
|
142
143
|
},
|
143
|
-
|
144
|
-
margin:
|
144
|
+
"& .MuiFormHelperText-root": {
|
145
|
+
margin: "4px 0px 0px 0px",
|
145
146
|
color: theme?.palette?.editor?.closeButtonSvgStroke,
|
146
147
|
fontFamily: "Inter, sans-serif"
|
147
148
|
}
|
@@ -211,16 +212,16 @@ const useCommonStyle = theme => ({
|
|
211
212
|
backgroundColor: theme?.palette?.editor?.miniToolBarBackground
|
212
213
|
},
|
213
214
|
"& .popup_tabs": {
|
214
|
-
backgroundColor: theme?.palette?.editor?.
|
215
|
+
backgroundColor: theme?.palette?.editor?.miniToolBarBackground,
|
215
216
|
"@media only screen and (max-width: 899px)": {
|
216
217
|
width: "100% !important"
|
217
218
|
}
|
218
219
|
},
|
219
220
|
"& .popup_tabs-header": {
|
220
|
-
backgroundColor: theme?.palette?.editor?.
|
221
|
+
backgroundColor: theme?.palette?.editor?.miniToolBarBackground,
|
221
222
|
"& .popup_tabs-header-label-active": {
|
222
223
|
color: theme?.palette?.editor?.activeColor,
|
223
|
-
backgroundColor: theme?.palette?.editor?.
|
224
|
+
backgroundColor: theme?.palette?.editor?.miniToolBarBackground
|
224
225
|
}
|
225
226
|
},
|
226
227
|
"& .colorpicker": {
|
@@ -249,6 +250,40 @@ const useCommonStyle = theme => ({
|
|
249
250
|
backgroundColor: theme?.palette?.editor?.miniToolBarBackground,
|
250
251
|
color: theme?.palette?.editor?.textColor
|
251
252
|
}
|
253
|
+
},
|
254
|
+
"& .colorPickerActionBtns": {
|
255
|
+
backgroundColor: theme?.palette?.editor?.miniToolBarBackground,
|
256
|
+
display: "flex",
|
257
|
+
justifyContent: "end",
|
258
|
+
padding: "10px",
|
259
|
+
position: "sticky",
|
260
|
+
bottom: 0,
|
261
|
+
right: 0,
|
262
|
+
boxShadow: `0px -3px 12px 0px ${theme?.palette?.editor?.cardShadow}`,
|
263
|
+
gap: "8px",
|
264
|
+
"& button": {
|
265
|
+
fontWeight: 600,
|
266
|
+
fontSize: "14px",
|
267
|
+
opacity: 1,
|
268
|
+
borderRadius: "8px",
|
269
|
+
textTransform: "math-auto",
|
270
|
+
padding: "4px 20px",
|
271
|
+
height: "fit-content",
|
272
|
+
minWidth: "90px",
|
273
|
+
"@media only screen and (max-width: 899px)": {
|
274
|
+
width: "50%"
|
275
|
+
},
|
276
|
+
"&.confirmBtn": {
|
277
|
+
backgroundColor: "#2563EB",
|
278
|
+
color: "#ffffff",
|
279
|
+
border: `1px solid #2563EB`
|
280
|
+
},
|
281
|
+
"&.cancelBtn": {
|
282
|
+
backgroundColor: theme?.palette?.editor?.closeButtonBackground,
|
283
|
+
color: theme?.palette?.editor?.customDialogueCloseBtnColor,
|
284
|
+
border: `1px solid ${theme?.palette?.editor?.customDialogueCloseBtnBorder}`
|
285
|
+
}
|
286
|
+
}
|
252
287
|
}
|
253
288
|
},
|
254
289
|
colorPickerBtnBorder: {
|
@@ -397,14 +432,14 @@ const useCommonStyle = theme => ({
|
|
397
432
|
padding: "8px 12px",
|
398
433
|
fontSize: "12px",
|
399
434
|
color: theme?.palette?.editor?.menuOptionTextColor,
|
400
|
-
fontWeight:
|
435
|
+
fontWeight: "500",
|
401
436
|
fontFamily: "Inter, sans-serif",
|
402
|
-
minHeight:
|
437
|
+
minHeight: "36px",
|
403
438
|
"&:hover": {
|
404
439
|
backgroundColor: theme?.palette?.editor?.menuOptionHoverBackground
|
405
440
|
}
|
406
441
|
},
|
407
|
-
|
442
|
+
"& .Mui-selected": {
|
408
443
|
background: `${theme?.palette?.editor?.menuOptionSelectedOption} !important`
|
409
444
|
},
|
410
445
|
"& .MuiListSubheader-root": {
|
@@ -413,16 +448,16 @@ const useCommonStyle = theme => ({
|
|
413
448
|
fontSize: "12px"
|
414
449
|
},
|
415
450
|
"& .MuiPaper-root": {
|
416
|
-
borderRadius:
|
417
|
-
padding:
|
451
|
+
borderRadius: "8px",
|
452
|
+
padding: "0px",
|
418
453
|
background: `${theme?.palette?.editor?.textWeightPopUpBackground} !important`
|
419
454
|
},
|
420
|
-
|
421
|
-
margin:
|
422
|
-
borderRadius:
|
455
|
+
"& .MuiButtonBase-root": {
|
456
|
+
margin: "4px",
|
457
|
+
borderRadius: "6px"
|
423
458
|
},
|
424
|
-
|
425
|
-
padding:
|
459
|
+
"& .MuiList-root": {
|
460
|
+
padding: "0px"
|
426
461
|
}
|
427
462
|
},
|
428
463
|
datePicker: {
|
@@ -522,27 +557,27 @@ const useCommonStyle = theme => ({
|
|
522
557
|
}
|
523
558
|
}
|
524
559
|
},
|
525
|
-
pageSettingPopUpRoot: {
|
526
|
-
padding: "16px 8px 16px 10px!important",
|
527
|
-
height: "100%"
|
528
|
-
},
|
529
560
|
buttonMoreOption: {
|
530
561
|
background: `${theme?.palette?.editor?.aiInputBackground} !important`,
|
531
562
|
border: `1px solid ${theme?.palette?.editor?.buttonBorder1} !important`,
|
532
|
-
padding:
|
533
|
-
|
534
|
-
width:
|
535
|
-
height:
|
536
|
-
|
563
|
+
padding: "4px !important",
|
564
|
+
"& svg": {
|
565
|
+
width: "18px !important",
|
566
|
+
height: "18px !important",
|
567
|
+
"& path": {
|
537
568
|
stroke: `${theme?.palette?.editor?.closeButtonSvgStroke} !important`
|
538
569
|
}
|
539
570
|
}
|
540
571
|
},
|
572
|
+
pageSettingPopUpRoot: {
|
573
|
+
padding: "16px 8px 16px 10px!important",
|
574
|
+
height: "100%"
|
575
|
+
},
|
541
576
|
buttonMoreOption2: {
|
542
577
|
background: `${theme?.palette?.editor?.aiInputBackground} !important`,
|
543
578
|
border: `1px solid ${theme?.palette?.editor?.buttonBorder1} !important`,
|
544
|
-
|
545
|
-
|
579
|
+
"& svg": {
|
580
|
+
"& path": {
|
546
581
|
fill: `${theme?.palette?.editor?.closeButtonSvgStroke} !important`
|
547
582
|
}
|
548
583
|
}
|
@@ -550,11 +585,11 @@ const useCommonStyle = theme => ({
|
|
550
585
|
buttonMoreOption3: {
|
551
586
|
background: `${theme?.palette?.editor?.aiInputBackground} !important`,
|
552
587
|
border: `1px solid ${theme?.palette?.editor?.buttonBorder1} !important`,
|
553
|
-
padding:
|
554
|
-
|
555
|
-
width:
|
556
|
-
height:
|
557
|
-
|
588
|
+
padding: "5px !important",
|
589
|
+
"& svg": {
|
590
|
+
width: "16px !important",
|
591
|
+
height: "16px !important",
|
592
|
+
"& path": {
|
558
593
|
stroke: `${theme?.palette?.editor?.closeButtonSvgStroke} !important`
|
559
594
|
}
|
560
595
|
}
|
@@ -562,40 +597,118 @@ const useCommonStyle = theme => ({
|
|
562
597
|
resizeButton: {
|
563
598
|
background: theme?.palette?.editor?.aiInputBackground,
|
564
599
|
border: `1px solid ${theme?.palette?.editor?.buttonBorder1}`,
|
565
|
-
padding:
|
566
|
-
borderRadius:
|
567
|
-
|
568
|
-
width:
|
569
|
-
height:
|
570
|
-
|
600
|
+
padding: "5px !important",
|
601
|
+
borderRadius: "50% !important",
|
602
|
+
"& svg": {
|
603
|
+
width: "18px",
|
604
|
+
height: "18px",
|
605
|
+
"& path": {
|
571
606
|
fill: `${theme?.palette?.editor?.closeButtonSvgStroke}`
|
572
607
|
}
|
573
608
|
},
|
574
|
-
|
609
|
+
"&:hover": {
|
575
610
|
background: theme?.palette?.editor?.aiInputBackground
|
576
611
|
}
|
577
612
|
},
|
578
613
|
gradientFillBtn: {
|
579
614
|
background: `linear-gradient(112.61deg, #2C63ED 19.3%, #8360FD 88.14%) !important`,
|
580
|
-
textTransform:
|
581
|
-
color:
|
582
|
-
padding:
|
583
|
-
height:
|
584
|
-
borderRadius:
|
585
|
-
fontWeight:
|
586
|
-
fontSize:
|
615
|
+
textTransform: "math-auto !important",
|
616
|
+
color: "#FFFFFF !important",
|
617
|
+
padding: "0px 12px !important",
|
618
|
+
height: "32px",
|
619
|
+
borderRadius: "8px",
|
620
|
+
fontWeight: "500",
|
621
|
+
fontSize: "14px"
|
587
622
|
},
|
588
623
|
emptyThumbBtn: {
|
589
624
|
background: `${theme?.palette?.editor?.sectionSettingIconHover} !important`,
|
590
625
|
color: `${theme?.palette?.editor?.textColor} !important`,
|
591
|
-
fontSize:
|
592
|
-
|
593
|
-
width:
|
594
|
-
height:
|
595
|
-
|
626
|
+
fontSize: "14px !important",
|
627
|
+
"& svg": {
|
628
|
+
width: "20px !important",
|
629
|
+
height: "20px !important",
|
630
|
+
"& path": {
|
596
631
|
stroke: `${theme?.palette?.editor?.closeButtonSvgStroke} !important`
|
597
632
|
}
|
598
633
|
}
|
634
|
+
},
|
635
|
+
formStyles: {
|
636
|
+
"& input": {
|
637
|
+
background: theme?.palette?.editor?.inputFieldBgColor,
|
638
|
+
border: `1px solid ${theme?.palette?.editor?.inputFieldBorder}`,
|
639
|
+
borderRadius: "8px",
|
640
|
+
height: "44px",
|
641
|
+
fontSize: "14px",
|
642
|
+
color: theme?.palette?.editor?.textColor
|
643
|
+
},
|
644
|
+
"& .form-btn-wrpr": {
|
645
|
+
"& button": {
|
646
|
+
background: "#2563EB",
|
647
|
+
fontSize: "14px",
|
648
|
+
fontWeight: 500,
|
649
|
+
padding: "4px 24px",
|
650
|
+
textTransform: "none",
|
651
|
+
color: "#FFFFFF",
|
652
|
+
height: "44px",
|
653
|
+
borderRadius: "8px",
|
654
|
+
border: "unset",
|
655
|
+
fontFamily: "Inter, sans-serif"
|
656
|
+
}
|
657
|
+
}
|
658
|
+
},
|
659
|
+
formMenuStyle: {
|
660
|
+
"& .MuiPaper-root": {
|
661
|
+
background: "transparent",
|
662
|
+
boxShadow: "none"
|
663
|
+
},
|
664
|
+
"& .MuiList-root": {
|
665
|
+
padding: "2px 0px 0px 16px"
|
666
|
+
},
|
667
|
+
"& .MuiButtonBase-root": {
|
668
|
+
padding: "2px"
|
669
|
+
},
|
670
|
+
"& li": {
|
671
|
+
marginLeft: "5px",
|
672
|
+
"&:hover": {
|
673
|
+
background: "transparent"
|
674
|
+
},
|
675
|
+
"& button": {
|
676
|
+
height: "28px",
|
677
|
+
width: "28px",
|
678
|
+
borderRadius: "50%",
|
679
|
+
background: theme?.palette?.editor?.signatureFontBtnBg,
|
680
|
+
border: `1px solid ${theme?.palette?.editor?.buttonBorder1} !important`,
|
681
|
+
boxShadow: "0px 0px 4px 0px #00000024",
|
682
|
+
"&:hover": {
|
683
|
+
background: theme?.palette?.editor?.signatureFontBtnBg
|
684
|
+
},
|
685
|
+
"& svg": {
|
686
|
+
height: "20px",
|
687
|
+
width: "20px"
|
688
|
+
},
|
689
|
+
"& .uploadIcon": {
|
690
|
+
height: "17px",
|
691
|
+
width: "17px"
|
692
|
+
},
|
693
|
+
"& .commonSvgStyle path": {
|
694
|
+
stroke: theme?.palette?.editor?.closeButtonSvgStroke
|
695
|
+
}
|
696
|
+
}
|
697
|
+
}
|
698
|
+
},
|
699
|
+
fieldBtnSettings: {
|
700
|
+
"& .MuiButtonBase-root": {
|
701
|
+
height: "28px",
|
702
|
+
width: "28px",
|
703
|
+
padding: "4px",
|
704
|
+
"& svg": {
|
705
|
+
width: "20px",
|
706
|
+
height: "20px",
|
707
|
+
"& path": {
|
708
|
+
stroke: theme?.palette?.editor?.closeButtonSvgStroke
|
709
|
+
}
|
710
|
+
}
|
711
|
+
}
|
599
712
|
}
|
600
713
|
});
|
601
714
|
export default useCommonStyle;
|
@@ -0,0 +1,58 @@
|
|
1
|
+
export function extractTextWithPath(data, path = []) {
|
2
|
+
let result = [];
|
3
|
+
data.forEach((item, index) => {
|
4
|
+
const currentPath = [...path, index];
|
5
|
+
if (item.text) {
|
6
|
+
result.push({
|
7
|
+
path_id: currentPath.join(","),
|
8
|
+
text: item.text
|
9
|
+
});
|
10
|
+
}
|
11
|
+
if (item.children) {
|
12
|
+
result = result.concat(extractTextWithPath(item.children, currentPath));
|
13
|
+
}
|
14
|
+
});
|
15
|
+
return result;
|
16
|
+
}
|
17
|
+
export function replaceTextPath(nestedJson, pathIdJson) {
|
18
|
+
// Create a map from path_id JSON for quick lookup
|
19
|
+
const pathIdMap = new Map(pathIdJson.map(item => [item.path_id, item.text]));
|
20
|
+
console.log(pathIdMap);
|
21
|
+
function extractTextWithPath(data, path = []) {
|
22
|
+
data.forEach((item, index) => {
|
23
|
+
const currentPath = [...path, index];
|
24
|
+
if (item.text) {
|
25
|
+
if (pathIdMap.has(currentPath?.join(","))) {
|
26
|
+
item.text = pathIdMap.get(currentPath?.join(","));
|
27
|
+
}
|
28
|
+
}
|
29
|
+
if (item.children) {
|
30
|
+
extractTextWithPath(item.children, currentPath);
|
31
|
+
}
|
32
|
+
});
|
33
|
+
}
|
34
|
+
extractTextWithPath(nestedJson, []);
|
35
|
+
return nestedJson;
|
36
|
+
}
|
37
|
+
|
38
|
+
// export function replaceTextPath(nestedJson, pathIdJson) {
|
39
|
+
// // Create a map from path_id JSON for quick lookup
|
40
|
+
// const pathIdMap = new Map(
|
41
|
+
// pathIdJson.map((item) => [item.path_id, item.text])
|
42
|
+
// );
|
43
|
+
|
44
|
+
// function traverseAndReplace(node) {
|
45
|
+
// if (Array.isArray(node)) {
|
46
|
+
// node.forEach(traverseAndReplace);
|
47
|
+
// } else if (typeof node === "object" && node !== null) {
|
48
|
+
// console.log(node);
|
49
|
+
// if (node.text && pathIdMap.has(node.text)) {
|
50
|
+
// node.text = pathIdMap.get(node.path_id);
|
51
|
+
// }
|
52
|
+
// Object.values(node).forEach(traverseAndReplace);
|
53
|
+
// }
|
54
|
+
// }
|
55
|
+
|
56
|
+
// traverseAndReplace(nestedJson);
|
57
|
+
// return nestedJson;
|
58
|
+
// }
|
@@ -1,4 +1,6 @@
|
|
1
|
+
import { ReactEditor } from "slate-react";
|
1
2
|
import { sizeMap } from "../utils/font";
|
3
|
+
import { Editor, Node } from "slate";
|
2
4
|
export const breakpoints = {
|
3
5
|
small: 0,
|
4
6
|
mobile: 600,
|
@@ -33,7 +35,7 @@ const overrideValues = (value, ot) => {
|
|
33
35
|
return Object.keys(value).reduce((a, b) => {
|
34
36
|
return {
|
35
37
|
...a,
|
36
|
-
[b]: overrides[ot] ? overrides[ot](value[b]) : value
|
38
|
+
[b]: overrides[ot] ? overrides[ot](value[b], value) : value
|
37
39
|
};
|
38
40
|
}, {});
|
39
41
|
};
|
@@ -50,7 +52,15 @@ const overrides = {
|
|
50
52
|
overrideReSizeH: val => {
|
51
53
|
return val ? `${val?.height}px` : "auto";
|
52
54
|
},
|
53
|
-
overrideBorderRadius: val => {
|
55
|
+
overrideBorderRadius: (val, breakpointValues) => {
|
56
|
+
if (!val?.topLeft) {
|
57
|
+
Object.values(breakpointValues || {}).forEach(v => {
|
58
|
+
if (v) {
|
59
|
+
// Applying the values from breakpoints that exist to those that do not have
|
60
|
+
val = v;
|
61
|
+
}
|
62
|
+
});
|
63
|
+
}
|
54
64
|
return `${val?.topLeft}px ${val?.topRight}px ${val?.bottomLeft}px ${val?.bottomRight}px`;
|
55
65
|
}
|
56
66
|
};
|
@@ -118,6 +128,197 @@ export const getTRBLBreakPoints = (value, breakpoint) => {
|
|
118
128
|
console.log(err);
|
119
129
|
}
|
120
130
|
};
|
131
|
+
export function getElementStyle(editor, element, stylePropertyName) {
|
132
|
+
try {
|
133
|
+
const path = ReactEditor.findPath(editor, element);
|
134
|
+
if (path?.length) {
|
135
|
+
const currentEle = Node.get(editor, path);
|
136
|
+
const dom = ReactEditor.toDOMNode(editor, currentEle);
|
137
|
+
const editorBtn = dom?.querySelector(".button.theme-element");
|
138
|
+
return getElementProperty(editorBtn, stylePropertyName);
|
139
|
+
}
|
140
|
+
} catch (err) {
|
141
|
+
// console.log(err);
|
142
|
+
}
|
143
|
+
}
|
144
|
+
export function getTextSizeVal(editor) {
|
145
|
+
try {
|
146
|
+
const currentNode = Node.get(editor, editor.selection.anchor.path);
|
147
|
+
const currentElement = ReactEditor.toDOMNode(editor, currentNode);
|
148
|
+
if (currentElement) {
|
149
|
+
const element = currentElement.querySelector('span[data-slate-string="true"]');
|
150
|
+
const fontSize = getElementProperty(element, "font-size");
|
151
|
+
return fontSize || 16;
|
152
|
+
}
|
153
|
+
} catch (err) {
|
154
|
+
// console.log(err);
|
155
|
+
}
|
156
|
+
}
|
157
|
+
export function getVariableValue(val) {
|
158
|
+
const bodyElement = document.body;
|
159
|
+
const computedStyle = getComputedStyle(bodyElement);
|
160
|
+
const [, variableName] = val?.match(/var\((--[^)]+)\)/) || [];
|
161
|
+
const varValue = computedStyle.getPropertyValue(variableName).trim();
|
162
|
+
return varValue;
|
163
|
+
}
|
164
|
+
const MAP_PROPERTY_KEYS = {
|
165
|
+
fontFamily: "font-family",
|
166
|
+
fontSize: "font-size",
|
167
|
+
textSize: "font-size",
|
168
|
+
fontWeight: "font-weight",
|
169
|
+
color: "color",
|
170
|
+
bgColor: "background-color"
|
171
|
+
};
|
172
|
+
export function getElementProperty(element, styleProperty) {
|
173
|
+
if (!element) {
|
174
|
+
return "";
|
175
|
+
}
|
176
|
+
const computedStyle = window.getComputedStyle(element);
|
177
|
+
const property = MAP_PROPERTY_KEYS[styleProperty] || styleProperty;
|
178
|
+
let style = computedStyle.getPropertyValue(property);
|
179
|
+
if (property === "font-family") {
|
180
|
+
style = style.replace(/"/g, ""); // remove double quotes if exists e.g: '"Courier New"'
|
181
|
+
}
|
182
|
+
|
183
|
+
return style || "";
|
184
|
+
}
|
185
|
+
export const textThemeFields = ["fontFamily", "fontSize", "color", "bold", "italic"
|
186
|
+
// "underline",
|
187
|
+
// "strikethrough",
|
188
|
+
];
|
189
|
+
|
190
|
+
const themeElements = ["headingOne", "headingTwo", "headingThree", "headingFour", "headingFive", "headingSix", "paragraphOne", "paragraphTwo", "paragraphThree"];
|
191
|
+
export const isTextCustomized = editor => {
|
192
|
+
try {
|
193
|
+
if (editor.selection) {
|
194
|
+
const currentElement = Node.parent(editor, editor?.selection?.anchor?.path);
|
195
|
+
if (!currentElement) {
|
196
|
+
return false;
|
197
|
+
}
|
198
|
+
const {
|
199
|
+
children,
|
200
|
+
type
|
201
|
+
} = currentElement;
|
202
|
+
if (!themeElements.includes(type)) {
|
203
|
+
return false;
|
204
|
+
}
|
205
|
+
if (!children?.length) {
|
206
|
+
return true;
|
207
|
+
}
|
208
|
+
const customized = textThemeFields.some(field => {
|
209
|
+
const element = children.find(child => child.text.trim() !== "") || {};
|
210
|
+
const value = element[field];
|
211
|
+
if (field === "fontSize") {
|
212
|
+
return Object.keys(value || {}).length;
|
213
|
+
} else {
|
214
|
+
return value;
|
215
|
+
}
|
216
|
+
});
|
217
|
+
return customized;
|
218
|
+
} else {
|
219
|
+
return null;
|
220
|
+
}
|
221
|
+
} catch (err) {
|
222
|
+
return null;
|
223
|
+
}
|
224
|
+
};
|
225
|
+
const addToTheme = (field, value, element) => {
|
226
|
+
switch (field) {
|
227
|
+
case "fontFamily":
|
228
|
+
return {
|
229
|
+
fontFamily: value
|
230
|
+
};
|
231
|
+
case "fontSize":
|
232
|
+
return {
|
233
|
+
fontSize: value?.lg
|
234
|
+
};
|
235
|
+
case "color":
|
236
|
+
return {
|
237
|
+
color: value
|
238
|
+
};
|
239
|
+
case "bold":
|
240
|
+
return {
|
241
|
+
fontWeight: "bold"
|
242
|
+
};
|
243
|
+
case "italic":
|
244
|
+
return {
|
245
|
+
fontStyle: "italic"
|
246
|
+
};
|
247
|
+
// case "underline":
|
248
|
+
// case "strikethrough":
|
249
|
+
// let textDecoration = "";
|
250
|
+
|
251
|
+
// if (element.underline) {
|
252
|
+
// textDecoration = "underline";
|
253
|
+
// }
|
254
|
+
|
255
|
+
// if (element.strikethrough) {
|
256
|
+
// textDecoration += " strikethrough";
|
257
|
+
// }
|
258
|
+
|
259
|
+
// return { textDecoration };
|
260
|
+
default:
|
261
|
+
return {};
|
262
|
+
}
|
263
|
+
};
|
264
|
+
const MAP_TEXT_THEME_FIELD = {
|
265
|
+
headingOne: "h1",
|
266
|
+
headingTwo: "h2",
|
267
|
+
headingThree: "h3",
|
268
|
+
headingFour: "h4",
|
269
|
+
headingFive: "h5",
|
270
|
+
headingSix: "h6",
|
271
|
+
paragraphOne: "para1",
|
272
|
+
paragraphTwo: "para2",
|
273
|
+
paragraphThree: "para3"
|
274
|
+
};
|
275
|
+
export const saveToTheme = editor => {
|
276
|
+
try {
|
277
|
+
if (editor.selection) {
|
278
|
+
const currentElement = Node.parent(editor, editor?.selection?.anchor?.path);
|
279
|
+
if (!currentElement) {
|
280
|
+
return false;
|
281
|
+
}
|
282
|
+
const {
|
283
|
+
children
|
284
|
+
} = currentElement;
|
285
|
+
if (!children?.length) {
|
286
|
+
return true;
|
287
|
+
}
|
288
|
+
let theme = {};
|
289
|
+
textThemeFields.forEach(field => {
|
290
|
+
const element = children.find(child => child.text.trim() !== "") || {};
|
291
|
+
const value = element[field];
|
292
|
+
let style = {};
|
293
|
+
let isValueExist = false;
|
294
|
+
if (value) {
|
295
|
+
isValueExist = true;
|
296
|
+
if (field === "fontSize") {
|
297
|
+
isValueExist = !!Object.keys(value).length;
|
298
|
+
}
|
299
|
+
}
|
300
|
+
if (isValueExist) {
|
301
|
+
style = addToTheme(field, value, element);
|
302
|
+
}
|
303
|
+
theme = {
|
304
|
+
...theme,
|
305
|
+
...style
|
306
|
+
};
|
307
|
+
});
|
308
|
+
textThemeFields.forEach(field => {
|
309
|
+
Editor.removeMark(editor, field);
|
310
|
+
});
|
311
|
+
return {
|
312
|
+
field: MAP_TEXT_THEME_FIELD[currentElement?.type],
|
313
|
+
theme
|
314
|
+
};
|
315
|
+
}
|
316
|
+
} catch (err) {
|
317
|
+
return;
|
318
|
+
}
|
319
|
+
};
|
320
|
+
export const HEADING_THEME_FIELDS = ["h1", "h2", "h3", "h4", "h5", "h6"];
|
321
|
+
export const PARAGRAPH_THEME_FIELDS = ["para1", "para2", "para3"];
|
121
322
|
export const getBRValue = (props, rbr = "lg") => {
|
122
323
|
const {
|
123
324
|
value,
|