@flozy/editor 2.1.0 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. package/dist/Editor/CommonEditor.js +19 -2
  2. package/dist/Editor/Elements/Button/EditorButton.js +2 -1
  3. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +20 -5
  4. package/dist/Editor/Elements/Form/Workflow/ListWorkflow.js +132 -129
  5. package/dist/Editor/Elements/Form/Workflow/Styles.js +11 -10
  6. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +21 -180
  7. package/dist/Editor/Elements/Form/Workflow/index.js +25 -6
  8. package/dist/Editor/Elements/Grid/Grid.js +9 -3
  9. package/dist/Editor/Elements/{SimpleText.js → SimpleText/index.js} +5 -43
  10. package/dist/Editor/Elements/SimpleText/style.js +40 -0
  11. package/dist/Editor/Elements/Table/TableCell.js +1 -1
  12. package/dist/Editor/Elements/Variables/Style.js +29 -4
  13. package/dist/Editor/Elements/Variables/VariableButton.js +4 -4
  14. package/dist/Editor/Styles/EditorStyles.js +11 -0
  15. package/dist/Editor/Toolbar/Basic/index.js +54 -25
  16. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat.js +419 -0
  17. package/dist/Editor/Toolbar/PopupTool/index.js +2 -1
  18. package/dist/Editor/common/Section/index.js +1 -43
  19. package/dist/Editor/common/Section/styles.js +44 -0
  20. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +3 -1
  21. package/dist/Editor/common/StyleBuilder/gridStyle.js +7 -5
  22. package/dist/Editor/common/StyleBuilder/index.js +8 -0
  23. package/dist/Editor/helper/deserialize/index.js +10 -6
  24. package/dist/Editor/plugins/withEmbeds.js +0 -1
  25. package/dist/Editor/plugins/withHTML.js +36 -4
  26. package/dist/Editor/utils/button.js +3 -1
  27. package/dist/Editor/utils/formfield.js +2 -0
  28. package/dist/Editor/utils/helper.js +40 -1
  29. package/package.json +1 -1
@@ -1,204 +1,45 @@
1
- import { Button, Divider, Grid, IconButton, Menu, MenuItem, TextareaAutosize, Tooltip } from "@mui/material";
2
- import React, { useState } from "react";
1
+ import { Grid } from "@mui/material";
2
+ import React, { useRef } from "react";
3
3
  import FormStyles from "./Styles";
4
- import Icon from "../../../common/Icon";
5
- import { RestRight } from "../../../common/iconslist";
6
- import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown";
7
- import { AllColors } from "../../Color Picker/ColorButtons";
8
- import PopupToolStyle from "../../../Toolbar/PopupTool/PopupToolStyle";
9
4
  import { useEditorContext } from "../../../hooks/useMouseMove";
5
+ import { MiniEditor } from "../../../..";
10
6
  import { jsx as _jsx } from "react/jsx-runtime";
