@flozy/editor 11.2.1 → 11.2.3
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 +7 -7
- package/dist/Editor/CommonEditor.js +24 -86
- package/dist/Editor/DialogWrapper.js +25 -31
- package/dist/Editor/Editor.css +4 -37
- package/dist/Editor/Elements/AI/PopoverAIInput.js +3 -11
- package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
- package/dist/Editor/Elements/Attachments/Attachments.js +11 -154
- package/dist/Editor/Elements/Attachments/AttachmentsButton.js +3 -8
- package/dist/Editor/Elements/Button/EditorButton.js +44 -32
- package/dist/Editor/Elements/Color Picker/ColorButtons.js +14 -61
- package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
- package/dist/Editor/Elements/Color Picker/ColorPicker.js +7 -10
- package/dist/Editor/Elements/Color Picker/Styles.js +13 -15
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +55 -134
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/SelectV1.js +8 -7
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/PersonType.js +3 -8
- package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +1 -1
- package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +1 -1
- package/dist/Editor/Elements/Embed/Embed.js +43 -37
- package/dist/Editor/Elements/Embed/Image.js +22 -242
- package/dist/Editor/Elements/Embed/Video.js +32 -277
- package/dist/Editor/Elements/EmbedScript/EmbedScriptPopup.js +6 -9
- package/dist/Editor/Elements/EmbedScript/styles.js +1 -17
- package/dist/Editor/Elements/Form/FormField.js +1 -1
- package/dist/Editor/Elements/Form/Workflow/Styles.js +22 -25
- package/dist/Editor/Elements/Form/Workflow/constant.js +1 -25
- package/dist/Editor/Elements/FreeGrid/FreeGrid.js +76 -37
- package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +5 -9
- package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +1 -3
- package/dist/Editor/Elements/FreeGrid/styles.js +0 -15
- package/dist/Editor/Elements/Grid/GridItem.js +1 -1
- package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +1 -2
- package/dist/Editor/Elements/Table/Table.js +1 -2
- package/dist/Editor/Elements/Table/TableCell.js +3 -10
- package/dist/Editor/Elements/Title/title.js +5 -4
- package/dist/Editor/Elements/TopBanner/TopBanner.js +2 -4
- package/dist/Editor/Elements/TopBanner/TopBannerButton.js +3 -5
- package/dist/Editor/Styles/EditorStyles.js +5 -19
- 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 +29 -33
- package/dist/Editor/Toolbar/Mini/MiniToolbar.js +1 -2
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +1 -3
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +23 -25
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +42 -167
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +5 -15
- package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +1 -2
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +7 -65
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +12 -66
- package/dist/Editor/Toolbar/PopupTool/index.js +4 -6
- package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
- package/dist/Editor/common/ColorPickerButton.js +19 -38
- package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
- package/dist/Editor/common/FontLoader/FontLoader.js +0 -1
- package/dist/Editor/common/Icon.js +0 -28
- package/dist/Editor/common/ImageSelector/ImageSelector.js +7 -45
- package/dist/Editor/common/ImageSelector/Options/Upload.js +11 -26
- package/dist/Editor/common/ImageSelector/Styles.js +9 -3
- 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 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +7 -20
- package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +0 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +7 -20
- package/dist/Editor/common/RnD/GuideLines/styles.js +1 -1
- package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +3 -6
- package/dist/Editor/common/RnD/Utils/gridDropItem.js +11 -28
- package/dist/Editor/common/RnD/Utils/index.js +1 -3
- package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +63 -52
- package/dist/Editor/common/RnD/VirtualElement/helper.js +68 -248
- package/dist/Editor/common/RnD/VirtualElement/styles.js +0 -22
- package/dist/Editor/common/RnD/index.js +14 -61
- package/dist/Editor/common/Shorthands/elements.js +3 -55
- package/dist/Editor/common/StyleBuilder/buttonStyle.js +15 -5
- package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +0 -4
- package/dist/Editor/common/StyleBuilder/fieldStyle.js +0 -1
- package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +3 -13
- 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/color.js +10 -36
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +4 -13
- package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +0 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +4 -16
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +7 -15
- package/dist/Editor/common/StyleBuilder/formStyle.js +13 -19
- package/dist/Editor/common/StyleBuilder/index.js +19 -10
- package/dist/Editor/common/Uploader.js +17 -118
- package/dist/Editor/common/iconslist.js +0 -21
- package/dist/Editor/commonStyle.js +53 -111
- package/dist/Editor/helper/index.js +1 -4
- package/dist/Editor/helper/theme.js +2 -203
- package/dist/Editor/hooks/useMouseMove.js +3 -12
- package/dist/Editor/hooks/useTable.js +1 -62
- package/dist/Editor/plugins/withEmbeds.js +1 -1
- package/dist/Editor/plugins/withHTML.js +3 -56
- package/dist/Editor/plugins/withTable.js +1 -1
- package/dist/Editor/service/fileupload.js +0 -70
- package/dist/Editor/theme/ThemeList.js +173 -50
- package/dist/Editor/utils/SlateUtilityFunctions.js +40 -165
- package/dist/Editor/utils/accordion.js +1 -1
- package/dist/Editor/utils/button.js +17 -1
- package/dist/Editor/utils/font.js +37 -40
- package/dist/Editor/utils/formfield.js +2 -2
- package/dist/Editor/utils/helper.js +3 -101
- package/dist/Editor/utils/insertAppHeader.js +4 -8
- package/package.json +1 -1
- package/dist/Editor/Elements/Attachments/AttachmentStyles.js +0 -16
- package/dist/Editor/Elements/FreeGrid/helper.js +0 -194
- package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -439
- package/dist/Editor/assets/svg/BackIcon.js +0 -18
- package/dist/Editor/assets/svg/ThemeIcons.js +0 -293
- package/dist/Editor/common/CustomColorPicker/index.js +0 -130
- package/dist/Editor/common/CustomColorPicker/style.js +0 -53
- package/dist/Editor/common/CustomDialog2/index.js +0 -94
- package/dist/Editor/common/CustomDialog2/style.js +0 -67
- package/dist/Editor/common/CustomSelect.js +0 -43
- package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
- package/dist/Editor/common/UploaderWithProgress.js +0 -183
- package/dist/Editor/hooks/useEditorTheme.js +0 -153
- package/dist/Editor/hooks/useThemeValues.js +0 -63
- package/dist/Editor/theme/index.js +0 -149
- package/dist/Editor/themeSettings/ActiveTheme.js +0 -82
- package/dist/Editor/themeSettings/buttons/index.js +0 -300
- package/dist/Editor/themeSettings/buttons/style.js +0 -23
- package/dist/Editor/themeSettings/colorTheme/index.js +0 -310
- package/dist/Editor/themeSettings/colorTheme/style.js +0 -81
- package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
- package/dist/Editor/themeSettings/fonts/index.js +0 -240
- package/dist/Editor/themeSettings/fonts/style.js +0 -62
- package/dist/Editor/themeSettings/icons.js +0 -60
- package/dist/Editor/themeSettings/index.js +0 -380
- package/dist/Editor/themeSettings/style.js +0 -299
- package/dist/Editor/themeSettingsAI/icons.js +0 -96
- package/dist/Editor/themeSettingsAI/index.js +0 -355
- package/dist/Editor/themeSettingsAI/saveTheme.js +0 -202
- package/dist/Editor/themeSettingsAI/style.js +0 -332
@@ -1,141 +1,33 @@
|
|
1
|
-
import React
|
2
|
-
import Box from
|
3
|
-
import Card from '@mui/material/Card';
|
4
|
-
import CardMedia from '@mui/material/CardMedia';
|
5
|
-
import CardContent from '@mui/material/CardContent';
|
6
|
-
import Typography from '@mui/material/Typography';
|
7
|
-
import CircularProgress from '@mui/material/CircularProgress';
|
8
|
-
import IconButton from '@mui/material/IconButton';
|
1
|
+
import React from "react";
|
2
|
+
import { Box, Card, CardMedia, CardContent, Typography } from "@mui/material";
|
9
3
|
import PictureAsPdfIcon from "@mui/icons-material/PictureAsPdf";
|
10
4
|
import TextSnippetIcon from "@mui/icons-material/TextSnippet";
|
11
|
-
import HighlightOffRoundedIcon from "@mui/icons-material/HighlightOffRounded";
|
12
|
-
import { Transforms } from "slate";
|
13
|
-
import { ReactEditor, useSlateStatic } from "slate-react";
|
14
5
|
import { formatDate } from "../../utils/helper";
|
15
6
|
import Icon from "../../common/Icon";
|
16
7
|
import { getEmbedURL } from "../../helper";
|
17
8
|
import Video from "../Embed/Video";
|
18
|
-
import { formatFileSize } from "../../service/fileupload";
|
19
|
-
import { useEditorContext } from "../../hooks/useMouseMove";
|
20
|
-
import useAttachmentStyle from "./AttachmentStyles";
|
21
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
22
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
23
10
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
24
11
|
const Attachments = props => {
|
25
12
|
const {
|
26
13
|
attributes,
|
27
14
|
element,
|
28
|
-
children
|
29
|
-
customProps
|
15
|
+
children
|
30
16
|
} = props;
|
31
17
|
const {
|
32
18
|
url,
|
33
19
|
type,
|
34
|
-
date
|
35
|
-
fileName,
|
36
|
-
isUploading,
|
37
|
-
file,
|
38
|
-
fileSize,
|
39
|
-
uniqueId
|
20
|
+
date
|
40
21
|
} = element;
|
41
|
-
const {
|
42
|
-
resumeUploadState,
|
43
|
-
services,
|
44
|
-
uploadFile,
|
45
|
-
uploadTerminator
|
46
|
-
} = customProps || {};
|
47
22
|
const {
|
48
23
|
isEmbed
|
49
24
|
} = getEmbedURL(element, true);
|
50
25
|
const getLastName = url?.split("/").pop();
|
51
|
-
const
|
52
|
-
const editor = useSlateStatic();
|
53
|
-
const {
|
54
|
-
theme
|
55
|
-
} = useEditorContext();
|
56
|
-
const classes = useAttachmentStyle(theme);
|
57
|
-
const path = ReactEditor.findPath(editor, element);
|
58
|
-
const [redirectURL, setRedirectURL] = useState(isUploading ? null : url);
|
59
|
-
const [uploadStatus, setUploadStatus] = useState({
|
60
|
-
isUploading: !!isUploading,
|
61
|
-
uploadPercentage: 0,
|
62
|
-
fileName: fileName || fileName2,
|
63
|
-
fileSize: fileSize
|
64
|
-
});
|
65
|
-
const xhrRef = useRef(null);
|
66
|
-
const cancelUpload = () => {
|
67
|
-
Transforms.removeNodes(editor, {
|
68
|
-
at: path
|
69
|
-
});
|
70
|
-
uploadTerminator(uniqueId, setUploadStatus);
|
71
|
-
};
|
72
|
-
const onSave = url => {
|
73
|
-
setRedirectURL(url);
|
74
|
-
Transforms.setNodes(editor, {
|
75
|
-
url: url,
|
76
|
-
isUploading: false
|
77
|
-
}, {
|
78
|
-
at: path
|
79
|
-
});
|
80
|
-
setUploadStatus({
|
81
|
-
isUploading: false,
|
82
|
-
uploadPercentage: 0,
|
83
|
-
fileName: null,
|
84
|
-
fileSize: null
|
85
|
-
});
|
86
|
-
};
|
87
|
-
const handleFileUpload = async () => {
|
88
|
-
if (!file) return;
|
89
|
-
try {
|
90
|
-
const id = !uniqueId ? crypto?.randomUUID() : uniqueId;
|
91
|
-
const result = await services("uploadFile", file);
|
92
|
-
const uploadUrl = result?.data?.[0];
|
93
|
-
const fileEntry = {
|
94
|
-
file: file,
|
95
|
-
xhrRef,
|
96
|
-
presidnedURL: uploadUrl,
|
97
|
-
status: "uploading"
|
98
|
-
};
|
99
|
-
uploadFile(id, fileEntry, setUploadStatus, onSave, "document");
|
100
|
-
Transforms.setNodes(editor, {
|
101
|
-
uniqueId: id,
|
102
|
-
isUploading: true
|
103
|
-
}, {
|
104
|
-
at: path
|
105
|
-
});
|
106
|
-
} catch (error) {
|
107
|
-
console.error("Upload failed:", error);
|
108
|
-
setUploadStatus(prev => ({
|
109
|
-
...prev,
|
110
|
-
isUploading: false,
|
111
|
-
uploadPercentage: 0
|
112
|
-
}));
|
113
|
-
}
|
114
|
-
};
|
115
|
-
const noUploadTracks = () => {
|
116
|
-
setUploadStatus({
|
117
|
-
isUploading: false,
|
118
|
-
uploadPercentage: 0,
|
119
|
-
fileName: null,
|
120
|
-
fileSize: null
|
121
|
-
});
|
122
|
-
setRedirectURL(null);
|
123
|
-
Transforms.removeNodes(editor, {
|
124
|
-
at: path
|
125
|
-
});
|
126
|
-
};
|
127
|
-
useEffect(() => {
|
128
|
-
if (uniqueId && isUploading) {
|
129
|
-
resumeUploadState(uniqueId, setUploadStatus, onSave, noUploadTracks, "document");
|
130
|
-
} else if (file && isUploading) {
|
131
|
-
handleFileUpload();
|
132
|
-
}
|
133
|
-
}, []);
|
26
|
+
const fileName = `${decodeURIComponent(getLastName)}`;
|
134
27
|
return !isEmbed ? /*#__PURE__*/_jsxs(Box, {
|
135
28
|
component: "div",
|
136
29
|
className: "attachment-wrpr-ev2",
|
137
30
|
...attributes,
|
138
|
-
sx: classes?.attachmentRoot,
|
139
31
|
contentEditable: false,
|
140
32
|
style: {
|
141
33
|
display: "block"
|
@@ -149,8 +41,7 @@ const Attachments = props => {
|
|
149
41
|
padding: "8px",
|
150
42
|
boxShadow: "none",
|
151
43
|
border: "1px solid #eae9e9",
|
152
|
-
backgroundColor: "#F7F7F7"
|
153
|
-
position: "relative"
|
44
|
+
backgroundColor: "#F7F7F7"
|
154
45
|
},
|
155
46
|
children: [/*#__PURE__*/_jsx(CardMedia, {
|
156
47
|
sx: {
|
@@ -176,7 +67,7 @@ const Attachments = props => {
|
|
176
67
|
})
|
177
68
|
}), /*#__PURE__*/_jsxs(CardContent, {
|
178
69
|
component: "a",
|
179
|
-
href:
|
70
|
+
href: url,
|
180
71
|
target: "_blank",
|
181
72
|
style: {
|
182
73
|
display: "flex",
|
@@ -185,9 +76,7 @@ const Attachments = props => {
|
|
185
76
|
padding: "8px",
|
186
77
|
textDecoration: "none",
|
187
78
|
flexDirection: "column",
|
188
|
-
color: "#0F172A"
|
189
|
-
flexGrow: uploadStatus?.isUploading && 1,
|
190
|
-
width: "80%"
|
79
|
+
color: "#0F172A"
|
191
80
|
},
|
192
81
|
children: [/*#__PURE__*/_jsx(Typography, {
|
193
82
|
style: {
|
@@ -196,48 +85,16 @@ const Attachments = props => {
|
|
196
85
|
fontSize: "14px"
|
197
86
|
},
|
198
87
|
component: "div",
|
199
|
-
|
200
|
-
|
201
|
-
}), /*#__PURE__*/_jsxs(Typography, {
|
88
|
+
children: fileName
|
89
|
+
}), /*#__PURE__*/_jsx(Typography, {
|
202
90
|
style: {
|
203
91
|
fontWeight: "normal",
|
204
92
|
color: "#64748b",
|
205
93
|
fontSize: "11px"
|
206
94
|
},
|
207
95
|
component: "div",
|
208
|
-
|
209
|
-
children: [uploadStatus?.isUploading && /*#__PURE__*/_jsxs(_Fragment, {
|
210
|
-
children: [/*#__PURE__*/_jsx(Typography, {
|
211
|
-
sx: {
|
212
|
-
fontSize: 12,
|
213
|
-
color: "#64748b"
|
214
|
-
},
|
215
|
-
children: `${formatFileSize(fileSize)}`
|
216
|
-
}), /*#__PURE__*/_jsx(CircularProgress, {
|
217
|
-
variant: "determinate",
|
218
|
-
value: uploadStatus?.uploadPercentage ?? 0,
|
219
|
-
size: 20,
|
220
|
-
thickness: 5
|
221
|
-
}), /*#__PURE__*/_jsx(Typography, {
|
222
|
-
sx: {
|
223
|
-
fontSize: 12,
|
224
|
-
color: "#64748b"
|
225
|
-
},
|
226
|
-
children: `${uploadStatus?.uploadPercentage?.toFixed(0) ?? 0}%`
|
227
|
-
})]
|
228
|
-
}), !uploadStatus?.isUploading && formatDate(date)]
|
96
|
+
children: formatDate(date)
|
229
97
|
})]
|
230
|
-
}), uploadStatus?.isUploading && /*#__PURE__*/_jsx(IconButton, {
|
231
|
-
onClick: cancelUpload,
|
232
|
-
sx: {
|
233
|
-
position: "absolute",
|
234
|
-
right: 4,
|
235
|
-
top: 4
|
236
|
-
},
|
237
|
-
"aria-label": "Cancel upload",
|
238
|
-
size: "small",
|
239
|
-
className: "cancelBtn",
|
240
|
-
children: /*#__PURE__*/_jsx(HighlightOffRoundedIcon, {})
|
241
98
|
})]
|
242
99
|
}), /*#__PURE__*/_jsx("span", {
|
243
100
|
contentEditable: false,
|
@@ -4,7 +4,6 @@ import ToolbarIcon from "../../common/ToolbarIcon";
|
|
4
4
|
import Icon from "../../common/Icon";
|
5
5
|
import ImageSelector from "../../common/ImageSelector/ImageSelector";
|
6
6
|
import { insertAttachments } from "../../utils/attachments";
|
7
|
-
import { insertUploadStatusNodeForAttachment } from "../../service/fileupload";
|
8
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
9
8
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
10
9
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
@@ -22,13 +21,9 @@ const AttachmentsButton = props => {
|
|
22
21
|
SetOpen(true);
|
23
22
|
};
|
24
23
|
const onSelectImage = url => {
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
});
|
29
|
-
} else {
|
30
|
-
insertUploadStatusNodeForAttachment(editor, url?.file);
|
31
|
-
}
|
24
|
+
insertAttachments(editor, {
|
25
|
+
url
|
26
|
+
});
|
32
27
|
handleClose();
|
33
28
|
};
|
34
29
|
const handleClose = () => {
|
@@ -9,8 +9,6 @@ import { WorkflowIcon } from "../../common/iconslist";
|
|
9
9
|
import { getTRBLBreakPoints, getBreakPointsValue, groupByBreakpoint } from "../../helper/theme";
|
10
10
|
import { handleLinkType, windowVar } from "../../utils/helper";
|
11
11
|
import LinkSettings from "../../common/LinkSettings";
|
12
|
-
import { useEditorTheme } from "../../hooks/useEditorTheme";
|
13
|
-
import { getTheme } from "../../theme";
|
14
12
|
import Icon from "../../common/Icon";
|
15
13
|
import { useEditorContext } from "../../hooks/useMouseMove";
|
16
14
|
import useCommonStyle from "../../commonStyle";
|
@@ -37,17 +35,16 @@ const EditorButton = props => {
|
|
37
35
|
} = customProps;
|
38
36
|
const editor = useSlateStatic();
|
39
37
|
const path = ReactEditor.findPath(editor, element);
|
38
|
+
|
39
|
+
// Helper function to detect if a color value is a gradient
|
40
|
+
const isGradientColor = color => {
|
41
|
+
return color && typeof color === "string" && color.includes("gradient");
|
42
|
+
};
|
40
43
|
const [edit, setEdit] = useState(false);
|
41
44
|
const [openNav, setOpenNav] = useState(false);
|
42
45
|
const [openMoreOptions, setOpenMoreOptions] = useState(false);
|
43
46
|
const [, setIconLoaded] = useState(false);
|
44
47
|
const classes = useCommonStyle(appTheme);
|
45
|
-
const {
|
46
|
-
theme: selectedTheme
|
47
|
-
} = useEditorTheme();
|
48
|
-
const {
|
49
|
-
buttonTheme
|
50
|
-
} = getTheme(selectedTheme);
|
51
48
|
const {
|
52
49
|
label,
|
53
50
|
bgColor,
|
@@ -61,8 +58,8 @@ const EditorButton = props => {
|
|
61
58
|
fontFamily,
|
62
59
|
textColorHover,
|
63
60
|
bgColorHover,
|
64
|
-
// buttonIcon,
|
65
61
|
borderColorHover,
|
62
|
+
buttonIcon,
|
66
63
|
iconPosition = "start",
|
67
64
|
borderStyle,
|
68
65
|
borderWidth,
|
@@ -83,8 +80,10 @@ const EditorButton = props => {
|
|
83
80
|
};
|
84
81
|
const isTrigger = linkType === "nextTrigger" || linkType === "prevTrigger";
|
85
82
|
const refURl = isTrigger ? buttonLink?.url : url;
|
86
|
-
const buttonIcon = element?.buttonIcon || buttonTheme?.buttonIcon;
|
87
83
|
const BtnIcon = buttonIcon ? buttonIcon : null;
|
84
|
+
|
85
|
+
// Check if borderColor is a gradient
|
86
|
+
const isBorderGradient = isGradientColor(borderColor);
|
88
87
|
windowVar.lastButtonProps = element;
|
89
88
|
const handleTrigger = async () => {
|
90
89
|
if (!readOnly) {
|
@@ -210,6 +209,32 @@ const EditorButton = props => {
|
|
210
209
|
...getTRBLBreakPoints(bannerSpacing)
|
211
210
|
}
|
212
211
|
}, theme);
|
212
|
+
const btnSp2 = groupByBreakpoint({
|
213
|
+
borderRadius: {
|
214
|
+
...getBreakPointsValue(borderRadius || {}, null, "overrideBorderRadius", true)
|
215
|
+
}
|
216
|
+
}, theme);
|
217
|
+
const buttonBoxSx = {
|
218
|
+
position: "relative",
|
219
|
+
display: "inline-block",
|
220
|
+
...btnSp2,
|
221
|
+
...(isBorderGradient ? {
|
222
|
+
padding: borderWidth !== undefined ? borderWidth : borderColor ? "1px" : "0px",
|
223
|
+
background: borderColor,
|
224
|
+
backgroundClip: "padding-box, border-box",
|
225
|
+
boxSizing: "border-box",
|
226
|
+
"&:hover": {
|
227
|
+
background: borderColorHover || borderColor
|
228
|
+
}
|
229
|
+
} : {
|
230
|
+
borderWidth: borderWidth !== undefined ? borderWidth : borderColor ? "1px" : "0px",
|
231
|
+
borderStyle: borderStyle || "solid",
|
232
|
+
borderColor: borderColor || "transparent",
|
233
|
+
"&:hover": {
|
234
|
+
borderColor: borderColorHover || borderColor || "transparent"
|
235
|
+
}
|
236
|
+
})
|
237
|
+
};
|
213
238
|
const pSp = groupByBreakpoint({
|
214
239
|
display: {
|
215
240
|
xs: xsHidden ? "none" : "inline-block",
|
@@ -268,20 +293,19 @@ const EditorButton = props => {
|
|
268
293
|
},
|
269
294
|
position: "relative"
|
270
295
|
},
|
271
|
-
children: /*#__PURE__*/_jsxs(
|
272
|
-
|
273
|
-
|
274
|
-
display: "inline-block"
|
275
|
-
},
|
296
|
+
children: /*#__PURE__*/_jsxs(Box, {
|
297
|
+
component: "span",
|
298
|
+
sx: buttonBoxSx,
|
276
299
|
children: [/*#__PURE__*/_jsxs(Box, {
|
277
|
-
className: `btn textAlign-${tAlign} button theme-element`,
|
278
300
|
ref: buttonRef,
|
301
|
+
className: `btn textAlign-${tAlign}`,
|
279
302
|
sx: {
|
280
303
|
textDecoration: "none",
|
281
|
-
|
282
|
-
borderWidth: borderWidth !== undefined ? borderWidth : borderColor || borderColorHover ? "1px" : "0px",
|
304
|
+
background: bgColor || "rgb(30, 75, 122)",
|
283
305
|
...btnSp,
|
284
|
-
|
306
|
+
color: `${textColor || "#FFFFFF"}`,
|
307
|
+
fontSize: textSize || "inherit",
|
308
|
+
fontFamily: fontFamily || "PoppinsRegular",
|
285
309
|
display: "inline-flex",
|
286
310
|
alignItems: "center",
|
287
311
|
position: "relative",
|
@@ -292,27 +316,15 @@ const EditorButton = props => {
|
|
292
316
|
"&:hover": {
|
293
317
|
color: `${textColorHover || textColor || "#FFFFFF"}`,
|
294
318
|
background: bgColorHover || bgColor || "rgb(30, 75, 122)",
|
295
|
-
borderColor: borderColorHover || borderColor || "transparent",
|
296
319
|
"& .element-toolbar": {
|
297
320
|
display: "flex"
|
298
321
|
}
|
299
|
-
},
|
300
|
-
color: textColor ? `${textColor} !important` : "#FFFFFF",
|
301
|
-
fontSize: textSize ? `${textSize}px !important` : "inherit",
|
302
|
-
fontFamily: fontFamily ? `${fontFamily} !important` : "PoppinsRegular",
|
303
|
-
background: `${bgColor} !important`,
|
304
|
-
borderColor: `${borderColor} !important`,
|
305
|
-
borderRadius: {
|
306
|
-
...getBreakPointsValue(borderRadius || buttonTheme?.borderRadius || {}, null, "overrideBorderRadius", true)
|
307
|
-
},
|
308
|
-
padding: {
|
309
|
-
...getTRBLBreakPoints(bannerSpacing || buttonTheme?.bannerSpacing || {})
|
310
322
|
}
|
311
323
|
},
|
312
324
|
...buttonProps,
|
313
325
|
children: [BtnIcon && iconPosition === "start" && /*#__PURE__*/_jsx(MUIIcon, {
|
314
326
|
...muiIconProps
|
315
|
-
}), label || translation("My Button"), BtnIcon && iconPosition === "end" && /*#__PURE__*/_jsx(MUIIcon, {
|
327
|
+
}), label || translation("My Button 12"), BtnIcon && iconPosition === "end" && /*#__PURE__*/_jsx(MUIIcon, {
|
316
328
|
...muiIconProps
|
317
329
|
})]
|
318
330
|
}), !readOnly && buttonRef?.current && /*#__PURE__*/_jsx(Popper, {
|
@@ -1,15 +1,11 @@
|
|
1
1
|
import React, { useState } from "react";
|
2
|
-
import { Box, IconButton, Popover
|
2
|
+
import { Box, IconButton, Popover } from "@mui/material";
|
3
3
|
import KeyboardArrowDownRoundedIcon from "@mui/icons-material/KeyboardArrowDownRounded";
|
4
4
|
import Button from "../../common/Button";
|
5
5
|
import { colors } from "./defaultColors";
|
6
6
|
import ColorPicker from "./colorPicker.svg";
|
7
|
-
import { useSlateStatic } from "slate-react";
|
8
|
-
import { Transforms } from "slate";
|
9
|
-
import { useEditorContext } from "../../hooks/useMouseMove";
|
10
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
11
8
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
12
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
13
9
|
let c = [];
|
14
10
|
const ColorChunks = (recentColors = []) => [...recentColors, ...colors].reduce((a, b, i) => {
|
15
11
|
if (i % 7 === 0) {
|
@@ -36,8 +32,8 @@ const SingleColorButton = ({
|
|
36
32
|
width: "100%",
|
37
33
|
display: "flex",
|
38
34
|
alignItems: "center",
|
39
|
-
padding: padding || "8px 0px"
|
40
|
-
|
35
|
+
padding: padding || "8px 0px",
|
36
|
+
justifyContent: "center"
|
41
37
|
},
|
42
38
|
children: [crs.map(m => /*#__PURE__*/_jsx(Button, {
|
43
39
|
onClick: handleSelect(m),
|
@@ -114,18 +110,12 @@ const ColorButtons = props => {
|
|
114
110
|
openColorTool,
|
115
111
|
onClose,
|
116
112
|
onColorPickerClick,
|
117
|
-
disableEditTheme,
|
118
113
|
defaultColors = []
|
119
114
|
} = props;
|
120
115
|
const [row1, ...restRows] = ColorChunks([]);
|
121
116
|
const [anchorEl, setAnchorEl] = useState(null);
|
122
117
|
const open = Boolean(anchorEl);
|
123
118
|
const firstRow = defaultColors?.length ? defaultColors : row1;
|
124
|
-
const theme = useTheme();
|
125
|
-
const editor = useSlateStatic();
|
126
|
-
const {
|
127
|
-
setOpenTheme
|
128
|
-
} = useEditorContext();
|
129
119
|
const handleMore = e => {
|
130
120
|
setAnchorEl(e.currentTarget);
|
131
121
|
};
|
@@ -138,7 +128,6 @@ const ColorButtons = props => {
|
|
138
128
|
const handleSelect = color => () => {
|
139
129
|
onSelect(color);
|
140
130
|
};
|
141
|
-
const colorVars = theme?.vars?.colors || {};
|
142
131
|
return /*#__PURE__*/_jsxs(Box, {
|
143
132
|
component: "span",
|
144
133
|
sx: classes.colorButtons,
|
@@ -155,7 +144,7 @@ const ColorButtons = props => {
|
|
155
144
|
activeColor: activeColor
|
156
145
|
}, `si_btn_row1_${m}_${i}`);
|
157
146
|
})
|
158
|
-
}), /*#__PURE__*/
|
147
|
+
}), /*#__PURE__*/_jsxs(Popover, {
|
159
148
|
open: open || openColorTool,
|
160
149
|
anchorEl: anchorEl || openColorTool,
|
161
150
|
onClose: handleClose,
|
@@ -169,40 +158,9 @@ const ColorButtons = props => {
|
|
169
158
|
},
|
170
159
|
sx: classes.colorPopper,
|
171
160
|
className: "colorPopper",
|
172
|
-
children: /*#__PURE__*/
|
161
|
+
children: [/*#__PURE__*/_jsx(Box, {
|
173
162
|
sx: classes.colorButtonsInner,
|
174
|
-
children:
|
175
|
-
children: [/*#__PURE__*/_jsxs(Box, {
|
176
|
-
component: "div",
|
177
|
-
className: "singleColorTitleWrapper",
|
178
|
-
children: [/*#__PURE__*/_jsx(Typography, {
|
179
|
-
variant: "subtitle2",
|
180
|
-
children: "Theme colours"
|
181
|
-
}), disableEditTheme ? null : /*#__PURE__*/_jsx("div", {
|
182
|
-
className: "editBtn",
|
183
|
-
onClick: () => {
|
184
|
-
Transforms.deselect(editor, {
|
185
|
-
at: editor.selection
|
186
|
-
});
|
187
|
-
handleClose();
|
188
|
-
setOpenTheme("editThemeColor");
|
189
|
-
},
|
190
|
-
children: "Edit"
|
191
|
-
})]
|
192
|
-
}), /*#__PURE__*/_jsx(SingleColorButton, {
|
193
|
-
crs: Object.values(colorVars),
|
194
|
-
handleSelect: handleSelect,
|
195
|
-
classes: classes,
|
196
|
-
activeColor: activeColor
|
197
|
-
})]
|
198
|
-
}) : null, /*#__PURE__*/_jsx(Box, {
|
199
|
-
component: "div",
|
200
|
-
className: "singleColorTitleWrapper",
|
201
|
-
children: /*#__PURE__*/_jsx(Typography, {
|
202
|
-
variant: "subtitle2",
|
203
|
-
children: "Custom colour"
|
204
|
-
})
|
205
|
-
}), restRows.map((m, i) => {
|
163
|
+
children: restRows.map((m, i) => {
|
206
164
|
return /*#__PURE__*/_jsx(SingleColorButton, {
|
207
165
|
id: `p2_${id}`,
|
208
166
|
crs: m,
|
@@ -211,19 +169,14 @@ const ColorButtons = props => {
|
|
211
169
|
classes: classes,
|
212
170
|
activeColor: activeColor
|
213
171
|
}, `si_btn_${m}_${i}`);
|
214
|
-
})
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
src: ColorPicker,
|
223
|
-
alt: "color wheel"
|
224
|
-
})
|
225
|
-
}) : null]
|
226
|
-
})
|
172
|
+
})
|
173
|
+
}), forMiniTool ? /*#__PURE__*/_jsx(IconButton, {
|
174
|
+
onClick: onColorPickerClick,
|
175
|
+
children: /*#__PURE__*/_jsx("img", {
|
176
|
+
src: ColorPicker,
|
177
|
+
alt: "color wheel"
|
178
|
+
})
|
179
|
+
}) : null]
|
227
180
|
})]
|
228
181
|
});
|
229
182
|
};
|
@@ -60,28 +60,4 @@
|
|
60
60
|
padding: 0 15px !important;
|
61
61
|
width: 60px !important;
|
62
62
|
flex-shrink: 0;
|
63
|
-
}
|
64
|
-
|
65
|
-
|
66
|
-
.singleColorTitleWrapper {
|
67
|
-
display: flex;
|
68
|
-
justify-content: space-between;
|
69
|
-
align-items: center;
|
70
|
-
padding: 10px;
|
71
|
-
width: 100%;
|
72
|
-
border-bottom: 1px solid #DCE4EC;
|
73
|
-
}
|
74
|
-
|
75
|
-
.singleColorTitleWrapper .MuiTypography-root {
|
76
|
-
font-weight: 600;
|
77
|
-
}
|
78
|
-
|
79
|
-
.singleColorTitleWrapper .editBtn {
|
80
|
-
text-transform: none;
|
81
|
-
color: #2563EB;
|
82
|
-
text-decoration: underline;
|
83
|
-
padding: 0px;
|
84
|
-
min-width: unset;
|
85
|
-
cursor: pointer;
|
86
|
-
font-size: 14px;
|
87
|
-
}
|
63
|
+
}
|
@@ -1,14 +1,13 @@
|
|
1
1
|
import React, { useState } from "react";
|
2
2
|
import { ReactEditor } from "slate-react";
|
3
|
-
import
|
3
|
+
import ColorPickerTool from "react-gcolor-picker";
|
4
|
+
import { IconButton, Tooltip, Box, Popover } from "@mui/material";
|
4
5
|
import { addMarkData, activeMark } from "../../utils/SlateUtilityFunctions";
|
5
6
|
import ColorButtons from "./ColorButtons";
|
6
7
|
import ColorPickerStyles from "./Styles";
|
7
8
|
import colorWheel from "./colorWheel.png";
|
8
9
|
import "./ColorPicker.css";
|
9
10
|
import { useEditorContext } from "../../hooks/useMouseMove";
|
10
|
-
import CustomColorPicker from "../../common/CustomColorPicker";
|
11
|
-
import { getSelectedElementColor } from "../../utils/helper";
|
12
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
13
12
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
14
13
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
@@ -26,8 +25,7 @@ const ColorPicker = props => {
|
|
26
25
|
classes,
|
27
26
|
forMiniTool,
|
28
27
|
openColorTool,
|
29
|
-
closeColorTool
|
30
|
-
type
|
28
|
+
closeColorTool
|
31
29
|
} = props;
|
32
30
|
const {
|
33
31
|
theme
|
@@ -36,7 +34,6 @@ const ColorPicker = props => {
|
|
36
34
|
const [anchorEl, setAnchorEl] = useState(null);
|
37
35
|
const open = Boolean(anchorEl);
|
38
36
|
const pickerStyles = ColorPickerStyles(theme);
|
39
|
-
const muiTheme = useTheme();
|
40
37
|
const onOpen = e => {
|
41
38
|
e.preventDefault();
|
42
39
|
setAnchorEl(e.currentTarget);
|
@@ -61,7 +58,7 @@ const ColorPicker = props => {
|
|
61
58
|
setAnchorEl(null);
|
62
59
|
setSelection(null);
|
63
60
|
};
|
64
|
-
const activeColor =
|
61
|
+
const activeColor = activeMark(editor, format) || DEFAULT_COLOR[format];
|
65
62
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
66
63
|
children: [forMiniTool ? null : /*#__PURE__*/_jsx(Tooltip, {
|
67
64
|
title: title,
|
@@ -99,10 +96,10 @@ const ColorPicker = props => {
|
|
99
96
|
horizontal: "top"
|
100
97
|
},
|
101
98
|
sx: classes.colorPickerPopup,
|
102
|
-
children: /*#__PURE__*/_jsx(
|
99
|
+
children: /*#__PURE__*/_jsx(ColorPickerTool, {
|
103
100
|
gradient: true,
|
104
|
-
|
105
|
-
|
101
|
+
value: activeColor,
|
102
|
+
onChange: handleFormSubmit
|
106
103
|
})
|
107
104
|
})]
|
108
105
|
});
|
@@ -20,26 +20,24 @@ const ColorPickerStyles = theme => ({
|
|
20
20
|
background: `${theme?.palette?.editor?.miniToolBarBackground}`,
|
21
21
|
border: `1px solid ${theme?.palette?.editor?.miniToolBarBorder} !important`,
|
22
22
|
borderRadius: "7px !important",
|
23
|
-
padding: "0px
|
24
|
-
|
23
|
+
padding: "0px 5px",
|
24
|
+
'@media only screen and (max-width: 600px)': {
|
25
25
|
marginTop: "-40px"
|
26
26
|
}
|
27
27
|
}
|
28
28
|
},
|
29
29
|
colorButtonSingle: {
|
30
|
-
border: "1.5px solid #DCE4EC !important",
|
31
30
|
"&.active": {
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
outline: "2px solid #2563EB"
|
31
|
+
"&:before": {
|
32
|
+
content: '" "',
|
33
|
+
position: "absolute",
|
34
|
+
top: "-4px",
|
35
|
+
left: "-4px",
|
36
|
+
width: "calc(100% + 8px)",
|
37
|
+
height: "calc(100% + 8px)",
|
38
|
+
border: "2px solid #2563EB",
|
39
|
+
borderRadius: "50%"
|
40
|
+
}
|
43
41
|
}
|
44
42
|
},
|
45
43
|
colorButtonsInner: {
|
@@ -61,7 +59,7 @@ const ColorPickerStyles = theme => ({
|
|
61
59
|
width: "24px",
|
62
60
|
height: "24px",
|
63
61
|
margin: "0px 4px",
|
64
|
-
border: "
|
62
|
+
border: "unset"
|
65
63
|
}
|
66
64
|
},
|
67
65
|
colorPickerIcon: {
|