@flozy/editor 10.9.4 → 10.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/dist/Editor/ChatEditor.js +16 -17
  2. package/dist/Editor/CommonEditor.js +27 -138
  3. package/dist/Editor/DialogWrapper.js +25 -31
  4. package/dist/Editor/Editor.css +11 -39
  5. package/dist/Editor/Elements/AI/PopoverAIInput.js +3 -11
  6. package/dist/Editor/Elements/AI/Styles.js +0 -1
  7. package/dist/Editor/Elements/Accordion/Accordion.js +22 -28
  8. package/dist/Editor/Elements/Accordion/AccordionButton.js +3 -12
  9. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  10. package/dist/Editor/Elements/Attachments/Attachments.js +11 -153
  11. package/dist/Editor/Elements/Attachments/AttachmentsButton.js +3 -8
  12. package/dist/Editor/Elements/Button/EditorButton.js +7 -23
  13. package/dist/Editor/Elements/Color Picker/ColorButtons.js +14 -61
  14. package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
  15. package/dist/Editor/Elements/Color Picker/ColorPicker.js +7 -10
  16. package/dist/Editor/Elements/Color Picker/Styles.js +13 -15
  17. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +454 -0
  18. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +55 -134
  19. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/SelectV1.js +8 -7
  20. package/dist/Editor/Elements/DataView/Layouts/DataTypes/PersonType.js +3 -8
  21. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +1 -1
  22. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +1 -1
  23. package/dist/Editor/Elements/Embed/Embed.js +43 -36
  24. package/dist/Editor/Elements/Embed/Image.js +23 -236
  25. package/dist/Editor/Elements/Embed/Video.js +15 -246
  26. package/dist/Editor/Elements/Form/FormField.js +1 -1
  27. package/dist/Editor/Elements/Form/Workflow/Styles.js +22 -24
  28. package/dist/Editor/Elements/Form/Workflow/constant.js +1 -25
  29. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +33 -39
  30. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +4 -7
  31. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +0 -1
  32. package/dist/Editor/Elements/FreeGrid/Options/More.js +7 -7
  33. package/dist/Editor/Elements/FreeGrid/styles.js +0 -15
  34. package/dist/Editor/Elements/Grid/GridItem.js +1 -1
  35. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +1 -2
  36. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  37. package/dist/Editor/Elements/Table/Table.js +4 -5
  38. package/dist/Editor/Elements/Table/TableCell.js +3 -10
  39. package/dist/Editor/Elements/Title/title.js +11 -10
  40. package/dist/Editor/Elements/TopBanner/TopBanner.js +2 -4
  41. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +3 -5
  42. package/dist/Editor/Elements/Variables/VariableButton.js +1 -10
  43. package/dist/Editor/MiniEditor.js +1 -2
  44. package/dist/Editor/Styles/EditorStyles.js +8 -20
  45. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +3 -27
  46. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +3 -4
  47. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  48. package/dist/Editor/Toolbar/FormatTools/TextSize.js +29 -33
  49. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +1 -2
  50. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +2 -4
  51. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +23 -25
  52. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +7 -25
  53. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +42 -167
  54. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +8 -24
  55. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +1 -2
  56. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +10 -70
  57. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +14 -73
  58. package/dist/Editor/Toolbar/PopupTool/index.js +4 -7
  59. package/dist/Editor/Toolbar/toolbarGroups.js +10 -56
  60. package/dist/Editor/common/ColorPickerButton.js +16 -38
  61. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  62. package/dist/Editor/common/FontLoader/FontLoader.js +0 -4
  63. package/dist/Editor/common/Icon.js +0 -28
  64. package/dist/Editor/common/ImageSelector/ImageSelector.js +7 -45
  65. package/dist/Editor/common/ImageSelector/Options/Upload.js +11 -26
  66. package/dist/Editor/common/ImageSelector/Styles.js +9 -3
  67. package/dist/Editor/common/LinkSettings/NavComponents.js +2 -6
  68. package/dist/Editor/common/MentionsPopup/index.js +1 -9
  69. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +1 -2
  70. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +2 -3
  71. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +2 -3
  72. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +2 -3
  73. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +2 -3
  74. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +2 -4
  75. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +7 -20
  76. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
  77. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +1 -9
  78. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +7 -20
  79. package/dist/Editor/common/RnD/GuideLines/styles.js +1 -1
  80. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +2 -11
  81. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +3 -6
  82. package/dist/Editor/common/RnD/Utils/gridDropItem.js +18 -28
  83. package/dist/Editor/common/RnD/Utils/index.js +1 -3
  84. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +58 -45
  85. package/dist/Editor/common/RnD/VirtualElement/helper.js +130 -320
  86. package/dist/Editor/common/RnD/VirtualElement/styles.js +0 -22
  87. package/dist/Editor/common/RnD/index.js +13 -48
  88. package/dist/Editor/common/Shorthands/elements.js +4 -62
  89. package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
  90. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +0 -4
  91. package/dist/Editor/common/StyleBuilder/fieldStyle.js +0 -1
  92. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +2 -15
  93. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +2 -12
  94. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -15
  95. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +8 -16
  96. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +10 -36
  97. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +7 -16
  98. package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +1 -3
  99. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +0 -2
  100. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +1 -0
  101. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +7 -15
  102. package/dist/Editor/common/StyleBuilder/formStyle.js +13 -19
  103. package/dist/Editor/common/StyleBuilder/index.js +4 -8
  104. package/dist/Editor/common/Uploader.js +17 -125
  105. package/dist/Editor/common/iconslist.js +0 -21
  106. package/dist/Editor/commonStyle.js +45 -64
  107. package/dist/Editor/helper/index.js +2 -10
  108. package/dist/Editor/helper/theme.js +2 -203
  109. package/dist/Editor/hooks/useMouseMove.js +3 -9
  110. package/dist/Editor/hooks/useTable.js +1 -62
  111. package/dist/Editor/plugins/withEmbeds.js +1 -12
  112. package/dist/Editor/plugins/withHTML.js +3 -58
  113. package/dist/Editor/plugins/withTable.js +1 -1
  114. package/dist/Editor/service/fileupload.js +0 -70
  115. package/dist/Editor/theme/ThemeList.js +173 -50
  116. package/dist/Editor/utils/SlateUtilityFunctions.js +40 -189
  117. package/dist/Editor/utils/accordion.js +40 -68
  118. package/dist/Editor/utils/button.js +17 -1
  119. package/dist/Editor/utils/draftToSlate.js +2 -3
  120. package/dist/Editor/utils/events.js +89 -94
  121. package/dist/Editor/utils/font.js +37 -40
  122. package/dist/Editor/utils/formfield.js +2 -2
  123. package/dist/Editor/utils/helper.js +22 -98
  124. package/dist/Editor/utils/insertAppHeader.js +4 -8
  125. package/package.json +4 -4
  126. package/dist/Editor/Elements/Attachments/AttachmentStyles.js +0 -16
  127. package/dist/Editor/Elements/FreeGrid/helper.js +0 -115
  128. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -439
  129. package/dist/Editor/assets/svg/BackIcon.js +0 -18
  130. package/dist/Editor/assets/svg/ThemeIcons.js +0 -293
  131. package/dist/Editor/common/CustomColorPicker/index.js +0 -130
  132. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  133. package/dist/Editor/common/CustomDialog2/index.js +0 -94
  134. package/dist/Editor/common/CustomDialog2/style.js +0 -67
  135. package/dist/Editor/common/CustomSelect.js +0 -43
  136. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
  137. package/dist/Editor/common/StyleBuilder/fieldTypes/embedUpload.js +0 -115
  138. package/dist/Editor/common/UploaderWithProgress.js +0 -183
  139. package/dist/Editor/helper/textIndeces.js +0 -58
  140. package/dist/Editor/hooks/useEditorTheme.js +0 -153
  141. package/dist/Editor/hooks/useThemeValues.js +0 -63
  142. package/dist/Editor/theme/index.js +0 -149
  143. package/dist/Editor/themeSettings/ActiveTheme.js +0 -82
  144. package/dist/Editor/themeSettings/buttons/index.js +0 -300
  145. package/dist/Editor/themeSettings/buttons/style.js +0 -23
  146. package/dist/Editor/themeSettings/colorTheme/index.js +0 -310
  147. package/dist/Editor/themeSettings/colorTheme/style.js +0 -81
  148. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
  149. package/dist/Editor/themeSettings/fonts/index.js +0 -240
  150. package/dist/Editor/themeSettings/fonts/style.js +0 -62
  151. package/dist/Editor/themeSettings/icons.js +0 -60
  152. package/dist/Editor/themeSettings/index.js +0 -380
  153. package/dist/Editor/themeSettings/style.js +0 -299
  154. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  155. package/dist/Editor/themeSettingsAI/index.js +0 -355
  156. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -202
  157. package/dist/Editor/themeSettingsAI/style.js +0 -332
