@flozy/editor 10.6.7 → 10.6.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 (128) hide show
  1. package/dist/Editor/ChatEditor.js +17 -16
  2. package/dist/Editor/CommonEditor.js +116 -13
  3. package/dist/Editor/DialogWrapper.js +31 -25
  4. package/dist/Editor/Editor.css +31 -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/Button/EditorButton.js +23 -7
  10. package/dist/Editor/Elements/Color Picker/ColorButtons.js +61 -14
  11. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  12. package/dist/Editor/Elements/Color Picker/ColorPicker.js +10 -7
  13. package/dist/Editor/Elements/Color Picker/Styles.js +15 -13
  14. package/dist/Editor/Elements/Embed/Video.js +1 -1
  15. package/dist/Editor/Elements/Form/FormField.js +1 -1
  16. package/dist/Editor/Elements/Form/Workflow/Styles.js +24 -22
  17. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +31 -30
  18. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +7 -4
  19. package/dist/Editor/Elements/FreeGrid/Options/More.js +7 -7
  20. package/dist/Editor/Elements/FreeGrid/helper.js +115 -0
  21. package/dist/Editor/Elements/FreeGrid/styles.js +9 -0
  22. package/dist/Editor/Elements/Grid/GridItem.js +1 -1
  23. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  24. package/dist/Editor/Elements/Table/Table.js +3 -3
  25. package/dist/Editor/Elements/Title/title.js +6 -6
  26. package/dist/Editor/Elements/Variables/VariableButton.js +10 -1
  27. package/dist/Editor/MiniEditor.js +2 -1
  28. package/dist/Editor/Styles/EditorStyles.js +9 -5
  29. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  30. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  31. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  32. package/dist/Editor/Toolbar/FormatTools/TextSize.js +10 -13
  33. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +2 -1
  34. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +4 -2
  35. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
  36. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +4 -2
  37. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +167 -42
  38. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +7 -4
  39. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +2 -1
  40. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +69 -9
  41. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +58 -10
  42. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +439 -0
  43. package/dist/Editor/Toolbar/PopupTool/index.js +5 -2
  44. package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
  45. package/dist/Editor/assets/svg/BackIcon.js +18 -0
  46. package/dist/Editor/assets/svg/ThemeIcons.js +293 -0
  47. package/dist/Editor/common/ColorPickerButton.js +38 -16
  48. package/dist/Editor/common/CustomColorPicker/index.js +130 -0
  49. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  50. package/dist/Editor/common/CustomDialog2/index.js +94 -0
  51. package/dist/Editor/common/CustomDialog2/style.js +67 -0
  52. package/dist/Editor/common/CustomSelect.js +43 -0
  53. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  54. package/dist/Editor/common/FontLoader/FontLoader.js +3 -0
  55. package/dist/Editor/common/Icon.js +28 -0
  56. package/dist/Editor/common/ImageSelector/ImageSelector.js +2 -2
  57. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  58. package/dist/Editor/common/LinkSettings/NavComponents.js +6 -2
  59. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  60. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  61. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  62. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  63. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  64. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
  65. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +3 -2
  66. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  67. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +3 -1
  68. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +3 -2
  69. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +11 -2
  70. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  71. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  72. package/dist/Editor/common/RnD/Utils/gridDropItem.js +28 -18
  73. package/dist/Editor/common/RnD/Utils/index.js +3 -1
  74. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +45 -58
  75. package/dist/Editor/common/RnD/VirtualElement/helper.js +320 -130
  76. package/dist/Editor/common/RnD/VirtualElement/styles.js +22 -0
  77. package/dist/Editor/common/RnD/index.js +42 -11
  78. package/dist/Editor/common/Shorthands/elements.js +54 -0
  79. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  80. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +4 -0
  81. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +5 -0
  82. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  83. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  84. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +16 -8
  85. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +36 -10
  86. package/dist/Editor/common/StyleBuilder/fieldTypes/embedUpload.js +115 -0
  87. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +16 -7
  88. package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
  89. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +2 -0
  90. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  91. package/dist/Editor/common/Uploader.js +16 -0
  92. package/dist/Editor/common/iconslist.js +21 -0
  93. package/dist/Editor/commonStyle.js +107 -64
  94. package/dist/Editor/helper/index.js +7 -2
  95. package/dist/Editor/helper/textIndeces.js +58 -0
  96. package/dist/Editor/helper/theme.js +203 -2
  97. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  98. package/dist/Editor/hooks/useMouseMove.js +9 -3
  99. package/dist/Editor/hooks/useThemeValues.js +63 -0
  100. package/dist/Editor/plugins/withEmbeds.js +1 -1
  101. package/dist/Editor/plugins/withHTML.js +3 -1
  102. package/dist/Editor/plugins/withTable.js +1 -1
  103. package/dist/Editor/theme/ThemeList.js +50 -173
  104. package/dist/Editor/theme/index.js +149 -0
  105. package/dist/Editor/themeSettings/ActiveTheme.js +82 -0
  106. package/dist/Editor/themeSettings/buttons/index.js +300 -0
  107. package/dist/Editor/themeSettings/buttons/style.js +23 -0
  108. package/dist/Editor/themeSettings/colorTheme/index.js +310 -0
  109. package/dist/Editor/themeSettings/colorTheme/style.js +81 -0
  110. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  111. package/dist/Editor/themeSettings/fonts/index.js +240 -0
  112. package/dist/Editor/themeSettings/fonts/style.js +62 -0
  113. package/dist/Editor/themeSettings/icons.js +60 -0
  114. package/dist/Editor/themeSettings/index.js +380 -0
  115. package/dist/Editor/themeSettings/style.js +299 -0
  116. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  117. package/dist/Editor/themeSettingsAI/index.js +355 -0
  118. package/dist/Editor/themeSettingsAI/saveTheme.js +202 -0
  119. package/dist/Editor/themeSettingsAI/style.js +332 -0
  120. package/dist/Editor/utils/SlateUtilityFunctions.js +229 -24
  121. package/dist/Editor/utils/accordion.js +50 -24
  122. package/dist/Editor/utils/button.js +1 -17
  123. package/dist/Editor/utils/draftToSlate.js +3 -2
  124. package/dist/Editor/utils/font.js +40 -37
  125. package/dist/Editor/utils/helper.js +97 -21
  126. package/dist/Editor/utils/insertAppHeader.js +8 -4
  127. package/package.json +4 -4
  128. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +0 -454
