@flozy/editor 3.6.2 → 3.6.4

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 (32) hide show
  1. package/dist/Editor/ChatEditor.js +195 -0
  2. package/dist/Editor/Elements/Button/EditorButton.js +9 -4
  3. package/dist/Editor/Elements/ChipText/ChipText.js +3 -3
  4. package/dist/Editor/Elements/Embed/Frames/ImageFrame.js +1 -0
  5. package/dist/Editor/Elements/Emoji/EmojiButton.js +2 -2
  6. package/dist/Editor/Elements/Emoji/EmojiPicker.js +16 -0
  7. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +2 -1
  8. package/dist/Editor/Elements/Grid/Grid.js +1 -1
  9. package/dist/Editor/Elements/Grid/GridItem.js +1 -1
  10. package/dist/Editor/Elements/InlineIcon/InlineIcon.js +2 -3
  11. package/dist/Editor/Elements/Link/Link.js +6 -1
  12. package/dist/Editor/Elements/Link/LinkButton.js +4 -2
  13. package/dist/Editor/Elements/Link/LinkPopup.js +11 -3
  14. package/dist/Editor/Elements/Link/LinkPopupStyles.js +28 -0
  15. package/dist/Editor/Elements/List/CheckList.js +6 -2
  16. package/dist/Editor/Elements/Table/TableCell.js +1 -1
  17. package/dist/Editor/MiniEditor.js +3 -1
  18. package/dist/Editor/Styles/EditorStyles.js +3 -2
  19. package/dist/Editor/Toolbar/Basic/index.js +4 -2
  20. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +4 -2
  21. package/dist/Editor/Toolbar/PopupTool/index.js +9 -2
  22. package/dist/Editor/common/MUIIcon/index.js +49 -0
  23. package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +12 -28
  24. package/dist/Editor/common/StyleBuilder/fieldTypes/loadIcon.js +13 -0
  25. package/dist/Editor/common/StyleBuilder/fieldTypes/mui_filled_icons.js +2 -0
  26. package/dist/Editor/helper/index.js +15 -0
  27. package/dist/Editor/hooks/useMouseMove.js +12 -5
  28. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +361 -0
  29. package/dist/Editor/utils/helper.js +1 -1
  30. package/dist/Editor/utils/serializeToHTML.js +25 -13
  31. package/dist/index.js +5 -1
  32. package/package.json +4 -4
