@flozy/editor 4.9.0 → 4.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -579,8 +579,9 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
579
579
  setIsTextSelected: setIsTextSelected,
580
580
  customProps: customProps,
581
581
  editorWrapper: editorWrapper
582
- }) : null, !readOnly && showViewport ? /*#__PURE__*/_jsx(SwitchViewport, {
582
+ }) : null, !readOnly ? /*#__PURE__*/_jsx(SwitchViewport, {
583
583
  breakpoint: breakpoint,
584
+ show: showViewport,
584
585
  onChange: b => onSwitchBreakpoint(b)
585
586
  }) : null]
586
587
  })
@@ -1234,7 +1234,5 @@ blockquote {
1234
1234
 
1235
1235
  .settingsHeader {
1236
1236
  font-size: 14px !important;
1237
- font-weight: 600 !important;
1238
- font-family: Inter, sans-serif;
1239
- text-transform: uppercase;
1237
+ font-weight: 500 !important;
1240
1238
  }
@@ -101,6 +101,7 @@ const Video = ({
101
101
  horizantal
102
102
  } = alignment || {};
103
103
  const path = ReactEditor.findPath(editor, element);
104
+ const hasAspect = url && aspectRatio !== "custom" && aspectRatio;
104
105
  const getSize = () => {
105
106
  if (element?.size === undefined) {
106
107
  return {
@@ -190,10 +191,10 @@ const Video = ({
190
191
  width: {
191
192
  ...getBreakPointsValue(getSize(), null, "overrideReSize", true)
192
193
  },
193
- height: url && !aspectRatio ? {
194
+ height: url && (aspectRatio === "custom" || !aspectRatio) ? {
194
195
  ...getBreakPointsValue(getSize(), null, "overrideReSizeH", true)
195
196
  } : "auto",
196
- aspectRatio: aspectRatio ? aspectRatio : "auto"
197
+ aspectRatio: hasAspect ? aspectRatio : "auto"
197
198
  }, theme)
198
199
  };
199
200
  }
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable no-unused-vars */
2
2
  import React, { useEffect, useState, useRef } from "react";
3
- import { useTheme } from "@mui/material";
3
+ import { Button, Dialog, DialogActions, DialogContent, useTheme } from "@mui/material";
4
4
  import { Node, Path, Transforms } from "slate";
5
5
  import { useSlateStatic, ReactEditor } from "slate-react";
6
6
  import GridItemPopup from "./GridItemPopup";
@@ -83,7 +83,7 @@ const GridItem = props => {
83
83
  initColumnWidth,
84
84
  updateColumnWidth,
85
85
  updateColNodes
86
- } = useGrid();
86
+ } = useGrid() || {};
87
87
  const columnRef = useRef(null);
88
88
  const theme = useTheme();
89
89
  const classes = GridStyles(theme);
@@ -129,6 +129,7 @@ const GridItem = props => {
129
129
  const selected = hoverPath === path.join(",");
130
130
  const [showTool] = useEditorSelection(editor);
131
131
  const [parentDOM, setParentDOM] = useState({});
132
+ const [alert, setAlert] = useState(null);
132
133
  const [size, onMouseDown, resizing, onLoad, isDone] = useTableResize({
133
134
  ...parentDOM
134
135
  });
@@ -216,16 +217,23 @@ const GridItem = props => {
216
217
  try {
217
218
  const gridPath = Path.parent(path);
218
219
  const gridNode = Node.get(editor, gridPath);
219
- onAddGridItem({
220
- editor,
221
- element: gridNode,
222
- children: gridNode?.children || [],
223
- isColumn: gridNode?.equalItems
224
- });
220
+ if (gridNode?.children?.length === 5) {
221
+ setAlert("Maximum column limit exceeded");
222
+ } else {
223
+ onAddGridItem({
224
+ editor,
225
+ element: gridNode,
226
+ children: gridNode?.children || [],
227
+ isColumn: gridNode?.equalItems
228
+ });
229
+ }
225
230
  } catch (err) {
226
231
  console.log(err);
227
232
  }
228
233
  };
234
+ const handleClose = () => {
235
+ setAlert(null);
236
+ };
229
237
  const getBorderColor = () => {
230
238
  return borderColor || "transparent";
231
239
  };
@@ -315,7 +323,8 @@ const GridItem = props => {
315
323
  ...giInProps,
316
324
  width: "100%",
317
325
  height: "100%",
318
- color: textColor || "#000",
326
+ // dark theme default color effect - FS-6961
327
+ color: textColor || "inherit",
319
328
  "&:hover": {
320
329
  borderColor: borderColorHover || borderColor || "transparent"
321
330
  }
@@ -328,11 +337,22 @@ const GridItem = props => {
328
337
  onClose: onClose,
329
338
  onDelete: onDelete,
330
339
  customProps: customProps
331
- }) : null, /*#__PURE__*/_jsx(Resizer, {
340
+ }) : null, !readOnly ? /*#__PURE__*/_jsx(Resizer, {
332
341
  classes: classes,
333
342
  className: resizing ? "resizing" : "",
334
343
  onMouseDown: onMouseDown,
335
344
  height: "auto"
345
+ }) : null, /*#__PURE__*/_jsxs(Dialog, {
346
+ open: Boolean(alert),
347
+ onClose: handleClose,
348
+ children: [/*#__PURE__*/_jsx(DialogContent, {
349
+ children: alert
350
+ }), /*#__PURE__*/_jsx(DialogActions, {
351
+ children: /*#__PURE__*/_jsx(Button, {
352
+ onClick: handleClose,
353
+ children: "Close"
354
+ })
355
+ })]
336
356
  })]
337
357
  });
338
358
  };
