@flozy/editor 6.0.5 → 6.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/Editor/ChatEditor.js +7 -7
  2. package/dist/Editor/CommonEditor.js +81 -25
  3. package/dist/Editor/DialogWrapper.js +31 -25
  4. package/dist/Editor/Editor.css +22 -16
  5. package/dist/Editor/Elements/AI/PopoverAIInput.js +2 -12
  6. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  7. package/dist/Editor/Elements/Button/EditorButton.js +26 -9
  8. package/dist/Editor/Elements/Color Picker/ColorButtons.js +57 -12
  9. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  10. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  11. package/dist/Editor/Elements/Color Picker/Styles.js +1 -1
  12. package/dist/Editor/Elements/DataView/DataView.js +4 -3
  13. package/dist/Editor/Elements/DataView/Layouts/DataTypes/NumberType.js +5 -1
  14. package/dist/Editor/Elements/DataView/Layouts/DataTypes/TextType.js +5 -1
  15. package/dist/Editor/Elements/DataView/Layouts/FilterView.js +23 -19
  16. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +1 -1
  17. package/dist/Editor/Elements/Embed/Image.js +2 -2
  18. package/dist/Editor/Elements/Form/Form.js +1 -0
  19. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +0 -14
  20. package/dist/Editor/Elements/FreeGrid/styles.js +4 -0
  21. package/dist/Editor/Elements/Grid/GridItem.js +2 -3
  22. package/dist/Editor/Elements/Link/Link.js +70 -43
  23. package/dist/Editor/Elements/List/CheckList.js +2 -1
  24. package/dist/Editor/Elements/Search/SearchAttachment.js +1 -0
  25. package/dist/Editor/Elements/Search/SearchList.js +8 -1
  26. package/dist/Editor/Elements/SimpleText/index.js +8 -1
  27. package/dist/Editor/Elements/SimpleText/style.js +5 -1
  28. package/dist/Editor/Elements/Table/Table.js +3 -3
  29. package/dist/Editor/Elements/Table/TableCell.js +14 -9
  30. package/dist/Editor/Elements/Title/title.js +13 -1
  31. package/dist/Editor/Elements/Variables/Style.js +28 -2
  32. package/dist/Editor/Elements/Variables/VariableButton.js +17 -4
  33. package/dist/Editor/MiniEditor.js +4 -2
  34. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  35. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  36. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  37. package/dist/Editor/Toolbar/FormatTools/TextSize.js +7 -15
  38. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +46 -36
  39. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectAlignment.js +3 -1
  40. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
  41. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +3 -1
  42. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +211 -91
  43. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +11 -4
  44. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +16 -12
  45. package/dist/Editor/Toolbar/PopupTool/TemplateCard.js +1 -1
  46. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +99 -7
  47. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +438 -0
  48. package/dist/Editor/Toolbar/PopupTool/index.js +2 -0
  49. package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
  50. package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
  51. package/dist/Editor/common/ColorPickerButton.js +32 -9
  52. package/dist/Editor/common/CustomColorPicker/index.js +106 -0
  53. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  54. package/dist/Editor/common/CustomDialog/index.js +94 -0
  55. package/dist/Editor/common/CustomDialog/style.js +67 -0
  56. package/dist/Editor/common/CustomSelect.js +33 -0
  57. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  58. package/dist/Editor/common/DnD/Draggable.js +0 -1
  59. package/dist/Editor/common/FontLoader/FontList.js +1 -9
  60. package/dist/Editor/common/FontLoader/FontLoader.js +6 -4
  61. package/dist/Editor/common/Icon.js +28 -0
  62. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  63. package/dist/Editor/common/MentionsPopup/Styles.js +3 -9
  64. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  65. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  66. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  67. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  68. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  69. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
  70. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +3 -2
  71. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  72. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +3 -2
  73. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +14 -2
  74. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  75. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  76. package/dist/Editor/common/RnD/Utils/gridDropItem.js +5 -4
  77. package/dist/Editor/common/RnD/Utils/index.js +40 -0
  78. package/dist/Editor/common/RnD/index.js +23 -3
  79. package/dist/Editor/common/Shorthands/elements.js +54 -0
  80. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  81. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +5 -0
  82. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  83. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  84. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +10 -2
  85. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +35 -11
  86. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +13 -4
  87. package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
  88. package/dist/Editor/common/StyleBuilder/fieldTypes/lineSpacing.js +79 -0
  89. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  90. package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +4 -0
  91. package/dist/Editor/common/Uploader.js +8 -0
  92. package/dist/Editor/commonStyle.js +58 -63
  93. package/dist/Editor/helper/deserialize/index.js +1 -1
  94. package/dist/Editor/helper/ensureWrappedVariables.js +28 -0
  95. package/dist/Editor/helper/index.js +2 -2
  96. package/dist/Editor/helper/theme.js +224 -3
  97. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  98. package/dist/Editor/hooks/useMouseMove.js +13 -5
  99. package/dist/Editor/plugins/withEmbeds.js +1 -1
  100. package/dist/Editor/plugins/withHTML.js +2 -2
  101. package/dist/Editor/plugins/withLayout.js +1 -1
  102. package/dist/Editor/plugins/withTable.js +1 -1
  103. package/dist/Editor/theme/ThemeList.js +50 -173
  104. package/dist/Editor/theme/index.js +144 -0
  105. package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
  106. package/dist/Editor/themeSettings/buttons/index.js +283 -0
  107. package/dist/Editor/themeSettings/buttons/style.js +21 -0
  108. package/dist/Editor/themeSettings/colorTheme/index.js +292 -0
  109. package/dist/Editor/themeSettings/colorTheme/style.js +77 -0
  110. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  111. package/dist/Editor/themeSettings/fonts/index.js +220 -0
  112. package/dist/Editor/themeSettings/fonts/style.js +44 -0
  113. package/dist/Editor/themeSettings/icons.js +60 -0
  114. package/dist/Editor/themeSettings/index.js +320 -0
  115. package/dist/Editor/themeSettings/style.js +152 -0
  116. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  117. package/dist/Editor/themeSettingsAI/index.js +356 -0
  118. package/dist/Editor/themeSettingsAI/saveTheme.js +197 -0
  119. package/dist/Editor/themeSettingsAI/style.js +250 -0
  120. package/dist/Editor/utils/SlateUtilityFunctions.js +161 -42
  121. package/dist/Editor/utils/button.js +0 -14
  122. package/dist/Editor/utils/customHooks/useTableResize.js +2 -1
  123. package/dist/Editor/utils/draftToSlate.js +3 -2
  124. package/dist/Editor/utils/font.js +40 -37
  125. package/dist/Editor/utils/helper.js +88 -19
  126. package/dist/Editor/utils/link.js +1 -1
  127. package/dist/Editor/utils/pageSettings.js +14 -2
  128. package/dist/Editor/utils/table.js +21 -0
  129. package/package.json +5 -2