@@ -0,0 +1,195 @@
1
+ import React, { useCallback, useMemo, useRef, useState, useEffect, useImperativeHandle, forwardRef } from "react";
2
+ import { Editable, Slate } from 'slate-react';
3
+ import { createEditor } from 'slate';
4
+ import { useDebounce } from "use-debounce";
5
+ import withCommon from "./hooks/withCommon";
6
+ import { getBlock, getMarked } from "./utils/chatEditor/SlateUtilityFunctions";
7
+ import MiniTextFormat from "./Toolbar/PopupTool/MiniTextFormat";
8
+ import { commands, mentionsEvent } from "./utils/events";
9
+ import { insertEmoji } from "./utils/emoji";
10
+ import { draftToSlate } from "./utils/draftToSlate";
11
+ import MentionsPopup from "./common/MentionsPopup";
12
+ import { serializeToText } from "./utils/serializeToText";
13
+ import useMentions from "./hooks/useMentions";
14
+ import Shorthands from "./common/Shorthands";
15
+ import usePopupStyle from "./Toolbar/PopupTool/PopupToolStyle";
16
+ import { EditorProvider } from "./hooks/useMouseMove";
17
+ import { jsx as _jsx } from "react/jsx-runtime";
18
+ import { jsxs as _jsxs } from "react/jsx-runtime";
19
+ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
20
+ const {
21
+ id,
22
+ theme,
23
+ content,
24
+ readOnly,
25
+ otherProps,
26
+ needLayout = false,
27
+ toolBar = true,
28
+ onSave,
29
+ onsubmit
30
+ } = props;
31
+ const classes = usePopupStyle(theme);
32
+ const convertedContent = draftToSlate({
33
+ data: content
34
+ });
35
+ const [isInteracted, setIsInteracted] = useState(false);
36
+ const [value, setValue] = useState(convertedContent);
37
+ const [loadedValue] = useState(value);
38
+ const [deboundedValue] = useDebounce(value, 500);
39
+ const editor = useMemo(() => {
40
+ return withCommon(createEditor(), {
41
+ needLayout
42
+ });
43
+ }, []);
44
+ const isReadOnly = readOnly === "readonly";
45
+ useImperativeHandle(ref, () => ({
46
+ emojiClick: emoji => {
47
+ insertEmoji(editor, emoji?.native, editor.selection);
48
+ }
49
+ }));
50
+ useEffect(() => {
51
+ setValue(draftToSlate({
52
+ data: content
53
+ }));
54
+ }, [id, content]);
55
+ useEffect(() => {
56
+ if (JSON.stringify(loadedValue) !== JSON.stringify(deboundedValue) && isInteracted && onSave) {
57
+ const {
58
+ value: strVal,
59
+ ...restVal
60
+ } = getOnSaveData(deboundedValue);
61
+ onSave(strVal, restVal);
62
+ }
63
+ }, [deboundedValue]);
64
+ const getOnSaveData = val => {
65
+ const text = serializeToText(val);
66
+ const title = val?.find(f => f.type === "title");
67
+ return {
68
+ value: JSON.stringify(val),
69
+ text: text,
70
+ title: serializeToText(title?.children) || "Untitled"
71
+ };
72
+ };
73
+ const {
74
+ CHARACTERS = [],
75
+ hideTools
76
+ // needLayout = true,
77
+ } = otherProps || {};
78
+ const mentionsRef = useRef();
79
+ const customProps = {
80
+ ...(otherProps || {}),
81
+ readOnly: isReadOnly,
82
+ editorPlaceholder: "Write Something",
83
+ page_id: 1
84
+ };
85
+ const [mentions, setMentions] = useMentions({
86
+ editor,
87
+ selection: editor?.selection
88
+ });
89
+ const {
90
+ search,
91
+ target,
92
+ index
93
+ } = mentions;
94
+ let {
95
+ type
96
+ } = mentions;
97
+ if (type && type === "elements" && hideTools.indexOf("slash") > -1) {
98
+ type = null;
99
+ }
100
+ const chars = type ? Shorthands[type]({
101
+ ...mentions,
102
+ CHARACTERS,
103
+ hideTools: hideTools
104
+ }) : [];
105
+ const Leaf = ({
106
+ attributes,
107
+ children,
108
+ leaf
109
+ }) => {
110
+ children = getMarked(leaf, children);
111
+ return /*#__PURE__*/_jsx("span", {
112
+ ...attributes,
113
+ children: children
114
+ });
115
+ };
116
+ const handleEditorChange = newValue => {
117
+ setValue(newValue);
118
+ if (!isInteracted) {
119
+ setIsInteracted(true);
120
+ }
121
+ };
122
+ const Element = props => {
123
+ return getBlock(props);
124
+ };
125
+ const renderElement = useCallback(props => {
126
+ return /*#__PURE__*/_jsx(Element, {
127
+ ...props,
128
+ customProps: customProps
129
+ });
130
+ }, []);
131
+ const renderLeaf = useCallback(props => {
132
+ return /*#__PURE__*/_jsx(Leaf, {
133
+ ...props,
134
+ customProps: customProps
135
+ });
136
+ }, []);
137
+ const onKeyDown = useCallback(event => {
138
+ const isMetaKey = event.metaKey && event.keyCode >= 65 && event.keyCode <= 90;
139
+ const isCtrlKey = event.ctrlKey || isMetaKey;
140
+ if (target && chars.length > 0 && !isCtrlKey) {
141
+ mentionsEvent({
142
+ event,
143
+ mentions,
144
+ setMentions,
145
+ chars,
146
+ target,
147
+ editor,
148
+ type,
149
+ mentionsRef
150
+ });
151
+ } else if (isCtrlKey) {
152
+ commands({
153
+ event,
154
+ editor
155
+ });
156
+ } else if (event.key === "Enter") {
157
+ onsubmit();
158
+ }
159
+ }, [chars, editor, target, mentions, setMentions, search, type, mentionsRef]);
160
+ const handleClose = () => {};
161
+ return /*#__PURE__*/_jsx(EditorProvider, {
162
+ theme: theme,
163
+ editor: editor,
164
+ children: /*#__PURE__*/_jsxs(Slate, {
165
+ editor: editor,
166
+ initialValue: value,
167
+ onChange: handleEditorChange,
168
+ children: [toolBar && /*#__PURE__*/_jsx(MiniTextFormat, {
169
+ classes: classes,
170
+ editor: editor,
171
+ closeMainPopup: handleClose
172
+ }), /*#__PURE__*/_jsx(Editable, {
173
+ className: "chatEditorRoot",
174
+ renderElement: renderElement,
175
+ renderLeaf: renderLeaf,
176
+ placeholder: "Start typing ...",
177
+ spellCheck: true,
178
+ autoFocus: true,
179
+ onKeyDown: onKeyDown
180
+ }), !readOnly ? /*#__PURE__*/_jsx(MentionsPopup, {
181
+ ref: mentionsRef,
182
+ mentions: mentions,
183
+ setMentions: setMentions,
184
+ editor: editor,
185
+ target: target,
186
+ index: index,
187
+ chars: chars,
188
+ type: type,
189
+ theme: theme
190
+ }) : null]
191
+ }, id)
192
+ });
193
+ });
194
+ ChatEditor.displayName = "ChatEditor";
195
+ export default ChatEditor;
@@ -2,7 +2,8 @@ import React, { useState } from "react";
2
2
  import { Transforms } from "slate";