@@ -38,14 +38,25 @@ const GridStyles = theme => ({
38
38
  }
39
39
  },
40
40
  flex: "1 1 0",
41
+ height: "100%",
41
42
  [theme?.breakpoints?.between("xs", "md")]: {
42
43
  flex: "1 1 100%",
44
+ height: "auto",
43
45
  padding: "0px !important",
44
46
  minWidth: "100% !important",
45
47
  maxWidth: "100% !important",
46
48
  "& .col-width-resizer": {
47
49
  display: "none !important"
48
50
  }
51
+ },
52
+ "& .gi-inner-cw": {
53
+ overflowX: "auto",
54
+ wordBreak: "break-word",
55
+ "& .tableToolBar": {
56
+ display: "flex",
57
+ maxWidth: "100%",
58
+ overflowX: "auto"
59
+ }
49
60
  }
50
61
  },
51
62
  "& .col-width-resizer": {
@@ -14,10 +14,10 @@ const default_grid = [{
14
14
  bgColor: "rgba(255, 255, 255, 0)",
15
15
  lockSpacing: true,
16
16
  bannerSpacing: {
17
- top: "0",
17
+ top: "8",
18
18
  left: "0",
19
19
  right: "0",
20
- bottom: "0"
20
+ bottom: "16"
21
21
  },
22
22
  alignment: {
23
23
  horizantal: "center"
@@ -36,10 +36,10 @@ const default_grid = [{
36
36
  bgColor: "rgba(255, 255, 255, 0)",
37
37
  lockSpacing: true,
38
38
  bannerSpacing: {
39
- top: "0",
39
+ top: "8",
40
40
  left: "0",
41
41
  right: "0",
42
- bottom: "0"
42
+ bottom: "16"
43
43
  },
44
44
  forceFullWidth: true,
45
45
  borderWidth: "0px"
@@ -5,6 +5,7 @@ import { StyleContent } from "../../../StyleBuilder";
5
5
  import { formStyle } from "../../../StyleBuilder/formStyle";
6
6
  import { ReactEditor } from "slate-react";
7
7
  import { ExpandMoreOutlined } from "@mui/icons-material";
8
+ import { useEditorContext } from "../../../../hooks/useMouseMove";
8
9
  import { jsx as _jsx } from "react/jsx-runtime";
9
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
10
11
  const FormSettings = props => {
@@ -20,6 +21,9 @@ const FormSettings = props => {
20
21
  const {
21
22
  hideTools
22
23
  } = customProps || {};
24
+ const {
25
+ theme
26
+ } = useEditorContext();
23
27
  const onChange = data => {
24
28
  const currentPath = ReactEditor.findPath(editor, element);
25
29
  const updateData = {
@@ -58,6 +62,17 @@ const FormSettings = props => {
58
62
  MuiAccordion: {
59
63
  styleOverrides: {
60
64
  root: {
65
+ "& .MuiAccordionSummary-root": {
66
+ flexDirection: "row-reverse",
67
+ "& .MuiSvgIcon-root": {
68
+ color: theme?.palette?.primary?.main
69
+ },
70
+ "& .Mui-expanded": {
71
+ "& .MuiSvgIcon-root": {
72
+ color: theme?.palette?.text?.blueText
73
+ }
74
+ }
75
+ },
61
76
  padding: "0px",
62
77
  "&.Mui-expanded": {
63
78
  margin: "0"
@@ -85,7 +100,7 @@ const FormSettings = props => {
85
100
  padding: "0px"
86
101
  },
87
102
  children: /*#__PURE__*/_jsx(Typography, {
88
- variant: "h3",
103
+ variant: "body1",
89
104
  className: "settingsHeader",
90
105
  color: "primary",
91
106
  style: {
@@ -99,41 +114,15 @@ const FormSettings = props => {
99
114
  padding: "5px"
100
115
  },
101
116
  children: m?.fields.filter(f => (hideTools || []).indexOf(f.value) === -1).map((field, index) => {
102
- return /*#__PURE__*/_jsx(ThemeProvider, {
103
- theme: muiTheme,
104
- children: /*#__PURE__*/_jsxs(Accordion, {
105
- defaultExpanded: true,
106
- children: [/*#__PURE__*/_jsx(AccordionSummary, {
107
- expandIcon: /*#__PURE__*/_jsx(ExpandMoreOutlined, {}),
108
- sx: {
109
- padding: "0px"
110
- },
111
- children: /*#__PURE__*/_jsx(Typography, {
112
- variant: "h3",
113
- className: "settingsHeader",
114
- color: "primary",
115
- style: {
116
- fontSize: "14px !important",
117
- fontWeight: "400"
118
- },
119
- children: field?.tab
120
- })
121
- }), /*#__PURE__*/_jsx(AccordionDetails, {
122
- sx: {
123
- padding: "0px"
124
- },
125
- children: /*#__PURE__*/_jsx(StyleContent, {
126
- renderTabs: [field],
127
- value: field.value,
128
- element: element,
129
- onChange: onChange,
130
- customElement: element?.children?.[0] || null,
131
- customProps: customProps,
132
- handleClose: handleClose
133
- }, `tab_${field.value}_${index}`)
134
- })]
135
- }, `accordion_${index}`)
136
- }, index);
117
+ return /*#__PURE__*/_jsx(StyleContent, {
118
+ renderTabs: [field],
119
+ value: field.value,
120
+ element: element,
121
+ onChange: onChange,
122
+ customElement: element?.children?.[0] || null,
123
+ customProps: customProps,
124
+ handleClose: handleClose
125
+ }, `tab_${field.value}_${index}`);
137
126
  })
138
127
  })]
139
128
  }, `accordion_${i}`)
@@ -146,10 +135,10 @@ const FormSettings = props => {
146
135
  children: [/*#__PURE__*/_jsx(AccordionSummary, {
147
136
  expandIcon: /*#__PURE__*/_jsx(ExpandMoreOutlined, {}),
148
137
  sx: {
149
- padding: "0px"
138
+ padding: "5px"
150
139
  },
151
140
  children: /*#__PURE__*/_jsx(Typography, {
152
- variant: "h3",
141
+ variant: "body1",
153
142
  className: "settingsHeader",
154
143
  color: "primary",
155
144
  style: {
@@ -3,19 +3,28 @@ import PersonalVideoIcon from "@mui/icons-material/PersonalVideo";
3
3
  import PhoneIphoneIcon from "@mui/icons-material/PhoneIphone";
4
4
  import useSwitchViewport from "./styles";
5
5
  import { useEffect } from "react";
6
+ import { useEditorContext } from "../../../hooks/useMouseMove";
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
7
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
8
9
  const SwitchViewport = props => {
9
10
  const {
10
11
  breakpoint,
11
- onChange
12
+ onChange,
13
+ show
12
14
  } = props;
13
15
  const classes = useSwitchViewport();
16
+ const {
17
+ setSelectedElement
18
+ } = useEditorContext();
14
19
  useEffect(() => {
15
- console.log(breakpoint);
20
+ // to reset selection on viewport changes - FS-6589
21
+ setSelectedElement({});
16
22
  }, [breakpoint]);
17
23
  return /*#__PURE__*/_jsxs(Box, {
18
24
  sx: classes.root,
25
+ style: {
26
+ display: show ? "block" : "none"
27
+ },
19
28
  children: [/*#__PURE__*/_jsx(Tooltip, {
20
29
  title: "Desktop View",
21
30
  children: /*#__PURE__*/_jsx(IconButton, {
@@ -23,7 +23,7 @@ const embedVideoStyle = [{
23
23
  value: "9 / 16"
24
24
  }, {
25
25
  text: "Custom",
26
- value: ""
26
+ value: "custom"
27
27
  }],
28
28
  renderOption: option => {
29
29
  return /*#__PURE__*/_jsx("span", {
@@ -5,27 +5,10 @@ import CloseIcon from "@mui/icons-material/Close";
5
5
  import useCommonStyle from "../../commonStyle";
6
6
  import { useEditorContext } from "../../hooks/useMouseMove";
7
7
  import { ThemeProvider } from "@mui/material/styles";
8
- import { ExpandMoreOutlined, Height } from "@mui/icons-material";
8
+ import { ExpandMoreOutlined, ExpandMoreSharp } from "@mui/icons-material";
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
11
11
  import { Fragment as _Fragment } from "react/jsx-runtime";
12
- const muiTheme = createTheme({
13
- components: {
14
- MuiAccordion: {
15
- styleOverrides: {
16
- root: {
17
- padding: "0px",
18
- "&.Mui-expanded": {
19
- margin: "0"
20
- }
21
- }
22
- },
23
- defaultProps: {
24
- elevation: 0
25
- }
26
- }
27
- }
28
- });
29
12
  export const StyleContent = props => {
30
13
  const {
31
14
  value,
@@ -95,6 +78,34 @@ const StyleBuilder = props => {
95
78
  const {
96
79
  hideTools
97
80
  } = customProps || {};
81
+ const muiTheme = createTheme({
82
+ components: {
83
+ MuiAccordion: {
84
+ styleOverrides: {
85
+ root: {
86
+ "& .MuiAccordionSummary-root": {
87
+ flexDirection: "row-reverse",
88
+ "& .MuiSvgIcon-root": {
89
+ color: theme?.palette?.primary?.main
90
+ },
91
+ "& .Mui-expanded": {
92
+ "& .MuiSvgIcon-root": {
93
+ color: theme?.palette?.text?.blueText
94
+ }
95
+ }
96
+ },
97
+ padding: "0px",
98
+ "&.Mui-expanded": {
99
+ margin: "0"
100
+ }
101
+ }
102
+ },
103
+ defaultProps: {
104
+ elevation: 0
105
+ }
106
+ }
107
+ }
108
+ });
98
109
  useEffect(() => {
99
110
  if (customProps?.onDrawerOpen) {
100
111
  customProps?.onDrawerOpen(true);
@@ -171,17 +182,17 @@ const StyleBuilder = props => {
171
182
  children: /*#__PURE__*/_jsxs(Accordion, {
172
183
  defaultExpanded: true,
173
184
  children: [/*#__PURE__*/_jsx(AccordionSummary, {
174
- expandIcon: /*#__PURE__*/_jsx(ExpandMoreOutlined, {}),
185
+ expandIcon: /*#__PURE__*/_jsx(ExpandMoreSharp, {}),
175
186
  sx: {
176
187
  padding: "0px"
177
188
  },
178
189
  children: /*#__PURE__*/_jsx(Typography, {
179
- variant: "h3",
190
+ variant: "body1",
180
191
  className: "settingsHeader",
181
192
  color: "primary",
182
193
  style: {
183
194
  fontSize: "14px !important",
184
- fontWeight: "400"
195
+ fontWeight: "400 !important"
185
196
  },
186
197
  children: m?.tab
187
198
  })
@@ -190,40 +201,14 @@ const StyleBuilder = props => {
190
201
  padding: "5px"
191
202
  },
192
203
  children: m?.fields.filter(f => (hideTools || []).indexOf(f.value) === -1).map((field, index) => {
193
- return /*#__PURE__*/_jsx(ThemeProvider, {
194
- theme: muiTheme,
195
- children: /*#__PURE__*/_jsxs(Accordion, {
196
- defaultExpanded: true,
197
- children: [/*#__PURE__*/_jsx(AccordionSummary, {
198
- expandIcon: /*#__PURE__*/_jsx(ExpandMoreOutlined, {}),
199
- sx: {
200
- padding: "0px"
201
- },
202
- children: /*#__PURE__*/_jsx(Typography, {
203
- variant: "h3",
204
- className: "settingsHeader",
205
- color: "primary",
206
- style: {
207
- fontSize: "14px !important",
208
- fontWeight: "400"
209
- },
210
- children: field?.tab
211
- })
212
- }), /*#__PURE__*/_jsx(AccordionDetails, {
213
- sx: {
214
- padding: "0px"
215
- },
216
- children: /*#__PURE__*/_jsx(StyleContent, {
217
- renderTabs: [field],
218
- value: field.value,
219
- element: elementProps,
220
- onChange: onElementPropsChange,
221
- customProps: customProps,
222
- handleClose: handleClose
223
- }, `tab_${field.value}_${index}`)
224
- })]
225
- }, `accordion_${index}`)
226
- }, index);
204
+ return /*#__PURE__*/_jsx(StyleContent, {
205
+ renderTabs: [field],
206
+ value: field.value,
207
+ element: elementProps,
208
+ onChange: onElementPropsChange,
209
+ customProps: customProps,
210
+ handleClose: handleClose
211
+ }, `tab_${field.value}_${index}`);
227
212
  })
228
213
  })]
229
214
  }, `accordion_${i}`)
@@ -239,7 +224,7 @@ const StyleBuilder = props => {
239
224
  padding: "0px"
240
225
  },
241
226
  children: /*#__PURE__*/_jsx(Typography, {
242
- variant: "h3",
227
+ variant: "body1",
243
228
  className: "settingsHeader",
244
229
  color: "primary",
245
230
  style: {
@@ -250,7 +235,7 @@ const StyleBuilder = props => {
250
235
  })
251
236
  }), /*#__PURE__*/_jsx(AccordionDetails, {
252
237
  sx: {
253
- padding: "0px"
238
+ padding: "5px"
254
239
  },
255
240
  children: /*#__PURE__*/_jsx(StyleContent, {
256
241
  renderTabs: renderTabs,
@@ -269,6 +254,7 @@ const StyleBuilder = props => {
269
254
  sx: {
270
255
  p: 0,
271
256
  pt: 2,
257
+ pl: 1,
272
258
  justifyContent: "space-between"
273
259
  },
274
260
  children: [onDelete ? /*#__PURE__*/_jsx(Button, {
@@ -45,15 +45,19 @@ export const onAddGridItem = ({
45
45
  if (insertPath) {
46
46
  insertPath[insertPath.length - 1] = element.children.length;
47
47
  const lp = ReactEditor.findPath(editor, element);
48
- const lastElement = {
49
- ...element.children[element.children.length - 1]
50
- };
48
+ // const lastElement = { ...element.children[element.children.length - 1] };
51
49
  if (isColumn && children?.length - 1 > 0) {
52
50
  updateLastSiblingWidths(editor, [...lp, children.length - 1]);
53
51
  }
54
52
  Transforms.insertNodes(editor, gridItem({
55
- ...(lastElement || {}),
53
+ // ...(lastElement || {}),
56
54
  minWidth: null,
55
+ bannerSpacing: {
56
+ top: "8",
57
+ left: "0",
58
+ right: "0",
59
+ bottom: "16"
60
+ },
57
61
  children: [{
58
62
  type: "paragraph",
59
63
  children: [{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flozy/editor",
3
- "version": "4.9.0",
3
+ "version": "4.9.2",
4
4
  "description": "An Editor for flozy app brain",
5
5
  "files": [
6
6
  "dist"