11
- import { jsxs as _jsxs } from "react/jsx-runtime";
12
7
  const UserInputs = props => {
13
8
  const {
14
9
  element,
15
10
  type,
16
11
  subject,
17
12
  handleField,
18
- handleSelectedVariables,
19
- handleInputReset
13
+ onSave
20
14
  } = props;
15
+ const editorRef = useRef();
21
16
  const variables = element?.children;
22
17
  const {
23
18
  theme
24
19
  } = useEditorContext();
25
20
  const classes = FormStyles(theme);
26
- const popupClasses = PopupToolStyle(theme);
27
- const [activeColor, setActiveColor] = useState(["#000000"]);
28
- //state
29
- const [anchorEl, setAnchorEl] = useState(null);
30
- const [colorAnchorEl, setColorAnchorEl] = useState(null);
31
- const colorPopover = Boolean(colorAnchorEl);
32
- const handleVariables = event => {
33
- event.stopPropagation();
34
- setAnchorEl(event.currentTarget);
35
- };
36
- const handleColorPicker = event => {
37
- event.stopPropagation();
38
- setColorAnchorEl(event.currentTarget);
39
- };
40
- const handleClose = event => {
41
- event.stopPropagation();
42
- setAnchorEl(null);
43
- };
44
- const handleColorClose = event => {
45
- event.stopPropagation();
46
- setColorAnchorEl(null);
47
- };
48
- const handleTextColor = color => () => {
49
- setActiveColor(color);
50
- setColorAnchorEl(null);
51
- };
52
- return /*#__PURE__*/_jsxs(Grid, {
21
+ return /*#__PURE__*/_jsx(Grid, {
53
22
  container: true,
54
23
  sx: classes.toolbarContainer,
55
- children: [/*#__PURE__*/_jsxs(Grid, {
56
- item: true,
57
- xs: 12,
58
- children: [/*#__PURE__*/_jsxs(Grid, {
59
- container: true,
60
- sx: classes.toolBar,
61
- justifyContent: "space-between",
62
- children: [/*#__PURE__*/_jsx(Grid, {
63
- item: true,
64
- children: /*#__PURE__*/_jsxs(Grid, {
65
- container: true,
66
- gap: 1,
67
- children: [/*#__PURE__*/_jsx(Grid, {
68
- item: true,
69
- children: /*#__PURE__*/_jsx(Tooltip, {
70
- arrow: true,
71
- title: "Bold",
72
- children: /*#__PURE__*/_jsx(IconButton, {
73
- sx: classes.toolButtons,
74
- children: /*#__PURE__*/_jsx(Icon, {
75
- icon: "bold"
76
- })
77
- })
78
- })
79
- }), /*#__PURE__*/_jsx(Grid, {
80
- item: true,
81
- children: /*#__PURE__*/_jsx(Tooltip, {
82
- arrow: true,
83
- title: "Underline",
84
- children: /*#__PURE__*/_jsx(IconButton, {
85
- sx: classes.toolButtons,
86
- children: /*#__PURE__*/_jsx(Icon, {
87
- icon: "underline"
88
- })
89
- })
90
- })
91
- }), /*#__PURE__*/_jsx(Grid, {
92
- item: true,
93
- children: /*#__PURE__*/_jsx(Tooltip, {
94
- arrow: true,
95
- title: "Italic",
96
- children: /*#__PURE__*/_jsx(IconButton, {
97
- sx: classes.toolButtons,
98
- children: /*#__PURE__*/_jsx(Icon, {
99
- icon: "italic"
100
- })
101
- })
102
- })
103
- }), /*#__PURE__*/_jsx(Grid, {
104
- item: true,
105
- children: /*#__PURE__*/_jsx(Tooltip, {
106
- arrow: true,
107
- title: "Link",
108
- children: /*#__PURE__*/_jsx(IconButton, {
109
- sx: classes.toolButtons,
110
- children: /*#__PURE__*/_jsx(Icon, {
111
- icon: "link"
112
- })
113
- })
114
- })
115
- }), /*#__PURE__*/_jsxs(Grid, {
116
- item: true,
117
- children: [/*#__PURE__*/_jsx(Tooltip, {
118
- arrow: true,
119
- title: "Current Color",
120
- children: /*#__PURE__*/_jsx(IconButton, {
121
- style: {
122
- borderRadius: "50px",
123
- background: activeColor
124
- }
125
- })
126
- }), /*#__PURE__*/_jsx(Tooltip, {
127
- arrow: true,
128
- title: "Color Picker",
129
- children: /*#__PURE__*/_jsx(IconButton, {
130
- onClick: handleColorPicker,
131
- children: /*#__PURE__*/_jsx(KeyboardArrowDownIcon, {})
132
- })
133
- }), /*#__PURE__*/_jsx(AllColors, {
134
- classes: popupClasses,
135
- open: colorPopover,
136
- activeColor: activeColor,
137
- anchorEl: colorAnchorEl,
138
- onClose: handleColorClose,
139
- onSelect: handleTextColor
140
- })]
141
- })]
142
- })
143
- }), /*#__PURE__*/_jsx(Grid, {
144
- item: true,
145
- children: /*#__PURE__*/_jsxs(Grid, {
146
- container: true,
147
- alignItems: "center",
148
- children: [/*#__PURE__*/_jsx(Grid, {
149
- item: true,
150
- children: /*#__PURE__*/_jsx(Tooltip, {
151
- arrow: true,
152
- title: "Reset",
153
- children: /*#__PURE__*/_jsx(IconButton, {
154
- onClick: handleInputReset(type),
155
- sx: classes.toolButtons,
156
- children: /*#__PURE__*/_jsx(RestRight, {})
157
- })
158
- })
159
- }), /*#__PURE__*/_jsxs(Grid, {
160
- item: true,
161
- children: [/*#__PURE__*/_jsx(Button, {
162
- sx: classes.variableBtn,
163
- onClick: handleVariables,
164
- endIcon: /*#__PURE__*/_jsx(KeyboardArrowDownIcon, {}),
165
- children: "Variables"
166
- }), /*#__PURE__*/_jsx(Menu, {
167
- id: "basic-menu",
168
- open: Boolean(anchorEl),
169
- anchorEl: anchorEl,
170
- onClose: handleClose,
171
- anchorOrigin: {
172
- vertical: "bottom",
173
- horizontal: "right"
174
- },
175
- transformOrigin: {
176
- vertical: "top",
177
- horizontal: "right"
178
- },
179
- children: variables?.map((m, i) => /*#__PURE__*/_jsx(MenuItem, {
180
- sx: {
181
- color: "#64748B"
182
- },
183
- onClick: handleSelectedVariables(m, type),
184
- children: m.name
185
- }, `menu_${i}_${m.name}`))
186
- })]
187
- })]
188
- })
189
- })]
190
- }), /*#__PURE__*/_jsx(Divider, {})]
191
- }), /*#__PURE__*/_jsx(Grid, {
24
+ children: /*#__PURE__*/_jsx(Grid, {
192
25
  item: true,
193
26
  xs: 12,
194
27
  sx: classes.bodyTextArea,
195
- children: type === 2 && /*#__PURE__*/_jsx(TextareaAutosize, {
196
- margin: "none",
197
- minRows: 6,
198
- value: subject,
199
- onChange: handleField
28
+ children: type === 2 && /*#__PURE__*/_jsx(MiniEditor, {
29
+ editorRef: editorRef,
30
+ classes: classes,
31
+ className: 'editorWorkflow',
32
+ handleEditorChange: handleField,
33
+ id: 1,
34
+ content: subject,
35
+ onSave: onSave,
36
+ miniEditorPlaceholder: `Hey {{ field_name }} \n\nThanks for attending the event called {{ Event Name }} at {{ Event Time }} on {{ Event Time }}.`,
37
+ otherProps: {
38
+ variableOptions: variables,
39
+ fontStyleOptions: ['underline']
40
+ }
200
41
  })
201
- })]
42
+ })
202
43
  });
203
44
  };
204
45
  export default UserInputs;
@@ -32,7 +32,12 @@ const Workflow = props => {
32
32
  const currentInstant = scheduleEvery === "minutes" ? minutes : scheduleEvery === "hours" ? hours : scheduleEvery === "days" ? days : [];
33
33
  const [scheduleOn, setScheduleOn] = useState(currentInstant[0]);
34
34
  const [subject, setSubject] = useState("Welcome to Flozy!");
35
- const [bodyData, setBodyData] = useState("Hey %field_name% \n\nThanks for attending the event called %Event Name% at %Event Time% on %Event Time%.");
35
+ const [bodyData, setBodyData] = useState([{
36
+ type: "paragraph",
37
+ children: [{
38
+ text: "Write Something"
39
+ }]
40
+ }]);
36
41
  const [flowEdited, setFlowEdited] = useState({
37
42
  isEdited: false,
38
43
  listIndex: null
@@ -48,18 +53,27 @@ const Workflow = props => {
48
53
  };
49
54
  const onFormBack = () => {
50
55
  setFormData(false);
51
- setBodyData("");
56
+ setBodyData([{
57
+ type: "paragraph",
58
+ children: [{
59
+ text: ""
60
+ }]
61
+ }]);
52
62
  setSubject("");
53
63
  setSchedule("immediately");
54
64
  };
55
65
  const saveFormWorkflow = () => {
56
66
  let workflowData = [...workflowList];
67
+ let subjectHtml = document.getElementsByTagName('textarea')[0].innerHTML;
68
+ let bodyHtml = document.getElementsByClassName('editorWorkflow')[0].innerHTML;
57
69
  let data = {
58
70
  schedule_type: schedule,
59
71
  schedule_every: schedule === "after" ? scheduleEvery : 0,
60
72
  schedule_on: schedule === "after" ? scheduleOn : 0,
61
73
  subject_data: subject,
62
- body_data: bodyData
74
+ body_data: bodyData,
75
+ subject_html: subjectHtml,
76
+ body_html: bodyHtml
63
77
  };
64
78
  if (flowEdited.isEdited) {
65
79
  workflowData[flowEdited.listIndex] = data;
@@ -71,7 +85,12 @@ const Workflow = props => {
71
85
  };
72
86
  onSave(saveData);
73
87
  setFormData(false);
74
- setBodyData("");
88
+ setBodyData([{
89
+ type: "paragraph",
90
+ children: [{
91
+ text: ""
92
+ }]
93
+ }]);
75
94
  setSubject("");
76
95
  setSchedule("immediately");
77
96
  setFlowEdited({
@@ -100,10 +119,10 @@ const Workflow = props => {
100
119
  };
101
120
  const handleSelectedVariables = (data, type) => () => {
102
121
  if (type === 1) {
103
- let newString = subject.concat(` %${data.name}%`);
122
+ let newString = subject.concat(` {{${data.name}}}`);
104
123
  setSubject(newString);
105
124
  } else if (type === 2) {
106
- let newString = bodyData.concat(` %${data.name}%`);
125
+ let newString = bodyData.concat(` {{${data.name}}}`);
107
126
  setBodyData(newString);
108
127
  }
109
128
  };
@@ -13,6 +13,7 @@ import SectionPopup from "./SectionPopup";
13
13
  import { gridItem } from "../../utils/gridItem";
14
14
  import { useEditorContext, useEditorSelection } from "../../hooks/useMouseMove";
15
15
  import { getTRBLBreakPoints, getBreakPointsValue } from "../../helper/theme";
16
+ import useWindowResize from "../../hooks/useWindowResize";
16
17
  import { jsx as _jsx } from "react/jsx-runtime";
17
18
  import { Fragment as _Fragment } from "react/jsx-runtime";
18
19
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -58,6 +59,7 @@ const Grid = props => {
58
59
  } = useEditorContext();
59
60
  const selected = hoverPath === path.join(",");
60
61
  const [showTool] = useEditorSelection(editor);
62
+ const [size] = useWindowResize();
61
63
  const onAddGridItem = () => {
62
64
  const currentPath = editor.selection?.anchor?.path;
63
65
  const ancestorsPath = Path.ancestors(currentPath, {
@@ -254,6 +256,12 @@ const Grid = props => {
254
256
  const bgImage = backgroundImage && backgroundImage !== "none" ? {
255
257
  backgroundImage: `url(${backgroundImage})`
256
258
  } : {};
259
+ const {
260
+ topLeft,
261
+ topRight,
262
+ bottomLeft,
263
+ bottomRight
264
+ } = getBreakPointsValue(borderRadius, size?.device) || {};
257
265
  return /*#__PURE__*/_jsxs(GridContainer, {
258
266
  container: true,
259
267
  className: `grid-container ${grid} has-hover element-root`,
@@ -269,9 +277,7 @@ const Grid = props => {
269
277
  ...bgImage,
270
278
  borderColor: borderColor || "transparent",
271
279
  borderWidth: borderWidth || "1px",
272
- borderRadius: {
273
- ...getBreakPointsValue(borderRadius || {}, null, "overrideBorderRadius", true)
274
- },
280
+ borderRadius: `${topLeft}px ${topRight}px ${bottomRight}px ${bottomLeft}px`,
275
281
  borderStyle: borderStyle || "solid",
276
282
  height: "auto"
277
283
  },
@@ -1,50 +1,12 @@
1
1
  import React from "react";
2
2
  import { useSlateStatic, useSelected, ReactEditor } from "slate-react";
3
3
  import { Box } from "@mui/material";
4
- import { getPageSettings } from "../utils/pageSettings";
5
- import { invertColor } from "../helper";
6
- import { isTextSelected } from "../utils/helper";
7
- import { useEditorContext } from "../hooks/useMouseMove";
4
+ import { getPageSettings } from "../../utils/pageSettings";
5
+ import { isTextSelected } from "../../utils/helper";
6
+ import { useEditorContext } from "../../hooks/useMouseMove";
7
+ import SimpleTextStyle from "./style";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
10
- const SimpleTextStyle = ({
11
- pageColor
12
- }) => ({
13
- root: {
14
- position: "relative",
15
- padding: "0px",
16
- "& .placeholder-simple-text": {
17
- color: invertColor(pageColor),
18
- background: "transparent",
19
- position: "absolute",
20
- zIndex: -1,
21
- left: "0px",
22
- top: "0px",
23
- bottom: 0,
24
- margin: "auto",
25
- pointerEvents: "none",
26
- height: "18px",
27
- overflow: "hidden",
28
- fontSize: "14px",
29
- "& .bg-pad-sl": {
30
- padding: "2px 4px 2px 4px",
31
- background: "transparent",
32
- color: invertColor(pageColor)
33
- }
34
- }
35
- },
36
- section: {
37
- display: "flex",
38
- width: "100%",
39
- backgroundSize: "cover",
40
- justifyContent: "center",
41
- alignItems: "center",
42
- "& .simple-text": {
43
- width: "80%",
44
- maxWidth: "1440px"
45
- }
46
- }
47
- });
48
10
  const SimpleText = props => {
49
11
  const {
50
12
  theme
@@ -68,7 +30,7 @@ const SimpleText = props => {
68
30
  pageColor
69
31
  } = pageSt?.pageProps || {};
70
32
  const classes = SimpleTextStyle({
71
- pageColor: pageColor || theme?.palette?.editor?.background || '#FFFFFF'
33
+ pageColor: pageColor || theme?.palette?.editor?.background || "#FFFFFF"
72
34
  });
73
35
  const selected = useSelected();
74
36
  const path = ReactEditor.findPath(editor, element);
@@ -0,0 +1,40 @@
1
+ import { invertColor } from "../../helper";
2
+ const SimpleTextStyle = ({
3
+ pageColor
4
+ }) => ({
5
+ root: {
6
+ position: "relative",
7
+ padding: "0px",
8
+ "& .placeholder-simple-text": {
9
+ color: invertColor(pageColor),
10
+ background: "transparent",
11
+ position: "absolute",
12
+ zIndex: -1,
13
+ left: "0px",
14
+ top: "0px",
15
+ bottom: 0,
16
+ margin: "auto",
17
+ pointerEvents: "none",
18
+ height: "18px",
19
+ overflow: "hidden",
20
+ fontSize: "14px",
21
+ "& .bg-pad-sl": {
22
+ padding: "2px 4px 2px 4px",
23
+ background: "transparent",
24
+ color: invertColor(pageColor)
25
+ }
26
+ }
27
+ },
28
+ section: {
29
+ display: "flex",
30
+ width: "100%",
31
+ backgroundSize: "cover",
32
+ justifyContent: "center",
33
+ alignItems: "center",
34
+ "& .simple-text": {
35
+ width: "80%",
36
+ maxWidth: "1440px"
37
+ }
38
+ }
39
+ });
40
+ export default SimpleTextStyle;
@@ -124,7 +124,7 @@ const TableCell = props => {
124
124
  children: [children, isHeader && !readOnly && tableSize?.height && !showTool ? /*#__PURE__*/_jsx(Resizer, {
125
125
  classes: classes,
126
126
  onMouseDown: onMouseDown,
127
- height: tableSize?.height
127
+ height: tableDOM.getBoundingClientRect()?.height
128
128
  }) : null, hasSelected ? /*#__PURE__*/_jsx("div", {
129
129
  className: "selection-area-tc",
130
130
  contentEditable: false
@@ -3,10 +3,35 @@ const VariableStyles = () => ({
3
3
  color: "#2563EB",
4
4
  background: "#EEEEEE"
5
5
  },
6
- variableSelectBtn: {
7
- height: "31px",
8
- borderRadius: "10px",
9
- marginLeft: "8px"
6
+ // variableSelectBtn: {
7
+ // height: "31px",
8
+ // borderRadius: "10px",
9
+ // marginLeft: "8px"
10
+ // }
11
+ variableBtn: {
12
+ background: "#F4F6F9",
13
+ color: "#64748B",
14
+ fontSize: "14px",
15
+ fontWeight: 500,
16
+ padding: "4px 22px",
17
+ textTransform: "none",
18
+ border: "1px solid #D8DDE1",
19
+ height: "36px",
20
+ paddingLeft: '8px',
21
+ paddingRight: '18px',
22
+ "& svg": {
23
+ width: '20px',
24
+ height: '20px',
25
+ "& path": {
26
+ stroke: "#64748B"
27
+ }
28
+ },
29
+ "&:hover": {
30
+ border: "1px solid #64748B"
31
+ },
32
+ '& .MuiSelect-select.MuiInputBase-input.MuiOutlinedInput-input': {
33
+ paddingRight: '5px'
34
+ }
10
35
  }
11
36
  });
12
37
  export default VariableStyles;
@@ -3,6 +3,7 @@ import { useSlateStatic } from "slate-react";
3
3
  import { MenuItem, Select } from "@mui/material";
4
4
  import { insertVariables } from "../../utils/variables";
5
5
  import VariableStyles from "./Style";
6
+ import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown";
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
7
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
8
9
  const VariableButton = props => {
@@ -21,13 +22,12 @@ const VariableButton = props => {
21
22
  id: "variable-selection-mini",
22
23
  displayEmpty: true,
23
24
  value: '',
24
- sx: classes.variableSelectBtn,
25
+ sx: classes.variableBtn,
25
26
  onChange: updateVariable,
27
+ IconComponent: () => /*#__PURE__*/_jsx(KeyboardArrowDownIcon, {}),
26
28
  children: [/*#__PURE__*/_jsx(MenuItem, {
27
29
  value: "",
28
- children: /*#__PURE__*/_jsx("em", {
29
- children: "Variables"
30
- })
30
+ children: "Variables"
31
31
  }), (options || []).map((item, index) => /*#__PURE__*/_jsx(MenuItem, {
32
32
  value: item.key,
33
33
  children: item.label
@@ -226,6 +226,17 @@ const editorStyles = ({
226
226
  fillOpacity: 0
227
227
  }
228
228
  }
229
+ },
230
+ "&.hideScroll": {
231
+ "&::-webkit-scrollbar-track": {
232
+ background: "none !important"
233
+ },
234
+ "&::-webkit-scrollbar-thumb": {
235
+ background: "none !important"
236
+ },
237
+ "&::-webkit-scrollbar-thumb:hover": {
238
+ background: "none !important"
239
+ }
229
240
  }
230
241
  },
231
242
  fullScreenWrapper: {
@@ -1,6 +1,6 @@
1
1
  import React, { useState } from "react";
2
2
  import { useSlateStatic } from "slate-react";
3
- import { Box, Tooltip } from "@mui/material";
3
+ import { Box, Divider, Grid, Tooltip } from "@mui/material";
4
4
  import { toolbarGroups } from "../toolbarGroups";
5
5
  import { MarkButton } from "../FormatTools";
6
6
  import LinkButton from "../../Elements/Link/LinkButton";
@@ -17,13 +17,14 @@ const BasicToolbar = props => {
17
17
  // props
18
18
  const {
19
19
  otherProps: {
20
- variableOptions
20
+ variableOptions,
21
+ fontStyleOptions
21
22
  }
22
23
  } = props;
23
24
 
24
25
  // state
25
26
  const [activeColor, setActiveColor] = useState("#000000");
26
- const fontStyle = allTools.filter(f => f.basic);
27
+ const fontStyle = allTools.filter(f => f.basic || fontStyleOptions?.includes(f.format));
27
28
  const link = allTools.find(f => f.format?.indexOf("link") >= 0);
28
29
  const handleTextColor = color => {
29
30
  setActiveColor(color);
@@ -35,32 +36,60 @@ const BasicToolbar = props => {
35
36
  return /*#__PURE__*/_jsxs(Box, {
36
37
  component: 'div',
37
38
  className: "basic-toolbar",
38
- children: [fontStyle?.map((m, i) => {
39
- return /*#__PURE__*/_jsx(MarkButton, {
40
- editor: editor,
41
- ...m
42
- }, `pptool_mark_${i}_${m.id}`);
43
- }), /*#__PURE__*/_jsx(LinkButton, {
44
- active: isBlockActive(editor, link.format),
45
- editor: editor
46
- }, link.id), /*#__PURE__*/_jsx(Tooltip, {
47
- title: "Font Color",
48
- children: /*#__PURE__*/_jsx(ColorPickerButton, {
49
- value: activeColor || "#0000",
50
- onSave: color => {
51
- handleTextColor(color);
52
- },
53
- defaultColors: colors
54
- })
55
- }), variableOptions && variableOptions.length > 0 && /*#__PURE__*/_jsx(VariableButton, {
56
- placeholder: "Variables",
57
- options: variableOptions
58
- })]
39
+ children: [/*#__PURE__*/_jsxs(Grid, {
40
+ container: true,
41
+ sx: {
42
+ padding: '10px'
43
+ },
44
+ alignItems: 'center',
45
+ justifyContent: 'space-between',
46
+ children: [/*#__PURE__*/_jsx(Grid, {
47
+ item: true,
48
+ children: /*#__PURE__*/_jsxs(Grid, {
49
+ container: true,
50
+ alignItems: 'center',
51
+ children: [/*#__PURE__*/_jsx(Grid, {
52
+ item: true,
53
+ children: fontStyle?.map((m, i) => {
54
+ return /*#__PURE__*/_jsx(MarkButton, {
55
+ editor: editor,
56
+ ...m
57
+ }, `pptool_mark_${i}_${m.id}`);
58
+ })
59
+ }), /*#__PURE__*/_jsx(Grid, {
60
+ item: true,
61
+ children: /*#__PURE__*/_jsx(LinkButton, {
62
+ active: isBlockActive(editor, link.format),
63
+ editor: editor
64
+ }, link.id)
65
+ }), /*#__PURE__*/_jsx(Grid, {
66
+ item: true,
67
+ children: /*#__PURE__*/_jsx(Tooltip, {
68
+ title: "Font Color",
69
+ children: /*#__PURE__*/_jsx(ColorPickerButton, {
70
+ value: activeColor || "#0000",
71
+ onSave: color => {
72
+ handleTextColor(color);
73
+ },
74
+ defaultColors: colors
75
+ })
76
+ })
77
+ })]
78
+ })
79
+ }), /*#__PURE__*/_jsx(Grid, {
80
+ item: true,
81
+ children: variableOptions && variableOptions.length > 0 && /*#__PURE__*/_jsx(VariableButton, {
82
+ placeholder: "Variables",
83
+ options: variableOptions
84
+ })
85
+ })]
86
+ }), /*#__PURE__*/_jsx(Divider, {})]
59
87
  });
60
88
  };
61
89
  BasicToolbar.defaultProps = {
62
90
  otherProps: {
63
- variableOptions: []
91
+ variableOptions: [],
92
+ fontStyleOptions: []
64
93
  }
65
94
  };
66
95
  export default BasicToolbar;