@flozy/editor 10.9.6 → 10.9.8

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 (159) hide show
  1. package/dist/Editor/ChatEditor.js +17 -16
  2. package/dist/Editor/CommonEditor.js +138 -27
  3. package/dist/Editor/DialogWrapper.js +31 -25
  4. package/dist/Editor/Editor.css +39 -11
  5. package/dist/Editor/Elements/AI/PopoverAIInput.js +11 -3
  6. package/dist/Editor/Elements/AI/Styles.js +1 -0
  7. package/dist/Editor/Elements/Accordion/Accordion.js +28 -22
  8. package/dist/Editor/Elements/Accordion/AccordionButton.js +12 -3
  9. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  10. package/dist/Editor/Elements/Attachments/AttachmentStyles.js +16 -0
  11. package/dist/Editor/Elements/Attachments/Attachments.js +153 -11
  12. package/dist/Editor/Elements/Attachments/AttachmentsButton.js +8 -3
  13. package/dist/Editor/Elements/Button/EditorButton.js +23 -7
  14. package/dist/Editor/Elements/Color Picker/ColorButtons.js +61 -14
  15. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  16. package/dist/Editor/Elements/Color Picker/ColorPicker.js +10 -7
  17. package/dist/Editor/Elements/Color Picker/Styles.js +15 -13
  18. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +134 -55
  19. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/SelectV1.js +7 -8
  20. package/dist/Editor/Elements/DataView/Layouts/DataTypes/PersonType.js +8 -3
  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.css +5 -0
  24. package/dist/Editor/Elements/Embed/Embed.js +36 -43
  25. package/dist/Editor/Elements/Embed/Image.js +236 -23
  26. package/dist/Editor/Elements/Embed/Video.js +246 -15
  27. package/dist/Editor/Elements/Form/FormField.js +1 -1
  28. package/dist/Editor/Elements/Form/Workflow/Styles.js +24 -22
  29. package/dist/Editor/Elements/Form/Workflow/constant.js +25 -1
  30. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +39 -33
  31. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +7 -4
  32. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +1 -0
  33. package/dist/Editor/Elements/FreeGrid/Options/More.js +7 -7
  34. package/dist/Editor/Elements/FreeGrid/helper.js +115 -0
  35. package/dist/Editor/Elements/FreeGrid/styles.js +15 -0
  36. package/dist/Editor/Elements/Grid/GridItem.js +1 -1
  37. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +2 -1
  38. package/dist/Editor/Elements/SimpleText/index.js +4 -1
  39. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  40. package/dist/Editor/Elements/Table/Table.js +5 -4
  41. package/dist/Editor/Elements/Table/TableCell.js +10 -3
  42. package/dist/Editor/Elements/Title/title.js +10 -11
  43. package/dist/Editor/Elements/TopBanner/TopBanner.js +4 -2
  44. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +5 -3
  45. package/dist/Editor/Elements/Variables/VariableButton.js +10 -1
  46. package/dist/Editor/MiniEditor.js +2 -1
  47. package/dist/Editor/Styles/EditorStyles.js +20 -8
  48. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  49. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  50. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  51. package/dist/Editor/Toolbar/FormatTools/TextSize.js +33 -29
  52. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +2 -1
  53. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +4 -2
  54. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +25 -23
  55. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +25 -7
  56. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +167 -42
  57. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +24 -8
  58. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +2 -1
  59. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +70 -10
  60. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +73 -14
  61. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +439 -0
  62. package/dist/Editor/Toolbar/PopupTool/index.js +7 -4
  63. package/dist/Editor/Toolbar/toolbarGroups.js +56 -10
  64. package/dist/Editor/assets/svg/BackIcon.js +18 -0
  65. package/dist/Editor/assets/svg/ThemeIcons.js +293 -0
  66. package/dist/Editor/common/ColorPickerButton.js +38 -16
  67. package/dist/Editor/common/CustomColorPicker/index.js +130 -0
  68. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  69. package/dist/Editor/common/CustomDialog2/index.js +94 -0
  70. package/dist/Editor/common/CustomDialog2/style.js +67 -0
  71. package/dist/Editor/common/CustomSelect.js +43 -0
  72. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  73. package/dist/Editor/common/FontLoader/FontLoader.js +4 -0
  74. package/dist/Editor/common/Icon.js +28 -0
  75. package/dist/Editor/common/ImageSelector/ImageSelector.js +45 -7
  76. package/dist/Editor/common/ImageSelector/Options/Upload.js +26 -11
  77. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  78. package/dist/Editor/common/LinkSettings/NavComponents.js +6 -2
  79. package/dist/Editor/common/MentionsPopup/index.js +9 -1
  80. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  81. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  82. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  83. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  84. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  85. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
  86. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +20 -7
  87. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  88. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +9 -1
  89. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +20 -7
  90. package/dist/Editor/common/RnD/GuideLines/styles.js +1 -1
  91. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +11 -2
  92. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  93. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  94. package/dist/Editor/common/RnD/Utils/gridDropItem.js +28 -18
  95. package/dist/Editor/common/RnD/Utils/index.js +3 -1
  96. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +45 -58
  97. package/dist/Editor/common/RnD/VirtualElement/helper.js +320 -130
  98. package/dist/Editor/common/RnD/VirtualElement/styles.js +22 -0
  99. package/dist/Editor/common/RnD/index.js +48 -13
  100. package/dist/Editor/common/Shorthands/elements.js +62 -4
  101. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  102. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +4 -0
  103. package/dist/Editor/common/StyleBuilder/fieldStyle.js +1 -0
  104. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +15 -2
  105. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  106. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  107. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +16 -8
  108. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +36 -10
  109. package/dist/Editor/common/StyleBuilder/fieldTypes/embedUpload.js +115 -0
  110. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +16 -7
  111. package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
  112. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +2 -0
  113. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +0 -1
  114. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  115. package/dist/Editor/common/StyleBuilder/formStyle.js +19 -13
  116. package/dist/Editor/common/StyleBuilder/index.js +8 -4
  117. package/dist/Editor/common/Uploader.js +125 -17
  118. package/dist/Editor/common/UploaderWithProgress.js +183 -0
  119. package/dist/Editor/common/iconslist.js +21 -0
  120. package/dist/Editor/commonStyle.js +64 -45
  121. package/dist/Editor/helper/index.js +10 -2
  122. package/dist/Editor/helper/textIndeces.js +58 -0
  123. package/dist/Editor/helper/theme.js +203 -2
  124. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  125. package/dist/Editor/hooks/useMouseMove.js +9 -3
  126. package/dist/Editor/hooks/useTable.js +62 -1
  127. package/dist/Editor/hooks/useThemeValues.js +63 -0
  128. package/dist/Editor/plugins/withEmbeds.js +12 -1
  129. package/dist/Editor/plugins/withHTML.js +58 -3
  130. package/dist/Editor/plugins/withTable.js +1 -1
  131. package/dist/Editor/service/fileupload.js +70 -0
  132. package/dist/Editor/theme/ThemeList.js +50 -173
  133. package/dist/Editor/theme/index.js +149 -0
  134. package/dist/Editor/themeSettings/ActiveTheme.js +82 -0
  135. package/dist/Editor/themeSettings/buttons/index.js +300 -0
  136. package/dist/Editor/themeSettings/buttons/style.js +23 -0
  137. package/dist/Editor/themeSettings/colorTheme/index.js +310 -0
  138. package/dist/Editor/themeSettings/colorTheme/style.js +81 -0
  139. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  140. package/dist/Editor/themeSettings/fonts/index.js +240 -0
  141. package/dist/Editor/themeSettings/fonts/style.js +62 -0
  142. package/dist/Editor/themeSettings/icons.js +60 -0
  143. package/dist/Editor/themeSettings/index.js +380 -0
  144. package/dist/Editor/themeSettings/style.js +299 -0
  145. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  146. package/dist/Editor/themeSettingsAI/index.js +355 -0
  147. package/dist/Editor/themeSettingsAI/saveTheme.js +202 -0
  148. package/dist/Editor/themeSettingsAI/style.js +332 -0
  149. package/dist/Editor/utils/SlateUtilityFunctions.js +189 -40
  150. package/dist/Editor/utils/accordion.js +68 -40
  151. package/dist/Editor/utils/button.js +1 -17
  152. package/dist/Editor/utils/draftToSlate.js +3 -2
  153. package/dist/Editor/utils/events.js +94 -89
  154. package/dist/Editor/utils/font.js +40 -37
  155. package/dist/Editor/utils/formfield.js +2 -2
  156. package/dist/Editor/utils/helper.js +98 -22
  157. package/dist/Editor/utils/insertAppHeader.js +8 -4
  158. package/package.json +4 -4
  159. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +0 -454
