@flozy/editor 8.0.6 → 8.0.7
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 +1 -2
- package/dist/Editor/CommonEditor.js +33 -112
- package/dist/Editor/DialogWrapper.js +25 -31
- package/dist/Editor/Editor.css +16 -32
- package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
- package/dist/Editor/Elements/Button/EditorButton.js +9 -25
- package/dist/Editor/Elements/Color Picker/ColorButtons.js +12 -57
- package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
- package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
- package/dist/Editor/Elements/Color Picker/Styles.js +1 -1
- package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +1 -4
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +4 -3
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +1 -6
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +9 -19
- package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +2 -32
- package/dist/Editor/Elements/DataView/Layouts/TableView.js +29 -126
- package/dist/Editor/Elements/DataView/Layouts/ViewData.js +3 -3
- package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +1 -1
- package/dist/Editor/Elements/DataView/styles.js +8 -8
- package/dist/Editor/Elements/Embed/Image.js +2 -2
- package/dist/Editor/Elements/FreeGrid/FreeGrid.js +14 -0
- package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +1 -2
- package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +1 -2
- package/dist/Editor/Elements/FreeGrid/styles.js +0 -3
- package/dist/Editor/Elements/Grid/GridItem.js +3 -2
- package/dist/Editor/Elements/Link/Link.js +43 -70
- package/dist/Editor/Elements/SimpleText/index.js +12 -7
- package/dist/Editor/Elements/SimpleText/style.js +2 -2
- package/dist/Editor/Elements/Table/Table.js +16 -17
- package/dist/Editor/Elements/Table/TableCell.js +3 -4
- package/dist/Editor/Elements/Title/title.js +1 -13
- package/dist/Editor/Elements/Variables/Style.js +2 -28
- package/dist/Editor/Elements/Variables/VariableButton.js +4 -17
- package/dist/Editor/Styles/EditorStyles.js +291 -287
- package/dist/Editor/Toolbar/FormatTools/Dropdown.js +3 -27
- package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +3 -4
- package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
- package/dist/Editor/Toolbar/FormatTools/TextSize.js +15 -7
- package/dist/Editor/Toolbar/Mini/MiniToolbar.js +0 -1
- package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +8 -9
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +13 -6
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +85 -210
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +1 -2
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +12 -16
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +9 -56
- package/dist/Editor/Toolbar/PopupTool/index.js +56 -34
- package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
- package/dist/Editor/common/ColorPickerButton.js +9 -35
- package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
- package/dist/Editor/common/DnD/Draggable.js +1 -0
- package/dist/Editor/common/FontLoader/FontList.js +11 -3
- package/dist/Editor/common/FontLoader/FontLoader.js +42 -74
- package/dist/Editor/common/Icon.js +0 -28
- package/dist/Editor/common/ImageSelector/Options/Upload.js +2 -2
- package/dist/Editor/common/ImageSelector/Styles.js +9 -3
- package/dist/Editor/common/ImageSelector/UploadStyles.js +10 -9
- package/dist/Editor/common/LinkSettings/NavComponents.js +5 -0
- package/dist/Editor/common/LinkSettings/index.js +5 -0
- package/dist/Editor/common/MentionsPopup/Styles.js +12 -6
- package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +1 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +2 -4
- package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/styles.js +2 -0
- package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +2 -8
- package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +3 -6
- package/dist/Editor/common/RnD/Utils/gridDropItem.js +4 -5
- package/dist/Editor/common/RnD/Utils/index.js +0 -45
- package/dist/Editor/common/RnD/index.js +3 -23
- package/dist/Editor/common/Section/index.js +89 -60
- package/dist/Editor/common/Shorthands/elements.js +0 -54
- package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
- package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +0 -5
- package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +2 -12
- package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -15
- package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +2 -10
- package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +11 -35
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +4 -13
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +7 -15
- package/dist/Editor/common/Uploader.js +0 -8
- package/dist/Editor/commonStyle.js +69 -114
- package/dist/Editor/helper/deserialize/index.js +1 -1
- package/dist/Editor/helper/index.js +2 -2
- package/dist/Editor/helper/theme.js +2 -200
- package/dist/Editor/hooks/useDrag.js +11 -17
- package/dist/Editor/hooks/useEditorScroll.js +2 -1
- package/dist/Editor/hooks/useMouseMove.js +3 -9
- package/dist/Editor/plugins/withEmbeds.js +1 -1
- package/dist/Editor/plugins/withHTML.js +21 -20
- package/dist/Editor/plugins/withLayout.js +1 -1
- package/dist/Editor/plugins/withTable.js +1 -1
- package/dist/Editor/theme/ThemeList.js +173 -50
- package/dist/Editor/utils/SlateUtilityFunctions.js +49 -157
- package/dist/Editor/utils/button.js +14 -0
- package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +0 -23
- package/dist/Editor/utils/draftToSlate.js +2 -3
- package/dist/Editor/utils/font.js +37 -40
- package/dist/Editor/utils/helper.js +19 -59
- package/dist/Editor/utils/link.js +1 -1
- package/package.json +3 -6
- package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -438
- package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
- package/dist/Editor/common/CustomColorPicker/index.js +0 -106
- package/dist/Editor/common/CustomColorPicker/style.js +0 -53
- package/dist/Editor/common/CustomDialog/index.js +0 -90
- package/dist/Editor/common/CustomDialog/style.js +0 -67
- package/dist/Editor/common/CustomDialog/styles.js +0 -80
- package/dist/Editor/common/CustomSelect.js +0 -33
- package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
- package/dist/Editor/hooks/useEditorTheme.js +0 -153
- package/dist/Editor/theme/index.js +0 -144
- package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
- package/dist/Editor/themeSettings/buttons/index.js +0 -283
- package/dist/Editor/themeSettings/buttons/style.js +0 -21
- package/dist/Editor/themeSettings/colorTheme/index.js +0 -292
- package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
- package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
- package/dist/Editor/themeSettings/fonts/index.js +0 -220
- package/dist/Editor/themeSettings/fonts/style.js +0 -44
- package/dist/Editor/themeSettings/icons.js +0 -60
- package/dist/Editor/themeSettings/index.js +0 -320
- package/dist/Editor/themeSettings/style.js +0 -152
- package/dist/Editor/themeSettingsAI/icons.js +0 -96
- package/dist/Editor/themeSettingsAI/index.js +0 -356
- package/dist/Editor/themeSettingsAI/saveTheme.js +0 -197
- package/dist/Editor/themeSettingsAI/style.js +0 -250
@@ -10,8 +10,6 @@ import { AllColors } from "../../Elements/Color Picker/ColorButtons";
|
|
10
10
|
import { fontFamilyMap } from "../../utils/font";
|
11
11
|
import { getBorderColor } from "../../utils/helper";
|
12
12
|
import SelectTypography from "./MiniTextFormat/SelectTypography";
|
13
|
-
import { isTextCustomized, saveToTheme } from "../../helper/theme";
|
14
|
-
import { useEditorTheme } from "../../hooks/useEditorTheme";
|
15
13
|
import SelectSuperSubscript from "./MiniTextFormat/SelectSuperSubscript";
|
16
14
|
import { ColorResetIcon, TextDefaultStyleIcon } from "../../common/iconListV2";
|
17
15
|
import FontFamilyAutocomplete from "../FormatTools/FontFamilyAutocomplete";
|
@@ -41,7 +39,7 @@ const TextFormat = props => {
|
|
41
39
|
const pageSettingLine = pageSt?.pageProps?.lineHeight;
|
42
40
|
const {
|
43
41
|
fontFamilies,
|
44
|
-
theme
|
42
|
+
theme
|
45
43
|
} = useEditorContext();
|
46
44
|
const {
|
47
45
|
activeBreakPoint
|
@@ -63,12 +61,7 @@ const TextFormat = props => {
|
|
63
61
|
color: "",
|
64
62
|
bgColor: ""
|
65
63
|
};
|
66
|
-
|
67
|
-
theme,
|
68
|
-
updateTheme
|
69
|
-
} = useEditorTheme();
|
70
|
-
const customized = isTextCustomized(editor);
|
71
|
-
let lineSpacingValue = activeMark(editor, "lineHeight");
|
64
|
+
let lineSpacingValue = activeMark(editor, 'lineHeight');
|
72
65
|
lineSpacingValue = lineSpacingValue?.[breakpoint] !== undefined ? lineSpacingValue : pageSettingLine;
|
73
66
|
const handleColorPicker = type => e => {
|
74
67
|
setType(type);
|
@@ -122,50 +115,6 @@ const TextFormat = props => {
|
|
122
115
|
sx: classes.textFormatWrapper,
|
123
116
|
className: "text-formatter-popup",
|
124
117
|
children: [/*#__PURE__*/_jsxs(Grid, {
|
125
|
-
item: true,
|
126
|
-
xs: 12,
|
127
|
-
children: [/*#__PURE__*/_jsxs(Grid, {
|
128
|
-
container: true,
|
129
|
-
justifyContent: "space-between",
|
130
|
-
alignItems: "center",
|
131
|
-
children: [/*#__PURE__*/_jsx(Grid, {
|
132
|
-
item: true,
|
133
|
-
children: /*#__PURE__*/_jsx(Typography, {
|
134
|
-
variant: "body1",
|
135
|
-
color: "primary",
|
136
|
-
sx: classes.typoLabel,
|
137
|
-
children: "Style"
|
138
|
-
})
|
139
|
-
}), /*#__PURE__*/_jsx(Grid, {
|
140
|
-
item: true,
|
141
|
-
children: theme?.id ? /*#__PURE__*/_jsx(Button, {
|
142
|
-
sx: classes.defaultBtn,
|
143
|
-
onClick: () => {
|
144
|
-
const {
|
145
|
-
field,
|
146
|
-
theme
|
147
|
-
} = saveToTheme(editor) || {};
|
148
|
-
updateTheme(theme, {
|
149
|
-
action: "ELEMENT_PROPS_CHANGE",
|
150
|
-
fieldName: field
|
151
|
-
});
|
152
|
-
},
|
153
|
-
disabled: !customized,
|
154
|
-
children: "Save to theme"
|
155
|
-
}) : null
|
156
|
-
})]
|
157
|
-
}), /*#__PURE__*/_jsx(Grid, {
|
158
|
-
item: true,
|
159
|
-
xs: 12,
|
160
|
-
sx: classes.textFormatField,
|
161
|
-
children: /*#__PURE__*/_jsx(SelectTypography, {
|
162
|
-
editor: editor,
|
163
|
-
classes: classes,
|
164
|
-
closeMainPopup: () => {},
|
165
|
-
type: "fullWidth"
|
166
|
-
})
|
167
|
-
})]
|
168
|
-
}), /*#__PURE__*/_jsxs(Grid, {
|
169
118
|
item: true,
|
170
119
|
xs: 12,
|
171
120
|
children: [/*#__PURE__*/_jsxs(Grid, {
|
@@ -318,7 +267,7 @@ const TextFormat = props => {
|
|
318
267
|
children: /*#__PURE__*/_jsx(Button, {
|
319
268
|
sx: classes.defaultBtn2,
|
320
269
|
startIcon: /*#__PURE__*/_jsx(ColorResetIcon, {
|
321
|
-
stroke:
|
270
|
+
stroke: theme?.palette?.type === "dark" ? "#505359" : "#A2B0B9"
|
322
271
|
}),
|
323
272
|
onClick: handleDefault({
|
324
273
|
format: "bgColor"
|
@@ -406,7 +355,11 @@ const TextFormat = props => {
|
|
406
355
|
xs: 12,
|
407
356
|
className: "typo-icons",
|
408
357
|
sx: classes.evenSpace,
|
409
|
-
children: [
|
358
|
+
children: [/*#__PURE__*/_jsx(SelectTypography, {
|
359
|
+
classes: classes,
|
360
|
+
editor: editor,
|
361
|
+
closeMainPopup: closeMainPopup || onClose
|
362
|
+
}), fontStyle?.map((m, i) => {
|
410
363
|
return /*#__PURE__*/_jsx(MarkButton, {
|
411
364
|
editor: editor,
|
412
365
|
...m
|
@@ -443,7 +396,7 @@ const TextFormat = props => {
|
|
443
396
|
value: lineSpacingValue,
|
444
397
|
onChange: handleLineSpacing,
|
445
398
|
data: {
|
446
|
-
key:
|
399
|
+
key: 'lineHeight'
|
447
400
|
}
|
448
401
|
})
|
449
402
|
})]
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import React, { useEffect, useState } from "react";
|
2
|
-
import { Popper, Paper, ClickAwayListener } from "@mui/material";
|
1
|
+
import React, { useCallback, useEffect, useState } from "react";
|
2
|
+
import { Popper, Fade, Paper, ClickAwayListener } from "@mui/material";
|
3
3
|
import { Editor, Range, Transforms } from "slate";
|
4
4
|
import { ReactEditor, useSlate } from "slate-react";
|
5
5
|
import useDrag from "../../hooks/useDrag";
|
@@ -14,15 +14,13 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
14
|
const PopupTool = props => {
|
15
15
|
const {
|
16
16
|
theme,
|
17
|
-
setIsTextSelected,
|
18
17
|
customProps,
|
19
18
|
editorWrapper
|
20
19
|
} = props;
|
21
20
|
const classes = usePopupStyles(theme);
|
22
21
|
const {
|
23
22
|
setPopupType,
|
24
|
-
openAI
|
25
|
-
selectedElement
|
23
|
+
openAI
|
26
24
|
} = useEditorContext();
|
27
25
|
const [anchorEl, setAnchorEl] = useState(null);
|
28
26
|
const [open, setOpen] = useState(false);
|
@@ -33,11 +31,18 @@ const PopupTool = props => {
|
|
33
31
|
const [event] = useDrag(anchorEl);
|
34
32
|
const id = open ? "popup-edit-tool" : "";
|
35
33
|
const [size] = useWindowResize();
|
36
|
-
const
|
37
|
-
|
34
|
+
const {
|
35
|
+
selectedElement
|
36
|
+
} = useEditorContext();
|
37
|
+
console.log("Editor debug ====>", event, open, anchorEl, selection);
|
38
|
+
const updateAnchorEl = useCallback(() => {
|
38
39
|
try {
|
40
|
+
const {
|
41
|
+
selection
|
42
|
+
} = editor;
|
39
43
|
const isHavingSelection = selection && !Range.isCollapsed(selection);
|
40
|
-
|
44
|
+
console.log("Editor isHavingSelection", isHavingSelection, selection);
|
45
|
+
if (isHavingSelection) {
|
41
46
|
const domRange = ReactEditor.toDOMRange(editor, editor.selection);
|
42
47
|
const editorContainer = document.querySelector("#slate-wrapper-scroll-container")?.getBoundingClientRect();
|
43
48
|
const rect = domRange.getBoundingClientRect();
|
@@ -46,21 +51,17 @@ const PopupTool = props => {
|
|
46
51
|
rect.y = -500; // hide the popper
|
47
52
|
}
|
48
53
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
if (!anchorEl || isScroll === "scroll") {
|
56
|
-
setAnchorEl(anchor);
|
57
|
-
setOpen(true);
|
58
|
-
}
|
54
|
+
console.log("Editor setAnchorEl", rect, domRange, editorContainer);
|
55
|
+
setAnchorEl({
|
56
|
+
clientWidth: rect.width,
|
57
|
+
clientHeight: rect.height,
|
58
|
+
getBoundingClientRect: () => rect
|
59
|
+
});
|
59
60
|
}
|
60
61
|
} catch (err) {
|
61
62
|
console.log(err);
|
62
63
|
}
|
63
|
-
};
|
64
|
+
}, [editor?.selection]);
|
64
65
|
useEditorScroll(editorWrapper, updateAnchorEl);
|
65
66
|
useEffect(() => {
|
66
67
|
const userStoppedSelection = size?.device === "xs" ? true : event === "end"; // for mobile, when user starts the selection, we are gonna show the popup tool
|
@@ -75,31 +76,46 @@ const PopupTool = props => {
|
|
75
76
|
if (!isCarouselEdit) {
|
76
77
|
setOpen(true);
|
77
78
|
setPopupType("textFormat");
|
78
|
-
setIsTextSelected(true);
|
79
|
+
// setIsTextSelected(true);
|
79
80
|
}
|
80
81
|
} else if (!anchorEl) {
|
81
82
|
setOpen(false);
|
82
83
|
setPopupType("");
|
83
|
-
setIsTextSelected(false);
|
84
|
+
// setIsTextSelected(false);
|
84
85
|
}
|
85
86
|
}, [event, anchorEl]);
|
86
87
|
useEffect(() => {
|
87
|
-
|
88
|
+
console.log("Editor useEffect", selection);
|
89
|
+
if (!selection || Range.isCollapsed(selection) || Editor.string(editor, selection) === "") {
|
88
90
|
setAnchorEl(null);
|
89
91
|
} else {
|
92
|
+
console.log("Editor updateAnchorEl", selection);
|
90
93
|
updateAnchorEl();
|
91
94
|
hideSlateSelection(); // removes slate selection background, when there is no selection
|
92
95
|
}
|
93
|
-
}, [selection
|
96
|
+
}, [editor?.selection]);
|
97
|
+
useEffect(() => {
|
98
|
+
const {
|
99
|
+
path,
|
100
|
+
enable
|
101
|
+
} = selectedElement || {};
|
102
|
+
const isFreeGridElement = path && path.split("|").length > 2;
|
103
|
+
if (enable === 1 && isFreeGridElement) {
|
104
|
+
console.log("Editor useEffect isFreeGridElement", selectedElement);
|
105
|
+
setAnchorEl(null);
|
106
|
+
}
|
107
|
+
}, [selection, selectedElement?.path, selectedElement?.enable]);
|
94
108
|
const handleClose = () => {
|
109
|
+
console.log("Editor closing");
|
95
110
|
// setAnchorEl(null);
|
96
111
|
setOpen(false);
|
97
112
|
setPopupType("");
|
98
113
|
};
|
99
114
|
return open && !openAI ? /*#__PURE__*/_jsx(ClickAwayListener, {
|
100
115
|
onClickAway: e => {
|
116
|
+
console.log("ClickAwayListener", e.target, document.body, e.target !== document.body);
|
101
117
|
// close the mini toolbar, if user clicks outside the editor (in Flozy app.)
|
102
|
-
if (e.target !== document.body
|
118
|
+
if (e.target !== document.body) {
|
103
119
|
// e.target returns body, if the user clicks material ui select popup inside the tool bar, on that time, we don't need to close
|
104
120
|
handleClose();
|
105
121
|
}
|
@@ -116,18 +132,24 @@ const PopupTool = props => {
|
|
116
132
|
id: id,
|
117
133
|
open: open,
|
118
134
|
anchorEl: anchorEl,
|
135
|
+
transition: true,
|
119
136
|
sx: classes.popupWrapper,
|
120
137
|
placement: "top-start",
|
121
|
-
children:
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
138
|
+
children: ({
|
139
|
+
TransitionProps
|
140
|
+
}) => /*#__PURE__*/_jsx(Fade, {
|
141
|
+
...TransitionProps,
|
142
|
+
children: /*#__PURE__*/_jsx(Paper, {
|
143
|
+
style: {
|
144
|
+
borderRadius: "6px",
|
145
|
+
border: "1px solid #8360FD"
|
146
|
+
},
|
147
|
+
children: /*#__PURE__*/_jsx(MiniTextFormat, {
|
148
|
+
editor: editor,
|
149
|
+
classes: classes,
|
150
|
+
closeMainPopup: handleClose,
|
151
|
+
customProps: customProps
|
152
|
+
})
|
131
153
|
})
|
132
154
|
})
|
133
155
|
})
|
@@ -28,20 +28,16 @@ export const toolbarGroups = [[{
|
|
28
28
|
type: "dropdown",
|
29
29
|
options: [{
|
30
30
|
text: "Normal",
|
31
|
-
value: "normal"
|
32
|
-
numVal: "400"
|
31
|
+
value: "normal"
|
33
32
|
}, {
|
34
33
|
text: "Bold",
|
35
|
-
value: "bold"
|
36
|
-
numVal: "700"
|
34
|
+
value: "bold"
|
37
35
|
}, {
|
38
36
|
text: "Bolder",
|
39
|
-
value: "bolder"
|
40
|
-
numVal: "700"
|
37
|
+
value: "bolder"
|
41
38
|
}, {
|
42
39
|
text: "Lighter",
|
43
|
-
value: "lighter"
|
44
|
-
numVal: "100"
|
40
|
+
value: "lighter"
|
45
41
|
}],
|
46
42
|
icon: FormatBoldIcon,
|
47
43
|
width: "100px"
|
@@ -50,8 +46,7 @@ export const toolbarGroups = [[{
|
|
50
46
|
format: "bold",
|
51
47
|
type: "mark",
|
52
48
|
title: "Bold",
|
53
|
-
basic: true
|
54
|
-
themeEnabled: true
|
49
|
+
basic: true
|
55
50
|
}, {
|
56
51
|
id: 5,
|
57
52
|
format: "underline",
|
@@ -62,8 +57,7 @@ export const toolbarGroups = [[{
|
|
62
57
|
format: "italic",
|
63
58
|
type: "mark",
|
64
59
|
title: "Italic",
|
65
|
-
basic: true
|
66
|
-
themeEnabled: true
|
60
|
+
basic: true
|
67
61
|
}, {
|
68
62
|
id: 6,
|
69
63
|
format: "strikethrough",
|
@@ -107,42 +101,6 @@ export const toolbarGroups = [[{
|
|
107
101
|
type: "block",
|
108
102
|
title: "H3",
|
109
103
|
group: "typography"
|
110
|
-
}, {
|
111
|
-
id: 39,
|
112
|
-
format: "headingFour",
|
113
|
-
type: "block",
|
114
|
-
title: "H4",
|
115
|
-
group: "typography"
|
116
|
-
}, {
|
117
|
-
id: 40,
|
118
|
-
format: "headingFive",
|
119
|
-
type: "block",
|
120
|
-
title: "H5",
|
121
|
-
group: "typography"
|
122
|
-
}, {
|
123
|
-
id: 41,
|
124
|
-
format: "headingSix",
|
125
|
-
type: "block",
|
126
|
-
title: "H6",
|
127
|
-
group: "typography"
|
128
|
-
}, {
|
129
|
-
id: 42,
|
130
|
-
format: "paragraphOne",
|
131
|
-
type: "block",
|
132
|
-
title: "Paragraph 1",
|
133
|
-
group: "typography"
|
134
|
-
}, {
|
135
|
-
id: 43,
|
136
|
-
format: "paragraphTwo",
|
137
|
-
type: "block",
|
138
|
-
title: "Paragraph 2",
|
139
|
-
group: "typography"
|
140
|
-
}, {
|
141
|
-
id: 44,
|
142
|
-
format: "paragraphThree",
|
143
|
-
type: "block",
|
144
|
-
title: "Paragraph 3",
|
145
|
-
group: "typography"
|
146
104
|
}, {
|
147
105
|
id: 14,
|
148
106
|
format: "doublequote",
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import React, { useMemo, useState } from "react";
|
2
2
|
import { Grid, Button, Popover } from "@mui/material";
|
3
|
+
import ColorPickerTool from "react-gcolor-picker";
|
3
4
|
import { colors } from "../Elements/Color Picker/defaultColors";
|
4
5
|
import SwipeableDrawerComponent from "./SwipeableDrawer";
|
5
|
-
import CustomColorPicker from "./CustomColorPicker";
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
7
7
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
8
8
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
@@ -12,10 +12,7 @@ const ColorPickerToolComponent = ({
|
|
12
12
|
onSave = () => {},
|
13
13
|
recentColors = [],
|
14
14
|
hideGradient,
|
15
|
-
handleClose
|
16
|
-
closeDrawer,
|
17
|
-
hideThemeColors,
|
18
|
-
disableEditTheme
|
15
|
+
handleClose
|
19
16
|
}) => {
|
20
17
|
const [color, setColor] = useState(value);
|
21
18
|
const handleSave = () => {
|
@@ -36,15 +33,11 @@ const ColorPickerToolComponent = ({
|
|
36
33
|
item: true,
|
37
34
|
xs: 12,
|
38
35
|
children: [/*#__PURE__*/_jsx("div", {
|
39
|
-
children: /*#__PURE__*/_jsx(
|
36
|
+
children: /*#__PURE__*/_jsx(ColorPickerTool, {
|
40
37
|
gradient: hideGradient ? false : true,
|
41
|
-
|
38
|
+
value: color,
|
42
39
|
onChange: handleColorChange,
|
43
|
-
|
44
|
-
defaultColors: initialColors,
|
45
|
-
closeDrawer: closeDrawer,
|
46
|
-
hideThemeColors: hideThemeColors,
|
47
|
-
disableEditTheme: disableEditTheme
|
40
|
+
defaultColors: initialColors
|
48
41
|
})
|
49
42
|
}), /*#__PURE__*/_jsxs("div", {
|
50
43
|
style: {
|
@@ -55,9 +48,6 @@ const ColorPickerToolComponent = ({
|
|
55
48
|
children: [/*#__PURE__*/_jsx(Button, {
|
56
49
|
onClick: handleClose,
|
57
50
|
className: "secondaryBtn",
|
58
|
-
style: {
|
59
|
-
background: "none"
|
60
|
-
},
|
61
51
|
children: "Cancel"
|
62
52
|
}), /*#__PURE__*/_jsx(Button, {
|
63
53
|
onClick: handleSave,
|
@@ -74,11 +64,7 @@ const ColorPickerButton = props => {
|
|
74
64
|
defaultColors = [],
|
75
65
|
classes = {},
|
76
66
|
recentColors = [],
|
77
|
-
hideGradient
|
78
|
-
children,
|
79
|
-
handleClose: closeDrawer,
|
80
|
-
hideThemeColors,
|
81
|
-
disableEditTheme
|
67
|
+
hideGradient
|
82
68
|
} = props;
|
83
69
|
const [anchorEl, setAnchorEl] = useState(null);
|
84
70
|
const open = Boolean(anchorEl);
|
@@ -90,13 +76,7 @@ const ColorPickerButton = props => {
|
|
90
76
|
setAnchorEl(null);
|
91
77
|
};
|
92
78
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
93
|
-
children: [
|
94
|
-
onClick: handleColorPicker,
|
95
|
-
style: {
|
96
|
-
cursor: "pointer"
|
97
|
-
},
|
98
|
-
children: children
|
99
|
-
}) : /*#__PURE__*/_jsx(Button, {
|
79
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
100
80
|
style: {
|
101
81
|
background: value,
|
102
82
|
height: "22px",
|
@@ -123,10 +103,7 @@ const ColorPickerButton = props => {
|
|
123
103
|
onSave: onSave,
|
124
104
|
recentColors: recentColors,
|
125
105
|
hideGradient: hideGradient,
|
126
|
-
handleClose: handleClose
|
127
|
-
closeDrawer: closeDrawer,
|
128
|
-
hideThemeColors: hideThemeColors,
|
129
|
-
disableEditTheme: disableEditTheme
|
106
|
+
handleClose: handleClose
|
130
107
|
})
|
131
108
|
})
|
132
109
|
}) : /*#__PURE__*/_jsx(Popover, {
|
@@ -152,10 +129,7 @@ const ColorPickerButton = props => {
|
|
152
129
|
onSave: onSave,
|
153
130
|
recentColors: recentColors,
|
154
131
|
hideGradient: hideGradient,
|
155
|
-
handleClose: handleClose
|
156
|
-
closeDrawer: closeDrawer,
|
157
|
-
hideThemeColors: hideThemeColors,
|
158
|
-
disableEditTheme: disableEditTheme
|
132
|
+
handleClose: handleClose
|
159
133
|
})
|
160
134
|
})
|
161
135
|
})]
|
@@ -7,7 +7,7 @@ import { useEditorContext } from "../../hooks/useMouseMove";
|
|
7
7
|
import { Transforms } from "slate";
|
8
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
9
9
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
10
|
-
const DRAGGABLE_TYPES = ["paragraph", "headingOne", "headingTwo", "headingThree", "
|
10
|
+
const DRAGGABLE_TYPES = ["paragraph", "headingOne", "headingTwo", "headingThree", "grid"];
|
11
11
|
const DragHandleStyle = fromPopper => {
|
12
12
|
const handleDragStyle = fromPopper ? {
|
13
13
|
position: "absolute",
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import React, { useEffect } from "react";
|
2
2
|
import { useDraggable } from "@dnd-kit/core";
|
3
3
|
import { Box } from "@mui/material";
|
4
|
+
import DragIndicatorIcon from "@mui/icons-material/DragIndicator";
|
4
5
|
import { SectionDragIcon } from "../iconListV2";
|
5
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
6
7
|
const Draggable = props => {
|
@@ -1,3 +1,11 @@
|
|
1
|
-
const
|
2
|
-
|
3
|
-
|
1
|
+
export const defaultFonts = [
|
2
|
+
// "EB Garamond",
|
3
|
+
"Anton", "DM Serif Text", "Libre Baskerville", "Montserrat", "Open Sans", "Public Sans", "Raleway", "Space Mono", "Great Vibes", "Zeyada", "Allura", "Pinyon Script", "Dancing Script", "Gaegu", "Kite One", "Merriweather"];
|
4
|
+
export const otherFonts = ["PoppinsRegular", "PoppinsBold", "Monaco", "Qwitcher Grypen", "Bulgarian Garamond", "Redacted Script", "Herr Von Muellerhoff", "Dawning of a New Day", "Coming Soon", "Engagement", "Ingrid Darling", "La Belle Aurore", "Mea Culpa", "The Girl Next Door", "Helvetica", "Georgia", "Times New Roman", "Courier New", "Impact"];
|
5
|
+
export const googleFontList = ["Roboto", "Noto Sans JP", "Poppins", "Lato", "Inter", "Roboto Condensed", "Roboto Mono", "Oswald", "Noto Sans", "Nunito", "Nunito Sans", "Ubuntu", "Rubik", "Playfair Display", "Noto Sans KR", "Roboto Slab", "PT Sans", "Kanit", "Work Sans", "Lora", "DM Sans", "Mulish", "Quicksand", "Fira Sans", "Noto Sans TC", "Inconsolata", "Barlow", "Manrope", "IBM Plex Sans", "PT Serif", "Karla", "Titillium Web", "Heebo", "Noto Serif", "Nanum Gothic", "Noto Color Emoji", "Agdasima", "Bebas Neue", "Libre Franklin", "Mukta", "Outfit", "Josefin Sans", "Source Code Pro", "Jost", "Space Grotesk", "Hind Siliguri", "Arimo", "Cabin", "Barlow Condensed", "Dosis", "Fira Sans Condensed", "Bitter", "Archivo", "Figtree", "Noto Serif JP", "PT Sans Narrow", "Abel", "Noto Sans SC",
|
6
|
+
// "Source Sans 3",
|
7
|
+
"Hind",
|
8
|
+
// "Exo 2",
|
9
|
+
"Teko", "Oxygen", "Cairo", "Crimson Text", "Plus Jakarta Sans", "Overpass", "Pacifico", "Prompt", "Red Hat Display", "Varela Round", "Cormorant Garamond", "Assistant", "Comfortaa", "Lexend", "Signika Negative",
|
10
|
+
// "M PLUS Rounded 1c",
|
11
|
+
"Fjalla One", "Caveat", "IBM Plex Mono", "Arvo", "Lobster", "Schibsted Grotesk", "Chakra Petch", "Maven Pro", "Sora", "Kalam", "Onest", "Space Grotesk", "Outfit", 'Titillium Web', ...defaultFonts];
|
@@ -1,11 +1,7 @@
|
|
1
|
-
import { useEffect
|
1
|
+
import { useEffect } from "react";
|
2
2
|
import WebFont from "webfontloader";
|
3
3
|
import { useEditorContext } from "../../hooks/useMouseMove";
|
4
|
-
import { googleFontList } from "./FontList";
|
5
|
-
import CircularProgress from "@mui/material/CircularProgress";
|
6
|
-
import Box from "@mui/material/Box";
|
7
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
8
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
4
|
+
import { defaultFonts, googleFontList, otherFonts } from "./FontList";
|
9
5
|
const FontLoader = props => {
|
10
6
|
const {
|
11
7
|
otherProps,
|
@@ -14,72 +10,65 @@ const FontLoader = props => {
|
|
14
10
|
const {
|
15
11
|
setFontFamilies
|
16
12
|
} = useEditorContext();
|
17
|
-
const [loading, setLoading] = useState(true);
|
18
13
|
const loadFontsInBatches = (families, batchSize = 5, maxRetries = 3) => {
|
19
14
|
let currentIndex = 0;
|
20
15
|
let retryCount = 0;
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
16
|
+
function loadNextBatch() {
|
17
|
+
if (currentIndex >= families?.length) {
|
18
|
+
// console.log("All fonts have been loaded");
|
19
|
+
return;
|
20
|
+
}
|
21
|
+
const batch = families?.slice(currentIndex, currentIndex + batchSize);
|
22
|
+
const batchWithWeights = batch.map(font => `${font}:300,400,600,700`);
|
23
|
+
WebFont.load({
|
24
|
+
google: {
|
25
|
+
families: [...batchWithWeights]
|
26
|
+
},
|
27
|
+
classes: false,
|
28
|
+
timeout: 2000,
|
29
|
+
active: () => {
|
30
|
+
// console.log(`Fonts loaded successfully: ${batch}`);
|
31
|
+
currentIndex += batchSize;
|
32
|
+
retryCount = 0; // Reset retry count for the next batch
|
33
|
+
loadNextBatch();
|
34
|
+
},
|
35
|
+
inactive: () => {
|
36
|
+
// console.log(`Font loading failed for: ${batch}`);
|
37
|
+
|
38
|
+
if (retryCount < maxRetries) {
|
39
|
+
retryCount++;
|
40
|
+
// console.log(`Retrying batch (${retryCount}/${maxRetries})...`);
|
41
|
+
// Retry loading the same batch
|
42
|
+
loadNextBatch();
|
43
|
+
} else {
|
44
|
+
// console.log(
|
45
|
+
// `Max retries reached for batch: ${batch}. Moving to the next batch.`
|
46
|
+
// );
|
39
47
|
currentIndex += batchSize;
|
40
48
|
retryCount = 0; // Reset retry count for the next batch
|
41
49
|
loadNextBatch();
|
42
|
-
},
|
43
|
-
inactive: () => {
|
44
|
-
// console.log(`Font loading failed for: ${batch}`);
|
45
|
-
if (retryCount < maxRetries) {
|
46
|
-
retryCount++;
|
47
|
-
// console.log(`Retrying batch (${retryCount}/${maxRetries})...`);
|
48
|
-
// Retry loading the same batch
|
49
|
-
loadNextBatch();
|
50
|
-
} else {
|
51
|
-
// console.log(
|
52
|
-
// `Max retries reached for batch: ${batch}. Moving to the next batch.`
|
53
|
-
// );
|
54
|
-
currentIndex += batchSize;
|
55
|
-
retryCount = 0;
|
56
|
-
loadNextBatch();
|
57
|
-
}
|
58
50
|
}
|
59
|
-
}
|
60
|
-
}
|
61
|
-
|
62
|
-
}
|
63
|
-
};
|
51
|
+
}
|
52
|
+
});
|
53
|
+
}
|
64
54
|
loadNextBatch();
|
65
55
|
};
|
66
56
|
useEffect(() => {
|
67
|
-
let families = [...
|
57
|
+
let families = [...otherFonts, ...defaultFonts];
|
68
58
|
if (!readOnly) {
|
69
59
|
otherProps?.services("listGoogleFont", []).then(data => {
|
70
|
-
families = [...(data?.data || [])];
|
60
|
+
families = [...families, ...(data?.data || [])];
|
61
|
+
const filteredfamilies = families?.filter(font => !font?.includes("Material"));
|
71
62
|
setFontFamilies({
|
72
63
|
id: 1,
|
73
64
|
format: "fontFamily",
|
74
65
|
type: "fontfamilydropdown",
|
75
|
-
options:
|
66
|
+
options: filteredfamilies || []
|
76
67
|
});
|
77
68
|
loadFontsInBatches(families);
|
78
69
|
}).catch(err => {
|
79
70
|
// console.log(err);
|
80
|
-
setLoading(false);
|
81
71
|
});
|
82
|
-
// setLoading(true);
|
83
72
|
} else {
|
84
73
|
function correctFontArray(fontString) {
|
85
74
|
let fontsArray = fontString.split(",");
|
@@ -99,32 +88,11 @@ const FontLoader = props => {
|
|
99
88
|
let families = Array.from(fontSet);
|
100
89
|
families = correctFontArray(families.join(", "));
|
101
90
|
families = families?.map(font => font?.replace(/\"/g, ""));
|
102
|
-
families = families?.map(font => font?.replace(", sans-serif", ""));
|
91
|
+
families = families?.map(font => font?.replace(", sans-serif", "")); //This is temporary fix for patch
|
103
92
|
families = families.filter(font => googleFontList.includes(font));
|
104
93
|
loadFontsInBatches(families);
|
105
94
|
}
|
106
|
-
|
107
|
-
// Set timeout to hide loader after 5 seconds
|
108
|
-
const timeoutId = setTimeout(() => {
|
109
|
-
setLoading(false);
|
110
|
-
}, 5000);
|
111
|
-
return () => clearTimeout(timeoutId);
|
112
95
|
}, []);
|
113
|
-
return
|
114
|
-
children: loading ? /*#__PURE__*/_jsx(Box, {
|
115
|
-
sx: {
|
116
|
-
position: "absolute",
|
117
|
-
top: 0,
|
118
|
-
left: 0,
|
119
|
-
right: 0,
|
120
|
-
bottom: 0,
|
121
|
-
zIndex: 99999,
|
122
|
-
display: "flex",
|
123
|
-
justifyContent: "center",
|
124
|
-
alignItems: "center"
|
125
|
-
},
|
126
|
-
children: /*#__PURE__*/_jsx(CircularProgress, {})
|
127
|
-
}) : null
|
128
|
-
});
|
96
|
+
return null;
|
129
97
|
};
|
130
98
|
export default FontLoader;
|