@flozy/editor 4.9.5 → 4.9.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. package/dist/Editor/ChatEditor.js +25 -34
  2. package/dist/Editor/CommonEditor.js +5 -2
  3. package/dist/Editor/Editor.css +4 -4
  4. package/dist/Editor/Elements/AI/AIInput.js +0 -1
  5. package/dist/Editor/Elements/Grid/Grid.js +1 -1
  6. package/dist/Editor/Elements/Grid/Providers/GridProvider.js +27 -5
  7. package/dist/Editor/Elements/Grid/Styles.js +9 -0
  8. package/dist/Editor/Elements/Signature/SignaturePopup.js +1 -1
  9. package/dist/Editor/Elements/SimpleText/index.js +8 -1
  10. package/dist/Editor/Elements/SimpleText/style.js +3 -1
  11. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +2 -0
  12. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +2 -0
  13. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +108 -11
  14. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +47 -0
  15. package/dist/Editor/assets/svg/BrainIcon.js +2 -2
  16. package/dist/Editor/common/ColorPickerButton.js +3 -2
  17. package/dist/Editor/common/FontLoader/FontLoader.js +8 -5
  18. package/dist/Editor/common/MentionsPopup/Styles.js +14 -9
  19. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +4 -1
  20. package/dist/Editor/common/RnD/index.js +1 -1
  21. package/dist/Editor/common/Section/index.js +18 -11
  22. package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
  23. package/dist/Editor/common/StyleBuilder/fieldTypes/lineSpacing.js +79 -0
  24. package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +4 -0
  25. package/dist/Editor/commonStyle.js +6 -2
  26. package/dist/Editor/helper/theme.js +24 -1
  27. package/dist/Editor/hooks/useMouseMove.js +5 -2
  28. package/dist/Editor/utils/brains.js +40 -14
  29. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +14 -0
  30. package/dist/Editor/utils/events.js +0 -1
  31. package/dist/Editor/utils/pageSettings.js +14 -2
  32. package/dist/Editor/utils/serializeToText.js +2 -0
  33. package/package.json +1 -1
@@ -1,9 +1,8 @@
1
1
  import React, { useCallback, useMemo, useRef, useState, useEffect, useImperativeHandle, forwardRef } from "react";
2
2
  import { Editable, Slate, ReactEditor } from 'slate-react';
3
3
  import { createEditor, Transforms, Editor } from 'slate';
4
- import { useDebounce } from "use-debounce";
5
4
  import withCommon from "./hooks/withCommon";
6
- import { getBlock, getMarked } from "./utils/chatEditor/SlateUtilityFunctions";
5
+ import { getBlock, getMarked, serializeMentions } from "./utils/chatEditor/SlateUtilityFunctions";
7
6
  import MiniTextFormat from "./Toolbar/PopupTool/MiniTextFormat";
8
7
  import { commands, mentionsEvent } from "./utils/events";
9
8
  import { insertEmoji } from "./utils/emoji";
@@ -15,6 +14,7 @@ import Shorthands from "./common/Shorthands";
15
14
  import usePopupStyle from "./Toolbar/PopupTool/PopupToolStyle";
16
15
  import { EditorProvider } from "./hooks/useMouseMove";
17
16
  import decorators from "./utils/Decorators";
17
+ import { useDebouncedCallback } from "use-debounce";
18
18
  import { jsx as _jsx } from "react/jsx-runtime";
19
19
  import { jsxs as _jsxs } from "react/jsx-runtime";
20
20
  const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
@@ -42,8 +42,18 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
42
42
  });
43
43
  const [isInteracted, setIsInteracted] = useState(false);
44
44
  const [value, setValue] = useState(convertedContent);
45
- const [loadedValue] = useState(value);
46
- const [deboundedValue] = useDebounce(value, 500);
45
+ const debouncedValue = useRef(value);
46
+ const debounced = useDebouncedCallback(
47
+ // function
48
+ value => {
49
+ const {
50
+ value: strVal,
51
+ ...restVal
52
+ } = getOnSaveData(value);
53
+ onSave(strVal, restVal);
54
+ },
55
+ // delay in ms
56
+ 500);
47
57
  const editor = useMemo(() => {
48
58
  return withCommon(createEditor(), {
49
59
  needLayout,
@@ -63,7 +73,7 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
63
73
  const {
64
74
  value: strVal,
65
75
  ...restVal
66
- } = getOnSaveData(value);
76
+ } = getOnSaveData(debouncedValue?.current);
67
77
  onsubmit(false, {
68
78
  strVal,
69
79
  restVal
@@ -99,7 +109,8 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
99
109
  const newValue = draftToSlate({
100
110
  data: content
101
111
  });
102
- setValue(newValue);
112
+ debounced(newValue);
113
+
103
114
  // setTimeout(() => {
104
115
  if (editor.children.length === 0) {
105
116
  Transforms.insertNodes(editor, newValue);
@@ -112,27 +123,14 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
112
123
  }
113
124
  }
114
125
  }));
115
-
116
- // useEffect(() => {
117
- // setIsExternalUpdate(true);
118
- // setValue(draftToSlate({ data: content }));
119
- // }, [content]);
120
-
121
- useEffect(() => {
122
- if (JSON.stringify(loadedValue) !== JSON.stringify(deboundedValue) && isInteracted && onSave) {
123
- const {
124
- value: strVal,
125
- ...restVal
126
- } = getOnSaveData(deboundedValue);
127
- onSave(strVal, restVal);
128
- }
129
- }, [deboundedValue]);
130
126
  const getOnSaveData = val => {
131
127
  const text = serializeToText(val);
128
+ const mentions = serializeMentions(val);
132
129
  const title = val?.find(f => f.type === "title");
133
130
  return {
134
131
  value: JSON.stringify(val),
135
132
  text: text,
133
+ mentions: mentions,
136
134
  title: serializeToText(title?.children) || "Untitled"
137
135
  };
138
136
  };
@@ -180,15 +178,8 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
180
178
  });
181
179
  };
182
180
  const handleEditorChange = newValue => {
183
- const value_txt = serializeToText(value);
184
- if (!value_txt) {
185
- const {
186
- value: strVal,
187
- ...restVal
188
- } = getOnSaveData(newValue);
189
- onSave(strVal, restVal);
190
- }
191
- setValue(newValue);
181
+ debounced(newValue);
182
+ debouncedValue.current = newValue;
192
183
  if (!isInteracted) {
193
184
  setIsInteracted(true);
194
185
  }
@@ -228,7 +219,7 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
228
219
  editor
229
220
  });