@@ -55,6 +55,60 @@ const ELEMENTS_LIST = [{
55
55
  icon: "headingThree"
56
56
  }),
57
57
  onInsert: editor => toggleBlock(editor, "headingThree", false)
58
+ }, {
59
+ name: "Heading 4",
60
+ desc: "",
61
+ group: "Text",
62
+ type: "headingFour",
63
+ icon: /*#__PURE__*/_jsx(Icon, {
64
+ icon: "headingFour"
65
+ }),
66
+ onInsert: editor => toggleBlock(editor, "headingFour", false)
67
+ }, {
68
+ name: "Heading 5",
69
+ desc: "",
70
+ group: "Text",
71
+ type: "headingFive",
72
+ icon: /*#__PURE__*/_jsx(Icon, {
73
+ icon: "headingFive"
74
+ }),
75
+ onInsert: editor => toggleBlock(editor, "headingFive", false)
76
+ }, {
77
+ name: "Heading 6",
78
+ desc: "",
79
+ group: "Text",
80
+ type: "headingSix",
81
+ icon: /*#__PURE__*/_jsx(Icon, {
82
+ icon: "headingSix"
83
+ }),
84
+ onInsert: editor => toggleBlock(editor, "headingSix", false)
85
+ }, {
86
+ name: "Paragraph 1",
87
+ desc: "",
88
+ group: "Text",
89
+ type: "paragraphOne",
90
+ icon: /*#__PURE__*/_jsx(Icon, {
91
+ icon: "paragraphOne"
92
+ }),
93
+ onInsert: editor => toggleBlock(editor, "paragraphOne", false)
94
+ }, {
95
+ name: "Paragraph 2",
96
+ desc: "",
97
+ group: "Text",
98
+ type: "paragraphTwo",
99
+ icon: /*#__PURE__*/_jsx(Icon, {
100
+ icon: "paragraphTwo"
101
+ }),
102
+ onInsert: editor => toggleBlock(editor, "paragraphTwo", false)
103
+ }, {
104
+ name: "Paragraph 3",
105
+ desc: "",
106
+ group: "Text",
107
+ type: "paragraphThree",
108
+ icon: /*#__PURE__*/_jsx(Icon, {
109
+ icon: "paragraphThree"
110
+ }),
111
+ onInsert: editor => toggleBlock(editor, "paragraphThree", false)
58
112
  }, {
59
113
  name: "Quote",
60
114
  desc: "",
@@ -21,7 +21,8 @@ const buttonStyle = [{
21
21
  },
22
22
  children: option.text
23
23
  });
