@flozy/editor 10.7.0 → 10.7.2

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 (143) hide show
  1. package/dist/Editor/ChatEditor.js +17 -16
  2. package/dist/Editor/CommonEditor.js +126 -15
  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 +25 -17
  8. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  9. package/dist/Editor/Elements/Attachments/AttachmentStyles.js +16 -0
  10. package/dist/Editor/Elements/Attachments/Attachments.js +153 -11
  11. package/dist/Editor/Elements/Attachments/AttachmentsButton.js +14 -4
  12. package/dist/Editor/Elements/Button/EditorButton.js +23 -7
  13. package/dist/Editor/Elements/Color Picker/ColorButtons.js +61 -14
  14. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  15. package/dist/Editor/Elements/Color Picker/ColorPicker.js +10 -7
  16. package/dist/Editor/Elements/Color Picker/Styles.js +15 -13
  17. package/dist/Editor/Elements/Embed/Embed.js +36 -43
  18. package/dist/Editor/Elements/Embed/Image.js +240 -23
  19. package/dist/Editor/Elements/Embed/Video.js +246 -15
  20. package/dist/Editor/Elements/Form/FormField.js +1 -1
  21. package/dist/Editor/Elements/Form/Workflow/Styles.js +24 -22
  22. package/dist/Editor/Elements/Form/Workflow/constant.js +25 -1
  23. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +39 -33
  24. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +7 -4
  25. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +1 -0
  26. package/dist/Editor/Elements/FreeGrid/Options/More.js +7 -7
  27. package/dist/Editor/Elements/FreeGrid/helper.js +115 -0
  28. package/dist/Editor/Elements/FreeGrid/styles.js +9 -0
  29. package/dist/Editor/Elements/Grid/GridItem.js +1 -1
  30. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +2 -1
  31. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  32. package/dist/Editor/Elements/Table/Table.js +3 -3
  33. package/dist/Editor/Elements/Title/title.js +6 -6
  34. package/dist/Editor/Elements/TopBanner/TopBanner.js +6 -1
  35. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +8 -2
  36. package/dist/Editor/Elements/Variables/VariableButton.js +10 -1
  37. package/dist/Editor/MiniEditor.js +2 -1
  38. package/dist/Editor/Styles/EditorStyles.js +20 -5
  39. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  40. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  41. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  42. package/dist/Editor/Toolbar/FormatTools/TextSize.js +10 -13
  43. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +2 -1
  44. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +4 -2
  45. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
  46. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +19 -5
  47. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +167 -42
  48. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +16 -7
  49. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +2 -1
  50. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +69 -9
  51. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +70 -12
  52. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +439 -0
  53. package/dist/Editor/Toolbar/PopupTool/index.js +5 -2
  54. package/dist/Editor/Toolbar/toolbarGroups.js +56 -10
  55. package/dist/Editor/assets/svg/BackIcon.js +18 -0
  56. package/dist/Editor/assets/svg/ThemeIcons.js +293 -0
  57. package/dist/Editor/common/ColorPickerButton.js +38 -16
  58. package/dist/Editor/common/CustomColorPicker/index.js +130 -0
  59. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  60. package/dist/Editor/common/CustomDialog2/index.js +94 -0
  61. package/dist/Editor/common/CustomDialog2/style.js +67 -0
  62. package/dist/Editor/common/CustomSelect.js +43 -0
  63. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  64. package/dist/Editor/common/FontLoader/FontLoader.js +3 -0
  65. package/dist/Editor/common/Icon.js +28 -0
  66. package/dist/Editor/common/ImageSelector/ImageSelector.js +45 -7
  67. package/dist/Editor/common/ImageSelector/Options/Upload.js +26 -11
  68. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  69. package/dist/Editor/common/LinkSettings/NavComponents.js +6 -2
  70. package/dist/Editor/common/MentionsPopup/index.js +9 -1
  71. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  72. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  73. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  74. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  75. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  76. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
  77. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +20 -7
  78. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  79. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +3 -1
  80. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +20 -7
  81. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +11 -2
  82. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  83. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  84. package/dist/Editor/common/RnD/Utils/gridDropItem.js +28 -18
  85. package/dist/Editor/common/RnD/Utils/index.js +3 -1
  86. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +45 -58
  87. package/dist/Editor/common/RnD/VirtualElement/helper.js +320 -130
  88. package/dist/Editor/common/RnD/VirtualElement/styles.js +22 -0
  89. package/dist/Editor/common/RnD/index.js +48 -13
  90. package/dist/Editor/common/Shorthands/elements.js +62 -4
  91. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  92. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +4 -0
  93. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +20 -2
  94. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  95. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  96. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +16 -8
  97. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +36 -10
  98. package/dist/Editor/common/StyleBuilder/fieldTypes/embedUpload.js +115 -0
  99. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +16 -7
  100. package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
  101. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +2 -0
  102. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  103. package/dist/Editor/common/StyleBuilder/index.js +8 -4
  104. package/dist/Editor/common/Uploader.js +125 -17
  105. package/dist/Editor/common/UploaderWithProgress.js +183 -0
  106. package/dist/Editor/common/iconslist.js +21 -0
  107. package/dist/Editor/commonStyle.js +107 -64
  108. package/dist/Editor/helper/index.js +10 -2
  109. package/dist/Editor/helper/textIndeces.js +58 -0
  110. package/dist/Editor/helper/theme.js +203 -2
  111. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  112. package/dist/Editor/hooks/useMouseMove.js +9 -3
  113. package/dist/Editor/hooks/useThemeValues.js +63 -0
  114. package/dist/Editor/plugins/withEmbeds.js +1 -1
  115. package/dist/Editor/plugins/withHTML.js +7 -3
  116. package/dist/Editor/plugins/withTable.js +1 -1
  117. package/dist/Editor/service/fileupload.js +53 -0
  118. package/dist/Editor/theme/ThemeList.js +50 -173
  119. package/dist/Editor/theme/index.js +149 -0
  120. package/dist/Editor/themeSettings/ActiveTheme.js +82 -0
  121. package/dist/Editor/themeSettings/buttons/index.js +300 -0
  122. package/dist/Editor/themeSettings/buttons/style.js +23 -0
  123. package/dist/Editor/themeSettings/colorTheme/index.js +310 -0
  124. package/dist/Editor/themeSettings/colorTheme/style.js +81 -0
  125. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  126. package/dist/Editor/themeSettings/fonts/index.js +240 -0
  127. package/dist/Editor/themeSettings/fonts/style.js +62 -0
  128. package/dist/Editor/themeSettings/icons.js +60 -0
  129. package/dist/Editor/themeSettings/index.js +380 -0
  130. package/dist/Editor/themeSettings/style.js +299 -0
  131. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  132. package/dist/Editor/themeSettingsAI/index.js +355 -0
  133. package/dist/Editor/themeSettingsAI/saveTheme.js +202 -0
  134. package/dist/Editor/themeSettingsAI/style.js +332 -0
  135. package/dist/Editor/utils/SlateUtilityFunctions.js +182 -21
  136. package/dist/Editor/utils/accordion.js +62 -34
  137. package/dist/Editor/utils/button.js +1 -17
  138. package/dist/Editor/utils/draftToSlate.js +3 -2
  139. package/dist/Editor/utils/font.js +40 -37
  140. package/dist/Editor/utils/helper.js +97 -21
  141. package/dist/Editor/utils/insertAppHeader.js +8 -4
  142. package/package.json +4 -4
  143. 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: "",