@@ -1,12 +1,12 @@
1
- import React, { useEffect, useState } from "react";
2
- import { Editor, Range, Transforms } from "slate";
3
- import { useSelected, useSlateStatic, ReactEditor } from "slate-react";
1
+ import React, { useState } from "react";
2
+ import { Transforms } from "slate";
3
+ import { useSlateStatic, ReactEditor } from "slate-react";
4
4
  import AccordionBtnPopup from "./AccordionBtnPopup";
5
5
  import { IconButton, Tooltip, Box } from "@mui/material";
6
6
  import DeleteIcon from "@mui/icons-material/Delete";
7
7
  import { GridSettingsIcon } from "../../common/iconslist";
8
8
  import Icon from "../../common/Icon";
9
- import { useEditorContext, useEditorSelection } from "../../hooks/useMouseMove";
9
+ import { useEditorContext } from "../../hooks/useMouseMove";
10
10
  import useCommonStyle from "../../commonStyle";
11
11
  import { getBorderColor, getTextColor } from "../../helper";
12
12
  import { getBreakPointsValue, getTRBLBreakPoints } from "../../helper/theme";
@@ -75,8 +75,6 @@ const Accordion = props => {
75
75
  const [toggle, setToggle] = useState(false);
76
76
  const [openSetttings, setOpenSettings] = useState(false);
77
77
  const editor = useSlateStatic();
78
- const [showTool] = useEditorSelection(editor);
79
- const selected = useSelected();
80
78
  const path = ReactEditor.findPath(editor, element);
81
79
  const {
82
80
  textColor,
@@ -94,25 +92,33 @@ const Accordion = props => {
94
92
  theme
95
93
  } = useEditorContext();
96
94
  const classes = useCommonStyle(theme);
97
- useEffect(() => {
98
- if (!editor.selection || !children[1]) return;
99
- try {
100
- const accordionDetailsElement = element.children?.[1];
101
- const detailsPath = ReactEditor.findPath(editor, accordionDetailsElement);
102
- const detailsRange = Editor.range(editor, detailsPath);
103
- const isInside = Range.intersection(detailsRange, editor.selection);
104
- if (isInside && !toggle) {
105
- setToggle(true);
106
- }
107
- } catch (e) {
108
- console.error(e);
109
- }
110
- }, [editor.selection, children]);
95
+
96
+ // useEffect(() => {
97
+ // if (!editor.selection || !children[1]) return;
98
+
99
+ // try {
100
+ // const accordionDetailsElement = element.children?.[1];
101
+
102
+ // const detailsPath = ReactEditor.findPath(editor, accordionDetailsElement);
103
+
104
+ // const detailsRange = Editor.range(editor, detailsPath);
105
+
106
+ // const isInside = Range.intersection(detailsRange, editor.selection);
107
+
108
+ // if (isInside && !toggle) {
109
+ // setToggle(true);
110
+ // }
111
+ // } catch (e) {
112
+ // console.error(e);
113
+ // }
114
+ // }, [editor.selection, children]);
115
+
111
116
  const onToggle = () => {
112
117
  setToggle(!toggle);
118
+ Transforms.deselect(editor);
113
119
  };
114
120
  const ToolBar = () => {
115
- return selected && !showTool ? /*#__PURE__*/_jsxs("div", {
121
+ return toggle ? /*#__PURE__*/_jsxs("div", {
116
122
  className: "element-toolbar hr",
117
123
  contentEditable: false,
118
124
  style: {
@@ -206,7 +212,6 @@ const Accordion = props => {
206
212
  className: "accordion-title"
207
213
  // style={{ background: bgColor, ...borderStyle }}
208
214
  ,
209
- onClick: onToggle,
210
215
  children: [/*#__PURE__*/_jsx(Box, {
211
216
  role: "button",
212
217
  className: "accordion-summary-collapse-btn",
@@ -221,6 +226,7 @@ const Accordion = props => {
221
226
  },
222
227
  cursor: "pointer"
223
228
  },
229
+ onClick: onToggle,
224
230
  children: !toggle ? /*#__PURE__*/_jsx(Icon, {
225
231
  icon: "accordionArrow"
226
232
  }) : /*#__PURE__*/_jsx(Icon, {
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { insertAccordion } from "../../utils/accordion";
2
+ import { insertAccordion, toggleAccordion } from "../../utils/accordion";
3
3
  import ToolbarIcon from "../../common/ToolbarIcon";
4
4
  import Icon from "../../common/Icon";
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -7,13 +7,22 @@ const AccordionButton = props => {
7
7
  const {
8
8
  editor,
9
9
  icoBtnType,
10
- customProps
10
+ customProps,
11
+ commonProps
11
12
  } = props;
12
13
  const {
13
14
  translation
14
15
  } = customProps;
16
+ const {
17
+ listType
18
+ } = commonProps || {};
19
+ const isAccordion = listType === "accordion-summary";
15
20
  const handleInsertAccordion = () => {
16
- insertAccordion(editor);
21
+ if (isAccordion) {
22
+ toggleAccordion(editor);
23
+ } else {
24
+ insertAccordion(editor);
25
+ }
17
26
  };
18
27
  return /*#__PURE__*/_jsx(ToolbarIcon, {
19
28
  icon: /*#__PURE__*/_jsx(Icon, {
@@ -268,7 +268,7 @@ function AppHeader(props) {
268
268
  style: {
269
269
  display: "inline-flex",
270
270
  alignItems: "center",
271
- color: textColor,
271
+ color: textColor || "#000000",
272
272
  fontSize: logoFontSize,
273
273
  fontFamily: titleFontFamily,
274
274
  justifyContent: isLogoRight ? "end" : "start"
@@ -323,7 +323,7 @@ function AppHeader(props) {
323
323
  fontFamily: fontFamily,
324
324
  textTransform: "none",
325
325
  fontSize: fontSize || "16px",
326
- color: textColor || "#FFF",
326
+ color: textColor || "#000",
327
327
  background: bgColor || "none",
328
328
  border: borderColorHover ? `1px solid transparent` : "none",
329
329
  "& .m-settings": {
@@ -339,7 +339,7 @@ function AppHeader(props) {
339
339
  background: "#FFF"
340
340
  },
341
341
  "&:hover": {
342
- color: textColorHover || textColor || "#FFF",
342
+ color: textColorHover || textColor || "#000",
343
343
  background: bgColorHover || bgColor || "none",
344
344
  border: borderColorHover ? `1px solid ${borderColorHover}` : "none",
345
345
  "& .m-settings": {
@@ -0,0 +1,16 @@
1
+ const useAttachmentStyle = theme => ({
2
+ attachmentRoot: {
3
+ "& .uploadinDetails": {
4
+ display: "flex",
5
+ gap: "10px",
6
+ "& .MuiCircularProgress-root": {
7
+ width: "15px !important",
8
+ height: "15px !important"
9
+ }
10
+ },
11
+ "& .cancelBtn": {
12
+ display: "contents"
13
+ }
14
+ }
15
+ });
16
+ export default useAttachmentStyle;
@@ -1,33 +1,141 @@
1
- import React from "react";
2
- import { Box, Card, CardMedia, CardContent, Typography } from "@mui/material";
1
+ import React, { useEffect, useRef, useState } from "react";
2
+ import Box from '@mui/material/Box';
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';
3
9
  import PictureAsPdfIcon from "@mui/icons-material/PictureAsPdf";
4
10
  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";
5
14
  import { formatDate } from "../../utils/helper";
6
15
  import Icon from "../../common/Icon";
7
16
  import { getEmbedURL } from "../../helper";
8
17
  import Video from "../Embed/Video";
18
+ import { formatFileSize } from "../../service/fileupload";
19
+ import { useEditorContext } from "../../hooks/useMouseMove";
20
+ import useAttachmentStyle from "./AttachmentStyles";
9
21
  import { jsx as _jsx } from "react/jsx-runtime";
22
+ import { Fragment as _Fragment } from "react/jsx-runtime";
10
23
  import { jsxs as _jsxs } from "react/jsx-runtime";
11
24
  const Attachments = props => {
12
25
  const {
13
26
  attributes,
14
27
  element,
15
- children
28
+ children,
29
+ customProps
16
30
  } = props;
17
31
  const {
18
32
  url,
19
33
  type,
20
- date
34
+ date,
35
+ fileName,
36
+ isUploading,
37
+ file,
38
+ fileSize,
39
+ uniqueId
21
40
  } = element;
41
+ const {
42
+ resumeUploadState,
43
+ services,
44
+ uploadFile,
45
+ uploadTerminator
46
+ } = customProps || {};
22
47
  const {
23
48
  isEmbed
24
49
  } = getEmbedURL(element, true);
25
50
  const getLastName = url?.split("/").pop();
26
- const fileName = `${decodeURIComponent(getLastName)}`;
51
+ const fileName2 = `${decodeURIComponent(getLastName)}`;
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
+ }, []);
27
134
  return !isEmbed ? /*#__PURE__*/_jsxs(Box, {
28
135
  component: "div",
29
136
  className: "attachment-wrpr-ev2",
30
137
  ...attributes,
138
+ sx: classes?.attachmentRoot,
31
139
  contentEditable: false,
32
140
  style: {
33
141
  display: "block"
@@ -41,7 +149,8 @@ const Attachments = props => {
41
149
  padding: "8px",
42
150
  boxShadow: "none",
43
151
  border: "1px solid #eae9e9",
44
- backgroundColor: "#F7F7F7"
152
+ backgroundColor: "#F7F7F7",
153
+ position: "relative"
45
154
  },
46
155
  children: [/*#__PURE__*/_jsx(CardMedia, {
47
156
  sx: {
@@ -67,7 +176,7 @@ const Attachments = props => {
67
176
  })
68
177
  }), /*#__PURE__*/_jsxs(CardContent, {
69
178
  component: "a",
70
- href: url,
179
+ href: redirectURL,
71
180
  target: "_blank",
72
181
  style: {
73
182
  display: "flex",
@@ -76,7 +185,8 @@ const Attachments = props => {
76
185
  padding: "8px",
77
186
  textDecoration: "none",
78
187
  flexDirection: "column",
79
- color: "#0F172A"
188
+ color: "#0F172A",
189
+ flexGrow: uploadStatus?.isUploading && 1
80
190
  },
81
191
  children: [/*#__PURE__*/_jsx(Typography, {
82
192
  style: {
@@ -85,16 +195,48 @@ const Attachments = props => {
85
195
  fontSize: "14px"
86
196
  },
87
197
  component: "div",
88
- children: fileName
89
- }), /*#__PURE__*/_jsx(Typography, {
198
+ className: "truncateText",
199
+ children: fileName2 || fileName
200
+ }), /*#__PURE__*/_jsxs(Typography, {
90
201
  style: {
91
202
  fontWeight: "normal",
92
203
  color: "#64748b",
93
204
  fontSize: "11px"
94
205
  },
95
206
  component: "div",
96
- children: formatDate(date)
207
+ className: "uploadinDetails",
208
+ children: [uploadStatus?.isUploading && /*#__PURE__*/_jsxs(_Fragment, {
209
+ children: [/*#__PURE__*/_jsx(Typography, {
210
+ sx: {
211
+ fontSize: 12,
212
+ color: "#64748b"
213
+ },
214
+ children: `${formatFileSize(fileSize)}`
215
+ }), /*#__PURE__*/_jsx(CircularProgress, {
216
+ variant: "determinate",
217
+ value: uploadStatus?.uploadPercentage ?? 0,
218
+ size: 20,
219
+ thickness: 5
220
+ }), /*#__PURE__*/_jsx(Typography, {
221
+ sx: {
222
+ fontSize: 12,
223
+ color: "#64748b"
224
+ },
225
+ children: `${uploadStatus?.uploadPercentage?.toFixed(0) ?? 0}%`
226
+ })]
227
+ }), !uploadStatus?.isUploading && formatDate(date)]
97
228
  })]
229
+ }), uploadStatus?.isUploading && /*#__PURE__*/_jsx(IconButton, {
230
+ onClick: cancelUpload,
231
+ sx: {
232
+ position: "absolute",
233
+ right: 4,
234
+ top: 4
235
+ },
236
+ "aria-label": "Cancel upload",
237
+ size: "small",
238
+ className: "cancelBtn",
239
+ children: /*#__PURE__*/_jsx(HighlightOffRoundedIcon, {})
98
240
  })]
99
241
  }), /*#__PURE__*/_jsx("span", {
100
242
  contentEditable: false,
@@ -4,6 +4,7 @@ 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";
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  import { Fragment as _Fragment } from "react/jsx-runtime";
9
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -21,9 +22,13 @@ const AttachmentsButton = props => {
21
22
  SetOpen(true);
22
23
  };
23
24
  const onSelectImage = url => {
24
- insertAttachments(editor, {
25
- url
26
- });
25
+ if (!url?.isUpload && url?.embedURL) {
26
+ insertAttachments(editor, {
27
+ url: url?.embedURL
28
+ });
29
+ } else {
30
+ insertUploadStatusNodeForAttachment(editor, url?.file);
31
+ }
27
32
  handleClose();
28
33
  };
29
34
  const handleClose = () => {
@@ -9,6 +9,8 @@ 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";
12
14
  import Icon from "../../common/Icon";
13
15
  import { useEditorContext } from "../../hooks/useMouseMove";
14
16
  import useCommonStyle from "../../commonStyle";
@@ -40,6 +42,12 @@ const EditorButton = props => {
40
42
  const [openMoreOptions, setOpenMoreOptions] = useState(false);
41
43
  const [, setIconLoaded] = useState(false);
42
44
  const classes = useCommonStyle(appTheme);
45
+ const {
46
+ theme: selectedTheme
47
+ } = useEditorTheme();
48
+ const {
49
+ buttonTheme
50
+ } = getTheme(selectedTheme);
43
51
  const {
44
52
  label,
45
53
  bgColor,
@@ -53,8 +61,8 @@ const EditorButton = props => {
53
61
  fontFamily,
54
62
  textColorHover,
55
63
  bgColorHover,
64
+ // buttonIcon,
56
65
  borderColorHover,
57
- buttonIcon,
58
66
  iconPosition = "start",
59
67
  borderStyle,
60
68
  borderWidth,
@@ -75,6 +83,7 @@ const EditorButton = props => {
75
83
  };
76
84
  const isTrigger = linkType === "nextTrigger" || linkType === "prevTrigger";
77
85
  const refURl = isTrigger ? buttonLink?.url : url;
86
+ const buttonIcon = element?.buttonIcon || buttonTheme?.buttonIcon;
78
87
  const BtnIcon = buttonIcon ? buttonIcon : null;
79
88
  windowVar.lastButtonProps = element;
80
89
  const handleTrigger = async () => {
@@ -165,6 +174,7 @@ const EditorButton = props => {
165
174
  display: "inline-flex",
166
175
  color: "rgba(0, 0, 0, 0.54)",
167
176
  marginBottom: "0px !important",
177
+ ...classes.buttonMoreOption,
168
178
  ...classes.buttonMoreOption3
169
179
  },
170
180
  ...btnProps,
@@ -265,19 +275,14 @@ const EditorButton = props => {
265
275
  display: "inline-block"
266
276
  },
267
277
  children: [/*#__PURE__*/_jsxs(Box, {
278
+ className: `btn textAlign-${tAlign} button theme-element`,
268
279
  ref: buttonRef,
269
- className: `btn textAlign-${tAlign}`,
270
280
  sx: {
271
281
  textDecoration: "none",
272
- background: bgColor || "rgb(30, 75, 122)",
273
282
  borderBlockStyle: "solid",
274
- borderColor: borderColor || "transparent",
275
283
  borderWidth: borderWidth !== undefined ? borderWidth : borderColor || borderColorHover ? "1px" : "0px",
276
284
  ...btnSp,
277
285
  borderStyle: borderStyle || "solid",
278
- color: `${textColor || "#FFFFFF"}`,
279
- fontSize: textSize || "inherit",
280
- fontFamily: fontFamily || "PoppinsRegular",
281
286
  display: "inline-flex",
282
287
  alignItems: "center",
283
288
  position: "relative",
@@ -292,6 +297,17 @@ const EditorButton = props => {
292
297
  "& .element-toolbar": {
293
298
  display: "flex"
294
299
  }
300
+ },
301
+ color: textColor ? `${textColor} !important` : "#FFFFFF",
302
+ fontSize: textSize ? `${textSize}px !important` : "inherit",
303
+ fontFamily: fontFamily ? `${fontFamily} !important` : "PoppinsRegular",
304
+ background: `${bgColor} !important`,
305
+ borderColor: `${borderColor} !important`,
306
+ borderRadius: {
307
+ ...getBreakPointsValue(borderRadius || buttonTheme?.borderRadius || {}, null, "overrideBorderRadius", true)
308
+ },
309
+ padding: {
310
+ ...getTRBLBreakPoints(bannerSpacing || buttonTheme?.bannerSpacing || {})
295
311
  }
296
312
  },
297
313
  ...buttonProps,
@@ -1,11 +1,15 @@
1
1
  import React, { useState } from "react";
2
- import { Box, IconButton, Popover } from "@mui/material";
2
+ import { Box, IconButton, Popover, Typography, useTheme } 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";
7
10
  import { jsx as _jsx } from "react/jsx-runtime";
8
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
+ import { Fragment as _Fragment } from "react/jsx-runtime";
9
13
  let c = [];
10
14
  const ColorChunks = (recentColors = []) => [...recentColors, ...colors].reduce((a, b, i) => {
11
15
  if (i % 7 === 0) {
@@ -32,8 +36,8 @@ const SingleColorButton = ({
32
36
  width: "100%",
33
37
  display: "flex",
34
38
  alignItems: "center",
35
- padding: padding || "8px 0px",
36
- justifyContent: "center"
39
+ padding: padding || "8px 0px"
40
+ // justifyContent: "center",
37
41
  },
38
42
  children: [crs.map(m => /*#__PURE__*/_jsx(Button, {
39
43
  onClick: handleSelect(m),
@@ -110,12 +114,18 @@ const ColorButtons = props => {
110
114
  openColorTool,
111
115
  onClose,
112
116
  onColorPickerClick,
117
+ disableEditTheme,
113
118
  defaultColors = []
114
119
  } = props;
115
120
  const [row1, ...restRows] = ColorChunks([]);
116
121
  const [anchorEl, setAnchorEl] = useState(null);
117
122
  const open = Boolean(anchorEl);
118
123
  const firstRow = defaultColors?.length ? defaultColors : row1;
124
+ const theme = useTheme();
125
+ const editor = useSlateStatic();
126
+ const {
127
+ setOpenTheme
128
+ } = useEditorContext();
119
129
  const handleMore = e => {
120
130
  setAnchorEl(e.currentTarget);
121
131
  };
@@ -128,6 +138,7 @@ const ColorButtons = props => {
128
138
  const handleSelect = color => () => {
129
139
  onSelect(color);
130
140
  };
141
+ const colorVars = theme?.vars?.colors || {};
131
142
  return /*#__PURE__*/_jsxs(Box, {
132
143
  component: "span",
133
144
  sx: classes.colorButtons,
@@ -144,7 +155,7 @@ const ColorButtons = props => {
144
155
  activeColor: activeColor
145
156
  }, `si_btn_row1_${m}_${i}`);
146
157
  })
147
- }), /*#__PURE__*/_jsxs(Popover, {
158
+ }), /*#__PURE__*/_jsx(Popover, {
148
159
  open: open || openColorTool,
149
160
  anchorEl: anchorEl || openColorTool,
150
161
  onClose: handleClose,
@@ -158,9 +169,40 @@ const ColorButtons = props => {
158
169
  },
159
170
  sx: classes.colorPopper,
160
171
  className: "colorPopper",
161
- children: [/*#__PURE__*/_jsx(Box, {
172
+ children: /*#__PURE__*/_jsxs(Box, {
162
173
  sx: classes.colorButtonsInner,
163
- children: restRows.map((m, i) => {
174
+ children: [Object.values(colorVars)?.length ? /*#__PURE__*/_jsxs(_Fragment, {
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) => {
164
206
  return /*#__PURE__*/_jsx(SingleColorButton, {
165
207
  id: `p2_${id}`,
166
208
  crs: m,
@@ -169,14 +211,19 @@ const ColorButtons = props => {
169
211
  classes: classes,
170
212
  activeColor: activeColor
171
213
  }, `si_btn_${m}_${i}`);
172
- })
173
- }), forMiniTool ? /*#__PURE__*/_jsx(IconButton, {
174
- onClick: onColorPickerClick,
175
- children: /*#__PURE__*/_jsx("img", {
176
- src: ColorPicker,
177
- alt: "color wheel"
178
- })
179
- }) : null]
214
+ }), forMiniTool ? /*#__PURE__*/_jsx(IconButton, {
215
+ onClick: onColorPickerClick,
216
+ style: {
217
+ alignSelf: "start",
218
+ margin: "6px",
219
+ padding: "0px"
220
+ },
221
+ children: /*#__PURE__*/_jsx("img", {
222
+ src: ColorPicker,
223
+ alt: "color wheel"
224
+ })
225
+ }) : null]
226
+ })
180
227
  })]
181
228
  });
182
229
  };
@@ -60,4 +60,28 @@
60
60
  padding: 0 15px !important;
61
61
  width: 60px !important;
62
62
  flex-shrink: 0;
63
- }
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
+ }