@flozy/editor 10.7.0 → 10.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Editor/ChatEditor.js +17 -16
- package/dist/Editor/CommonEditor.js +126 -15
- package/dist/Editor/DialogWrapper.js +31 -25
- package/dist/Editor/Editor.css +45 -11
- package/dist/Editor/Elements/AI/PopoverAIInput.js +11 -3
- package/dist/Editor/Elements/AI/Styles.js +1 -0
- package/dist/Editor/Elements/Accordion/Accordion.js +25 -17
- package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
- package/dist/Editor/Elements/Attachments/AttachmentStyles.js +16 -0
- package/dist/Editor/Elements/Attachments/Attachments.js +153 -11
- package/dist/Editor/Elements/Attachments/AttachmentsButton.js +8 -3
- package/dist/Editor/Elements/Button/EditorButton.js +23 -7
- 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/Embed/Embed.js +36 -43
- package/dist/Editor/Elements/Embed/Image.js +240 -23
- package/dist/Editor/Elements/Embed/Video.js +246 -15
- package/dist/Editor/Elements/Form/FormField.js +1 -1
- package/dist/Editor/Elements/Form/Workflow/Styles.js +24 -22
- package/dist/Editor/Elements/Form/Workflow/constant.js +25 -1
- package/dist/Editor/Elements/FreeGrid/FreeGrid.js +39 -33
- package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +7 -4
- package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +1 -0
- package/dist/Editor/Elements/FreeGrid/Options/More.js +7 -7
- package/dist/Editor/Elements/FreeGrid/helper.js +115 -0
- package/dist/Editor/Elements/FreeGrid/styles.js +9 -0
- package/dist/Editor/Elements/Grid/GridItem.js +1 -1
- package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +2 -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 +20 -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/SelectList.js +4 -2
- 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 +69 -9
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +58 -10
- package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +439 -0
- package/dist/Editor/Toolbar/PopupTool/index.js +5 -2
- package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
- package/dist/Editor/assets/svg/BackIcon.js +18 -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 +28 -0
- package/dist/Editor/common/ImageSelector/ImageSelector.js +46 -8
- package/dist/Editor/common/ImageSelector/Options/Upload.js +26 -11
- package/dist/Editor/common/ImageSelector/Styles.js +3 -9
- package/dist/Editor/common/LinkSettings/NavComponents.js +6 -2
- package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
- 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 +20 -7
- 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 +20 -7
- package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +11 -2
- 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 +28 -18
- package/dist/Editor/common/RnD/Utils/index.js +3 -1
- package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +45 -58
- package/dist/Editor/common/RnD/VirtualElement/helper.js +320 -130
- package/dist/Editor/common/RnD/VirtualElement/styles.js +22 -0
- package/dist/Editor/common/RnD/index.js +48 -13
- package/dist/Editor/common/Shorthands/elements.js +54 -0
- package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
- package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +4 -0
- package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +15 -2
- 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/embedUpload.js +115 -0
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +16 -7
- package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
- package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +2 -0
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
- package/dist/Editor/common/StyleBuilder/index.js +8 -4
- package/dist/Editor/common/Uploader.js +125 -17
- package/dist/Editor/common/UploaderWithProgress.js +183 -0
- package/dist/Editor/common/iconslist.js +21 -0
- package/dist/Editor/commonStyle.js +107 -64
- package/dist/Editor/helper/index.js +10 -2
- 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 +9 -3
- package/dist/Editor/hooks/useThemeValues.js +63 -0
- package/dist/Editor/plugins/withEmbeds.js +1 -1
- package/dist/Editor/plugins/withHTML.js +7 -3
- package/dist/Editor/plugins/withTable.js +1 -1
- package/dist/Editor/service/fileupload.js +53 -0
- package/dist/Editor/theme/ThemeList.js +50 -173
- package/dist/Editor/theme/index.js +149 -0
- package/dist/Editor/themeSettings/ActiveTheme.js +82 -0
- package/dist/Editor/themeSettings/buttons/index.js +300 -0
- package/dist/Editor/themeSettings/buttons/style.js +23 -0
- package/dist/Editor/themeSettings/colorTheme/index.js +310 -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 +380 -0
- package/dist/Editor/themeSettings/style.js +299 -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 +332 -0
- package/dist/Editor/utils/SlateUtilityFunctions.js +231 -25
- package/dist/Editor/utils/accordion.js +62 -34
- 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 +97 -21
- package/dist/Editor/utils/insertAppHeader.js +8 -4
- package/package.json +4 -4
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +0 -454
@@ -55,6 +55,60 @@ const ELEMENTS_LIST = [{
|
|
55
55
|
icon: "headingThree"
|
56
56
|
}),
|
57
57
|
onInsert: editor => toggleBlock(editor, "headingThree", false)
|
58
|
+
}, {
|
59
|
+
name: "Heading 4",
|
60
|
+
desc: "",
|
61
|
+
group: "Text",
|
62
|
+
type: "headingFour",
|
63
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
64
|
+
icon: "headingFour"
|
65
|
+
}),
|
66
|
+
onInsert: editor => toggleBlock(editor, "headingFour", false)
|
67
|
+
}, {
|
68
|
+
name: "Heading 5",
|
69
|
+
desc: "",
|
70
|
+
group: "Text",
|
71
|
+
type: "headingFive",
|
72
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
73
|
+
icon: "headingFive"
|
74
|
+
}),
|
75
|
+
onInsert: editor => toggleBlock(editor, "headingFive", false)
|
76
|
+
}, {
|
77
|
+
name: "Heading 6",
|
78
|
+
desc: "",
|
79
|
+
group: "Text",
|
80
|
+
type: "headingSix",
|
81
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
82
|
+
icon: "headingSix"
|
83
|
+
}),
|
84
|
+
onInsert: editor => toggleBlock(editor, "headingSix", false)
|
85
|
+
}, {
|
86
|
+
name: "Paragraph 1",
|
87
|
+
desc: "",
|
88
|
+
group: "Text",
|
89
|
+
type: "paragraphOne",
|
90
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
91
|
+
icon: "paragraphOne"
|
92
|
+
}),
|
93
|
+
onInsert: editor => toggleBlock(editor, "paragraphOne", false)
|
94
|
+
}, {
|
95
|
+
name: "Paragraph 2",
|
96
|
+
desc: "",
|
97
|
+
group: "Text",
|
98
|
+
type: "paragraphTwo",
|
99
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
100
|
+
icon: "paragraphTwo"
|
101
|
+
}),
|
102
|
+
onInsert: editor => toggleBlock(editor, "paragraphTwo", false)
|
103
|
+
}, {
|
104
|
+
name: "Paragraph 3",
|
105
|
+
desc: "",
|
106
|
+
group: "Text",
|
107
|
+
type: "paragraphThree",
|
108
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
109
|
+
icon: "paragraphThree"
|
110
|
+
}),
|
111
|
+
onInsert: editor => toggleBlock(editor, "paragraphThree", false)
|
58
112
|
}, {
|
59
113
|
name: "Quote",
|
60
114
|
desc: "",
|
@@ -21,7 +21,8 @@ const buttonStyle = [{
|
|
21
21
|
},
|
22
22
|
children: option.text
|
23
23
|
});
|
24
|
-
}
|
24
|
+
},
|
25
|
+
themeEnabled: true
|
25
26
|
}, {
|
26
27
|
label: "Font Size",
|
27
28
|
key: "textSize",
|
@@ -45,7 +46,8 @@ const buttonStyle = [{
|
|
45
46
|
}, {
|
46
47
|
label: "Button Color",
|
47
48
|
key: "bgColor",
|
48
|
-
type: "color"
|
49
|
+
type: "color",
|
50
|
+
themeEnabled: true
|
49
51
|
}, {
|
50
52
|
label: "Border Color",
|
51
53
|
key: "borderColor",
|
@@ -11,7 +11,9 @@ const BackgroundImage = props => {
|
|
11
11
|
value,
|
12
12
|
data,
|
13
13
|
customProps,
|
14
|
-
onChange
|
14
|
+
onChange,
|
15
|
+
elementProps,
|
16
|
+
title
|
15
17
|
} = props;
|
16
18
|
const {
|
17
19
|
translation
|
@@ -25,6 +27,7 @@ const BackgroundImage = props => {
|
|
25
27
|
theme
|
26
28
|
} = useEditorContext();
|
27
29
|
const classes = UploadStyles(theme);
|
30
|
+
const disableProgress = title === "Page Settings" || elementProps?.type === "freegridBox" || elementProps?.type === "freegrid";
|
28
31
|
const onRemoveBG = () => {
|
29
32
|
setBase64(null);
|
30
33
|
onChange({
|
@@ -44,6 +47,9 @@ const BackgroundImage = props => {
|
|
44
47
|
});
|
45
48
|
handleClose();
|
46
49
|
};
|
50
|
+
const getTitle = () => {
|
51
|
+
return elementProps?.type === "image" ? "Image" : elementProps?.type === "video" ? "Video" : null;
|
52
|
+
};
|
47
53
|
return /*#__PURE__*/_jsxs(Grid, {
|
48
54
|
item: true,
|
49
55
|
xs: 12,
|
@@ -76,6 +82,11 @@ const BackgroundImage = props => {
|
|
76
82
|
children: translation("REMOVE")
|
77
83
|
}) : /*#__PURE__*/_jsx(Grid, {
|
78
84
|
className: "uploadImageText",
|
85
|
+
sx: {
|
86
|
+
padding: 0,
|
87
|
+
background: `${theme?.palette?.editor?.inputFieldBgColor}`,
|
88
|
+
border: `1px solid ${theme?.palette?.editor?.inputFieldBorder}`
|
89
|
+
},
|
79
90
|
children: /*#__PURE__*/_jsxs(Button, {
|
80
91
|
component: "label",
|
81
92
|
variant: "text",
|
@@ -100,7 +111,9 @@ const BackgroundImage = props => {
|
|
100
111
|
open: open,
|
101
112
|
onClose: handleClose,
|
102
113
|
customProps: customProps,
|
103
|
-
onSelectImage: onSelectImage
|
114
|
+
onSelectImage: onSelectImage,
|
115
|
+
title: getTitle(),
|
116
|
+
disableProgress: disableProgress
|
104
117
|
})]
|
105
118
|
});
|
106
119
|
};
|
@@ -3,13 +3,13 @@ import { Checkbox, FormControlLabel, Grid, Slider, Typography, Box, IconButton }
|
|
3
3
|
import { squreStyle } from "./radiusStyle";
|
4
4
|
import { getBreakPointsValue } from "../../../helper/theme";
|
5
5
|
import useWindowResize from "../../../hooks/useWindowResize";
|
6
|
+
import { useEditorTheme } from "../../../hooks/useEditorTheme";
|
6
7
|
import { CheckedBoxCheckIcon } from "../../iconListV2";
|
7
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
8
9
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
9
10
|
const BANNER_SPACING_KEYS = ["top", "left", "right", "bottom"];
|
10
11
|
const BannerSpacing = props => {
|
11
12
|
const {
|
12
|
-
value: val,
|
13
13
|
data,
|
14
14
|
onChange,
|
15
15
|
elementProps,
|
@@ -23,7 +23,17 @@ const BannerSpacing = props => {
|
|
23
23
|
key
|
24
24
|
} = data;
|
25
25
|
const lockKeyVal = `lock${key}`;
|
26
|
-
|
26
|
+
const {
|
27
|
+
selectedTheme
|
28
|
+
} = useEditorTheme();
|
29
|
+
const {
|
30
|
+
bannerSpacing,
|
31
|
+
lockbannerSpacing
|
32
|
+
} = selectedTheme?.elementProps?.button || {};
|
33
|
+
const isUserValue = Object.keys(props?.value || {})?.length;
|
34
|
+
const isUserLockedSpacing = typeof elementProps[lockKeyVal] === "boolean";
|
35
|
+
const val = isUserValue ? props?.value : bannerSpacing;
|
36
|
+
let lockSpacing = isUserLockedSpacing ? elementProps[lockKeyVal] : lockbannerSpacing;
|
27
37
|
if (lockSpacing === undefined) {
|
28
38
|
lockSpacing = true;
|
29
39
|
}
|
@@ -3,13 +3,13 @@ import { Grid, Typography, Slider, FormControlLabel, Checkbox, Box, IconButton }
|
|
3
3
|
import { radiusStyle } from "./radiusStyle";
|
4
4
|
import useWindowResize from "../../../hooks/useWindowResize";
|
5
5
|
import { getBreakPointsValue, getCustomizationValue } from "../../../helper/theme";
|
6
|
+
import { useEditorTheme } from "../../../hooks/useEditorTheme";
|
6
7
|
import { CheckedBoxCheckIcon } from "../../iconListV2";
|
7
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
8
9
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
9
10
|
const BORDER_RADIUS_KEYS = ["topLeft", "topRight", "bottomLeft", "bottomRight"];
|
10
11
|
const BorderRadius = props => {
|
11
12
|
const {
|
12
|
-
value: val,
|
13
13
|
data,
|
14
14
|
onChange,
|
15
15
|
elementProps,
|
@@ -19,16 +19,24 @@ const BorderRadius = props => {
|
|
19
19
|
const {
|
20
20
|
translation
|
21
21
|
} = customProps;
|
22
|
-
let {
|
23
|
-
lockRadius
|
24
|
-
} = elementProps;
|
25
|
-
if (lockRadius === undefined) {
|
26
|
-
lockRadius = true;
|
27
|
-
}
|
28
22
|
const {
|
29
23
|
key
|
30
24
|
} = data;
|
31
25
|
const [size] = useWindowResize();
|
26
|
+
const {
|
27
|
+
selectedTheme
|
28
|
+
} = useEditorTheme();
|
29
|
+
const {
|
30
|
+
borderRadius,
|
31
|
+
lockRadius: themeLockRadius
|
32
|
+
} = selectedTheme?.elementProps?.button || {};
|
33
|
+
const isUserValue = Object.keys(props?.value || {})?.length;
|
34
|
+
const isUserLockedRadius = typeof elementProps?.lockRadius === "boolean";
|
35
|
+
const val = isUserValue ? props?.value : borderRadius;
|
36
|
+
let lockRadius = isUserLockedRadius ? elementProps?.lockRadius : themeLockRadius;
|
37
|
+
if (lockRadius === undefined) {
|
38
|
+
lockRadius = true;
|
39
|
+
}
|
32
40
|
const value = getBreakPointsValue(val, size?.device);
|
33
41
|
const handleChange = e => {
|
34
42
|
let changeAll = {};
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { Box, Card, Checkbox, FormControlLabel, Grid, Tooltip, Typography } from "@mui/material";
|
2
2
|
import React from "react";
|
3
3
|
import Icon from "../../Icon";
|
4
|
+
import { useEditorContext } from "../../../hooks/useMouseMove";
|
4
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
5
6
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
6
7
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
@@ -15,14 +16,17 @@ const RenderCard = ({
|
|
15
16
|
}) => {
|
16
17
|
return /*#__PURE__*/_jsx(Card, {
|
17
18
|
sx: {
|
18
|
-
position:
|
19
|
-
padding: "10px"
|
19
|
+
position: "relative",
|
20
|
+
padding: "10px",
|
21
|
+
"& .MuiCheckbox-root svg": {
|
22
|
+
fill: "unset !important"
|
23
|
+
}
|
20
24
|
},
|
21
25
|
children: /*#__PURE__*/_jsx(FormControlLabel, {
|
22
26
|
control: /*#__PURE__*/_jsx(Checkbox, {
|
23
27
|
sx: {
|
24
28
|
padding: 0,
|
25
|
-
marginTop:
|
29
|
+
marginTop: "3px"
|
26
30
|
},
|
27
31
|
onChange: handleChange,
|
28
32
|
checked: value,
|
@@ -58,10 +62,10 @@ const RenderCard = ({
|
|
58
62
|
})
|
59
63
|
}),
|
60
64
|
sx: {
|
61
|
-
width:
|
62
|
-
display:
|
63
|
-
justifyContent:
|
64
|
-
alignItems:
|
65
|
+
width: "100%",
|
66
|
+
display: "flex",
|
67
|
+
justifyContent: "space-between",
|
68
|
+
alignItems: "flex-start",
|
65
69
|
margin: 0
|
66
70
|
},
|
67
71
|
labelPlacement: "start"
|
@@ -83,6 +87,9 @@ const CardsMapping = props => {
|
|
83
87
|
selectedCard,
|
84
88
|
infoIcon
|
85
89
|
} = data;
|
90
|
+
const {
|
91
|
+
theme
|
92
|
+
} = useEditorContext();
|
86
93
|
const {
|
87
94
|
translation
|
88
95
|
} = customProps;
|
@@ -104,7 +111,8 @@ const CardsMapping = props => {
|
|
104
111
|
sx: {
|
105
112
|
marginBottom: "12px",
|
106
113
|
"& .MuiPaper-root": {
|
107
|
-
|
114
|
+
background: theme?.palette?.editor?.miniToolBarBackground,
|
115
|
+
border: activeCard ? "1px solid #2563EB" : `1px solid ${theme?.palette?.editor?.inputFieldBorder}`,
|
108
116
|
borderRadius: "8px",
|
109
117
|
boxShadow: activeCard ? "0px 4px 16px 0px #2563EB40" : "unset"
|
110
118
|
}
|
@@ -1,14 +1,23 @@
|
|
1
|
-
import React, { useEffect, useState } from "react";
|
1
|
+
import React, { useEffect, useMemo, useState } from "react";
|
2
2
|
import { Grid, TextField, InputAdornment, Typography, Tooltip } from "@mui/material";
|
3
3
|
import ColorPickerButton from "../../ColorPickerButton";
|
4
|
+
import { getVariableValue } from "../../../helper/theme";
|
5
|
+
import { useButtonStyle } from "../../../hooks/useThemeValues";
|
6
|
+
|
7
|
+
// const MAP_STYLE_PROPS = {
|
8
|
+
// bgColor: "background-color",
|
9
|
+
// textColor: "color",
|
10
|
+
// };
|
4
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
5
12
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
6
13
|
const Color = props => {
|
7
14
|
const {
|
8
|
-
value,
|
15
|
+
value: val,
|
9
16
|
data,
|
10
17
|
onChange,
|
11
18
|
classes,
|
19
|
+
elementProps,
|
20
|
+
handleClose,
|
12
21
|
customProps
|
13
22
|
} = props;
|
14
23
|
const {
|
@@ -20,7 +29,22 @@ const Color = props => {
|
|
20
29
|
translation
|
21
30
|
} = customProps;
|
22
31
|
const [recentColors, setRecentColors] = useState({});
|
23
|
-
const
|
32
|
+
const {
|
33
|
+
buttonStyle
|
34
|
+
} = useButtonStyle(val, key, elementProps);
|
35
|
+
const newValue = buttonStyle?.color;
|
36
|
+
const {
|
37
|
+
value,
|
38
|
+
inputValue
|
39
|
+
} = useMemo(() => {
|
40
|
+
const isVariable = newValue && newValue.startsWith("var");
|
41
|
+
const inputValue = isVariable ? getVariableValue(newValue) : newValue;
|
42
|
+
return {
|
43
|
+
value: newValue,
|
44
|
+
inputValue: inputValue
|
45
|
+
};
|
46
|
+
}, [buttonStyle?.color]);
|
47
|
+
const getLable = label === "Text" ? translation("selectTextColor") : label === "Background" ? translation("selectBgColor") : translation(label);
|
24
48
|
useEffect(() => {
|
25
49
|
const storedColors = JSON.parse(localStorage.getItem("recentColors"));
|
26
50
|
if (storedColors) {
|
@@ -58,11 +82,11 @@ const Color = props => {
|
|
58
82
|
fontSize: "14px",
|
59
83
|
fontWeight: 500,
|
60
84
|
marginBottom: "5px",
|
61
|
-
display:
|
62
|
-
alignItems:
|
63
|
-
|
64
|
-
width:
|
65
|
-
height:
|
85
|
+
display: "flex",
|
86
|
+
alignItems: "center",
|
87
|
+
"& svg": {
|
88
|
+
width: "20px",
|
89
|
+
height: "20px"
|
66
90
|
}
|
67
91
|
},
|
68
92
|
children: [translation(label), data?.infoIcon ? /*#__PURE__*/_jsx(Tooltip, {
|
@@ -70,14 +94,14 @@ const Color = props => {
|
|
70
94
|
title: translation("noteText"),
|
71
95
|
children: /*#__PURE__*/_jsx("span", {
|
72
96
|
style: {
|
73
|
-
display:
|
97
|
+
display: "inline-block"
|
74
98
|
},
|
75
99
|
children: data?.infoIcon
|
76
100
|
})
|
77
101
|
}) : null]
|
78
102
|
}), /*#__PURE__*/_jsx(TextField, {
|
79
103
|
fullWidth: true,
|
80
|
-
value:
|
104
|
+
value: inputValue,
|
81
105
|
placeholder: getLable || `${label} ${translation("color code")}`,
|
82
106
|
InputLabelProps: {
|
83
107
|
shrink: true
|
@@ -90,6 +114,8 @@ const Color = props => {
|
|
90
114
|
value: value,
|
91
115
|
onSave: onSave,
|
92
116
|
recentColors: recentColors[key],
|
117
|
+
handleClose: handleClose,
|
118
|
+
disableEditTheme: customProps?.disableEditTheme,
|
93
119
|
hideGradient: hideGradient
|
94
120
|
})
|
95
121
|
})
|
@@ -0,0 +1,115 @@
|
|
1
|
+
import React, { useState } from "react";
|
2
|
+
import { Grid, Button, Typography } from "@mui/material";
|
3
|
+
import ImageSelector from "../../ImageSelector/ImageSelector";
|
4
|
+
import UploadStyles from "../../ImageSelector/UploadStyles";
|
5
|
+
import Icon from "../../Icon";
|
6
|
+
import { useEditorContext } from "../../../hooks/useMouseMove";
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
8
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
9
|
+
const EmbedUpload = props => {
|
10
|
+
const {
|
11
|
+
value,
|
12
|
+
data,
|
13
|
+
customProps,
|
14
|
+
onChange
|
15
|
+
} = props;
|
16
|
+
const {
|
17
|
+
translation
|
18
|
+
} = customProps;
|
19
|
+
const {
|
20
|
+
key
|
21
|
+
} = data;
|
22
|
+
const [base64, setBase64] = useState(value);
|
23
|
+
const [open, setOpen] = useState(false);
|
24
|
+
const {
|
25
|
+
theme
|
26
|
+
} = useEditorContext();
|
27
|
+
const classes = UploadStyles(theme);
|
28
|
+
const onRemoveBG = () => {
|
29
|
+
setBase64(null);
|
30
|
+
onChange({
|
31
|
+
[key]: "none"
|
32
|
+
});
|
33
|
+
};
|
34
|
+
const handleClick = () => {
|
35
|
+
setOpen(true);
|
36
|
+
};
|
37
|
+
const handleClose = () => {
|
38
|
+
setOpen(false);
|
39
|
+
};
|
40
|
+
const onSelectImage = img => {
|
41
|
+
setBase64(img);
|
42
|
+
onChange({
|
43
|
+
[key]: img
|
44
|
+
});
|
45
|
+
handleClose();
|
46
|
+
};
|
47
|
+
return /*#__PURE__*/_jsxs(Grid, {
|
48
|
+
item: true,
|
49
|
+
xs: 12,
|
50
|
+
children: [/*#__PURE__*/_jsx(Typography, {
|
51
|
+
variant: "body1",
|
52
|
+
color: "primary",
|
53
|
+
sx: {
|
54
|
+
fontSize: "14px",
|
55
|
+
fontWeight: "500",
|
56
|
+
marginBottom: "8px"
|
57
|
+
},
|
58
|
+
children: translation("Upload Video")
|
59
|
+
}), /*#__PURE__*/_jsx(Grid, {
|
60
|
+
container: true,
|
61
|
+
sx: classes.uploadContainer,
|
62
|
+
children: /*#__PURE__*/_jsx(Grid, {
|
63
|
+
item: true,
|
64
|
+
xs: 12,
|
65
|
+
sx: classes.uploadField,
|
66
|
+
children: /*#__PURE__*/_jsx(Grid, {
|
67
|
+
className: "uploadImageSection",
|
68
|
+
children: base64 ? /*#__PURE__*/_jsxs(Grid, {
|
69
|
+
justifyItems: "center",
|
70
|
+
alignItems: "center",
|
71
|
+
children: [/*#__PURE__*/_jsx(Typography, {
|
72
|
+
style: {
|
73
|
+
padding: "8px",
|
74
|
+
fontSize: "8px",
|
75
|
+
color: theme?.palette?.editor?.textColor,
|
76
|
+
textAlign: "center"
|
77
|
+
},
|
78
|
+
children: base64
|
79
|
+
}), /*#__PURE__*/_jsx(Grid, {
|
80
|
+
className: "removeImageText",
|
81
|
+
onClick: onRemoveBG,
|
82
|
+
children: translation("REMOVE")
|
83
|
+
})]
|
84
|
+
}) : /*#__PURE__*/_jsx(Grid, {
|
85
|
+
className: "uploadImageText",
|
86
|
+
children: /*#__PURE__*/_jsxs(Button, {
|
87
|
+
component: "label",
|
88
|
+
variant: "text",
|
89
|
+
style: {
|
90
|
+
background: "none"
|
91
|
+
},
|
92
|
+
onClick: handleClick,
|
93
|
+
sx: classes.uploadIcon,
|
94
|
+
children: [/*#__PURE__*/_jsx(Icon, {
|
95
|
+
icon: "fileUpload"
|
96
|
+
}), /*#__PURE__*/_jsx("span", {
|
97
|
+
style: {
|
98
|
+
paddingLeft: "8px"
|
99
|
+
},
|
100
|
+
children: translation("Upload a Video")
|
101
|
+
})]
|
102
|
+
})
|
103
|
+
})
|
104
|
+
})
|
105
|
+
})
|
106
|
+
}), /*#__PURE__*/_jsx(ImageSelector, {
|
107
|
+
open: open,
|
108
|
+
title: "Video",
|
109
|
+
onClose: handleClose,
|
110
|
+
customProps: customProps,
|
111
|
+
onSelectImage: onSelectImage
|
112
|
+
})]
|
113
|
+
});
|
114
|
+
};
|
115
|
+
export default EmbedUpload;
|
@@ -1,23 +1,30 @@
|
|
1
|
-
import React from "react";
|
1
|
+
import React, { useMemo } from "react";
|
2
2
|
import { TextField, IconButton, Grid, Typography } from "@mui/material";
|
3
3
|
import { sizeMap } from "../../../utils/font.js";
|
4
4
|
import { TextMinusIcon, TextPlusIcon } from "../../../common/iconslist.js";
|
5
|
+
import { getElementStyle } from "../../../helper/theme.js";
|
6
|
+
import { useSlateStatic } from "slate-react";
|
5
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
6
8
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
7
9
|
const FontSize = props => {
|
8
10
|
const {
|
9
|
-
value,
|
11
|
+
value: val,
|
10
12
|
data,
|
11
13
|
onChange,
|
14
|
+
elementProps,
|
12
15
|
customProps
|
13
16
|
} = props;
|
14
|
-
const {
|
15
|
-
translation
|
16
|
-
} = customProps;
|
17
17
|
const {
|
18
18
|
key,
|
19
19
|
width
|
20
20
|
} = data;
|
21
|
+
const editor = useSlateStatic();
|
22
|
+
const value = useMemo(() => {
|
23
|
+
return val || getElementStyle(editor, elementProps, "font-size");
|
24
|
+
}, [editor, val]);
|
25
|
+
const {
|
26
|
+
translation
|
27
|
+
} = customProps;
|
21
28
|
const handleChange = e => {
|
22
29
|
let inc = parseInt(e.target.value) || 16;
|
23
30
|
inc = inc > 200 ? 200 : inc;
|
@@ -28,7 +35,9 @@ const FontSize = props => {
|
|
28
35
|
const getSizeVal = () => {
|
29
36
|
try {
|
30
37
|
const size = `${value}`?.indexOf("px") >= 0 ? value : sizeMap[value] || value;
|
31
|
-
|
38
|
+
const defaultSize = 16;
|
39
|
+
const val = parseInt(size || defaultSize);
|
40
|
+
return isNaN(val) ? defaultSize : val;
|
32
41
|
} catch (err) {
|
33
42
|
return "";
|
34
43
|
}
|
@@ -77,7 +86,7 @@ const FontSize = props => {
|
|
77
86
|
size: "small",
|
78
87
|
inputProps: {
|
79
88
|
style: {
|
80
|
-
// textAlign: "center",
|
89
|
+
// textAlign: "center",
|
81
90
|
padding: "11px"
|
82
91
|
}
|
83
92
|
},
|
@@ -19,6 +19,7 @@ import SelectSwitch from "./selectSwitch";
|
|
19
19
|
import CardsMapping from "./card";
|
20
20
|
import MetaDataMapping from "./metaDataMapping";
|
21
21
|
import LineSpacing from "./lineSpacing";
|
22
|
+
import EmbedUpload from "./embedUpload";
|
22
23
|
const FieldMap = {
|
23
24
|
text: Text,
|
24
25
|
bannerSpacing: BannerSpacing,
|
@@ -40,6 +41,7 @@ const FieldMap = {
|
|
40
41
|
selectSwitch: SelectSwitch,
|
41
42
|
card: CardsMapping,
|
42
43
|
metadatamapping: MetaDataMapping,
|
43
|
-
lineSpacing: LineSpacing
|
44
|
+
lineSpacing: LineSpacing,
|
45
|
+
embedUpload: EmbedUpload
|
44
46
|
};
|
45
47
|
export default FieldMap;
|
@@ -129,6 +129,7 @@ const MenusArray = props => {
|
|
129
129
|
className: "menu-item-app-header",
|
130
130
|
children: [/*#__PURE__*/_jsx(TextField, {
|
131
131
|
name: "text",
|
132
|
+
placeholder: m?.placeholder || "text",
|
132
133
|
type: "text",
|
133
134
|
value: m.text,
|
134
135
|
onChange: handleChange(i),
|
@@ -140,6 +141,7 @@ const MenusArray = props => {
|
|
140
141
|
}), /*#__PURE__*/_jsx(TextField, {
|
141
142
|
name: "url",
|
142
143
|
type: "text",
|
144
|
+
placeholder: m?.placeholder || "url",
|
143
145
|
value: m.url,
|
144
146
|
onChange: handleChange(i),
|
145
147
|
size: "small",
|
@@ -1,13 +1,13 @@
|
|
1
|
-
import React from "react";
|
1
|
+
import React, { useMemo } from "react";
|
2
2
|
import { FormControl, Grid, ListItemIcon, ListSubheader, MenuItem, Select, Typography } from "@mui/material";
|
3
|
-
import { getBreakPointsValue } from "../../../helper/theme";
|
3
|
+
import { getBreakPointsValue, getElementStyle } from "../../../helper/theme";
|
4
4
|
import useWindowResize from "../../../hooks/useWindowResize";
|
5
5
|
import { useEditorContext } from "../../../hooks/useMouseMove";
|
6
6
|
import FontFamilyAutocomplete from "../../../Toolbar/FormatTools/FontFamilyAutocomplete";
|
7
7
|
import { useSlate } from "slate-react";
|
8
8
|
import KeyboardArrowDownRoundedIcon from "@mui/icons-material/KeyboardArrowDownRounded";
|
9
9
|
|
10
|
-
// hideMetaDataOptions -- pass true to hide metadata option in select field
|
10
|
+
// hideMetaDataOptions -- pass true to hide metadata option in select field
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
12
12
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
13
13
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
@@ -31,14 +31,22 @@ const TextOptions = props => {
|
|
31
31
|
renderOption,
|
32
32
|
width,
|
33
33
|
webFont = false,
|
34
|
-
hideMetaDataOptions = false
|
34
|
+
hideMetaDataOptions = false,
|
35
|
+
themeEnabled
|
35
36
|
} = data;
|
36
37
|
const {
|
37
38
|
fontFamilies
|
38
39
|
} = useEditorContext();
|
39
|
-
const editor = useSlate();
|
40
40
|
const [size] = useWindowResize();
|
41
|
-
const
|
41
|
+
const editor = useSlate();
|
42
|
+
const value = useMemo(() => {
|
43
|
+
const userValue = isBreakpoint ? getBreakPointsValue(val, size?.device) : val;
|
44
|
+
if (themeEnabled) {
|
45
|
+
// editor takes a little amount of time to update the new style in element, in that case userValue will be returned
|
46
|
+
return getElementStyle(editor, elementProps, key) || userValue;
|
47
|
+
}
|
48
|
+
return userValue;
|
49
|
+
}, [editor, isBreakpoint, val, size?.device]);
|
42
50
|
const metaDataMappingOptions = metaMappings?.boards || [];
|
43
51
|
const updatedOption = !hideMetaDataOptions && elementProps?.metadatamapping ? [...options, ...metaDataMappingOptions] : webFont ? fontFamilies?.options : options;
|
44
52
|
const handleChange = (e, d) => {
|
@@ -117,7 +125,7 @@ const TextOptions = props => {
|
|
117
125
|
editor: editor,
|
118
126
|
format: key,
|
119
127
|
options: fontFamilies.options,
|
120
|
-
width:
|
128
|
+
width: "100%",
|
121
129
|
onChange: onChange,
|
122
130
|
val: value,
|
123
131
|
webFont: true
|
@@ -17,7 +17,8 @@ export const StyleContent = props => {
|
|
17
17
|
element: propsElement,
|
18
18
|
customProps,
|
19
19
|
handleClose,
|
20
|
-
customElement
|
20
|
+
customElement,
|
21
|
+
title
|
21
22
|
} = props;
|
22
23
|
const element = customElement ? customElement : propsElement;
|
23
24
|
const {
|
@@ -49,7 +50,8 @@ export const StyleContent = props => {
|
|
49
50
|
customProps: customProps,
|
50
51
|
handleClose: handleClose,
|
51
52
|
classes: classes,
|
52
|
-
translation: translation
|
53
|
+
translation: translation,
|
54
|
+
title: title
|
53
55
|
}, `ei_stt_tab_${value}_${m.key}_${i}`) : null;
|
54
56
|
})
|
55
57
|
}, value);
|
@@ -217,7 +219,8 @@ const StyleBuilder = props => {
|
|
217
219
|
element: elementProps,
|
218
220
|
onChange: onElementPropsChange,
|
219
221
|
customProps: customProps,
|
220
|
-
handleClose: handleClose
|
222
|
+
handleClose: handleClose,
|
223
|
+
title: title
|
221
224
|
}, `tab_${field.value}_${index}`);
|
222
225
|
})
|
223
226
|
})]
|
@@ -230,7 +233,8 @@ const StyleBuilder = props => {
|
|
230
233
|
element: elementProps,
|
231
234
|
onChange: onElementPropsChange,
|
232
235
|
customProps: customProps,
|
233
|
-
handleClose: handleClose
|
236
|
+
handleClose: handleClose,
|
237
|
+
title: title
|
234
238
|
}, `tab_${m.value}_$${i}`);
|
235
239
|
}
|
236
240
|
})
|