@@ -2,8 +2,11 @@ import { useMemo } from "react";
2
2
  import { activeMark, addMarkData, isBlockActive, toggleBlock } from "../../../utils/SlateUtilityFunctions";
3
3
  import CustomSelectTool from "./CustomSelectTool";
4
4
  import useWindowResize from "../../../hooks/useWindowResize";
5
- import { BREAKPOINTS_DEVICES, getBreakPointsValue } from "../../../helper/theme";
5
+ import { BREAKPOINTS_DEVICES, getBreakPointsValue, isTextCustomized as isCustomized, textThemeFields as themeFields } from "../../../helper/theme";
6
6
  import { sizeMap } from "../../../utils/font";
7
+ import { Editor } from "slate";
8
+ import { useEditorTheme } from "../../../hooks/useEditorTheme";
9
+ import { MenuItem, Select } from "@mui/material";
7
10
  import { jsx as _jsx } from "react/jsx-runtime";
8
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
12
  function Label({
@@ -17,93 +20,190 @@ function Label({
17
20
  });
18
21
  }
19
22
  function DisplayHeaderLabel({
20
- type
23
+ type,
24
+ isCustomized,
25
+ isPara = false
21
26
  }) {
22
27
  return /*#__PURE__*/_jsxs("div", {
23
- children: ["H", /*#__PURE__*/_jsx("sub", {
28
+ children: [isCustomized ? "*" : "", isPara ? "P" : "H", /*#__PURE__*/_jsx("sub", {
24
29
  children: type
25
30
  })]
26
31
  });
27
32
  }
28
- const typographyOptions = [{
29
- id: 11,
30
- format: "headingOne",
31
- type: "block",
32
- title: /*#__PURE__*/_jsx(Label, {
33
- label: "H1",
34
- type: "Header"
35
- }),
36
- label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
37
- type: 1
38
- }),
39
- group: "typography",
40
- value: "headingOne"
41
- }, {
42
- id: 12,
43
- format: "headingTwo",
44
- type: "block",
45
- title: /*#__PURE__*/_jsx(Label, {
46
- label: "H2",
47
- type: "Header"
48
- }),
49
- label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
50
- type: 2
51
- }),
52
- group: "typography",
53
- value: "headingTwo"
54
- }, {
55
- id: 13,
56
- format: "headingThree",
57
- type: "block",
58
- title: /*#__PURE__*/_jsx(Label, {
59
- label: "H3",
60
- type: "Header"
61
- }),
62
- label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
63
- type: 3
64
- }),
65
- group: "typography",
66
- value: "headingThree"
67
- }, {
68
- id: 14,
69
- format: "fontSize",
70
- type: "mark",
71
- title: /*#__PURE__*/_jsx(Label, {
72
- label: "L",
73
- type: "Large"
74
- }),
75
- label: "L",
76
- group: "typography",
77
- value: "huge"
78
- }, {
79
- id: 15,
80
- format: "fontSize",
81
- type: "mark",
82
- title: /*#__PURE__*/_jsx(Label, {
83
- label: "M",
84
- type: "Medium"
85
- }),
86
- label: "M",
87
- group: "typography",
88
- value: "medium"
89
- }, {
90
- id: 16,
91
- format: "fontSize",
92
- type: "mark",
93
- title: /*#__PURE__*/_jsx(Label, {
94
- label: "S",
95
- type: "Small"
96
- }),
97
- label: "S",
98
- group: "typography",
99
- value: "small"
100
- }];
33
+ function getTypographyOptions(isCustomized) {
34
+ const typographyOptions = [{
35
+ id: 11,
36
+ format: "headingOne",
37
+ type: "block",
38
+ title: /*#__PURE__*/_jsx(Label, {
39
+ label: "H1",
40
+ type: "Heading"
41
+ }),
42
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
43
+ type: 1,
44
+ isCustomized: isCustomized
45
+ }),
46
+ group: "typography",
47
+ value: "headingOne"
48
+ }, {
49
+ id: 12,
50
+ format: "headingTwo",
51
+ type: "block",
52
+ title: /*#__PURE__*/_jsx(Label, {
53
+ label: "H2",
54
+ type: "Heading"
55
+ }),
56
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
57
+ type: 2,
58
+ isCustomized: isCustomized
59
+ }),
60
+ group: "typography",
61
+ value: "headingTwo"
62
+ }, {
63
+ id: 13,
64
+ format: "headingThree",
65
+ type: "block",
66
+ title: /*#__PURE__*/_jsx(Label, {
67
+ label: "H3",
68
+ type: "Heading"
69
+ }),
70
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
71
+ type: 3,
72
+ isCustomized: isCustomized
73
+ }),
74
+ group: "typography",
75
+ value: "headingThree"
76
+ }, {
77
+ id: 17,
78
+ format: "headingFour",
79
+ type: "block",
80
+ title: /*#__PURE__*/_jsx(Label, {
81
+ label: "H4",
82
+ type: "Heading"
83
+ }),
84
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
85
+ type: 4,
86
+ isCustomized: isCustomized
87
+ }),
88
+ group: "typography",
89
+ value: "headingFour"
90
+ }, {
91
+ id: 18,
92
+ format: "headingFive",
93
+ type: "block",
94
+ title: /*#__PURE__*/_jsx(Label, {
95
+ label: "H5",
96
+ type: "Heading"
97
+ }),
98
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
99
+ type: 5,
100
+ isCustomized: isCustomized
101
+ }),
102
+ group: "typography",
103
+ value: "headingFive"
104
+ }, {
105
+ id: 19,
106
+ format: "headingSix",
107
+ type: "block",
108
+ title: /*#__PURE__*/_jsx(Label, {
109
+ label: "H6",
110
+ type: "Heading"
111
+ }),
112
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
113
+ type: 6,
114
+ isCustomized: isCustomized
115
+ }),
116
+ group: "typography",
117
+ value: "headingSix"
118
+ }, {
119
+ id: 20,
120
+ format: "paragraphOne",
121
+ type: "block",
122
+ title: /*#__PURE__*/_jsx(Label, {
123
+ label: "P1",
124
+ type: "Paragraph"
125
+ }),
126
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
127
+ type: 1,
128
+ isCustomized: isCustomized,
129
+ isPara: true
130
+ }),
131
+ group: "typography",
132
+ value: "paragraphOne"
133
+ }, {
134
+ id: 21,
135
+ format: "paragraphTwo",
136
+ type: "block",
137
+ title: /*#__PURE__*/_jsx(Label, {
138
+ label: "P2",
139
+ type: "Paragraph"
140
+ }),
141
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
142
+ type: 2,
143
+ isCustomized: isCustomized,
144
+ isPara: true
145
+ }),
146
+ group: "typography",
147
+ value: "paragraphTwo"
148
+ }, {
149
+ id: 22,
150
+ format: "paragraphThree",
151
+ type: "block",
152
+ title: /*#__PURE__*/_jsx(Label, {
153
+ label: "P3",
154
+ type: "Paragraph"
155
+ }),
156
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
157
+ type: 3,
158
+ isCustomized: isCustomized,
159
+ isPara: true
160
+ }),
161
+ group: "typography",
162
+ value: "paragraphThree"
163
+ }
164
+ // {
165
+ // id: 14,
166
+ // format: "fontSize",
167
+ // type: "mark",
168
+ // title: <Label label="L" type="Large" />,
169
+ // label: "L",
170
+ // group: "typography",
171
+ // value: "huge",
172
+ // },
173
+ // {
174
+ // id: 15,
175
+ // format: "fontSize",
176
+ // type: "mark",
177
+ // title: <Label label="M" type="Medium" />,
178
+ // label: "M",
179
+ // group: "typography",
180
+ // value: "medium",
181
+ // },
182
+ // {
183
+ // id: 16,
184
+ // format: "fontSize",
185
+ // type: "mark",
186
+ // title: <Label label="S" type="Small" />,
187
+ // label: "S",
188
+ // group: "typography",
189
+ // value: "small",
190
+ // },
191
+ ];
192
+
193
+ return typographyOptions;
194
+ }
101
195
  function SelectTypography({
102
196
  editor,
103
197
  classes,
104
- closeMainPopup
198
+ closeMainPopup,
199
+ type
105
200
  }) {
106
201
  const [size] = useWindowResize();
202
+ const {
203
+ theme
204
+ } = useEditorTheme();
205
+ const isTextCustomized = theme?.id ? isCustomized(editor) : false;
206
+ const typographyOptions = getTypographyOptions(isTextCustomized);
107
207
  const updateMarkData = newVal => {
108
208
  const val = activeMark(editor, "fontSize");
109
209
  let upData = {
@@ -125,8 +225,10 @@ function SelectTypography({
125
225
  ...upData
126
226
  }
127
227
  });
128
- closeMainPopup();
228
+
229
+ // closeMainPopup();
129
230
  };
231
+
130
232
  const selectedBlock = useMemo(() => {
131
233
  return typographyOptions.find(t => {
132
234
  if (t.type === "block") {
@@ -148,31 +250,49 @@ function SelectTypography({
148
250
  });
149
251
  }, [typographyOptions, activeMark, isBlockActive, editor]);
150
252
  const onChange = (format, option) => {
151
- // add/reset block elements
152
- toggleBlock(editor, format);
153
253
  if (option.type === "block") {
154
- // reset old font size
155
- let updatedValue = !selectedBlock ? {} : {
156
- xs: "16px",
157
- sm: "16px",
158
- md: "16px",
159
- lg: "16px"
160
- };
161
- addMarkData(editor, {
162
- format: "fontSize",
163
- value: updatedValue
254
+ themeFields.forEach(field => {
255
+ Editor.removeMark(editor, field);
164
256
  });
257
+
258
+ // add/reset block elements
259
+ toggleBlock(editor, format);
165
260
  } else if (option.type === "mark") {
166
261
  const size = sizeMap[option.value] || "";
167
262
  const [sizeInNumber] = size.split("px");
168
263
  updateMarkData(Number(sizeInNumber));
169
264
  }
265
+ closeMainPopup();
170
266
  };
267
+ const typographyValue = selectedBlock?.value || "headingOne";
268
+ if (type === "fullWidth") {
269
+ return /*#__PURE__*/_jsx(Select, {
270
+ value: typographyValue,
271
+ className: "editor-dd",
272
+ onChange: e => {
273
+ const {
274
+ value
275
+ } = e.target;
276
+ const option = typographyOptions?.find(o => o.value === value);
277
+ onChange(value, option);
278
+ },
279
+ style: {
280
+ width: "100%",
281
+ height: "36px",
282
+ borderRadius: "10px",
283
+ fontSize: "14px"
284
+ },
285
+ children: typographyOptions.map((item, index) => /*#__PURE__*/_jsxs(MenuItem, {
286
+ value: item.value,
287
+ children: [item.title, " ", isTextCustomized && item.value === typographyValue ? " *" : ""]
288
+ }, index))
289
+ });
290
+ }
171
291
  return /*#__PURE__*/_jsx(CustomSelectTool, {
172
292
  options: typographyOptions,
173
293
  editor: editor,
174
294
  onChange: onChange,
175
- value: selectedBlock?.value || "headingOne",
295
+ value: typographyValue,
176
296
  classes: classes
177
297
  });
178
298
  }
@@ -14,6 +14,7 @@ import MiniColorPicker from "./MiniColorPicker";
14
14
  import SelectAlignment from "./SelectAlignment";
15
15
  import SelectFontSize from "./SelectFontSize";
16
16
  import InfinityAITool from "./InfinityAITool";
17
+ import { viewSlateSelection } from "../../../utils/helper";
17
18
  import { jsx as _jsx } from "react/jsx-runtime";
18
19
  import { jsxs as _jsxs } from "react/jsx-runtime";
19
20
  const DEFAULT_COLOR = {
@@ -55,18 +56,21 @@ const MiniTextFormat = props => {
55
56
  }), /*#__PURE__*/_jsx(SelectTypography, {
56
57
  classes: classes,
57
58
  editor: editor,
58
- closeMainPopup: closeMainPopup
59
+ closeMainPopup: closeMainPopup,
60
+ type: "miniToolBar"
59
61
  }), /*#__PURE__*/_jsx("div", {
60
62
  className: "verticalLine"
61
63
  }), /*#__PURE__*/_jsx(SelectList, {
62
64
  classes: classes,
63
- editor: editor
65
+ editor: editor,
66
+ closeMainPopup: closeMainPopup
64
67
  }), /*#__PURE__*/_jsx("div", {
65
68
  className: "verticalLine mr-1"
66
69
  }), /*#__PURE__*/_jsx(SelectAlignment, {
67
70
  fontAlign: fontAlign,
68
71
  classes: classes,
69
- editor: editor
72
+ editor: editor,
73
+ closeMainPopup: closeMainPopup
70
74
  }), /*#__PURE__*/_jsx("div", {
71
75
  className: "verticalLine mr-1"
72
76
  }), /*#__PURE__*/_jsx(SelectFontSize, {
@@ -98,7 +102,10 @@ const MiniTextFormat = props => {
98
102
  editor: editor,
99
103
  customProps: customProps
100
104
  }, link.id), /*#__PURE__*/_jsx(IconButton, {
101
- onClick: e => setAnchorEl(document.getElementById("mini-text-editor-wrapper")),
105
+ onClick: e => {
106
+ viewSlateSelection();
107
+ setAnchorEl(document.getElementById("mini-text-editor-wrapper"));
108
+ },
102
109
  className: `textSettingsIcon ${open ? "btnActive" : ""}`,
103
110
  children: /*#__PURE__*/_jsx(TextToolIcon, {})
104
111
  }), /*#__PURE__*/_jsx(Popper, {
@@ -130,7 +130,7 @@ const usePopupStyle = theme => ({
130
130
  },
131
131
  "& .accordionIcon": {
132
132
  "& p": {
133
- textAlign: 'left'
133
+ textAlign: "left"
134
134
  }
135
135
  }
136
136
  },
@@ -416,6 +416,11 @@ const usePopupStyle = theme => ({
416
416
  "& .MuiOutlinedInput-notchedOutline": {
417
417
  border: `1px solid ${theme?.palette?.editor?.inputFieldBorder} !important`
418
418
  },
419
+ '& .MuiInputBase-root': {
420
+ '& input': {
421
+ border: "none !important"
422
+ }
423
+ },
419
424
  "& svg": {
420
425
  width: "20px",
421
426
  height: "24px"
@@ -424,12 +429,6 @@ const usePopupStyle = theme => ({
424
429
  fontFamilyListOptions: {
425
430
  "& .MuiAutocomplete-listbox": {
426
431
  padding: "0px",
427
- "&::-webkit-scrollbar-thumb": {
428
- background: `none !important`
429
- },
430
- "&::-webkit-scrollbar-track": {
431
- visibility: "hidden"
432
- },
433
432
  "&::-webkit-scrollbar-thumb": {
434
433
  background: `${theme?.palette?.editor?.brainPopupScroll} !important`
435
434
  },
@@ -440,8 +439,8 @@ const usePopupStyle = theme => ({
440
439
  margin: "5px",
441
440
  borderRadius: "8px",
442
441
  color: theme?.palette?.editor?.menuOptionTextColor,
443
- fontSize: '14px',
444
- padding: '8px 12px',
442
+ fontSize: "14px",
443
+ padding: "8px 12px",
445
444
  '&[aria-selected="true"]': {
446
445
  backgroundColor: `${theme?.palette?.editor?.menuOptionSelectedOption} !important`
447
446
  }
@@ -540,7 +539,7 @@ const usePopupStyle = theme => ({
540
539
  }
541
540
  },
542
541
  alignItems: "flexStart",
543
- justifyContent: "center",
542
+ // justifyContent: "center",
544
543
  flexDirection: "row",
545
544
  "&:hover": {
546
545
  background: "unset"
@@ -789,8 +788,13 @@ const usePopupStyle = theme => ({
789
788
  padding: "0px"
790
789
  },
791
790
  defaultBtn: {
792
- color: "#0F172A",
793
- textTransform: "none"
791
+ color: "#2563EB !important",
792
+ textTransform: "none",
793
+ textDecoration: "underline",
794
+ "&.Mui-disabled": {
795
+ color: "#A0AEC0 !important",
796
+ textDecoration: "none"
797
+ }
794
798
  },
795
799
  templateCardBtnGrp: {
796
800
  display: "none",
@@ -47,7 +47,7 @@ const TemplateCard = props => {
47
47
  }), /*#__PURE__*/_jsx(CardMedia, {
48
48
  className: `template-card-media ${fullScreen ? "fullscreen" : ""}`,
49
49
  component: "div",
50
- image: m?.thumbnail,
50
+ image: m?.compressedThum || m?.thumbnail,
51
51
  alt: m?.title,
52
52
  sx: classes.templateCardMedia
53
53
  }), /*#__PURE__*/_jsx(PreviewAndSelect, {
@@ -10,10 +10,14 @@ import { AllColors } from "../../Elements/Color Picker/ColorButtons";
10
10
  import { fontFamilyMap } from "../../utils/font";
11
11
  import { getBorderColor } from "../../utils/helper";
12
12
  import SelectTypography from "./MiniTextFormat/SelectTypography";
13
+ import { isTextCustomized, saveToTheme } from "../../helper/theme";
14
+ import { useEditorTheme } from "../../hooks/useEditorTheme";
13
15
  import SelectSuperSubscript from "./MiniTextFormat/SelectSuperSubscript";
14
16
  import { ColorResetIcon, TextDefaultStyleIcon } from "../../common/iconListV2";
15
17
  import FontFamilyAutocomplete from "../FormatTools/FontFamilyAutocomplete";
16
18
  import { useEditorContext } from "../../hooks/useMouseMove";
19
+ import LineSpacing from "../../common/StyleBuilder/fieldTypes/lineSpacing";
20
+ import { getPageSettings } from "../../utils/pageSettings";
17
21
  import { jsx as _jsx } from "react/jsx-runtime";
18
22
  import { jsxs as _jsxs } from "react/jsx-runtime";
19
23
  const allTools = toolbarGroups.flat();
@@ -31,10 +35,18 @@ const TextFormat = props => {
31
35
  const [anchorEl, setAnchorEl] = useState(null);
32
36
  const [type, setType] = useState(null);
33
37
  const open = Boolean(anchorEl);
38
+ const {
39
+ element: pageSt
40
+ } = getPageSettings(editor) || {};
41
+ const pageSettingLine = pageSt?.pageProps?.lineHeight;
34
42
  const {
35
43
  fontFamilies,
36
- theme
44
+ theme: appTheme
45
+ } = useEditorContext();
46
+ const {
47
+ activeBreakPoint
37
48
  } = useEditorContext();
49
+ const breakpoint = activeBreakPoint === "" ? "lg" : activeBreakPoint;
38
50
  const fontWeight = allTools.find(f => f.format === "fontWeight");
39
51
  const fontStyle = allTools.filter(f => f.type === "mark" && f.format !== "strikethrough" && f.format !== "superscript" && f.format !== "subscript");
40
52
  const fontAlign = allTools.filter(f => f.format?.indexOf("align") >= 0);
@@ -51,6 +63,13 @@ const TextFormat = props => {
51
63
  color: "",
52
64
  bgColor: ""
53
65
  };
66
+ const {
67
+ theme,
68
+ updateTheme
69
+ } = useEditorTheme();
70
+ const customized = isTextCustomized(editor);
71
+ let lineSpacingValue = activeMark(editor, "lineHeight");
72
+ lineSpacingValue = lineSpacingValue?.[breakpoint] !== undefined ? lineSpacingValue : pageSettingLine;
54
73
  const handleColorPicker = type => e => {
55
74
  setType(type);
56
75
  setAnchorEl(e.currentTarget);
@@ -91,11 +110,62 @@ const TextFormat = props => {
91
110
  value
92
111
  });
93
112
  };
113
+ const handleLineSpacing = data => {
114
+ const [[format, value]] = Object.entries(data);
115
+ addMarkData(editor, {
116
+ format,
117
+ value
118
+ });
119
+ };
94
120
  return /*#__PURE__*/_jsxs(Grid, {
95
121
  container: true,
96
122
  sx: classes.textFormatWrapper,
97
123
  className: "text-formatter-popup",
98
124
  children: [/*#__PURE__*/_jsxs(Grid, {
125
+ item: true,
126
+ xs: 12,
127
+ children: [/*#__PURE__*/_jsxs(Grid, {
128
+ container: true,
129
+ justifyContent: "space-between",
130
+ alignItems: "center",
131
+ children: [/*#__PURE__*/_jsx(Grid, {
132
+ item: true,
133
+ children: /*#__PURE__*/_jsx(Typography, {
134
+ variant: "body1",
135
+ color: "primary",
136
+ sx: classes.typoLabel,
137
+ children: "Style"
138
+ })
139
+ }), /*#__PURE__*/_jsx(Grid, {
140
+ item: true,
141
+ children: theme?.id ? /*#__PURE__*/_jsx(Button, {
142
+ sx: classes.defaultBtn,
143
+ onClick: () => {
144
+ const {
145
+ field,
146
+ theme
147
+ } = saveToTheme(editor) || {};
148
+ updateTheme(theme, {
149
+ action: "ELEMENT_PROPS_CHANGE",
150
+ fieldName: field
151
+ });
152
+ },
153
+ disabled: !customized,
154
+ children: "Save to theme"
155
+ }) : null
156
+ })]
157
+ }), /*#__PURE__*/_jsx(Grid, {
158
+ item: true,
159
+ xs: 12,
160
+ sx: classes.textFormatField,
161
+ children: /*#__PURE__*/_jsx(SelectTypography, {
162
+ editor: editor,
163
+ classes: classes,
164
+ closeMainPopup: () => {},
165
+ type: "fullWidth"
166
+ })
167
+ })]
168
+ }), /*#__PURE__*/_jsxs(Grid, {
99
169
  item: true,
100
170
  xs: 12,
101
171
  children: [/*#__PURE__*/_jsxs(Grid, {
@@ -248,7 +318,7 @@ const TextFormat = props => {
248
318
  children: /*#__PURE__*/_jsx(Button, {
249
319
  sx: classes.defaultBtn2,
250
320
  startIcon: /*#__PURE__*/_jsx(ColorResetIcon, {
251
- stroke: theme?.palette?.type === "dark" ? "#505359" : "#A2B0B9"
321
+ stroke: appTheme?.palette?.type === "dark" ? "#505359" : "#A2B0B9"
252
322
  }),
253
323
  onClick: handleDefault({
254
324
  format: "bgColor"
@@ -336,11 +406,7 @@ const TextFormat = props => {
336
406
  xs: 12,
337
407
  className: "typo-icons",
338
408
  sx: classes.evenSpace,
339
- children: [/*#__PURE__*/_jsx(SelectTypography, {
340
- classes: classes,
341
- editor: editor,
342
- closeMainPopup: closeMainPopup || onClose
343
- }), fontStyle?.map((m, i) => {
409
+ children: [fontStyle?.map((m, i) => {
344
410
  return /*#__PURE__*/_jsx(MarkButton, {
345
411
  editor: editor,
346
412
  ...m
@@ -360,6 +426,32 @@ const TextFormat = props => {
360
426
  xs: 12,
361
427
  sx: classes.dividerGrid,
362
428
  children: /*#__PURE__*/_jsx(Divider, {})
429
+ }), /*#__PURE__*/_jsxs(Grid, {
430
+ item: true,
431
+ xs: 12,
432
+ children: [/*#__PURE__*/_jsx(Typography, {
433
+ variant: "body1",
434
+ color: "primary",
435
+ sx: classes.typoLabel,
436
+ children: "Line Spacing"
437
+ }), /*#__PURE__*/_jsx(Grid, {
438
+ item: true,
439
+ xs: 12,
440
+ className: "typo-icons",
441
+ sx: classes.evenSpace,
442
+ children: /*#__PURE__*/_jsx(LineSpacing, {
443
+ value: lineSpacingValue,
444
+ onChange: handleLineSpacing,
445
+ data: {
446
+ key: "lineHeight"
447
+ }
448
+ })
449
+ })]
450
+ }), /*#__PURE__*/_jsx(Grid, {
451
+ item: true,
452
+ xs: 12,
453
+ sx: classes.dividerGrid,
454
+ children: /*#__PURE__*/_jsx(Divider, {})
363
455
  }), /*#__PURE__*/_jsx(Grid, {
364
456
  item: true,
365
457
  xs: 12,