24
- }
24
+ },
25
+ themeEnabled: true
25
26
  }, {
26
27
  label: "Font Size",
27
28
  key: "textSize",
@@ -45,7 +46,8 @@ const buttonStyle = [{
45
46
  }, {
46
47
  label: "Button Color",
47
48
  key: "bgColor",
48
- type: "color"
49
+ type: "color",
50
+ themeEnabled: true
49
51
  }, {
50
52
  label: "Border Color",
51
53
  key: "borderColor",
@@ -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: "embedUpload"
9
13
  }]
10
14
  }, {
11
15
  tab: "Aspect Ratio",
@@ -76,6 +76,11 @@ const BackgroundImage = props => {
76
76
  children: translation("REMOVE")
77
77
  }) : /*#__PURE__*/_jsx(Grid, {
78
78
  className: "uploadImageText",
79
+ sx: {
80
+ padding: 0,
81
+ background: `${theme?.palette?.editor?.inputFieldBgColor}`,
82
+ border: `1px solid ${theme?.palette?.editor?.inputFieldBorder}`
83
+ },
79
84
  children: /*#__PURE__*/_jsxs(Button, {
80
85
  component: "label",
81
86
  variant: "text",
@@ -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?.button || {};
33
+ const isUserValue = Object.keys(props?.value || {})?.length;
34
+ const isUserLockedSpacing = typeof elementProps[lockKeyVal] === "boolean";
35
+ const val = isUserValue ? props?.value : bannerSpacing;
36
+ let lockSpacing = isUserLockedSpacing ? elementProps[lockKeyVal] : lockbannerSpacing;
27
37
  if (lockSpacing === undefined) {
28
38
  lockSpacing = true;
29
39
  }
@@ -3,13 +3,13 @@ import { Grid, Typography, Slider, FormControlLabel, Checkbox, Box, IconButton }
3
3
  import { radiusStyle } from "./radiusStyle";
4
4
  import useWindowResize from "../../../hooks/useWindowResize";
5
5
  import { getBreakPointsValue, getCustomizationValue } from "../../../helper/theme";
6
+ import { useEditorTheme } from "../../../hooks/useEditorTheme";
6
7
  import { CheckedBoxCheckIcon } from "../../iconListV2";
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
10
  const BORDER_RADIUS_KEYS = ["topLeft", "topRight", "bottomLeft", "bottomRight"];
10
11
  const BorderRadius = props => {
11
12
  const {
12
- value: val,
13
13
  data,
14
14
  onChange,
15
15
  elementProps,
@@ -19,16 +19,24 @@ const BorderRadius = props => {
19
19
  const {
20
20
  translation
21
21
  } = customProps;
22
- let {
23
- lockRadius
24
- } = elementProps;
25
- if (lockRadius === undefined) {
26
- lockRadius = true;
27
- }
28
22
  const {
29
23
  key
30
24
  } = data;
31
25
  const [size] = useWindowResize();
26
+ const {
27
+ selectedTheme
28
+ } = useEditorTheme();
29
+ const {
30
+ borderRadius,
31
+ lockRadius: themeLockRadius
32
+ } = selectedTheme?.elementProps?.button || {};
33
+ const isUserValue = Object.keys(props?.value || {})?.length;
34
+ const isUserLockedRadius = typeof elementProps?.lockRadius === "boolean";
35
+ const val = isUserValue ? props?.value : borderRadius;
36
+ let lockRadius = isUserLockedRadius ? elementProps?.lockRadius : themeLockRadius;
37
+ if (lockRadius === undefined) {
38
+ lockRadius = true;
39
+ }
32
40
  const value = getBreakPointsValue(val, size?.device);
33
41
  const handleChange = e => {
34
42
  let changeAll = {};
@@ -1,6 +1,7 @@
1
1
  import { Box, Card, Checkbox, FormControlLabel, Grid, Tooltip, Typography } from "@mui/material";
2
2
  import React from "react";
3
3
  import Icon from "../../Icon";
4
+ import { useEditorContext } from "../../../hooks/useMouseMove";
4
5
  import { jsx as _jsx } from "react/jsx-runtime";
5
6
  import { Fragment as _Fragment } from "react/jsx-runtime";
6
7
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -15,14 +16,17 @@ const RenderCard = ({
15
16
  }) => {
16
17
  return /*#__PURE__*/_jsx(Card, {
17
18
  sx: {
18
- position: '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
@@ -4,6 +4,7 @@ import { convertBase64 } from "../utils/helper";
4
4
  import { uploadFile } from "../service/fileupload";
5
5
  import Icon from "./Icon";
6
6
  import UploadStyles from "../common/ImageSelector/UploadStyles";
7
+ import { useEditorContext } from "../hooks/useMouseMove";
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";
@@ -18,6 +19,15 @@ const Uploader = props => {
18
19
  const [base64, setBase64] = useState(value?.url);
19
20
  const [fileName, setFileName] = useState("");
20
21
  const [uploading, setUploading] = useState(false);
22
+ const {
23
+ theme
24
+ } = useEditorContext();
25
+ const allowedFormat = {
26
+ "Document": ".pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.rtf",
27
+ "Image": "image/*",
28
+ "Video": "video/*",
29
+ "Embed": "*"
30
+ };
21
31
  const handleChange = async e => {
22
32
  const uFile = e.target.files[0];
23
33
  const strImage = await convertBase64(uFile);
@@ -59,6 +69,7 @@ const Uploader = props => {
59
69
  const renderThumb = () => {
60
70
  switch (title) {
61
71
  case "Document":
72
+ case "Video":
62
73
  return /*#__PURE__*/_jsxs(_Fragment, {
63
74
  children: [/*#__PURE__*/_jsx(Typography, {
64
75
  style: {
@@ -102,6 +113,10 @@ const Uploader = props => {
102
113
  className: "uploadImageSection",
103
114
  children: base64 ? renderThumb() : /*#__PURE__*/_jsx(Grid, {
104
115
  className: "uploadImageText",
116
+ sx: {
117
+ background: `${theme?.palette?.editor?.inputFieldBgColor}`,
118
+ border: `1px solid ${theme?.palette?.editor?.inputFieldBorder}`
119
+ },
105
120
  children: /*#__PURE__*/_jsxs(Button, {
106
121
  component: "label",
107
122
  variant: "text",
@@ -112,6 +127,7 @@ const Uploader = props => {
112
127
  sx: classes.uploadIcon,
113
128
  children: [/*#__PURE__*/_jsx("input", {
114
129
  type: "file",
130
+ accept: allowedFormat[title],
115
131
  style: {
116
132
  opacity: 0,
117
133
  width: "0px"
@@ -1677,6 +1677,27 @@ export const CloseIcon = props => /*#__PURE__*/_jsxs("svg", {
1677
1677
  strokeLinejoin: "round"
1678
1678
  })]
1679
1679
  });
1680
+ export const CloseIcon2 = props => /*#__PURE__*/_jsxs("svg", {
1681
+ width: "10",
1682
+ height: "10",
1683
+ viewBox: "0 0 10 10",
1684
+ fill: "none",
1685
+ xmlns: "http://www.w3.org/2000/svg",
1686
+ ...(props || {}),
1687
+ children: [/*#__PURE__*/_jsx("path", {
1688
+ d: "M9.12476 0.875L0.875176 9.12458",
1689
+ stroke: "#8F9CAE",
1690
+ strokeWidth: "1.5",
1691
+ strokeLinecap: "round",
1692
+ strokeLinejoin: "round"
1693
+ }), /*#__PURE__*/_jsx("path", {
1694
+ d: "M0.875183 0.875L9.12476 9.12458",
1695
+ stroke: "#8F9CAE",
1696
+ strokeWidth: "1.5",
1697
+ strokeLinecap: "round",
1698
+ strokeLinejoin: "round"
1699
+ })]
1700
+ });
1680
1701
  export const SearchIcon = () => /*#__PURE__*/_jsxs("svg", {
1681
1702
  width: "18",
1682
1703
  height: "18",