3
3
  import { ReactEditor, useSlateStatic } from "slate-react";
4
4
  import { IconButton, Tooltip, Box } from "@mui/material";
5
- import * as fIcons from "@mui/icons-material";
5
+ // import * as fIcons from "@mui/icons-material";
6
+ import MUIIcon from "../../common/StyleBuilder/fieldTypes/loadIcon";
6
7
  import SettingsIcon from "@mui/icons-material/Settings";
7
8
  import OpenInNewIcon from "@mui/icons-material/OpenInNew";
8
9
  import LinkIcon from "@mui/icons-material/Link";
@@ -63,7 +64,7 @@ const EditorButton = props => {
63
64
  };
64
65
  const isTrigger = linkType === "actionTrigger";
65
66
  const refURl = isTrigger ? buttonLink?.url : url;
66
- const BtnIcon = buttonIcon ? fIcons[buttonIcon] : null;
67
+ const BtnIcon = buttonIcon ? buttonIcon : null;
67
68
  windowVar.lastButtonProps = element;
68
69
  const handleTrigger = async () => {
69
70
  if (metadata?.buttonLink?.handler) {
@@ -80,6 +81,7 @@ const EditorButton = props => {
80
81
  }
81
82
  };
82
83
  const buttonProps = handleLinkType(refURl, linkType, readOnly, openInNewTab, handleTrigger);
84
+ console.log(openInNewTab);
83
85
  const onMenuClick = val => () => {
84
86
  switch (val) {
85
87
  case "edit":
@@ -131,6 +133,7 @@ const EditorButton = props => {
131
133
  color: "rgba(0, 0, 0, 0.54)"
132
134
  },
133
135
  ...btnProps,
136
+ target: openInNewTab ? "_blank" : "_self",
134
137
  children: /*#__PURE__*/_jsx(OpenInNewIcon, {})
135
138
  })
136
139
  })]
@@ -212,12 +215,14 @@ const EditorButton = props => {
212
215
  }
213
216
  },
214
217
  ...buttonProps,