230
221
  } else if (event.key === "Enter" && !isMobile) {
231
- const isEmpty = value.length === 1 && value[0].type === 'paragraph' && value[0].children.length === 1 && value[0].children[0].text === '';
222
+ const isEmpty = debouncedValue?.current.length === 1 && debouncedValue?.current[0].type === 'paragraph' && debouncedValue?.current[0].children.length === 1 && debouncedValue?.current[0].children[0].text === '';
232
223
  if (isEmpty) {
233
224
  event.preventDefault();
234
225
  return;
@@ -237,7 +228,7 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
237
228
  const {
238
229
  value: strVal,
239
230
  ...restVal
240
- } = getOnSaveData(value);
231
+ } = getOnSaveData(debouncedValue?.current);
241
232
  onsubmit(false, {
242
233
  strVal,
243
234
  restVal
@@ -251,7 +242,7 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
251
242
  const {
252
243
  value: strVal,
253
244
  ...restVal
254
- } = getOnSaveData(value);
245
+ } = getOnSaveData(debouncedValue?.current);
255
246
  onBlur({
256
247
  strVal,
257
248
  restVal
@@ -272,7 +263,7 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
272
263
  editor: editor,
273
264
  children: /*#__PURE__*/_jsxs(Slate, {
274
265
  editor: editor,
275
- initialValue: value,
266
+ initialValue: debouncedValue?.current,
276
267
  onChange: handleEditorChange,
277
268
  children: [toolBar && /*#__PURE__*/_jsx(MiniTextFormat, {
278
269
  classes: classes,
@@ -26,7 +26,7 @@ import editorStyles from "./Styles/EditorStyles";
26
26
  import DragAndDrop from "./common/DnD";
27
27
  import Section from "./common/Section";
28
28
  import decorators from "./utils/Decorators";
29
- import { getTRBLBreakPoints } from "./helper/theme";
29
+ import { getBreakpointLineSpacing, getTRBLBreakPoints } from "./helper/theme";
30
30
  import { handleInsertLastElement, isFreeGrid, isFreeGridFragment, isPageSettings, outsideEditorClickLabel } from "./utils/helper";
31
31
  import useWindowResize from "./hooks/useWindowResize";
32
32
  import PopoverAIInput from "./Elements/AI/PopoverAIInput";
@@ -130,7 +130,8 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
130
130
  pageColor,
131
131
  color: pageTextColor,
132
132
  pageWidth,
133
- maxWidth: pageMaxWidth
133
+ maxWidth: pageMaxWidth,
134
+ lineHeight
134
135
  } = pageSt?.pageProps || {
135
136
  bannerSpacing: {
136
137
  left: 0,
@@ -317,6 +318,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
317
318
  onDrawerOpen: onDrawerOpen,
318
319
  ICON_API: "https://assets.agenciflow.com"
319
320
  };
321
+ const lineH = getBreakpointLineSpacing(lineHeight, breakpoint);
320
322
  const renderElement = useCallback(props => {
321
323
  return /*#__PURE__*/_jsx(Element, {
322
324
  ...props,
@@ -522,6 +524,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
522
524
  padding: {
523
525
  ...getTRBLBreakPoints(bannerSpacing)
524
526
  },
527
+ lineHeight: lineH,
525
528
  width: !pageWidth || pageWidth === "fixed" ? fixedWidth : fullWidth,
526
529
  height: viewport.h ? `${viewport.h}px` : `100%`,
527
530
  alignSelf: "center",
@@ -399,7 +399,7 @@ blockquote {
399
399
  align-items: center;
400
400
  border-width: 0px, 0px, 0px, 0px;
401
401
  border-style: solid;
402
- border-color: #2563EB;
402
+ border-color: #2563EB66;
403
403
  justify-content: center;
404
404
  flex-direction: column;
405
405
  width: 100%;
@@ -492,9 +492,9 @@ blockquote {
492
492
 
493
493
  .MuiButton-root.primaryBtn.disabled,
494
494
  .MuiButton-root.secondaryBtn.disabled {
495
- background: #eee !important;
496
- color: #ccc !important;
497
- border: 1px solid #ccc !important;
495
+ background: #eee;
496
+ color: #ccc;
497
+ border: 1px solid #ccc;
498
498
  }
499
499
 
500
500
  .MuiButton-root.secondaryBtn {
@@ -71,7 +71,6 @@ function AIInput({
71
71
  }, [openAI]);
72
72
  const isSendBtnDisabled = !inputValue || loading;
73
73
  const props = getProps(openAI, generatedText) || {};
74
- const fromToolBar = openAI === "fromToolBar";
75
74
  const handleSendBtnClick = () => {
76
75
  if (isSendBtnDisabled) {
77
76
  return;
@@ -312,7 +312,7 @@ const Grid = props => {
312
312
  return /*#__PURE__*/_jsx(GridProvider, {
313
313
  children: /*#__PURE__*/_jsxs(GridContainer, {
314
314
  container: true,
315
- className: `grid-container ${grid} has-hover element-root dpath ${equalItems ? "equal-cols" : ""}`,
315
+ className: `grid-container ${grid} has-hover element-root dpath ${equalItems ? "equal-cols" : ""} cc-${element?.children?.length}`,
316
316
  ...attributes,
317
317
  ...sectionId,
318
318
  sx: {
@@ -13,12 +13,25 @@ const getAdjacentColumnPath = (editor, currentPath, direction = "next") => {
13
13
 
14
14
  // Ensure the adjacent index is valid
15
15
  if (adjacentIndex < 0 || adjacentIndex >= gridNode.children.length) {
16
- return null; // No adjacent column exists in the given direction
16
+ return {
17
+ parentPath
18
+ }; // No adjacent column exists in the given direction
17
19
  }
18
20
 
19
- return [...parentPath, adjacentIndex]; // Return the adjacent column's path
21
+ return {
22
+ parentPath: [...parentPath],
23
+ rightColPath: [...parentPath, adjacentIndex]
24
+ }; // Return the adjacent column's path
20
25
  };
21
26
 
27
+ const isSingleColumn = (editor, parentPath) => {
28
+ try {
29
+ const gridNode = Node.get(editor, parentPath);
30
+ return gridNode?.children?.length === 1;
31
+ } catch (err) {
32
+ console.log(err);
33
+ }
34
+ };
22
35
  export const GridProvider = ({
23
36
  children
24
37
  }) => {
@@ -28,7 +41,10 @@ export const GridProvider = ({
28
41
  const initColumnWidth = (currentColPath = [], currentMinWidth = 0) => {
29
42
  try {
30
43
  let right = 0;
31
- const rightColPath = getAdjacentColumnPath(editor, currentColPath);
44
+ const {
45
+ parentPath,
46
+ rightColPath
47
+ } = getAdjacentColumnPath(editor, currentColPath);
32
48
  if (rightColPath) {
33
49
  const parentPath = Path.parent(rightColPath); // Get the parent grid path
34
50
  const gridNode = Node.get(editor, parentPath);
@@ -41,7 +57,8 @@ export const GridProvider = ({
41
57
  left: currentMinWidth,
42
58
  right,
43
59
  rightPath: rightColPath?.join(),
44
- rightIndex: rightColPath
60
+ rightIndex: rightColPath,
61
+ parentPath: parentPath
45
62
  });
46
63
  } catch (err) {
47
64
  console.log(err);
@@ -56,7 +73,12 @@ export const GridProvider = ({
56
73
  // logic to update right column width
57
74
  const right = columnWidths?.right - (data?.left - columnWidths?.left);
58
75
  const diff = right !== widths?.right;
59
- if (right && right > 10 && data?.left > 10 && diff) {
76
+ if (isSingleColumn(editor, columnWidths?.parentPath) && data?.left <= 100) {
77
+ setWidths({
78
+ ...data,
79
+ right: right
80
+ });
81
+ } else if (right && right > 10 && data?.left > 10 && diff) {
60
82
  setWidths({
61
83
  ...data,
62
84
  right: right
@@ -23,6 +23,15 @@ const GridStyles = theme => ({
23
23
  flexWrap: "wrap"
24
24
  }
25
25
  },
26
+ "&.cc-1": {
27
+ "& .grid-item": {
28
+ "&:last-child": {
29
+ "& .col-width-resizer": {
30
+ display: "block !important"
31
+ }
32
+ }
33
+ }
34
+ },
26
35
  "& .grid-item": {
27
36
  minWidth: "var(--minWidth)",
28
37
  maxWidth: "var(--minWidth)",
@@ -516,7 +516,7 @@ const SignaturePopup = props => {
516
516
  children: "Delete"
517
517
  }) : null, /*#__PURE__*/_jsx(Button, {
518
518
  onClick: handleSave,
519
- className: `primaryBtn actionBtn ${isEmpty ? "disabled" : ""}`,
519
+ className: `primaryBtn actionBtn ${isEmpty ? "disabled disabledSaveBtn" : ""}`,
520
520
  disabled: isEmpty,
521
521
  children: "Save"
522
522
  })]
@@ -5,6 +5,7 @@ import { getPageSettings } from "../../utils/pageSettings";
5
5
  import { isTextSelected } from "../../utils/helper";
6
6
  import { useEditorContext } from "../../hooks/useMouseMove";
7
7
  import SimpleTextStyle from "./style";
8
+ import { getBreakpointLineSpacing } from "../../helper/theme";
8
9
  import { jsx as _jsx } from "react/jsx-runtime";
9
10
  import { Fragment as _Fragment } from "react/jsx-runtime";
10
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -32,8 +33,14 @@ const SimpleText = props => {
32
33
  const {
33
34
  pageColor
34
35
  } = pageSt?.pageProps || {};
36
+ const {
37
+ activeBreakPoint
38
+ } = useEditorContext();
39
+ const lineHeight = element?.children[0]?.lineHeight;
40
+ const lineH = getBreakpointLineSpacing(lineHeight, activeBreakPoint);
35
41
  const classes = SimpleTextStyle({
36
- pageColor: pageColor || theme?.palette?.editor?.background || "#FFFFFF"
42
+ pageColor: pageColor || theme?.palette?.editor?.background || "#FFFFFF",
43
+ lineHeight: lineH
37
44
  });
38
45
  const selected = useSelected();
39
46
  const path = ReactEditor.findPath(editor, element);
@@ -1,10 +1,12 @@
1
1
  import { invertColor } from "../../helper";
2
2
  const SimpleTextStyle = ({
3
- pageColor
3
+ pageColor,
4
+ lineHeight
4
5
  }) => ({
5
6
  root: {
6
7
  position: "relative",
7
8
  padding: "0px",
9
+ lineHeight: lineHeight,
8
10
  "& .placeholder-simple-text": {
9
11
  color: "#94A3B8",
10
12
  background: "transparent",
@@ -2,6 +2,7 @@ import React from "react";
2
2
  import { Select, MenuItem } from "@mui/material";
3
3
  import { addMarkData, activeMark } from "../../utils/SlateUtilityFunctions.js";
4
4
  import { fontFamilyMap } from "../../utils/font";
5
+ import KeyboardArrowDownRoundedIcon from '@mui/icons-material/KeyboardArrowDownRounded';
5
6
  import { jsx as _jsx } from "react/jsx-runtime";
6
7
  const Dropdown = ({
7
8
  classes,
@@ -29,6 +30,7 @@ const Dropdown = ({
29
30
  }
30
31
  },
31
32
  sx: classes.textFormatSelect,
33
+ IconComponent: KeyboardArrowDownRoundedIcon,
32
34
  children: options.map((item, index) => /*#__PURE__*/_jsx(MenuItem
33
35
  // style={{ fontFamily: item.text }}
34
36
  , {
@@ -3,6 +3,7 @@ import { Autocomplete, TextField } from "@mui/material";
3
3
  import { activeMark, addMarkData } from "../../utils/SlateUtilityFunctions.js";
4
4
  import usePopupStyle from "../PopupTool/PopupToolStyle.js";
5
5
  import { useEditorContext } from "../../hooks/useMouseMove.js";
6
+ import KeyboardArrowDownRoundedIcon from '@mui/icons-material/KeyboardArrowDownRounded';
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
7
8
  const FontFamilyAutocomplete = ({
8
9
  editor,
@@ -57,6 +58,7 @@ const FontFamilyAutocomplete = ({
57
58
  children: option
58
59
  });
59
60
  },
61
+ popupIcon: /*#__PURE__*/_jsx(KeyboardArrowDownRoundedIcon, {}),
60
62
  renderInput: params => /*#__PURE__*/_jsx(TextField, {
61
63
  sx: {
62
64
  "& .MuiInputBase-root.MuiOutlinedInput-root": {
@@ -96,8 +96,29 @@ const usePopupStyle = theme => ({
96
96
  width: "100%",
97
97
  maxHeight: "fit-content"
98
98
  },
99
+ "& .MuiTab-root": {
100
+ textTransform: "capitalize",
101
+ color: "#64748B",
102
+ borderBottom: `1.5px solid ${theme?.palette?.editor?.deviderBgColor}`
103
+ },
104
+ "& .Mui-selected": {
105
+ color: `${theme?.palette?.editor?.textColor} !important`,
106
+ fontWeight: "700 !important"
107
+ },
108
+ "& .MuiTabs-indicator": {
109
+ background: "#2563EB"
110
+ },
111
+ "& .MuiTabScrollButton-horizontal": {
112
+ borderBottom: "unset !important"
113
+ },
99
114
  "@media only screen and (max-width: 599px)": {
100
115
  width: "330px"
116
+ },
117
+ "& .MuiCardContent-root": {
118
+ color: theme?.palette?.editor?.textColor,
119
+ fontFamily: "Inter, sans-serif",
120
+ fontSize: "12px",
121
+ fontWeight: "500"
101
122
  }
102
123
  },
103
124
  "& .headerContainer": {},
@@ -122,6 +143,38 @@ const usePopupStyle = theme => ({
122
143
  fill: theme?.palette?.type === "dark" ? "none" : ""
123
144
  }
124
145
  },
146
+ "& .signatureElementIcon": {
147
+ "& path": {
148
+ fill: `${theme?.palette?.editor?.closeButtonSvgStroke}`
149
+ }
150
+ },
151
+ "& .commonSvgStyle": {
152
+ "& path": {
153
+ stroke: `${theme?.palette?.editor?.closeButtonSvgStroke}`
154
+ }
155
+ },
156
+ "& .commonSvgStyle2": {
157
+ "& path": {
158
+ stroke: `${theme?.palette?.editor?.closeButtonSvgStroke}`
159
+ }
160
+ },
161
+ "& .colorBoxElementIcon": {
162
+ "& path": {
163
+ stroke: `${theme?.palette?.editor?.closeButtonSvgStroke}`,
164
+ fill: "none"
165
+ }
166
+ },
167
+ "& .gridElementIcon": {
168
+ "& path": {
169
+ stroke: `${theme?.palette?.editor?.closeButtonSvgStroke}`,
170
+ fill: `${theme?.palette?.editor?.closeButtonSvgStroke}`
171
+ }
172
+ },
173
+ "& .newLineElementIcon": {
174
+ "& path": {
175
+ fill: `${theme?.palette?.editor?.closeButtonSvgStroke}`
176
+ }
177
+ },
125
178
  "&:hover": {
126
179
  backgroundColor: `${theme?.palette?.editor?.menuOptionSelectedOption} !important`,
127
180
  "& .signatureElementIcon": {
@@ -194,6 +247,11 @@ const usePopupStyle = theme => ({
194
247
  },
195
248
  "@media only screen and (max-width: 599px)": {
196
249
  width: "330px"
250
+ },
251
+ "& .textFormatMUIIcon": {
252
+ "& svg": {
253
+ color: theme?.palette?.editor?.closeButtonSvgStroke
254
+ }
197
255
  }
198
256
  },
199
257
  textFormatLabel: {
@@ -290,9 +348,10 @@ const usePopupStyle = theme => ({
290
348
  autoCompleteaFontFamily: {
291
349
  "& .MuiOutlinedInput-root": {
292
350
  borderRadius: "8px",
293
- backgroundColor: `${theme?.palette?.editor?.inputFieldBgColor} !important`,
351
+ backgroundColor: `${theme?.palette?.editor?.inputFieldBgColor}`,
294
352
  fontSize: "14px",
295
- height: "36px"
353
+ height: "36px",
354
+ paddingLeft: "15px !important"
296
355
  },
297
356
  "& .MuiOutlinedInput-notchedOutline": {
298
357
  border: `1px solid ${theme?.palette?.editor?.inputFieldBorder} !important`
@@ -470,7 +529,8 @@ const usePopupStyle = theme => ({
470
529
  },
471
530
  "& .colorPicker": {
472
531
  background: theme?.palette?.editor?.inputFieldBgColor,
473
- borderRadius: "0px 7px 7px 0px"
532
+ borderRadius: "0px 7px 7px 0px",
533
+ padding: "0px"
474
534
  },
475
535
  "& .vl": {
476
536
  background: theme?.palette?.editor?.borderColor,
@@ -511,7 +571,8 @@ const usePopupStyle = theme => ({
511
571
  },
512
572
  "& .colorPicker": {
513
573
  background: theme?.palette?.editor?.inputFieldBgColor,
514
- borderRadius: "0px 7px 7px 0px"
574
+ borderRadius: "0px 7px 7px 0px",
575
+ padding: "0px"
515
576
  },
516
577
  "& .vl": {
517
578
  background: theme?.palette?.editor?.borderColor,
@@ -696,8 +757,11 @@ const usePopupStyle = theme => ({
696
757
  }
697
758
  },
698
759
  "& .default-color-panel": {
760
+ gridTemplateColumns: "repeat(auto-fill, 24px)",
699
761
  "& .default-color-panel_item": {
700
- borderRadius: "50%"
762
+ borderRadius: "50%",
763
+ width: "16px",
764
+ height: "16px"
701
765
  }
702
766
  }
703
767
  },
@@ -818,17 +882,18 @@ const usePopupStyle = theme => ({
818
882
  "& .MuiPopover-paper": {
819
883
  maxHeight: "140px",
820
884
  // minWidth: "130px",
821
- border: "1px solid #E4E8EB",
822
- background: `${theme?.palette?.editor?.background} !important`,
885
+ // border: "1px solid #E4E8EB",
886
+ background: `${theme?.palette?.editor?.textWeightPopUpBackground} !important`,
823
887
  overflowY: "scroll",
824
- padding: "6px 12px 6px 0px",
888
+ padding: "3px 12px 8px 2px",
889
+ borderRadius: "8px",
825
890
  "@media only screen and (max-width: 600px)": {
826
891
  marginTop: "-40px"
827
892
  }
828
893
  },
829
894
  "& .customSelectOptionLabel": {
830
895
  color: theme?.palette?.editor?.textColor || "black",
831
- margin: "0px 6px 0px 6px",
896
+ margin: "6px 6px 0px 6px",
832
897
  width: "100%",
833
898
  justifyContent: "start",
834
899
  paddingRight: "20px",
@@ -841,8 +906,40 @@ const usePopupStyle = theme => ({
841
906
  background: `${theme?.palette?.action?.selected} !important`
842
907
  },
843
908
  "&.selected": {
844
- color: `#2563EB !important`,
845
- background: `#E9F3FE !important`
909
+ color: `${theme?.palette?.editor?.menuOptionTextColor} !important`,
910
+ background: `${theme?.palette?.editor?.menuOptionSelectedOption} !important`,
911
+ "& .orderedListIcon": {
912
+ "& path": {
913
+ stroke: `${theme?.palette?.editor?.menuOptionsSelectedTextColor}`
914
+ },
915
+ "& text": {
916
+ fill: `${theme?.palette?.editor?.menuOptionsSelectedTextColor}`
917
+ }
918
+ },
919
+ "& .bulletedListTextIcon": {
920
+ "& path": {
921
+ fill: `${theme?.palette?.editor?.menuOptionsSelectedTextColor}`,
922
+ stroke: `${theme?.palette?.editor?.menuOptionsSelectedTextColor}`
923
+ },
924
+ "& circle": {
925
+ fill: `${theme?.palette?.editor?.menuOptionsSelectedTextColor}`
926
+ }
927
+ },
928
+ "& .checkedListTextIcon": {
929
+ "& path": {
930
+ stroke: `${theme?.palette?.editor?.menuOptionsSelectedTextColor}`
931
+ }
932
+ },
933
+ "& .accordianIconSvgTextFormat": {
934
+ "& path": {
935
+ stroke: `${theme?.palette?.editor?.menuOptionsSelectedTextColor} !important`
936
+ }
937
+ },
938
+ "& .textAlignIconSameStyles": {
939
+ "& path": {
940
+ fill: `${theme?.palette?.editor?.menuOptionsSelectedTextColor}`
941
+ }
942
+ }
846
943
  }
847
944
  },
848
945
  "& .menuOptions": {
@@ -14,6 +14,8 @@ import SelectSuperSubscript from "./MiniTextFormat/SelectSuperSubscript";
14
14
  import { ColorResetIcon, TextDefaultStyleIcon } from "../../common/iconListV2";
15
15
  import FontFamilyAutocomplete from "../FormatTools/FontFamilyAutocomplete";
16
16
  import { useEditorContext } from "../../hooks/useMouseMove";
17
+ import LineSpacing from "../../common/StyleBuilder/fieldTypes/lineSpacing";
18
+ import { getPageSettings } from "../../utils/pageSettings";
17
19
  import { jsx as _jsx } from "react/jsx-runtime";
18
20
  import { jsxs as _jsxs } from "react/jsx-runtime";
19
21
  const allTools = toolbarGroups.flat();
@@ -35,6 +37,14 @@ const TextFormat = props => {
35
37
  fontFamilies,
36
38
  theme
37
39
  } = useEditorContext();
40
+ const {
41
+ element: pageSt
42
+ } = getPageSettings(editor) || {};
43
+ const pageSettingLine = pageSt?.pageProps?.lineHeight;
44
+ const {
45
+ activeBreakPoint
46
+ } = useEditorContext();
47
+ const breakpoint = activeBreakPoint === "" ? "lg" : activeBreakPoint;
38
48
  const fontWeight = allTools.find(f => f.format === "fontWeight");
39
49
  const fontStyle = allTools.filter(f => f.type === "mark" && f.format !== "strikethrough" && f.format !== "superscript" && f.format !== "subscript");
40
50
  const fontAlign = allTools.filter(f => f.format?.indexOf("align") >= 0);
@@ -51,6 +61,8 @@ const TextFormat = props => {
51
61
  color: "",
52
62
  bgColor: ""
53
63
  };
64
+ let lineSpacingValue = activeMark(editor, 'lineHeight');
65
+ lineSpacingValue = lineSpacingValue?.[breakpoint] !== undefined ? lineSpacingValue : pageSettingLine;
54
66
  const handleColorPicker = type => e => {
55
67
  setType(type);
56
68
  setAnchorEl(e.currentTarget);
@@ -90,6 +102,13 @@ const TextFormat = props => {
90
102
  value
91
103
  });
92
104
  };
105
+ const handleLineSpacing = data => {
106
+ const [[format, value]] = Object.entries(data);
107
+ addMarkData(editor, {
108
+ format,
109
+ value
110
+ });
111
+ };
93
112
  return /*#__PURE__*/_jsxs(Grid, {
94
113
  container: true,
95
114
  sx: classes.textFormatWrapper,
@@ -125,6 +144,7 @@ const TextFormat = props => {
125
144
  item: true,
126
145
  xs: 12,
127
146
  sx: classes.textFormatField,
147
+ className: "textFormatMUIIcon",
128
148
  children: /*#__PURE__*/_jsx(FontFamilyAutocomplete, {
129
149
  classes: classes,
130
150
  ...fontFamilies,
@@ -147,6 +167,7 @@ const TextFormat = props => {
147
167
  item: true,
148
168
  xs: 12,
149
169
  sx: classes.textFormatField3,
170
+ className: "textFormatMUIIcon",
150
171
  children: /*#__PURE__*/_jsx(Dropdown, {
151
172
  classes: classes,
152
173
  ...fontWeight,
@@ -355,6 +376,32 @@ const TextFormat = props => {
355
376
  xs: 12,
356
377
  sx: classes.dividerGrid,
357
378
  children: /*#__PURE__*/_jsx(Divider, {})
379
+ }), /*#__PURE__*/_jsxs(Grid, {
380
+ item: true,
381
+ xs: 12,
382
+ children: [/*#__PURE__*/_jsx(Typography, {
383
+ variant: "body1",
384
+ color: "primary",
385
+ sx: classes.typoLabel,
386
+ children: "Line Spacing"
387
+ }), /*#__PURE__*/_jsx(Grid, {
388
+ item: true,
389
+ xs: 12,
390
+ className: "typo-icons",
391
+ sx: classes.evenSpace,
392
+ children: /*#__PURE__*/_jsx(LineSpacing, {
393
+ value: lineSpacingValue,
394
+ onChange: handleLineSpacing,
395
+ data: {
396
+ key: 'lineHeight'
397
+ }
398
+ })
399
+ })]
400
+ }), /*#__PURE__*/_jsx(Grid, {
401
+ item: true,
402
+ xs: 12,
403
+ sx: classes.dividerGrid,
404
+ children: /*#__PURE__*/_jsx(Divider, {})
358
405
  }), /*#__PURE__*/_jsx(Grid, {
359
406
  item: true,
360
407
  xs: 12,
@@ -10,7 +10,7 @@ export const BrainIcon = props => /*#__PURE__*/_jsxs("svg", {
10
10
  children: [/*#__PURE__*/_jsxs("g", {
11
11
  clipPath: "url(#clip0_38524_18936)",
12
12
  children: [/*#__PURE__*/_jsx("path", {
13
- className: "fillPath",
13
+ className: "fillPath bainIconPathStroke",
14
14
  d: "M8.15078 4.96816L8.13029 4.87029C8.38386 4.81721 8.52209 4.75657 8.63932 4.61874C8.76419 4.47191 8.87156 4.23078 9.0309 3.78954C9.18008 3.37931 9.477 2.83417 9.67863 2.56953L9.68049 2.56716L9.95913 2.22351L9.77098 2.15114C9.02297 1.86345 7.9649 2.1139 7.18056 2.77932C6.91016 3.01102 6.6078 3.13199 6.31202 3.13199C5.36057 3.13199 4.49148 3.7083 4.23948 4.47574C4.1991 4.5969 4.13233 4.7171 4.05705 4.81246C3.98542 4.90319 3.89342 4.98771 3.79555 5.01531C3.62366 5.07031 3.42593 5.1997 3.22586 5.38165C3.02645 5.56298 2.83073 5.79102 2.66318 6.03401C2.4955 6.27716 2.35797 6.53246 2.27298 6.76757C2.18918 6.99938 2.16076 7.19973 2.19255 7.34719C2.2265 7.34519 2.28443 7.32746 2.36807 7.29046C2.44437 7.25672 2.53178 7.21212 2.62856 7.16274L2.64553 7.15409C2.74788 7.10189 2.85903 7.04555 2.97138 6.99562L2.97543 6.99393C3.33705 6.85186 3.74456 6.81649 4.47819 6.85317C4.98982 6.87755 5.35003 6.92948 5.58432 7.03013C5.70346 7.08131 5.79666 7.14777 5.85948 7.23568C5.92305 7.32463 5.94928 7.42679 5.94928 7.53756C5.94928 7.64781 5.93113 7.74876 5.88078 7.83259C5.82887 7.91902 5.74927 7.97648 5.64775 8.01001C5.54889 8.04266 5.42788 8.05323 5.28597 8.04848C5.14322 8.0437 4.97315 8.02314 4.77318 7.9893C4.3397 7.9121 3.85733 7.90819 3.43057 7.97852C3.00053 8.04939 2.64177 8.19284 2.43825 8.39636C2.38877 8.44584 2.34382 8.48625 2.30861 8.5179C2.29334 8.53162 2.27991 8.5437 2.26873 8.55416C2.22923 8.5911 2.21196 8.61276 2.20108 8.63766C2.18969 8.66371 2.18117 8.70318 2.18013 8.78163C2.17909 8.86011 2.18545 8.96803 2.19766 9.12675C2.22614 9.50261 2.40977 9.88897 2.67829 10.237C2.94622 10.5842 3.29318 10.8861 3.63599 11.0929L3.63732 11.0937C3.86712 11.2374 4.26565 11.3774 4.64846 11.4678C4.83857 11.5128 5.02103 11.5445 5.17234 11.5584C5.32934 11.5729 5.43578 11.5662 5.48539 11.5476L5.48888 11.5464C5.50877 11.5398 5.52215 11.5341 5.53123 11.529C5.53756 11.5255 5.54155 11.522 5.54155 11.522C5.54232 11.5189 5.54311 11.5108 5.54046 11.4941C5.53501 11.4598 5.51756 11.4069 5.48057 11.3242C5.44424 11.2429 5.39219 11.1394 5.32228 11.0057C5.22585 10.819 5.15568 10.6493 5.11357 10.5004C5.07176 10.3526 5.0556 10.2187 5.0731 10.1054C5.09106 9.98913 5.14554 9.89124 5.2441 9.83112C5.33902 9.77321 5.45988 9.75962 5.59379 9.77636L5.58138 9.87558L5.59185 9.77613C5.87816 9.80627 6.05817 10.0091 6.26638 10.401C6.45393 10.7579 6.6013 10.9891 6.76986 11.1678C6.93718 11.3451 7.13025 11.4759 7.4172 11.6254C7.75872 11.7991 8.04404 11.9042 8.32298 11.9522C8.60107 12 8.87801 11.9919 9.20374 11.9327C9.59177 11.8562 9.91172 11.7189 10.2131 11.4861C10.5162 11.2517 10.8045 10.9175 11.1243 10.4409C11.4482 9.95806 11.7078 9.63684 11.9807 9.41982C12.257 9.20006 12.5414 9.09144 12.9056 9.02234L12.9067 9.02215C13.2505 8.96075 13.5251 8.96093 13.7111 9.05211C13.8081 9.09968 13.8808 9.1719 13.9234 9.26866C13.965 9.36325 13.9747 9.47368 13.9613 9.59437L13.9611 9.59626C13.9423 9.74014 13.911 9.86302 13.7949 9.94852C13.7408 9.98827 13.6743 10.0156 13.5961 10.0375C13.5179 10.0595 13.4221 10.0777 13.3058 10.096C12.9871 10.1502 12.811 10.2047 12.6478 10.3369C12.4784 10.474 12.3162 10.6999 12.0467 11.1226C11.8135 11.4908 11.4566 11.9714 11.2435 12.197L10.9959 12.4611L11.1821 12.5061C11.3684 12.5526 11.6775 12.5885 11.877 12.5885C11.9476 12.5885 12.0248 12.6149 12.094 12.6462C12.1658 12.6786 12.2407 12.7218 12.3099 12.7659C12.4466 12.8531 12.5694 12.9493 12.6165 12.9895C12.7475 13.0935 12.8618 13.2674 13.0107 13.498C13.0214 13.5145 13.0323 13.5314 13.0434 13.5487C13.1918 13.7789 13.3832 14.0758 13.6651 14.4518C13.7867 14.6139 13.8901 14.7545 13.9774 14.8734C14.1155 15.0613 14.2135 15.1947 14.2803 15.2723C14.3019 15.2974 14.3227 15.3217 14.3428 15.345C14.4676 15.4903 14.5634 15.6017 14.6375 15.6834C14.6709 15.7203 14.6991 15.7502 14.7229 15.7739C14.7237 15.7404 14.7238 15.6987 14.7238 15.6472C14.7238 15.388 14.7238 15.2227 14.7191 15.0575C14.7108 14.7647 14.6876 14.4724 14.623 13.6584C14.5997 13.3642 14.5754 13.1381 14.5563 12.9605L14.5546 12.9453C14.5355 12.7675 14.5213 12.6336 14.5204 12.531C14.5196 12.427 14.532 12.3408 14.5767 12.2641C14.6203 12.1893 14.6879 12.1358 14.7673 12.0821L14.7759 12.0763L14.7855 12.0723C15.0673 11.9571 15.4592 11.6735 15.7804 11.2707C16.1008 10.869 16.3435 10.3581 16.3435 9.79034C16.3435 9.13108 16.1414 8.61025 15.7311 8.2071C15.3177 7.80098 14.6839 7.50546 13.8046 7.31877C13.6948 7.29437 13.6035 7.27177 13.531 7.24617C13.4587 7.22059 13.396 7.18907 13.3476 7.14178C13.2466 7.04308 13.2383 6.90516 13.2383 6.74604C13.2383 6.66089 13.2386 6.58267 13.2516 6.5198C13.2659 6.4503 13.298 6.38748 13.367 6.3455C13.4274 6.30883 13.5054 6.29527 13.5925 6.28845C13.6822 6.28142 13.799 6.28072 13.9472 6.28071L13.9486 6.28073C14.8019 6.29328 15.7019 6.6562 16.3527 7.25673L16.7664 7.632L16.8364 7.44304C16.8631 7.36794 16.8926 7.22707 16.9152 7.0585C16.9376 6.89147 16.9524 6.7042 16.9524 6.53903C16.9524 5.53251 16.2956 4.68517 15.0536 4.17164L15.0508 4.17042C14.7885 4.0524 14.446 3.75928 14.2542 3.478L14.2534 3.47678C13.8245 2.82757 13.07 2.47753 12.2527 2.55912C11.6407 2.62452 11.1146 2.83209 10.7529 3.11528C10.391 3.39875 10.203 3.74917 10.2353 4.10628C10.2533 4.28647 10.2791 4.38105 10.3317 4.45193C10.3852 4.52407 10.4767 4.58545 10.6639 4.67002L10.6651 4.67053C10.8035 4.73512 10.9165 4.79374 11.0047 4.85098C11.0922 4.90781 11.1621 4.9675 11.2073 5.03683C11.2549 5.10972 11.2716 5.18788 11.2615 5.27153C11.2518 5.35093 11.2184 5.43164 11.1736 5.51484L11.1728 5.51629C11.0649 5.70885 10.8581 5.79826 10.628 5.80334C10.3981 5.80841 10.1331 5.73106 9.8772 5.57753L9.87591 5.57675C9.78599 5.52094 9.72471 5.48355 9.67419 5.46023C9.62598 5.43796 9.59603 5.43267 9.56948 5.43471C9.54096 5.4369 9.5044 5.44848 9.44456 5.48164C9.38446 5.51495 9.31019 5.56457 9.20579 5.63519M8.15078 4.96816L8.13029 4.87029C8.04094 4.88877 7.96493 4.90747 7.90203 4.93103C7.83866 4.95476 7.78274 4.98556 7.73888 5.03167C7.64936 5.12579 7.63675 5.25572 7.63675 5.40654C7.63675 5.49114 7.63877 5.56615 7.65156 5.62821C7.66507 5.69382 7.69231 5.75368 7.74821 5.79919C7.80034 5.84162 7.86689 5.86262 7.93891 5.87637C8.01179 5.89028 8.10379 5.89899 8.21576 5.90807L8.21719 5.90818C8.40695 5.92082 8.57094 5.91173 8.73098 5.86838C8.89093 5.82506 9.04121 5.74909 9.20579 5.63519M8.15078 4.96816C7.79764 5.04123 7.73675 5.10211 7.73675 5.40654C7.73675 5.74751 7.77329 5.77186 8.22384 5.80839C8.58915 5.83275 8.8327 5.77186 9.14931 5.55267M8.15078 4.96816C8.67439 4.85857 8.80835 4.70026 9.12495 3.82351C9.27108 3.42166 9.56333 2.88586 9.75817 2.63014L10.0573 2.26125L9.92865 5.49179C9.57551 5.27259 9.56333 5.27259 9.14931 5.55267M9.20579 5.63519L9.14931 5.55267ZM9.20579 5.63519L9.14931 5.55267ZM7.7465 1.08895L7.74907 1.08791C8.15549 0.929148 8.66681 0.867521 9.17941 0.897036C9.69237 0.926569 10.2146 1.04782 10.6432 1.26209C10.9113 1.39616 11.0694 1.46248 11.2245 1.48719C11.3786 1.51173 11.5377 1.49646 11.8108 1.44791C12.4159 1.34075 13.0919 1.42932 13.6888 1.65529C14.2848 1.88092 14.8135 2.24803 15.1147 2.70942C15.1732 2.79991 15.2827 2.91115 15.4177 3.01943C15.551 3.12634 15.7028 3.22549 15.8414 3.29495C16.1469 3.43543 16.6416 3.79531 16.9496 4.0787C17.521 4.60659 17.8811 5.17465 18.0266 5.81359C18.1719 6.45157 18.1009 7.14977 17.8291 7.93467C17.6487 8.48813 17.5049 9.18492 17.481 9.7338C17.4071 11.1757 16.9946 12.2107 15.9062 12.8435L15.905 12.8442C15.8839 12.8561 15.8599 12.8824 15.8381 12.9374C15.8164 12.992 15.8009 13.065 15.7906 13.1548C15.7722 13.3162 15.7724 13.5119 15.7727 13.7168C15.7727 13.7409 15.7727 13.765 15.7727 13.7892V13.7919V13.7946V13.7973V13.8V13.8026V13.8053V13.808V13.8108V13.8135V13.8162V13.8189V13.8216V13.8244V13.8271V13.8298V13.8326V13.8353V13.8381V13.8408V13.8436V13.8464V13.8491V13.8519V13.8547V13.8575V13.8603V13.8631V13.8659V13.8687V13.8715V13.8743V13.8771V13.8799V13.8828V13.8856V13.8884V13.8913V13.8941V13.8969V13.8998V13.9026V13.9055V13.9084V13.9112V13.9141V13.917V13.9198V13.9227V13.9256V13.9285V13.9314V13.9343V13.9372V13.9401V13.943V13.9459V13.9488V13.9517V13.9546V13.9575V13.9605V13.9634V13.9663V13.9693V13.9722V13.9751V13.9781V13.981V13.984V13.9869V13.9899V13.9928V13.9958V13.9988V14.0017V14.0047V14.0077V14.0106V14.0136V14.0166V14.0196V14.0226V14.0255V14.0285V14.0315V14.0345V14.0375V14.0405V14.0435V14.0465V14.0495V14.0526V14.0556V14.0586V14.0616V14.0646V14.0676V14.0707V14.0737V14.0767V14.0797V14.0828V14.0858V14.0888V14.0919V14.0949V14.0979V14.101V14.104V14.1071V14.1101V14.1132V14.1162V14.1193V14.1223V14.1254V14.1284V14.1315V14.1346V14.1376V14.1407V14.1437V14.1468V14.1499V14.1529V14.156V14.1591V14.1621V14.1652V14.1683V14.1714V14.1744V14.1775V14.1806V14.1837V14.1867V14.1898V14.1929V14.196V14.1991V14.2022V14.2052V14.2083V14.2114V14.2145V14.2176V14.2207V14.2237V14.2268V14.2299V14.233V14.2361V14.2392V14.2423V14.2454V14.2485V14.2515V14.2546V14.2577V14.2608V14.2639V14.267V14.2701V14.2732V14.2763V14.2794V14.2824V14.2855V14.2886V14.2917V14.2948V14.2979V14.301V14.3041V14.3072V14.3102V14.3133V14.3164V14.3195V14.3226V14.3257V14.3288V14.3318V14.3349V14.338V14.3411V14.3442V14.3473V14.3503V14.3534V14.3565V14.3596V14.3626V14.3657V14.3688V14.3719V14.3749V14.378V14.3811V14.3841V14.3872V14.3903V14.3933V14.3964V14.3995V14.4025V14.4056V14.4086V14.4117V14.4148V14.4178V14.4209V14.4239V14.427V14.43V14.4331V14.4361V14.4391V14.4422V14.4452V14.4483V14.4513V14.4543V14.4574V14.4604V14.4634V14.4664V14.4695V14.4725V14.4755V14.4785V14.4815V14.4845V14.4876V14.4906V14.4936V14.4966V14.4996V14.5026V14.5056V14.5086V14.5115V14.5145V14.5175V14.5205V14.5235V14.5265V14.5294V14.5324V14.5354V14.5383V14.5413V14.5443V14.5472V14.5502V14.5531V14.5561V14.559V14.562V14.5649V14.5679V14.5708V14.5737V14.5766V14.5796V14.5825V14.5854V14.5883V14.5912V14.5941V14.597V14.6V14.6028V14.6057V14.6086V14.6115V14.6144V14.6173V14.6202V14.623V14.6259V14.6288V14.6316V14.6345V14.6373V14.6402V14.643V14.6459V14.6487V14.6515V14.6544V14.6572V14.66V14.6628V14.6656V14.6684V14.6713V14.6741V14.6768V14.6796V14.6824V14.6852V14.688V14.6908V14.6935V14.6963V14.6991V14.7018V14.7046V14.7073V14.71V14.7128V14.7155V14.7182V14.721V14.7237V14.7264V14.7291V14.7318V14.7345V14.7372V14.7399V14.7426V14.7452V14.7479V14.7506V14.7532V14.7559V14.7585V14.7612V14.7638V14.7665V14.7691V14.7717V14.7743V14.7769V14.7796V14.7822V14.7848V14.7873V14.7899V14.7925V14.7951V14.7976V14.8002V14.8028V14.8053V14.8079V14.8104V14.8129V14.8155V14.818V14.8205V14.823V14.8255V14.828V14.8305V14.833V14.8355V14.8379V14.8404V14.8428V14.8453V14.8477V14.8502V14.8526V14.855V14.8575V14.8599V14.8623V14.8647V14.8671V14.8695V14.8718V14.8742V14.8766V14.8789V14.8813V14.8836V14.886V14.8883V14.8906V14.893V14.8953V14.8976V14.8999V14.9022V14.9044V14.9067V14.909V14.9113V14.9135V14.9158V14.918V14.9202V14.9224V14.9247V14.9269V14.9291V14.9313V14.9335V14.9356V14.9378V14.94V14.9421V14.9443V14.9464V14.9486V14.9507V14.9528V14.9549V14.957V14.9591V14.9612V14.9633V14.9653V14.9674V14.9694V14.9715V14.9735V14.9756V14.9776V14.9796V14.9816V14.9836V14.9856V14.9875V14.9895V14.9915V14.9934V14.9954V14.9973V14.9992V15.0012V15.0031V15.005V15.0069V15.0087V15.0106V15.0125V15.0143V15.0162V15.018V15.0199V15.0217V15.0235V15.0253V15.0271V15.0289V15.0307V15.0324V15.0342V15.0359V15.0377V15.0394V15.0411V15.0428V15.0445V15.0462V15.0479V15.0496V15.0513V15.0529V15.0546V15.0562V15.0578V15.0594V15.061V15.0626V15.0642V15.0658V15.0674V15.0689V15.0705V15.072V15.0735V15.0751V15.0766V15.0781V15.0795V15.081V15.0825V15.0839V15.0854V15.0868V15.0883V15.0897V15.0911V15.0925V15.0939V15.0952V15.0966V15.0979V15.0993V15.1006V15.1019V15.1033V15.1046V15.1058V15.1071V15.1084V15.1096V15.1109V15.1121V15.1133V15.1146V15.1158V15.117V15.1181V15.1193V15.1205V15.1216L15.7723 15.1311C15.7548 15.3139 15.7451 15.4912 15.7358 15.662C15.7346 15.6841 15.7334 15.706 15.7322 15.7278C15.7216 15.9175 15.7103 16.0996 15.6874 16.266C15.642 16.5961 15.548 16.8906 15.2946 17.0706L15.2772 17.0829L15.2564 17.0871C14.9498 17.1489 14.6072 16.9897 14.1662 16.6137C13.7207 16.2339 13.1487 15.6098 12.3758 14.6825L12.0736 14.3803L11.8153 14.1776L11.8056 14.1689L11.3424 13.6962C11.0367 13.6504 10.6083 13.493 10.351 13.3337C10.1644 13.2171 10.0176 13.1525 9.80579 13.1142C9.58858 13.0748 9.30168 13.0625 8.83204 13.0564C7.96291 13.0564 7.60385 12.9954 7.18168 12.7907L7.17863 12.7891C6.96587 12.6768 6.81351 12.6184 6.60293 12.593C6.38675 12.5668 6.10658 12.5751 5.63657 12.6057C4.76818 12.655 4.05882 12.5601 3.45333 12.2865C2.8469 12.0124 2.35287 11.5631 1.90689 10.9189C1.85911 10.8489 1.80935 10.779 1.75927 10.7086C1.55336 10.4192 1.336 10.1137 1.17329 9.69286C0.96984 9.16671 0.851706 8.46413 0.91967 7.37584L0.921262 7.36325C1.05912 6.64369 1.22225 6.21487 1.39929 5.90071C1.48763 5.74396 1.57833 5.61771 1.66814 5.50032C1.69665 5.46306 1.72465 5.4272 1.75234 5.39175C1.813 5.31407 1.87214 5.23834 1.93182 5.15396C2.14369 4.85485 2.50488 4.48 2.74851 4.3133C2.85688 4.23916 2.98236 4.12862 3.09433 4.00928C3.20704 3.88915 3.30016 3.76638 3.34875 3.66919L3.34927 3.66818C3.57953 3.22044 4.03078 2.79438 4.53955 2.48106C5.04821 2.1678 5.62966 1.95781 6.12936 1.95781C6.14751 1.95781 6.1801 1.95228 6.22743 1.93709C6.27313 1.92243 6.32676 1.90068 6.3848 1.87311C6.50052 1.81814 6.62839 1.74263 6.73848 1.66166C6.9792 1.472 7.425 1.22497 7.7465 1.08895Z",
15
15
  fill: "#64748B"
16
16
  }), /*#__PURE__*/_jsx("path", {
@@ -18,7 +18,7 @@ export const BrainIcon = props => /*#__PURE__*/_jsxs("svg", {
18
18
  stroke: "",
19
19
  strokeWidth: "0.2"
20
20
  }), /*#__PURE__*/_jsx("path", {
21
- className: "fillPath strokeFill",
21
+ className: "fillPath strokeFill bainIconPathStroke2",
22
22
  d: "M8.65005 8.30277L8.65134 8.30009C8.71231 8.17815 8.8171 8.04195 8.93706 7.91884C9.05729 7.79545 9.19829 7.67951 9.33608 7.6007C9.70633 7.38379 10.1293 7.29924 10.4654 7.33513C10.6332 7.35306 10.787 7.40191 10.9015 7.48718C11.019 7.57471 11.0936 7.70039 11.0936 7.85773C11.0936 8.03108 10.9736 8.19102 10.8269 8.30141C10.6768 8.4144 10.4766 8.49352 10.2751 8.49352C10.0222 8.49352 9.85541 8.55675 9.75341 8.66238C9.65164 8.7678 9.59639 8.93413 9.60785 9.1804L9.60789 9.18165C9.62036 9.54954 9.53563 9.84467 9.357 9.9864C9.26327 10.0608 9.14903 10.0877 9.0282 10.062C8.91098 10.0371 8.79408 9.96427 8.68225 9.85244C8.53166 9.70185 8.47034 9.43321 8.46878 9.15974C8.46718 8.8801 8.5276 8.56701 8.65005 8.30277Z",
23
23
  fill: "#64748B",
24
24
  stroke: "#64748B",
@@ -43,9 +43,10 @@ const ColorPickerButton = props => {
43
43
  background: value,
44
44
  height: "22px",
45
45
  minWidth: "22px",
46
- borderRadius: "26px",
47
- border: "2px solid #E7E7E7"
46
+ borderRadius: "26px"
47
+ // border: "2px solid #E7E7E7",
48
48
  },
49
+
49
50
  onClick: handleColorPicker
50
51
  }), /*#__PURE__*/_jsx(Popover, {
51
52
  open: open,
@@ -27,20 +27,23 @@ const FontLoader = props => {
27
27
  classes: false,
28
28
  timeout: 2000,
29
29
  active: () => {
30
- console.log(`Fonts loaded successfully: ${batch}`);
30
+ // console.log(`Fonts loaded successfully: ${batch}`);
31
31
  currentIndex += batchSize;
32
32
  retryCount = 0; // Reset retry count for the next batch
33
33
  loadNextBatch();
34
34
  },
35
35
  inactive: () => {
36
- console.log(`Font loading failed for: ${batch}`);
36
+ // console.log(`Font loading failed for: ${batch}`);
37
+
37
38
  if (retryCount < maxRetries) {
38
39
  retryCount++;
39
- console.log(`Retrying batch (${retryCount}/${maxRetries})...`);
40
+ // console.log(`Retrying batch (${retryCount}/${maxRetries})...`);
40
41
  // Retry loading the same batch
41
42
  loadNextBatch();
42
43
  } else {
43
- console.log(`Max retries reached for batch: ${batch}. Moving to the next batch.`);
44
+ // console.log(
45
+ // `Max retries reached for batch: ${batch}. Moving to the next batch.`
46
+ // );
44
47
  currentIndex += batchSize;
45
48
  retryCount = 0; // Reset retry count for the next batch
46
49
  loadNextBatch();
@@ -64,7 +67,7 @@ const FontLoader = props => {
64
67
  });
65
68
  loadFontsInBatches(families);
66
69
  }).catch(err => {
67
- console.log(err);
70
+ // console.log(err);
68
71
  });
69
72
  } else {
70
73
  function correctFontArray(fontString) {
@@ -18,7 +18,8 @@ const usePopupStyles = theme => ({
18
18
  "& button": {
19
19
  padding: "0px 0px 0px 6px",
20
20
  "& svg": {
21
- width: "19px !important"
21
+ width: "19px !important",
22
+ paddingRight: "6px"
22
23
  }
23
24
  },
24
25
  "& .active": {
@@ -39,13 +40,23 @@ const usePopupStyles = theme => ({
39
40
  borderRadius: "7px",
40
41
  "& svg": {
41
42
  "& path": {
42
- stroke: `${theme?.palette?.editor?.menuOptionsSelectedTextColor} !important`
43
+ stroke: `${theme?.palette?.editor?.menuOptionsSelectedTextColor}`
43
44
  }
44
45
  },
45
46
  "& span": {
46
47
  "& .MuiTypography-root": {
47
48
  color: `${theme?.palette?.editor?.menuOptionsSelectedTextColor} !important`
48
49
  }
50
+ },
51
+ "& .BrainIcon": {
52
+ "& .bainIconPathStroke": {
53
+ fill: `${theme?.palette?.editor?.menuOptionsSelectedTextColor} !important`,
54
+ stroke: "unset !important"
55
+ },
56
+ "& .bainIconPathStroke2": {
57
+ stroke: `${theme?.palette?.editor?.menuOptionsSelectedTextColor} !important`,
58
+ fill: `${theme?.palette?.editor?.menuOptionsSelectedTextColor} !important`
59
+ }
49
60
  }
50
61
  },
51
62
  "& .MuiCardMedia-root": {
@@ -123,13 +134,7 @@ const usePopupStyles = theme => ({
123
134
  "& path": {
124
135
  stroke: `${theme?.palette?.editor?.menuOptionsSelectedTextColor} !important`
125
136
  }
126
- },
127
- "& .commonSvgStyle2": {
128
- background: "red !important"
129
137
  }
130
- },
131
- "& .renderComp": {
132
- backgroundColor: "red !important"
133
138
  }
134
139
  },
135
140
  "&:hover": {
@@ -162,7 +167,7 @@ const usePopupStyles = theme => ({
162
167
  marginBottom: "10px",
163
168
  fontSize: "14px",
164
169
  fontWeight: "bold",
165
- borderBottom: "1px solid #DCE4EC"
170
+ borderBottom: `1px solid ${theme?.palette?.editor?.deviderBgColor}`
166
171
  },
167
172
  listItem: {
168
173
  cursor: "pointer",
@@ -14,7 +14,8 @@ const SwitchViewport = props => {
14
14
  } = props;
15
15
  const classes = useSwitchViewport();
16
16
  const {
17
- setSelectedElement
17
+ setSelectedElement,
18
+ setActiveBreakPoint
18
19
  } = useEditorContext();
19
20
  useEffect(() => {
20
21
  // to reset selection on viewport changes - FS-6589
@@ -30,6 +31,7 @@ const SwitchViewport = props => {
30
31
  children: /*#__PURE__*/_jsx(IconButton, {
31
32
  className: `${!breakpoint || breakpoint === "lg" ? "active" : ""}`,
32
33
  onClick: () => {
34
+ setActiveBreakPoint("");
33
35
  onChange("");
34
36
  },
35
37
  children: /*#__PURE__*/_jsx(PersonalVideoIcon, {})
@@ -39,6 +41,7 @@ const SwitchViewport = props => {
39
41
  children: /*#__PURE__*/_jsx(IconButton, {
40
42
  className: `${breakpoint === "xs" ? "active" : ""}`,
41
43
  onClick: () => {
44
+ setActiveBreakPoint("xs");
42
45
  onChange("xs");
43
46
  },
44
47
  children: /*#__PURE__*/_jsx(PhoneIphoneIcon, {})
@@ -14,7 +14,7 @@ import BoundaryLine from "./GuideLines/BoundaryLine";
14
14
  import ContextMenu from "./ContextMenu";
15
15
  import VirtualElement from "./VirtualElement";
16
16
  import { ItemTypes } from "./ElementSettings/settingsConstants";
17
- import { focusSelection, clearSelection } from "../../helper";
17
+ import { clearSelection } from "../../helper";
18
18
  import { selectText } from "../../utils/helper";
19
19
  import { removeSign } from "./ElementSettings/OtherSettings";
20
20
  import useDragging from "../../hooks/useDragging";
@@ -9,7 +9,7 @@ import { getBreakPointsValue, getTRBLBreakPoints, groupByBreakpoint } from "../.
9
9
  import DragHandle from "../DnD/DragHandleButton";
10
10
  import { useEditorSelection } from "../../hooks/useMouseMove";
11
11
  import SectionStyle from "./styles";
12
- import useWindowResize from "../../hooks/useWindowResize";
12
+ // import useWindowResize from "../../hooks/useWindowResize"; //commenting for ui demo if okay remove this comment before dev
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
14
  import { jsxs as _jsxs } from "react/jsx-runtime";
15
15
  import { Fragment as _Fragment } from "react/jsx-runtime";
@@ -45,8 +45,11 @@ const Section = props => {
45
45
  const path = ReactEditor.findPath(editor, element);
46
46
  const anchorEl = useRef(null);
47
47
  const popperEl = useRef(null);
48
- const [size] = useWindowResize();
49
- const isSectionFullWidth = sectionGridSize && sectionGridSize[size?.device] >= 12;
48
+
49
+ // const [size] = useWindowResize();
50
+ // const isSectionFullWidth =
51
+ // sectionGridSize && sectionGridSize[size?.device] >= 12;
52
+
50
53
  const [isHovering, setIsHovering] = useState(false);
51
54
  const onMouseEnter = () => {
52
55
  setIsHovering(true);
@@ -77,6 +80,9 @@ const Section = props => {
77
80
  children: /*#__PURE__*/_jsx(Tooltip, {
78
81
  title: "Section Settings",
79
82
  children: /*#__PURE__*/_jsx(IconButton, {
83
+ sx: {
84
+ marginBottom: '25px !important'
85
+ },
80
86
  onClick: onSettings,
81
87
  children: /*#__PURE__*/_jsx(TuneIcon, {})
82
88
  })
@@ -149,11 +155,16 @@ const Section = props => {
149
155
  className: "ed-section-inner",
150
156
  sx: {
151
157
  position: "relative",
152
- ...edInnerSp
158
+ ...edInnerSp,
159
+ outline: isHovering ? `1px dashed ${theme?.palette?.editor?.inputFieldBorder}` : 'none'
160
+ // borderRadius: '5px'
153
161
  },
162
+
154
163
  ref: anchorEl,
155
- children: [isHovering && isSectionFullWidth ? /*#__PURE__*/_jsx(Popper, {
156
- open: isHovering && isSectionFullWidth,
164
+ children: [isHovering ? /*#__PURE__*/_jsx(Popper, {
165
+ open: isHovering
166
+ // open={isHovering && isSectionFullWidth} //commenting for ui demo if okay remove this comment before dev
167
+ ,
157
168
  anchorEl: anchorEl?.current,
158
169
  placement: "top-start",
159
170
  sx: {
@@ -176,11 +187,7 @@ const Section = props => {
176
187
  fromPopper: true
177
188
  })]
178
189
  })
179
- }) : /*#__PURE__*/_jsxs(_Fragment, {
180
- children: [!readOnly && !showTool ? /*#__PURE__*/_jsx(DragHandle, {
181
- ...props
182
- }) : null, /*#__PURE__*/_jsx(Toolbar, {})]
183
- }), children]
190
+ }) : /*#__PURE__*/_jsx(_Fragment, {}), children]
184
191
  }), openSetttings ? /*#__PURE__*/_jsx(SectionPopup, {
185
192
  element: {
186
193
  ...element,
@@ -18,6 +18,7 @@ import FontSize from "./fontSize";
18
18
  import SelectSwitch from "./selectSwitch";
19
19
  import CardsMapping from "./card";
20
20
  import MetaDataMapping from "./metaDataMapping";
21
+ import LineSpacing from "./lineSpacing";
21
22
  const FieldMap = {
22
23
  text: Text,
23
24
  bannerSpacing: BannerSpacing,
@@ -38,6 +39,7 @@ const FieldMap = {
38
39
  fontSize: FontSize,
39
40
  selectSwitch: SelectSwitch,
40
41
  card: CardsMapping,
41
- metadatamapping: MetaDataMapping
42
+ metadatamapping: MetaDataMapping,
43
+ lineSpacing: LineSpacing
42
44
  };
43
45
  export default FieldMap;
@@ -0,0 +1,79 @@
1
+ import React, { useState } from "react";
2
+ import { Grid, Slider, Typography, Box } from "@mui/material";
3
+ import { getBreakPointsValue } from "../../../helper/theme";
4
+ import useWindowResize from "../../../hooks/useWindowResize";
5
+ import { useEditorContext } from "../../../hooks/useMouseMove";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ import { jsxs as _jsxs } from "react/jsx-runtime";
8
+ const LineSpacing = props => {
9
+ const {
10
+ value: val,
11
+ data,
12
+ onChange
13
+ } = props;
14
+ const {
15
+ theme
16
+ } = useEditorContext();
17
+ const {
18
+ key
19
+ } = data;
20
+ const [size] = useWindowResize();
21
+ const pro_value = getBreakPointsValue(val, size?.device);
22
+ const [value, setValue] = useState(pro_value);
23
+ let breakpointValue = getBreakPointsValue(val, null);
24
+ breakpointValue = typeof breakpointValue['lg'] === 'object' ? breakpointValue['lg'] : breakpointValue;
25
+ useState(() => {
26
+ setValue(pro_value);
27
+ }, [pro_value]);
28
+ const handleChange = e => {
29
+ onChange({
30
+ [key]: {
31
+ ...breakpointValue,
32
+ [size?.device]: e.target.value
33
+ }
34
+ });
35
+ };
36
+ return /*#__PURE__*/_jsxs(Grid, {
37
+ item: true,
38
+ xs: 12,
39
+ children: [/*#__PURE__*/_jsx(Typography, {
40
+ variant: "body1",
41
+ color: "primary",
42
+ style: {
43
+ fontSize: "14px",
44
+ fontWeight: 500
45
+ },
46
+ children: data?.label
47
+ }), /*#__PURE__*/_jsxs(Grid, {
48
+ container: true,
49
+ wrap: "nowrap",
50
+ className: "sld-wrpr",
51
+ children: [/*#__PURE__*/_jsx(Slider, {
52
+ className: "spacingSlider",
53
+ defaultValue: value || 1.43,
54
+ "aria-label": "Default",
55
+ valueLabelDisplay: "auto",
56
+ min: 0.5,
57
+ max: 3.0,
58
+ step: 0.1,
59
+ name: "lineHeight",
60
+ onChange: handleChange
61
+ }), /*#__PURE__*/_jsx(Box, {
62
+ component: "input",
63
+ sx: {
64
+ background: theme?.palette?.editor?.background,
65
+ color: theme?.palette?.editor?.textColor
66
+ },
67
+ name: "lineHeight",
68
+ value: pro_value,
69
+ className: "sliderInput",
70
+ onChange: handleChange,
71
+ type: "number",
72
+ placeholder: "0",
73
+ disabled: true,
74
+ defaultValue: pro_value || 1.43
75
+ })]
76
+ })]
77
+ });
78
+ };
79
+ export default LineSpacing;
@@ -25,6 +25,10 @@ const pageSettingsStyle = [{
25
25
  label: "Padding",
26
26
  key: "bannerSpacing",
27
27
  type: "bannerSpacing"
28
+ }, {
29
+ label: "Line Spacing",
30
+ key: "lineHeight",
31
+ type: "lineSpacing"
28
32
  }]
29
33
  }, {
30
34
  tab: "Max Width",
@@ -134,8 +134,7 @@ const useCommonStyle = theme => ({
134
134
  }
135
135
  },
136
136
  "& .active ": {
137
- border: `1px solid #2563EB !important`,
138
- background: `${theme?.palette?.editor?.signaturePopUpTabButtonSelectedBg} !important`
137
+ border: `1px solid #2563EB !important`
139
138
  }
140
139
  },
141
140
  "& .MuiTab-root": {
@@ -181,6 +180,11 @@ const useCommonStyle = theme => ({
181
180
  border: `1px solid ${theme?.palette?.editor?.closeButtonBorder} !important`
182
181
  }
183
182
  }
183
+ },
184
+ "& .disabledSaveBtn": {
185
+ background: "#2563EB33 !important",
186
+ color: theme?.palette?.type === "dark" && "#FFFFFF33 !important",
187
+ border: "1px solid #2563EB33 !important"
184
188
  }
185
189
  },
186
190
  popupTitle2: {
@@ -147,4 +147,27 @@ export const groupByBreakpoint = (styleProps, theme) => {
147
147
  }
148
148
  };
149
149
  };
150
- export const getCustomizationValue = value => isNaN(parseInt(value)) ? null : parseInt(value);
150
+ export const getCustomizationValue = value => isNaN(parseInt(value)) ? null : parseInt(value);
151
+ export const getBreakpointLineSpacing = (value, breakpoint) => {
152
+ try {
153
+ const values = getBreakPointsValue(value, breakpoint);
154
+ const cssVal = BREAKPOINTS_DEVICES.reduce((a, b) => {
155
+ if (values[b] || values["lg"]) {
156
+ const value = values[b] || values["lg"];
157
+ return {
158
+ ...a,
159
+ [b]: value
160
+ };
161
+ } else {
162
+ return a;
163
+ }
164
+ }, {});
165
+ if (breakpoint) {
166
+ return value[breakpoint] || value["lg"] || value;
167
+ } else {
168
+ return cssVal["lg"];
169
+ }
170
+ } catch (err) {
171
+ // console.log(err);
172
+ }
173
+ };
@@ -35,6 +35,7 @@ export const EditorProvider = ({
35
35
  path: null
36
36
  });
37
37
  const [fontFamilies, setFontFamilies] = useState({});
38
+ const [activeBreakPoint, setActiveBreakPoint] = useState("");
38
39
  useEffect(() => {
39
40
  window.updateSelectedItem = d => {
40
41
  setSelectedElement(d);
@@ -97,8 +98,10 @@ export const EditorProvider = ({
97
98
  setOpenAI,
98
99
  updateDragging,
99
100
  fontFamilies,
100
- setFontFamilies
101
- }), [path, editor?.selection, selectedPath, selectedElement, contextMenu, openAI, popupType, drop]);
101
+ setFontFamilies,
102
+ activeBreakPoint,
103
+ setActiveBreakPoint
104
+ }), [path, editor?.selection, selectedPath, selectedElement, contextMenu, openAI, popupType, drop, activeBreakPoint]);
102
105
  return /*#__PURE__*/_jsx(EditorContext.Provider, {
103
106
  value: otherValues,
104
107
  children: children
@@ -1,16 +1,42 @@
1
- import { Transforms } from "slate";
2
- import insertNewLine from "./insertNewLine";
1
+ import { Editor, Node, Path, Transforms } from "slate";
3
2
  export const insertBrain = (editor, data, position) => {
4
- const brains = {
5
- type: "brains",
6
- ...data,
7
- children: [{
8
- text: ""
9
- }]
10
- };
11
- Transforms.insertNodes(editor, brains, {
12
- at: position,
13
- select: true
14
- });
15
- insertNewLine(editor);
3
+ if (!editor || !data || !position) {
4
+ console.error("Editor, data, and position are required.");
5
+ return;
6
+ }
7
+ const {
8
+ selection
9
+ } = editor;
10
+ let insertPath = position;
11
+ if (selection) {
12
+ const brains = {
13
+ type: "brains",
14
+ ...data,
15
+ children: [{
16
+ text: ""
17
+ }]
18
+ };
19
+ const [currentNode, currentPath] = Editor.node(editor, selection);
20
+ const cleanedText = Node.string(currentNode).replace(/\/b(?:rain|r|ra|rai)?/g, "").trim();
21
+ if (cleanedText) {
22
+ Transforms.delete(editor, {
23
+ at: Editor.range(editor, currentPath)
24
+ });
25
+ Transforms.insertText(editor, cleanedText, {
26
+ at: currentPath
27
+ });
28
+ const [, parentPath] = Editor.parent(editor, currentPath);
29
+ insertPath = Path.next(parentPath);
30
+ }
31
+ Transforms.insertNodes(editor, brains, {
32
+ at: insertPath,
33
+ select: true
34
+ });
35
+ Transforms.insertNodes(editor, {
36
+ type: "paragraph",
37
+ children: [{
38
+ text: ""
39
+ }]
40
+ });
41
+ }
16
42
  };
@@ -15,6 +15,20 @@ const LIST_FORMAT_TYPE = {
15
15
  unorderedList: "list-item"
16
16
  };
17
17
  const NEWLINESAFTER = ["headingOne", "headingTwo", "headingThree"];
18
+ export const serializeMentions = node => {
19
+ try {
20
+ if (node?.type === 'mention') {
21
+ return [node.character];
22
+ }
23
+ let children = Array.isArray(node) ? node : node?.children;
24
+ children = children && Array.isArray(children) ? children : [];
25
+ let mentions = children.map(child => serializeMentions(child)).flat();
26
+ return mentions.filter(Boolean);
27
+ } catch (err) {
28
+ console.log(err);
29
+ return [];
30
+ }
31
+ };
18
32
  export const toggleBlock = (editor, format, selection = true, attr = {}) => {
19
33
  const isActive = isBlockActive(editor, format);
20
34
  const isList = list_types.includes(format);
@@ -5,7 +5,6 @@ import { insertAccordion } from "./accordion";
5
5
  import { isListItem } from "./helper";
6
6
  import RnDCtrlCmds from "./RnD/RnDCtrlCmds";
7
7
  import EDITORCMDS from "../common/EditorCmds";
8
- import { ReactEditor } from "slate-react";
9
8
  const HOTKEYS = {
10
9
  b: "bold",
11
10
  i: "italic",
@@ -9,7 +9,13 @@ export const findPageSettings = editor => {
9
9
  path: null,
10
10
  element: {
11
11
  pageProps: {
12
- pageWidth: "fixed"
12
+ pageWidth: "fixed",
13
+ "lineHeight": {
14
+ "xs": 1.43,
15
+ "sm": 1.43,
16
+ "md": 1.43,
17
+ "lg": 1.43
18
+ }
13
19
  }
14
20
  }
15
21
  };
@@ -34,7 +40,13 @@ export const getPageSettings = editor => {
34
40
  path: null,
35
41
  element: {
36
42
  pageProps: {
37
- pageWidth: "fixed"
43
+ pageWidth: "fixed",
44
+ "lineHeight": {
45
+ "xs": 1.43,
46
+ "sm": 1.43,
47
+ "md": 1.43,
48
+ "lg": 1.43
49
+ }
38
50
  }
39
51
  }
40
52
  };
@@ -2,6 +2,8 @@ export const serializeToText = node => {
2
2
  try {
3
3
  if (!node?.type && node?.text) {
4
4
  return node?.text;
5
+ } else if (node?.type === 'mention') {
6
+ return '@' + node?.character?.name || '';
5
7
  }
6
8
  let n = Array.isArray(node) ? node : node?.children;
7
9
  n = n && Array.isArray(n) ? n : n ? [n] : [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flozy/editor",
3
- "version": "4.9.5",
3
+ "version": "4.9.7",
4
4
  "description": "An Editor for flozy app brain",
5
5
  "files": [
6
6
  "dist"