@@ -85,7 +139,8 @@ const ELEMENTS_LIST = [{
85
139
  icon: /*#__PURE__*/_jsx(Icon, {
86
140
  icon: "orderedList"
87
141
  }),
88
- onInsert: editor => toggleBlock(editor, "orderedList", false)
142
+ onInsert: editor => toggleBlock(editor, "orderedList", false),
143
+ hideFor: ["accordion-summary"]
89
144
  }, {
90
145
  name: "Bulleted List",
91
146
  desc: "",
@@ -94,7 +149,8 @@ const ELEMENTS_LIST = [{
94
149
  icon: /*#__PURE__*/_jsx(Icon, {
95
150
  icon: "unorderedList"
96
151
  }),
97
- onInsert: editor => toggleBlock(editor, "unorderedList", false)
152
+ onInsert: editor => toggleBlock(editor, "unorderedList", false),
153
+ hideFor: ["accordion-summary"]
98
154
  }, {
99
155
  name: "Check List",
100
156
  desc: "",
@@ -103,7 +159,8 @@ const ELEMENTS_LIST = [{
103
159
  icon: /*#__PURE__*/_jsx(Icon, {
104
160
  icon: "check-list-item"
105
161
  }),
106
- onInsert: editor => toggleBlock(editor, "check-list-item", false)
162
+ onInsert: editor => toggleBlock(editor, "check-list-item", false),
163
+ hideFor: ["accordion-summary"]
107
164
  }, {
108
165
  name: "Image",
109
166
  desc: "",
@@ -240,7 +297,8 @@ const ELEMENTS_LIST = [{
240
297
  onInsert: editor => {
241
298
  Transforms.delete(editor, editor.selection); // remove text '/accordion' typed by user
242
299
  insertAccordion(editor);
243
- }
300
+ },
301
+ hideFor: ["unorderedList", "orderedList", "check-list-item"]
244
302
  }, {
245
303
  name: "Button",
246
304
  group: "Elements",
@@ -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",
@@ -6,6 +6,10 @@ const embedVideoStyle = [{
6
6
  label: "URL",
7
7
  key: "url",
8
8
  type: "text"
9
+ }, {
10
+ label: "File",
11
+ key: "url",
12
+ type: "backgroundImage"
9
13
  }]
10
14
  }, {
11
15
  tab: "Aspect Ratio",
@@ -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,11 @@ 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";
31
+ const [uploadStatus, setUploadStatus] = useState({
32
+ isUploading: false,
33
+ uploadPercentage: 0
34
+ });
28
35
  const onRemoveBG = () => {
29
36
  setBase64(null);
30
37
  onChange({
@@ -44,6 +51,9 @@ const BackgroundImage = props => {
44
51
  });
45
52
  handleClose();
46
53
  };
54
+ const getTitle = () => {
55
+ return elementProps?.type === "image" ? "Image" : elementProps?.type === "video" ? "Video" : null;
56
+ };
47
57
  return /*#__PURE__*/_jsxs(Grid, {
48
58
  item: true,
49
59
  xs: 12,
@@ -76,6 +86,11 @@ const BackgroundImage = props => {
76
86
  children: translation("REMOVE")
77
87
  }) : /*#__PURE__*/_jsx(Grid, {
78
88
  className: "uploadImageText",
89
+ sx: {
90
+ padding: 0,
91
+ background: `${theme?.palette?.editor?.inputFieldBgColor}`,
92
+ border: `1px solid ${theme?.palette?.editor?.inputFieldBorder}`
93
+ },
79
94
  children: /*#__PURE__*/_jsxs(Button, {
80
95
  component: "label",
81
96
  variant: "text",
@@ -100,7 +115,10 @@ const BackgroundImage = props => {
100
115
  open: open,
101
116
  onClose: handleClose,
102
117
  customProps: customProps,
103
- onSelectImage: onSelectImage
118
+ onSelectImage: onSelectImage,
119
+ title: getTitle(),
120
+ disableProgress: disableProgress,
121
+ setUploadStatus: setUploadStatus
104
122
  })]
105
123
  });
106
124
  };
@@ -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
- let lockSpacing = elementProps[lockKeyVal];
26
+ const {
27
+ selectedTheme
28
+ } = useEditorTheme();
29
+ const {
30
+ bannerSpacing,
31
+ lockbannerSpacing
32
+ } = selectedTheme?.elementProps[elementProps?.type] || {};
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[elementProps?.type] || {};
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: 'relative',
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: '3px'
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: '100%',
62
- display: 'flex',
63
- justifyContent: 'space-between',
64
- alignItems: 'flex-start',
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
- border: activeCard ? "1px solid #2563EB" : "1px solid #C8D8FA",
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 getLable = label === 'Text' ? translation("selectTextColor") : label === 'Background' ? translation("selectBgColor") : translation(label);
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: 'flex',
62
- alignItems: 'center',
63
- '& svg': {
64
- width: '20px',
65
- height: '20px'
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: 'inline-block'
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: 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
- return parseInt(size || 16);
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 value = isBreakpoint ? getBreakPointsValue(val, size?.device) : val;
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: '100%',
128
+ width: "100%",
121
129
  onChange: onChange,
122
130
  val: value,
123
131
  webFont: true