215
- children: [BtnIcon && iconPosition === "start" && /*#__PURE__*/_jsx(BtnIcon, {
218
+ children: [BtnIcon && iconPosition === "start" && /*#__PURE__*/_jsx(MUIIcon, {
219
+ iconName: buttonIcon,
216
220
  style: {
217
221
  paddingLeft: "4px",
218
222
  paddingRight: "4px"
219
223
  }
220
- }), label || "My Button", BtnIcon && iconPosition === "end" && /*#__PURE__*/_jsx(BtnIcon, {
224
+ }), label || "My Button", BtnIcon && iconPosition === "end" && /*#__PURE__*/_jsx(MUIIcon, {
225
+ iconName: buttonIcon,
221
226
  style: {
222
227
  paddingLeft: "4px",
223
228
  paddingRight: "4px"
@@ -1,10 +1,10 @@
1
1
  import React, { useState } from "react";
2
2
  import { Transforms } from "slate";
3
3
  import { useSlateStatic, ReactEditor } from "slate-react";
4
- import * as fIcons from "@mui/icons-material";
5
4
  import { Box } from "@mui/material";
6
5
  import ChipTextPopup from "./ChipTextPopup";
7
6
  import { getTRBLBreakPoints, getBreakPointsValue } from "../../helper/theme";
7
+ import MUIIcon from "../../common/StyleBuilder/fieldTypes/loadIcon";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
10
10
  const ChipText = props => {
@@ -26,7 +26,6 @@ const ChipText = props => {
26
26
  buttonIcon,
27
27
  textSize
28
28
  } = element;
29
- const BtnIcon = buttonIcon ? fIcons[buttonIcon] : fIcons["Check"];
30
29
  const [openSetttings, setOpenSettings] = useState(false);
31
30
  const editor = useSlateStatic();
32
31
  const path = ReactEditor.findPath(editor, element);
@@ -82,7 +81,8 @@ const ChipText = props => {
82
81
  background: bgColor || "#CCC",
83
82
  color: textColor
84
83
  },
85
- children: [/*#__PURE__*/_jsx(BtnIcon, {
84
+ children: [/*#__PURE__*/_jsx(MUIIcon, {
85
+ iconName: buttonIcon || "Check",
86
86
  style: {
87
87
  fontSize: textSize || "16px",
88
88
  lineHeight: textSize || "16px",
@@ -119,6 +119,7 @@ const ImageFrame = props => {
119
119
  zIndex: 100
120
120
  },
121
121
  placement: "top",
122
+ disablePortal: true,
122
123
  children: /*#__PURE__*/_jsxs(Box, {
123
124
  sx: classes?.sliderContainer,
124
125
  children: [/*#__PURE__*/_jsx(ContinuousSlider, {
@@ -2,10 +2,10 @@ import React, { useState, forwardRef, useImperativeHandle } from "react";
2
2
  import { useSlateStatic, ReactEditor } from "slate-react";
3
3
  import { Paper, Popover } from "@mui/material";
4
4
  import data from "@emoji-mart/data";
5
- import Picker from "@emoji-mart/react";
6
5
  import { insertEmoji } from "../../utils/emoji";
7
6
  import ToolbarIcon from "../../common/ToolbarIcon";
8
7
  import Icon from "../../common/Icon";
8
+ import EmojiPicker from "./EmojiPicker";
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  import { Fragment as _Fragment } from "react/jsx-runtime";
11
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -61,7 +61,7 @@ const EmojiButton = /*#__PURE__*/forwardRef((props, ref) => {
61
61
  },
62
62
  onClose: handleClose,
63
63
  children: /*#__PURE__*/_jsx(Paper, {
64
- children: /*#__PURE__*/_jsx(Picker, {
64
+ children: /*#__PURE__*/_jsx(EmojiPicker, {
65
65
  data: data,
66
66
  onEmojiSelect: onEmojiSelect
67
67
  })
@@ -0,0 +1,16 @@
1
+ import data from "@emoji-mart/data";
2
+ import Picker from "@emoji-mart/react";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import { Fragment as _Fragment } from "react/jsx-runtime";
5
+ const EmojiPicker = props => {
6
+ const {
7
+ onEmojiSelect
8
+ } = props;
9
+ return /*#__PURE__*/_jsx(_Fragment, {
10
+ children: /*#__PURE__*/_jsx(Picker, {
11
+ data: data,
12
+ onEmojiSelect: onEmojiSelect
13
+ })
14
+ });
15
+ };
16
+ export default EmojiPicker;
@@ -39,7 +39,8 @@ const UserInputs = props => {
39
39
  fontStyleOptions: ['underline'],
40
40
  hideLink: true,
41
41
  hideTextColor: true
42
- }
42
+ },
43
+ theme: theme
43
44
  })
44
45
  })
45
46
  });
@@ -277,7 +277,7 @@ const Grid = props => {
277
277
  } = getBreakPointsValue(borderRadius, size?.device) || {};
278
278
  return /*#__PURE__*/_jsxs(GridContainer, {
279
279
  container: true,
280
- className: `grid-container ${grid} has-hover element-root`,
280
+ className: `grid-container ${grid} has-hover element-root dpath`,
281
281
  ...attributes,
282
282
  ...sectionId,
283
283
  sx: {
@@ -105,7 +105,7 @@ const GridItem = props => {
105
105
  return /*#__PURE__*/_jsxs(Item, {
106
106
  item: true,
107
107
  component: "div",
108
- className: `grid-item element-root gi-top-wrpr`,
108
+ className: `grid-item element-root gi-top-wrpr dpath`,
109
109
  ...attributes,
110
110
  sx: {
111
111
  width: {
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import * as fIcons from "@mui/icons-material";
3
2
  import { Box } from "@mui/material";
3
+ import Check from "@mui/icons-material/Check";
4
4
  import { getBreakPointsValue } from "../../helper/theme";
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
6
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -23,7 +23,6 @@ const InlineIcon = props => {
23
23
  right,
24
24
  bottom
25
25
  } = bannerSpacing || {};
26
- const BtnIcon = fIcons["Check"];
27
26
  return /*#__PURE__*/_jsxs(Box, {
28
27
  ...attributes,
29
28
  className: "editor-icon-text",
@@ -42,7 +41,7 @@ const InlineIcon = props => {
42
41
  background: bgColor || "#CCC",
43
42
  color: textColor
44
43
  },
45
- children: [/*#__PURE__*/_jsx(BtnIcon, {}), /*#__PURE__*/_jsx("div", {
44
+ children: [/*#__PURE__*/_jsx(Check, {}), /*#__PURE__*/_jsx("div", {
46
45
  contentEditable: true,
47
46
  children: children
48
47
  })]
@@ -9,6 +9,7 @@ import { removeLink } from "../../utils/link";
9
9
  import LinkPopup from "./LinkPopup";
10
10
  import "./styles.css";
11
11
  import { absoluteLink } from "../../utils/helper";
12
+ import { useEditorContext } from "../../hooks/useMouseMove";
12
13
  import { jsx as _jsx } from "react/jsx-runtime";
13
14
  import { jsxs as _jsxs } from "react/jsx-runtime";
14
15
  const Link = props => {
@@ -29,6 +30,9 @@ const Link = props => {
29
30
  const path = ReactEditor.findPath(editor, element);
30
31
  const urlPath = element.url || element.href;
31
32
  const absLink = absoluteLink(urlPath);
33
+ const {
34
+ theme
35
+ } = useEditorContext();
32
36
  const updateLink = () => {
33
37
  Transforms.setNodes(editor, {
34
38
  href: linkData?.url,
@@ -107,7 +111,8 @@ const Link = props => {
107
111
  linkData: linkData,
108
112
  handleClose: handleClose,
109
113
  handleInputChange: handleInputChange,
110
- handleInsertLink: updateLink
114
+ handleInsertLink: updateLink,
115
+ theme: theme
111
116
  })]
112
117
  });
113
118
  };
@@ -9,7 +9,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
9
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
10
10
  const LinkButton = props => {
11
11
  const {
12
- editor
12
+ editor,
13
+ theme
13
14
  } = props;
14
15
  const linkInputRef = useRef(null);
15
16
  const [showInput, setShowInput] = useState(false);
@@ -77,7 +78,8 @@ const LinkButton = props => {
77
78
  linkData: linkData,
78
79
  handleClose: handleClose,
79
80
  handleInputChange: handleInputChange,
80
- handleInsertLink: handleInsertLink
81
+ handleInsertLink: handleInsertLink,
82
+ theme: theme
81
83
  })]
82
84
  });
83
85
  };
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
2
  import { Dialog, DialogActions, DialogContent, DialogTitle, FormControl, FormControlLabel, Grid, TextField, Button, IconButton, Typography, Checkbox } from "@mui/material";
3
3
  import CloseIcon from "@mui/icons-material/Close";
4
+ import LinkPopupStyles from "./LinkPopupStyles";
4
5
  import { jsx as _jsx } from "react/jsx-runtime";
5
6
  import { jsxs as _jsxs } from "react/jsx-runtime";
6
7
  const LinkPopup = props => {
@@ -9,8 +10,10 @@ const LinkPopup = props => {
9
10
  handleClose,
10
11
  linkData,
11
12
  handleInputChange,
12
- handleInsertLink
13
+ handleInsertLink,
14
+ theme
13
15
  } = props;
16
+ const classes = LinkPopupStyles(theme);
14
17
  return /*#__PURE__*/_jsxs(Dialog, {
15
18
  fullWidth: true,
16
19
  open: open,
@@ -44,13 +47,16 @@ const LinkPopup = props => {
44
47
  style: {
45
48
  paddingTop: "12px"
46
49
  },
50
+ className: classes.titleTypo,
47
51
  children: /*#__PURE__*/_jsx(TextField, {
48
52
  size: "small",
49
53
  fullWidth: true,
50
54
  value: linkData?.name,
51
55
  name: "name",
52
56
  placeholder: "Link Title",
53
- onChange: handleInputChange
57
+ onChange: handleInputChange,
58
+ sx: classes.addLinkField,
59
+ className: classes.addLinkField
54
60
  })
55
61
  }), /*#__PURE__*/_jsx(Grid, {
56
62
  item: true,
@@ -64,7 +70,9 @@ const LinkPopup = props => {
64
70
  name: "url",
65
71
  value: linkData?.url,
66
72
  placeholder: "https://google.com",
67
- onChange: handleInputChange
73
+ onChange: handleInputChange,
74
+ sx: classes.addLinkField,
75
+ className: classes.addLinkField
68
76
  })
69
77
  }), /*#__PURE__*/_jsx(Grid, {
70
78
  item: true,
@@ -0,0 +1,28 @@
1
+ const LinkPopupStyles = theme => ({
2
+ addLinkField: {
3
+ "& .MuiOutlinedInput-input": {
4
+ fontSize: "12px",
5
+ fontWeight: 500,
6
+ color: `${theme?.palette?.editor?.textColor} !important`
7
+ },
8
+ "& .MuiFormHelperText-root": {
9
+ color: `${theme?.palette?.editor?.textColor} !important`
10
+ },
11
+ "& .MuiOutlinedInput-root": {
12
+ boxShadow: "0px 4px 10px rgba(0, 0, 0, 0.16)",
13
+ color: `${theme?.palette?.editor?.textColor} !important`,
14
+ borderRadius: "7px",
15
+ "& fieldset": {
16
+ borderColor: "#D8DDE1"
17
+ },
18
+ "&:hover fieldset": {
19
+ borderColor: "#64748B"
20
+ },
21
+ "&.Mui-focused fieldset": {
22
+ borderColor: "#2563EB"
23
+ },
24
+ "& .MuiFormLabel-root": {}
25
+ }
26
+ }
27
+ });
28
+ export default LinkPopupStyles;
@@ -11,7 +11,9 @@ const CheckList = ({
11
11
  attributes,
12
12
  children,
13
13
  element,
14
- isEmpty
14
+ isEmpty,
15
+ className,
16
+ style
15
17
  }) => {
16
18
  const editor = useSlateStatic();
17
19
  const readOnly = useReadOnly();
@@ -30,12 +32,14 @@ const CheckList = ({
30
32
  const nestedCheckList = element?.children?.length && element.children[0].type === "check-list-item";
31
33
  return /*#__PURE__*/_jsx(_Fragment, {
32
34
  children: /*#__PURE__*/_jsxs("div", {
35
+ className: className || "",
33
36
  ...attributes,
34
37
  style: {
35
38
  textAlign: element.alignment || "left",
36
39
  display: "flex",
37
40
  justifyContent: "center",
38
- alignItems: "center"
41
+ alignItems: "center",
42
+ ...(style || {})
39
43
  },
40
44
  children: [/*#__PURE__*/_jsxs("div", {
41
45
  contentEditable: false,
@@ -117,7 +117,7 @@ const TableCell = props => {
117
117
  className: `editor-table-cell ${hasSelected ? "selection" : ""}`,
118
118
  style: {
119
119
  position: "relative",
120
- backgroundColor: bgColor || entireBgColor,
120
+ background: bgColor || entireBgColor,
121
121
  border: `3px solid ${cellBorderColor}`,
122
122
  ...(sizeProps || {})
123
123
  },
@@ -23,7 +23,8 @@ const MiniEditor = props => {
23
23
  miniEditorPlaceholder,
24
24
  className,
25
25
  otherProps,
26
- onSave
26
+ onSave,
27
+ theme
27
28
  } = props;
28
29
  const {
29
30
  CHARACTERS = []
@@ -132,6 +133,7 @@ const MiniEditor = props => {
132
133
  editor: editor,
133
134
  initialValue: content,
134
135
  onChange: onChange,
136
+ theme: theme,
135
137
  children: [/*#__PURE__*/_jsx(BasicToolbar, {
136
138
  ...props
137
139
  }), /*#__PURE__*/_jsx(Editable, {
@@ -188,6 +188,7 @@ const editorStyles = ({
188
188
  }
189
189
  },
190
190
  "& .checkbox-edit": {
191
+ alignSelf: "flex-start",
191
192
  "& .MuiFormControlLabel-root": {
192
193
  marginRight: "0px"
193
194
  },
@@ -212,7 +213,7 @@ const editorStyles = ({
212
213
  "& svg": {
213
214
  width: "17px",
214
215
  height: "18px",
215
- marginTop: '-1px'
216
+ marginTop: "-1px"
216
217
  }
217
218
  }
218
219
  },
@@ -273,7 +274,7 @@ const editorStyles = ({
273
274
  },
274
275
  cardsTypo: {
275
276
  color: theme?.palette?.editor?.textColor,
276
- fontSize: '14px !important'
277
+ fontSize: "14px !important"
277
278
  }
278
279
  });
279
280
  export default editorStyles;
@@ -25,7 +25,8 @@ const BasicToolbar = props => {
25
25
  hideTextColor = false,
26
26
  hideResetIcon = true,
27
27
  onResetClick = () => {}
28
- }
28
+ },
29
+ theme
29
30
  } = props;
30
31
  // state
31
32
  const [activeColor, setActiveColor] = useState("#000000");
@@ -65,7 +66,8 @@ const BasicToolbar = props => {
65
66
  item: true,
66
67
  children: /*#__PURE__*/_jsx(LinkButton, {
67
68
  active: isBlockActive(editor, link.format),
68
- editor: editor
69
+ editor: editor,
70
+ theme: theme
69
71
  }, link.id)
70
72
  }), !hideTextColor && /*#__PURE__*/_jsx(Grid, {
71
73
  item: true,
@@ -28,7 +28,8 @@ const MiniTextFormat = props => {
28
28
  classes,
29
29
  editor,
30
30
  closeMainPopup,
31
- customProps
31
+ customProps,
32
+ theme
32
33
  } = props;
33
34
  const [anchorEl, setAnchorEl] = useState(null);
34
35
  const open = Boolean(anchorEl);
@@ -93,7 +94,8 @@ const MiniTextFormat = props => {
93
94
  className: "verticalLine ml-1 mr-1"
94
95
  }), /*#__PURE__*/_jsx(LinkButton, {
95
96
  active: isBlockActive(editor, link.format),
96
- editor: editor
97
+ editor: editor,
98
+ theme: theme
97
99
  }, link.id), /*#__PURE__*/_jsx(Button, {
98
100
  onClick: e => setAnchorEl(document.getElementById("mini-text-editor-wrapper")),
99
101
  className: "textSettingsIcon",
@@ -32,6 +32,11 @@ const PopupTool = props => {
32
32
  const id = open ? "popup-edit-tool" : "";
33
33
  const table = new TableUtil(editor);
34
34
  const [size] = useWindowResize();
35
+ useEffect(() => {
36
+ if (!inFocus) {
37
+ setAnchorEl(null);
38
+ }
39
+ }, [inFocus]);
35
40
  useEffect(() => {
36
41
  if (event === "end" && anchorEl && !open) {
37
42
  // for table cell selection
@@ -86,7 +91,8 @@ const PopupTool = props => {
86
91
  editor: editor,
87
92
  classes: classes,
88
93
  closeMainPopup: handleClose,
89
- customProps: customProps
94
+ customProps: customProps,
95
+ theme: theme
90
96
  })
91
97
  }) : /*#__PURE__*/_jsx(Popper, {
92
98
  id: id,
@@ -108,7 +114,8 @@ const PopupTool = props => {
108
114
  editor: editor,
109
115
  classes: classes,
110
116
  closeMainPopup: handleClose,
111
- customProps: customProps
117
+ customProps: customProps,
118
+ theme: theme
112
119
  })
113
120
  })
114
121
  })