@@ -1,43 +0,0 @@
1
- import { MenuItem, Select } from "@mui/material";
2
- import { fontFamilyMap } from "../utils/font";
3
- import KeyboardArrowDownRoundedIcon from "@mui/icons-material/KeyboardArrowDownRounded";
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- function CustomSelect(props) {
6
- const {
7
- classes,
8
- onChange,
9
- options = [],
10
- value
11
- } = props;
12
- return /*#__PURE__*/_jsx(Select, {
13
- fullWidth: true,
14
- value: value,
15
- onChange: onChange,
16
- className: "editor-dd",
17
- style: {
18
- fontFamily: fontFamilyMap[value],
19
- width: "100%",
20
- height: "36px",
21
- borderRadius: "10px",
22
- fontSize: "14px"
23
- },
24
- MenuProps: {
25
- PaperProps: {
26
- sx: classes?.textOptions
27
- }
28
- },
29
- sx: classes.textFormatSelect,
30
- IconComponent: KeyboardArrowDownRoundedIcon,
31
- children: options.map((option, i) => {
32
- return /*#__PURE__*/_jsx(MenuItem, {
33
- value: option.value,
34
- style: {
35
- fontFamily: option.text || "inherit"
36
- },
37
- sx: classes.textFormatSelectOptions,
38
- children: option?.label || option?.text
39
- }, i);
40
- })
41
- });
42
- }
43
- export default CustomSelect;
@@ -1,17 +0,0 @@
1
- import { Experimental_CssVarsProvider as CssVarsProvider, experimental_extendTheme as extendTheme } from "@mui/material/styles";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- function MainThemeProvider({
4
- children,
5
- userSelectedTheme,
6
- theme = {}
7
- }) {
8
- const themeVars = extendTheme(userSelectedTheme?.theme?.cssVars || {});
9
- return /*#__PURE__*/_jsx(CssVarsProvider, {
10
- theme: {
11
- ...themeVars,
12
- ...theme
13
- },
14
- children: children
15
- });
16
- }
17
- export default MainThemeProvider;
@@ -1,115 +0,0 @@
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,183 +0,0 @@
1
- import React, { useState } from "react";
2
- import { Grid, Button, Typography } from "@mui/material";
3
- import { convertBase64 } from "../utils/helper";
4
- import Icon from "./Icon";
5
- import UploadStyles from "../common/ImageSelector/UploadStyles";
6
- import { allowedFormat, maxSizeMap, allowedTypes, extensionMap } from "../Elements/Form/Workflow/constant";
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- import { Fragment as _Fragment } from "react/jsx-runtime";
9
- import { jsxs as _jsxs } from "react/jsx-runtime";
10
- const UploaderWithProgress = props => {
11
- const {
12
- value,
13
- onUploaded,
14
- customProps,
15
- setS3UploadProp,
16
- s3UploadProp
17
- } = props;
18
- const title = props.title || "Image";
19
- const classes = UploadStyles();
20
- const [base64, setBase64] = useState(value?.url);
21
- const [fileName, setFileName] = useState("");
22
- const [uploading, setUploading] = useState(false);
23
- const [error, setError] = useState("");
24
- const handleChange = async e => {
25
- setError("");
26
- const uFile = e.target.files[0];
27
- if (!uFile) return;
28
- const maxAllowedSize = maxSizeMap[title] || 5 * 1024 * 1024;
29
-
30
- // ✅ Check file size
31
- if (uFile.size > maxAllowedSize) {
32
- const sizeInMB = Math.round(maxAllowedSize / (1024 * 1024));
33
- setError(`File size exceeds ${sizeInMB}MB for ${title.toLowerCase()}.`);
34
- return;
35
- }
36
-
37
- // ✅ File type check with fallback to extension
38
- const validTypes = allowedTypes[title];
39
- const fileType = uFile.type;
40
- const fileName = uFile.name.toLowerCase();
41
- const fileExtension = fileName.split(".").pop();
42
- const isValid = title === "Embed" || validTypes.includes(fileType) || extensionMap[title]?.includes(fileExtension);
43
- if (!isValid) {
44
- setError(`Invalid file format. Please upload a valid ${title.toLowerCase()}.`);
45
- return;
46
- }
47
- try {
48
- const strImage = await convertBase64(uFile);
49
- setBase64(strImage);
50
- setFileName(uFile?.name);
51
- doUpload(strImage, uFile);
52
- } catch (err) {
53
- setError("Failed to read file.");
54
- }
55
- };
56
- const doUpload = async (strImage, file) => {
57
- setUploading(true);
58
- setS3UploadProp({
59
- ...s3UploadProp,
60
- file: file,
61
- pageId: customProps?.page_id,
62
- services: customProps?.services
63
- });
64
- setUploading(false);
65
- };
66
- const {
67
- translation
68
- } = customProps;
69
- const onRemoveBG = () => {
70
- setBase64(null);
71
- onUploaded("");
72
- setS3UploadProp({
73
- ...s3UploadProp,
74
- file: null
75
- });
76
- };
77
- const getBackground = () => {
78
- switch (title) {
79
- case "Document":
80
- return {
81
- backgroundImage: `url()`
82
- };
83
- default:
84
- return {
85
- backgroundImage: base64 ? `url(${base64})` : "none"
86
- };
87
- }
88
- };
89
- const renderThumb = () => {
90
- switch (title) {
91
- case "Video":
92
- case "Document":
93
- return /*#__PURE__*/_jsxs(_Fragment, {
94
- children: [/*#__PURE__*/_jsx(Typography, {
95
- style: {
96
- padding: "8px",
97
- fontSize: "12px",
98
- color: "#2563eb",
99
- textAlign: "center"
100
- },
101
- children: fileName
102
- }), /*#__PURE__*/_jsx(Grid, {
103
- className: "removeImageText",
104
- onClick: onRemoveBG,
105
- children: translation("Remove")
106
- })]
107
- });
108
- default:
109
- return /*#__PURE__*/_jsx(Grid, {
110
- className: "removeImageText",
111
- onClick: onRemoveBG,
112
- children: translation("Remove")
113
- });
114
- }
115
- };
116
- return /*#__PURE__*/_jsx(_Fragment, {
117
- children: /*#__PURE__*/_jsxs(Grid, {
118
- style: {
119
- height: error ? "fit-content" : "inherit"
120
- },
121
- className: "uploaderRoot",
122
- children: [/*#__PURE__*/_jsx(Grid, {
123
- item: true,
124
- xs: 12,
125
- children: error && /*#__PURE__*/_jsx(Typography, {
126
- style: {
127
- color: "red",
128
- marginBottom: "8px"
129
- },
130
- children: error
131
- })
132
- }), /*#__PURE__*/_jsx(Grid, {
133
- container: true,
134
- sx: classes.uploadContainer,
135
- style: {
136
- minHeight: error ? "250px" : "none"
137
- },
138
- className: "uploaderDragPlace",
139
- children: /*#__PURE__*/_jsx(Grid, {
140
- item: true,
141
- xs: 12,
142
- className: "btn--wrpr",
143
- style: {
144
- ...getBackground()
145
- },
146
- sx: classes.uploadField,
147
- children: !uploading ? /*#__PURE__*/_jsx(Grid, {
148
- className: "uploadImageSection",
149
- children: base64 ? renderThumb() : /*#__PURE__*/_jsx(Grid, {
150
- className: "uploadImageText",
151
- children: /*#__PURE__*/_jsxs(Button, {
152
- component: "label",
153
- variant: "text",
154
- style: {
155
- background: "none",
156
- width: "100%"
157
- },
158
- sx: classes.uploadIcon,
159
- children: [/*#__PURE__*/_jsx("input", {
160
- type: "file",
161
- accept: allowedFormat[title],
162
- style: {
163
- opacity: 0,
164
- width: "0px"
165
- },
166
- onChange: handleChange
167
- }), /*#__PURE__*/_jsx(Icon, {
168
- icon: "fileUpload"
169
- }), /*#__PURE__*/_jsx("span", {
170
- style: {
171
- paddingLeft: "8px"
172
- },
173
- children: `${translation("upload")} ${translation(title) || translation("image")}`
174
- })]
175
- })
176
- })
177
- }) : null
178
- })
179
- })]
180
- })
181
- });
182
- };
183
- export default UploaderWithProgress;
@@ -1,58 +0,0 @@
1
- export function extractTextWithPath(data, path = []) {
2
- let result = [];
3
- data.forEach((item, index) => {
4
- const currentPath = [...path, index];
5
- if (item.text) {
6
- result.push({
7
- path_id: currentPath.join(","),
8
- text: item.text
9
- });
10
- }
11
- if (item.children) {
12
- result = result.concat(extractTextWithPath(item.children, currentPath));
13
- }
14
- });
15
- return result;
16
- }
17
- export function replaceTextPath(nestedJson, pathIdJson) {
18
- // Create a map from path_id JSON for quick lookup
19
- const pathIdMap = new Map(pathIdJson.map(item => [item.path_id, item.text]));
20
- console.log(pathIdMap);
21
- function extractTextWithPath(data, path = []) {
22
- data.forEach((item, index) => {
23
- const currentPath = [...path, index];
24
- if (item.text) {
25
- if (pathIdMap.has(currentPath?.join(","))) {
26
- item.text = pathIdMap.get(currentPath?.join(","));
27
- }
28
- }
29
- if (item.children) {
30
- extractTextWithPath(item.children, currentPath);
31
- }
32
- });
33
- }
34
- extractTextWithPath(nestedJson, []);
35
- return nestedJson;
36
- }
37
-
38
- // export function replaceTextPath(nestedJson, pathIdJson) {
39
- // // Create a map from path_id JSON for quick lookup
40
- // const pathIdMap = new Map(
41
- // pathIdJson.map((item) => [item.path_id, item.text])
42
- // );
43
-
44
- // function traverseAndReplace(node) {
45
- // if (Array.isArray(node)) {
46
- // node.forEach(traverseAndReplace);
47
- // } else if (typeof node === "object" && node !== null) {
48
- // console.log(node);
49
- // if (node.text && pathIdMap.has(node.text)) {
50
- // node.text = pathIdMap.get(node.path_id);
51
- // }
52
- // Object.values(node).forEach(traverseAndReplace);
53
- // }
54
- // }
55
-
56
- // traverseAndReplace(nestedJson);
57
- // return nestedJson;
58
- // }
@@ -1,153 +0,0 @@
1
- import { useSlate } from "slate-react";
2
- import { defaultTheme } from "../theme";
3
- import { getPageSettings, updatePageSettings } from "../utils/pageSettings";
4
- import { HEADING_THEME_FIELDS, PARAGRAPH_THEME_FIELDS } from "../helper/theme";
5
- import { useEditorContext } from "./useMouseMove";
6
- const MAP_FIELDS = {
7
- HEADING: HEADING_THEME_FIELDS,
8
- PARAGRAPH: PARAGRAPH_THEME_FIELDS
9
- };
10
- const MAP_FONT_FIELD_KEYS = {
11
- HEADING: "headingFontFamily",
12
- PARAGRAPH: "paragraphFontFamily"
13
- };
14
- function getUpdatePayload(prevTheme = {}, update, actionData) {
15
- const {
16
- action,
17
- fieldName
18
- } = actionData || {};
19
- const {
20
- theme: prev
21
- } = prevTheme;
22
- let theme = {};
23
- let themeProps = {};
24
- switch (action) {
25
- case "THEME_CHANGE":
26
- theme = update;
27
- break;
28
- case "CSS_VAR_CHANGE":
29
- const prevCssVars = prev?.cssVars || {};
30
- const prevValue = prevCssVars[fieldName] || {};
31
- themeProps = {
32
- ...(prev || {}),
33
- cssVars: {
34
- ...prevCssVars,
35
- [fieldName]: {
36
- ...prevValue,
37
- ...update
38
- }
39
- }
40
- };
41
- theme = {
42
- ...prevTheme,
43
- theme: themeProps
44
- };
45
- break;
46
- case "ELEMENT_PROPS_CHANGE":
47
- const prevEleProps = prev?.elementProps || {};
48
- const prevEleValue = prevEleProps[fieldName] || {};
49
- themeProps = {
50
- ...(prev || {}),
51
- elementProps: {
52
- ...prevEleProps,
53
- [fieldName]: {
54
- ...prevEleValue,
55
- ...update
56
- }
57
- }
58
- };
59
- theme = {
60
- ...prevTheme,
61
- theme: themeProps
62
- };
63
- break;
64
- case "OTHER_PROPS_CHANGE":
65
- themeProps = {
66
- ...(prev || {}),
67
- otherProps: {
68
- ...(prev.otherProps || {}),
69
- ...update
70
- }
71
- };
72
- theme = {
73
- ...prevTheme,
74
- theme: themeProps
75
- };
76
- break;
77
- case "FONT_CHANGE":
78
- const {
79
- elementProps = {},
80
- otherProps = {}
81
- } = prev;
82
- const {
83
- fieldType
84
- } = actionData || {};
85
- const fields = MAP_FIELDS[fieldType];
86
- const fontFieldsUpdate = {};
87
- fields?.forEach(field => {
88
- const prevFieldData = elementProps[field];
89
- fontFieldsUpdate[field] = {
90
- ...prevFieldData,
91
- ...update
92
- };
93
- });
94
- const FONT_KEY_FOR_FIELD = MAP_FONT_FIELD_KEYS[fieldType];
95
- themeProps = {
96
- ...(prev || {}),
97
- elementProps: {
98
- ...elementProps,
99
- ...fontFieldsUpdate
100
- },
101
- otherProps: {
102
- ...otherProps,
103
- [FONT_KEY_FOR_FIELD]: update?.fontFamily
104
- }
105
- };
106
- theme = {
107
- ...prevTheme,
108
- theme: themeProps
109
- };
110
- break;
111
- default:
112
- theme = {
113
- ...prevTheme,
114
- ...(update || {})
115
- };
116
- break;
117
- }
118
- return theme;
119
- }
120
- const updateTheme = (editor, pageSt, update, actionData, triggerRender) => {
121
- const {
122
- pageProps
123
- } = pageSt || {};
124
- const {
125
- theme
126
- } = pageProps || {};
127
- const updatedTheme = getUpdatePayload(theme, update, actionData);
128
- updatePageSettings(editor, {
129
- ...(pageProps || {}),
130
- theme: updatedTheme
131
- });
132
- triggerRender();
133
- };
134
- export const useEditorTheme = () => {
135
- const editor = useSlate();
136
- const {
137
- triggerRender
138
- } = useEditorContext();
139
- const {
140
- element: pageSt
141
- } = getPageSettings(editor) || {};
142
- const {
143
- pageProps
144
- } = pageSt || {};
145
- const {
146
- theme
147
- } = pageProps || {};
148
- return {
149
- selectedTheme: theme?.theme || defaultTheme()?.theme,
150
- updateTheme: (update, actionData) => updateTheme(editor, pageSt, update, actionData, triggerRender),
151
- theme
152
- };
153
- };
@@ -1,63 +0,0 @@
1
- import { useEffect, useState } from "react";
2
- import { getElementProperty } from "../helper/theme";
3
- import { ReactEditor } from "slate-react";
4
- import { Node } from "slate";
5
- import { useEditorTheme } from "./useEditorTheme";
6
- function useThemeValues() {
7
- return {};
8
- }
9
- export default useThemeValues;
10
- export function useButtonStyle(value, key, element) {
11
- const [buttonStyle, setButtonStyle] = useState(value);
12
- const {
13
- selectedTheme
14
- } = useEditorTheme();
15
- const themeBtnProps = selectedTheme?.elementProps?.button || {};
16
- useEffect(() => {
17
- const color = getColorValue(value, key, element, themeBtnProps);
18
- setButtonStyle({
19
- color
20
- });
21
- }, [value, key, element]);
22
- return {
23
- buttonStyle
24
- };
25
- }
26
- const DEFAULT_MAP_THEMES = {
27
- textColor: "color",
28
- bgColor: "backgroundColor"
29
- };
30
- const hoverMap = (theme, format) => {
31
- const hover = theme?.hover || {};
32
- const key = DEFAULT_MAP_THEMES[format];
33
- return hover[key];
34
- };
35
- const MAP_THEME_KEYS = {
36
- ...DEFAULT_MAP_THEMES,
37
- textColorHover: hoverMap,
38
- bgColorHover: hoverMap
39
- };
40
- const getColorValue = (val, key, elementProps, themeBtnProps) => {
41
- const themeKey = MAP_THEME_KEYS[key];
42
- if (elementProps?.type === "button" && !val && themeKey) {
43
- if (typeof themeKey === "string") {
44
- return themeBtnProps[themeKey];
45
- } else {
46
- return themeKey(themeBtnProps, key);
47
- }
48
- }
49
- return val;
50
- };
51
- export function getButtonElementStyle(editor, element, stylePropertyName) {
52
- try {
53
- const path = ReactEditor.findPath(editor, element);
54
- if (path?.length) {
55
- const currentEle = Node.get(editor, path);
56
- const dom = ReactEditor.toDOMNode(editor, currentEle);
57
- const editorBtn = dom?.querySelector(".button.theme-element");
58
- return getElementProperty(editorBtn, stylePropertyName);
59
- }
60
- } catch (err) {
61
- // console.log(err);
62
- }
63
- }