@flozy/editor 1.1.5 → 1.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. package/dist/Editor/CollaborativeEditor.js +6 -1
  2. package/dist/Editor/CommonEditor.js +16 -2
  3. package/dist/Editor/Editor.css +15 -3
  4. package/dist/Editor/Elements/Button/EditorButton.js +3 -3
  5. package/dist/Editor/Elements/Carousel/Carousel.js +19 -5
  6. package/dist/Editor/Elements/Carousel/CarouselItem.js +5 -1
  7. package/dist/Editor/Elements/ChipText/ChipText.js +44 -0
  8. package/dist/Editor/Elements/ChipText/ChipTextButton.js +64 -0
  9. package/dist/Editor/Elements/ChipText/ChipTextPopup.js +24 -0
  10. package/dist/Editor/Elements/DrawerMenu/DrawerMenu.js +66 -0
  11. package/dist/Editor/Elements/DrawerMenu/DrawerMenuButton.js +21 -0
  12. package/dist/Editor/Elements/Link/Link.js +5 -5
  13. package/dist/Editor/Elements/Link/LinkButton.js +50 -37
  14. package/dist/Editor/Elements/Table/Table.js +160 -10
  15. package/dist/Editor/Elements/Table/TableCell.js +55 -143
  16. package/dist/Editor/Elements/Table/table.css +13 -0
  17. package/dist/Editor/Toolbar/Toolbar.js +12 -0
  18. package/dist/Editor/Toolbar/toolbarGroups.js +6 -0
  19. package/dist/Editor/common/ColorPickerButton.js +65 -0
  20. package/dist/Editor/common/StyleBuilder/chipTextStyle.js +35 -0
  21. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +8 -14
  22. package/dist/Editor/common/StyleBuilder/index.js +8 -3
  23. package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +12 -0
  24. package/dist/Editor/plugins/withLinks.js +40 -2
  25. package/dist/Editor/plugins/withTable.js +10 -1
  26. package/dist/Editor/utils/SlateUtilityFunctions.js +10 -0
  27. package/dist/Editor/utils/customHooks/useTableResize.js +46 -0
  28. package/dist/Editor/utils/insertChipText.js +49 -0
  29. package/dist/Editor/utils/insertDrawerMenu.js +52 -0
  30. package/dist/Editor/utils/table.js +26 -3
  31. package/package.json +2 -1
@@ -1,30 +1,180 @@
1
- import React from "react";
1
+ import React, { useState } from "react";
2
+ import { Transforms } from "slate";
3
+ import { useSelected, useSlateStatic } from "slate-react";
4
+ import { IconButton } from "@mui/material";
5
+ import AlignHorizontalLeftIcon from "@mui/icons-material/AlignHorizontalLeft";
6
+ import AlignHorizontalRightIcon from "@mui/icons-material/AlignHorizontalRight";
7
+ import AlignVerticalTopIcon from "@mui/icons-material/AlignVerticalTop";
8
+ import AlignVerticalBottomIcon from "@mui/icons-material/AlignVerticalBottom";
9
+ import DeleteForeverIcon from "@mui/icons-material/DeleteForever";
10
+ import SettingsIcon from "@mui/icons-material/Settings";
11
+ import DeleteCellIcon from "./DeleteCellIcon";
12
+ import DeleteRowIcon from "./DeleteRowIcon";
13
+ import { TableUtil } from "../../utils/table";
14
+ import TablePopup from "./TablePopup";
15
+ import "./table.css";
2
16
  import { jsx as _jsx } from "react/jsx-runtime";
3
- const Table = ({
4
- attributes,
5
- children,
6
- element
7
- }) => {
17
+ import { jsxs as _jsxs } from "react/jsx-runtime";
18
+ const TABLE_MENUS = [{
19
+ Icon: AlignHorizontalRightIcon,
20
+ text: "Insert Columns to the Right",
21
+ action: {
22
+ type: "insertColumn",
23
+ position: "after"
24
+ }
25
+ }, {
26
+ Icon: AlignHorizontalLeftIcon,
27
+ text: "Insert Columns to the Left",
28
+ action: {
29
+ type: "insertColumn",
30
+ position: "at"
31
+ }
32
+ }, {
33
+ Icon: AlignVerticalTopIcon,
34
+ text: "Insert Row Above",
35
+ action: {
36
+ type: "insertRow",
37
+ positon: "at"
38
+ }
39
+ }, {
40
+ Icon: AlignVerticalBottomIcon,
41
+ text: "Insert Row Below",
42
+ action: {
43
+ type: "insertRow",
44
+ position: "after"
45
+ }
46
+ }, {
47
+ Icon: DeleteRowIcon,
48
+ text: "Delete Row",
49
+ action: {
50
+ type: "deleteRow"
51
+ }
52
+ }, {
53
+ Icon: DeleteCellIcon,
54
+ text: "Delete Column",
55
+ action: {
56
+ type: "deleteColumn"
57
+ }
58
+ }, {
59
+ Icon: SettingsIcon,
60
+ text: "Settings",
61
+ action: {
62
+ type: "settings"
63
+ }
64
+ }, {
65
+ Icon: DeleteForeverIcon,
66
+ text: "Remove Table",
67
+ action: {
68
+ type: "remove"
69
+ }
70
+ }];
71
+ const Table = props => {
72
+ const {
73
+ element,
74
+ attributes,
75
+ children,
76
+ customProps
77
+ } = props;
78
+ const [openSetttings, setOpenSettings] = useState(false);
8
79
  const {
9
80
  bgColor,
10
81
  borderColor
11
82
  } = element;
12
- return /*#__PURE__*/_jsx("div", {
83
+ const editor = useSlateStatic();
84
+ const selected = useSelected();
85
+ const table = new TableUtil(editor);
86
+ const tableProps = table.getTableProps();
87
+ const handleAction = ({
88
+ type,
89
+ position
90
+ }) => () => {
91
+ Transforms.select(editor, editor.selection);
92
+ switch (type) {
93
+ case "insertRow":
94
+ table.insertRow(position);
95
+ break;
96
+ case "insertColumn":
97
+ table.insertColumn(position);
98
+ break;
99
+ case "deleteRow":
100
+ table.deleteRow();
101
+ break;
102
+ case "deleteColumn":
103
+ table.deleteColumn();
104
+ break;
105
+ case "remove":
106
+ table.removeTable();
107
+ break;
108
+ case "settings":
109
+ if (tableProps) {
110
+ onSettings(true);
111
+ }
112
+ break;
113
+ default:
114
+ return;
115
+ }
116
+ };
117
+ const ToolBar = () => {
118
+ return selected ? /*#__PURE__*/_jsx("div", {
119
+ contentEditable: false,
120
+ style: {
121
+ position: "absolute",
122
+ top: "-40px",
123
+ left: 0,
124
+ backgroundColor: "#CCC"
125
+ },
126
+ children: TABLE_MENUS.map(({
127
+ Icon,
128
+ text,
129
+ action
130
+ }) => {
131
+ return /*#__PURE__*/_jsx(IconButton, {
132
+ title: text,
133
+ onClick: handleAction(action),
134
+ children: /*#__PURE__*/_jsx(Icon, {})
135
+ }, text);
136
+ })
137
+ }) : null;
138
+ };
139
+ const onSettings = () => {
140
+ setOpenSettings(true);
141
+ };
142
+ const onSave = data => {
143
+ const updateData = {
144
+ ...data
145
+ };
146
+ delete updateData.children;
147
+ delete updateData.type;
148
+ table.updateTableStyle(updateData, {
149
+ ...tableProps
150
+ });
151
+ onClose();
152
+ };
153
+ const onClose = () => {
154
+ setOpenSettings(false);
155
+ };
156
+ return /*#__PURE__*/_jsxs("div", {
13
157
  style: {
14
158
  minWidth: "100%",
15
159
  maxWidth: "100%",
16
160
  position: "relative"
17
161
  },
18
- children: /*#__PURE__*/_jsx("table", {
162
+ children: [/*#__PURE__*/_jsx("table", {
19
163
  style: {
20
164
  backgroundColor: bgColor,
21
- border: `1px solid ${borderColor}`
165
+ border: `1px solid ${borderColor}`,
166
+ width: "auto"
22
167
  },
23
168
  children: /*#__PURE__*/_jsx("tbody", {
24
169
  ...attributes,
25
170
  children: children
26
171
  })
27
- })
172
+ }), /*#__PURE__*/_jsx(ToolBar, {}), openSetttings ? /*#__PURE__*/_jsx(TablePopup, {
173
+ element: tableProps?.styleProps || {},
174
+ onSave: onSave,
175
+ onClose: onClose,
176
+ customProps: customProps
177
+ }) : null]
28
178
  });
29
179
  };
30
180
  export default Table;
@@ -1,89 +1,50 @@
1
- import React, { useState } from "react";
2
- import { Transforms, Editor, Element } from "slate";
1
+ import React, { useState, useEffect } from "react";
2
+ import { Editor, Element } from "slate";
3
3
  import { useSelected, useSlateStatic, ReactEditor } from "slate-react";
4
- import { IconButton } from "@mui/material";
5
- import AlignHorizontalLeftIcon from "@mui/icons-material/AlignHorizontalLeft";
6
- import AlignHorizontalRightIcon from "@mui/icons-material/AlignHorizontalRight";
7
- import AlignVerticalTopIcon from "@mui/icons-material/AlignVerticalTop";
8
- import AlignVerticalBottomIcon from "@mui/icons-material/AlignVerticalBottom";
9
- import DeleteForeverIcon from "@mui/icons-material/DeleteForever";
10
- import SettingsIcon from "@mui/icons-material/Settings";
11
- import DeleteCellIcon from "./DeleteCellIcon";
12
- import DeleteRowIcon from "./DeleteRowIcon";
4
+ import useTableResize from "../../utils/customHooks/useTableResize";
13
5
  import { TableUtil } from "../../utils/table";
14
- import TablePopup from "./TablePopup";
15
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
+ import { Fragment as _Fragment } from "react/jsx-runtime";
16
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
17
- const TABLE_MENUS = [{
18
- Icon: AlignHorizontalRightIcon,
19
- text: "Insert Columns to the Right",
20
- action: {
21
- type: "insertColumn",
22
- position: "after"
23
- }
24
- }, {
25
- Icon: AlignHorizontalLeftIcon,
26
- text: "Insert Columns to the Left",
27
- action: {
28
- type: "insertColumn",
29
- position: "at"
30
- }
31
- }, {
32
- Icon: AlignVerticalTopIcon,
33
- text: "Insert Row Above",
34
- action: {
35
- type: "insertRow",
36
- positon: "at"
37
- }
38
- }, {
39
- Icon: AlignVerticalBottomIcon,
40
- text: "Insert Row Below",
41
- action: {
42
- type: "insertRow",
43
- position: "after"
44
- }
45
- }, {
46
- Icon: DeleteRowIcon,
47
- text: "Delete Row",
48
- action: {
49
- type: "deleteRow"
50
- }
51
- }, {
52
- Icon: DeleteCellIcon,
53
- text: "Delete Column",
54
- action: {
55
- type: "deleteColumn"
56
- }
57
- }, {
58
- Icon: SettingsIcon,
59
- text: "Settings",
60
- action: {
61
- type: "settings"
62
- }
63
- }, {
64
- Icon: DeleteForeverIcon,
65
- text: "Remove Table",
66
- action: {
67
- type: "remove"
68
- }
69
- }];
9
+ const Resizer = ({
10
+ onMouseDown
11
+ }) => {
12
+ return /*#__PURE__*/_jsx(_Fragment, {
13
+ children: /*#__PURE__*/_jsx("button", {
14
+ contentEditable: false,
15
+ onPointerDown: onMouseDown,
16
+ className: "cell-resizer",
17
+ style: {
18
+ width: "10px",
19
+ height: "100%",
20
+ position: "absolute",
21
+ right: "0px",
22
+ top: 0
23
+ }
24
+ })
25
+ });
26
+ };
70
27
  const TableCell = props => {
71
28
  const {
72
29
  element,
73
30
  attributes,
74
- children,
75
- customProps
31
+ children
76
32
  } = props;
77
- const [openSetttings, setOpenSettings] = useState(false);
78
33
  const {
79
34
  bgColor,
80
35
  borderColor
81
36
  } = element;
37
+ const [parentDOM, setParentDOM] = useState(null);
82
38
  const editor = useSlateStatic();
83
39
  const selected = useSelected();
40
+ const path = ReactEditor.findPath(editor, element);
41
+ const isHeader = path.length >= 2 ? path[path.length - 2] === 0 : false;
42
+ const [size, onMouseDown, resizing, onLoad] = useTableResize({
43
+ parentDOM,
44
+ size: element?.size
45
+ });
84
46
  const table = new TableUtil(editor);
85
47
  const tableProps = table.getTableProps();
86
- const path = ReactEditor.findPath(editor, element);
87
48
  const [tableNode] = Editor.nodes(editor, {
88
49
  at: path,
89
50
  match: n => !Editor.isEditor(n) && Element.isElement(n) && n.type === "table"
@@ -94,87 +55,38 @@ const TableCell = props => {
94
55
  });
95
56
  const [parentProps] = tableNode || [{}];
96
57
  const [rowProps] = rowNode || [{}];
97
- const handleInsert = ({
98
- type,
99
- position
100
- }) => () => {
101
- Transforms.select(editor, editor.selection);
102
- switch (type) {
103
- case "insertRow":
104
- table.insertRow(position);
105
- break;
106
- case "insertColumn":
107
- table.insertColumn(position);
108
- break;
109
- case "deleteRow":
110
- table.deleteRow();
111
- break;
112
- case "deleteColumn":
113
- table.deleteColumn();
114
- break;
115
- case "remove":
116
- table.removeTable();
117
- break;
118
- case "settings":
119
- if (tableProps) {
120
- onSettings(true);
121
- }
122
- break;
123
- default:
124
- return;
58
+ useEffect(() => {
59
+ if (editor && element) {
60
+ const dom = ReactEditor.toDOMNode(editor, element);
61
+ setParentDOM(dom);
62
+ onLoad(element?.size || {
63
+ width: 100,
64
+ height: 100
65
+ });
125
66
  }
126
- };
127
- const ToolBar = () => {
128
- return selected ? /*#__PURE__*/_jsx("div", {
129
- contentEditable: false,
130
- style: {
131
- position: "absolute",
132
- top: "-40px",
133
- left: 0,
134
- backgroundColor: "#CCC"
135
- },
136
- children: TABLE_MENUS.map(({
137
- Icon,
138
- text,
139
- action
140
- }) => {
141
- return /*#__PURE__*/_jsx(IconButton, {
142
- title: text,
143
- onClick: handleInsert(action),
144
- children: /*#__PURE__*/_jsx(Icon, {})
145
- }, text);
146
- })
147
- }) : null;
148
- };
149
- const onSettings = () => {
150
- setOpenSettings(true);
151
- };
152
- const onSave = data => {
153
- const updateData = {
154
- ...data
155
- };
156
- delete updateData.children;
157
- delete updateData.type;
158
- table.updateTableStyle(updateData, {
159
- ...tableProps
160
- });
161
- onClose();
162
- };
163
- const onClose = () => {
164
- setOpenSettings(false);
165
- };
67
+ }, []);
68
+ useEffect(() => {
69
+ if (!resizing && tableProps) {
70
+ table.updateTableStyle({
71
+ "col.size": size
72
+ }, tableProps);
73
+ }
74
+ }, [resizing]);
75
+ const sizeProps = isHeader ? {
76
+ width: size?.width || 100
77
+ } : {};
166
78
  return /*#__PURE__*/_jsxs("td", {
167
79
  ...element.attr,
168
80
  ...attributes,
81
+ className: "editor-table-cell",
169
82
  style: {
83
+ position: "relative",
170
84
  backgroundColor: bgColor,
171
- border: `3px solid ${borderColor || rowProps?.borderColor || parentProps?.borderColor}`
85
+ border: `3px solid ${borderColor || rowProps?.borderColor || parentProps?.borderColor}`,
86
+ ...(sizeProps || {})
172
87
  },
173
- children: [/*#__PURE__*/_jsx(ToolBar, {}), children, openSetttings ? /*#__PURE__*/_jsx(TablePopup, {
174
- element: tableProps?.styleProps || {},
175
- onSave: onSave,
176
- onClose: onClose,
177
- customProps: customProps
88
+ children: [children, selected && isHeader ? /*#__PURE__*/_jsx(Resizer, {
89
+ onMouseDown: onMouseDown
178
90
  }) : null]
179
91
  });
180
92
  };
@@ -0,0 +1,13 @@
1
+ .editor-table-cell {
2
+ /* min-width: 100px; */
3
+ }
4
+
5
+ .editor-table-cell .cell-resizer {
6
+ width: 10px;
7
+ height: 100%;
8
+ position: absolute;
9
+ right: 0;
10
+ top: 0;
11
+ visibility: visible;
12
+ background-color: aqua;
13
+ }
@@ -23,6 +23,8 @@ import SignatureButton from "../Elements/Signature/SignatureButton";
23
23
  import ButtonToolIcon from "../Elements/Button/ButtonToolIcon";
24
24
  import PageSettingsButton from "../Elements/PageSettings/PageSettingsButton";
25
25
  import CarouselButton from "../Elements/Carousel/CarouselButton";
26
+ import ChipTextButton from "../Elements/ChipText/ChipTextButton";
27
+ import DrawerMenuButton from "../Elements/DrawerMenu/DrawerMenuButton";
26
28
  import { jsx as _jsx } from "react/jsx-runtime";
27
29
  import { jsxs as _jsxs } from "react/jsx-runtime";
28
30
  const Toolbar = props => {
@@ -186,6 +188,16 @@ const Toolbar = props => {
186
188
  return /*#__PURE__*/_jsx(CarouselButton, {
187
189
  editor: editor
188
190
  }, element.id);
191
+ case "chip-text":
192
+ return /*#__PURE__*/_jsx(ChipTextButton, {
193
+ editor: editor,
194
+ customProps: customProps
195
+ }, element.id);
196
+ case "drawer":
197
+ return /*#__PURE__*/_jsx(DrawerMenuButton, {
198
+ editor: editor,
199
+ customProps: customProps
200
+ }, element.id);
189
201
  default:
190
202
  return null;
191
203
  }
@@ -125,5 +125,11 @@ const toolbarGroups = [[{
125
125
  }, {
126
126
  id: 34,
127
127
  type: "carousel"
128
+ }, {
129
+ id: 35,
130
+ type: "chip-text"
131
+ }, {
132
+ id: 36,
133
+ type: "drawer"
128
134
  }]];
129
135
  export default toolbarGroups;
@@ -0,0 +1,65 @@
1
+ import React, { useState } from "react";
2
+ import { Grid, Button, Popover } from "@mui/material";
3
+ import ColorPicker from "react-best-gradient-color-picker";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import { jsxs as _jsxs } from "react/jsx-runtime";
6
+ import { Fragment as _Fragment } from "react/jsx-runtime";
7
+ const ColorPickerButton = props => {
8
+ const {
9
+ value,
10
+ onSave
11
+ } = props;
12
+ const [anchorEl, setAnchorEl] = useState(null);
13
+ const [color, setColor] = useState(value);
14
+ const open = Boolean(anchorEl);
15
+ const handleColorPicker = e => {
16
+ setAnchorEl(e.currentTarget);
17
+ };
18
+ const handleSave = () => {
19
+ onSave(color);
20
+ handleClose();
21
+ };
22
+ const handleClose = () => {
23
+ setAnchorEl(null);
24
+ };
25
+ return /*#__PURE__*/_jsxs(_Fragment, {
26
+ children: [/*#__PURE__*/_jsx(Button, {
27
+ style: {
28
+ background: value,
29
+ height: "32px",
30
+ border: "1px solid #000"
31
+ },
32
+ onClick: handleColorPicker
33
+ }), /*#__PURE__*/_jsx(Popover, {
34
+ open: open,
35
+ anchorEl: anchorEl,
36
+ onClose: handleClose,
37
+ children: /*#__PURE__*/_jsx(Grid, {
38
+ container: true,
39
+ padding: 2,
40
+ children: /*#__PURE__*/_jsxs(Grid, {
41
+ item: true,
42
+ xs: 12,
43
+ children: [/*#__PURE__*/_jsx(ColorPicker, {
44
+ value: color,
45
+ onChange: setColor
46
+ }), /*#__PURE__*/_jsxs("div", {
47
+ style: {
48
+ display: "flex",
49
+ justifyContent: "end",
50
+ marginTop: "16px"
51
+ },
52
+ children: [/*#__PURE__*/_jsx(Button, {
53
+ onClick: handleClose,
54
+ children: "Cancel"
55
+ }), /*#__PURE__*/_jsx(Button, {
56
+ onClick: handleSave,
57
+ children: "Save"
58
+ })]
59
+ })]
60
+ })
61
+ })
62
+ })]
63
+ });
64
+ };
65
+ export default ColorPickerButton;
@@ -0,0 +1,35 @@
1
+ const chipTextStyle = [{
2
+ tab: "Banner Spacing",
3
+ value: "bannerSpacing",
4
+ fields: [{
5
+ label: "Banner Spacing",
6
+ key: "bannerSpacing",
7
+ type: "bannerSpacing"
8
+ }]
9
+ }, {
10
+ tab: "Border Radius",
11
+ value: "borderRadius",
12
+ fields: [{
13
+ label: "Border Radius",
14
+ key: "borderRadius",
15
+ type: "borderRadius"
16
+ }]
17
+ }, {
18
+ tab: "Colors",
19
+ value: "colors",
20
+ fields: [{
21
+ label: "Text",
22
+ key: "textColor",
23
+ type: "color",
24
+ needPreview: true
25
+ }, {
26
+ label: "Background",
27
+ key: "bgColor",
28
+ type: "color"
29
+ }, {
30
+ label: "Border",
31
+ key: "borderColor",
32
+ type: "color"
33
+ }]
34
+ }];
35
+ export default chipTextStyle;
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
2
  import { Grid, TextField, InputAdornment } from "@mui/material";
3
+ import ColorPickerButton from "../../ColorPickerButton";
3
4
  import { jsx as _jsx } from "react/jsx-runtime";
4
5
  import { jsxs as _jsxs } from "react/jsx-runtime";
5
6
  const Color = props => {
@@ -19,9 +20,9 @@ const Color = props => {
19
20
  bgColor,
20
21
  borderColor
21
22
  } = elementProps;
22
- const handleChange = e => {
23
+ const onSave = color => {
23
24
  onChange({
24
- [key]: e.target.value
25
+ [key]: color
25
26
  });
26
27
  };
27
28
  return /*#__PURE__*/_jsxs(Grid, {
@@ -35,7 +36,7 @@ const Color = props => {
35
36
  style: {
36
37
  padding: "8px",
37
38
  color: textColor,
38
- backgroundColor: bgColor,
39
+ background: bgColor,
39
40
  border: `1px solid ${borderColor}`
40
41
  },
41
42
  children: "Text Content"
@@ -66,19 +67,12 @@ const Color = props => {
66
67
  shrink: true
67
68
  },
68
69
  InputProps: {
69
- endAdornment: /*#__PURE__*/_jsxs(InputAdornment, {
70
+ endAdornment: /*#__PURE__*/_jsx(InputAdornment, {
70
71
  position: "end",
71
- children: [/*#__PURE__*/_jsx("input", {
72
- type: "color",
72
+ children: /*#__PURE__*/_jsx(ColorPickerButton, {
73
73
  value: value,
74
- name: "textColor",
75
- onChange: handleChange
76
- }), /*#__PURE__*/_jsx("input", {
77
- type: "checkbox",
78
- onChange: handleChange,
79
- value: "rgba(0,0,0,0)",
80
- checked: value === "rgba(0,0,0,0)"
81
- })]
74
+ onSave: onSave
75
+ })
82
76
  })
83
77
  }
84
78
  })
@@ -66,6 +66,7 @@ const StyleBuilder = props => {
66
66
  element,
67
67
  onSave,
68
68
  onClose,
69
+ onDelete,
69
70
  customProps
70
71
  } = props;
71
72
  const [elementProps, setElementProps] = useState(element);
@@ -86,8 +87,8 @@ const StyleBuilder = props => {
86
87
  return /*#__PURE__*/_jsxs(Dialog, {
87
88
  open: true,
88
89
  fullWidth: true,
89
- children: [/*#__PURE__*/_jsx(DialogTitle, {
90
- children: title
90
+ children: [/*#__PURE__*/_jsxs(DialogTitle, {
91
+ children: [title, " "]
91
92
  }), /*#__PURE__*/_jsxs(DialogContent, {
92
93
  children: [/*#__PURE__*/_jsx(StyleTabs, {
93
94
  renderTabs: renderTabs,
@@ -101,7 +102,11 @@ const StyleBuilder = props => {
101
102
  customProps: customProps
102
103
  })]
103
104
  }), /*#__PURE__*/_jsxs(DialogActions, {
104
- children: [/*#__PURE__*/_jsx(Button, {
105
+ children: [onDelete ? /*#__PURE__*/_jsx(Button, {
106
+ onClick: onDelete,
107
+ color: "error",
108
+ children: "Delete"
109
+ }) : null, /*#__PURE__*/_jsx(Button, {
105
110
  onClick: onClose,
106
111
  children: "Cancel"
107
112
  }), /*#__PURE__*/_jsx(Button, {
@@ -2,9 +2,21 @@ const pageSettingsStyle = [{
2
2
  tab: "Colors",
3
3
  value: "colors",
4
4
  fields: [{
5
+ label: "Text",
6
+ key: "color",
7
+ type: "color"
8
+ }, {
5
9
  label: "Background",
6
10
  key: "pageColor",
7
11
  type: "color"
8
12
  }]
13
+ }, {
14
+ tab: "Spacing",
15
+ value: "spacing",
16
+ fields: [{
17
+ label: "bannerSpacing",
18
+ key: "bannerSpacing",
19
+ type: "bannerSpacing"
20
+ }]
9
21
  }];
10
22
  export default pageSettingsStyle;