@flozy/editor 9.0.9 → 9.1.1

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 (124) hide show
  1. package/dist/Editor/ChatEditor.js +3 -2
  2. package/dist/Editor/CommonEditor.js +103 -24
  3. package/dist/Editor/DialogWrapper.js +31 -25
  4. package/dist/Editor/Editor.css +19 -1
  5. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  6. package/dist/Editor/Elements/Button/EditorButton.js +25 -9
  7. package/dist/Editor/Elements/Color Picker/ColorButtons.js +57 -12
  8. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  9. package/dist/Editor/Elements/Color Picker/ColorPicker.js +5 -5
  10. package/dist/Editor/Elements/Color Picker/Styles.js +1 -1
  11. package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +4 -1
  12. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +3 -4
  13. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +6 -1
  14. package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +19 -9
  15. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +32 -2
  16. package/dist/Editor/Elements/DataView/Layouts/TableView.js +126 -29
  17. package/dist/Editor/Elements/DataView/Layouts/ViewData.js +3 -3
  18. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +1 -1
  19. package/dist/Editor/Elements/DataView/styles.js +8 -8
  20. package/dist/Editor/Elements/Embed/Image.js +2 -2
  21. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +0 -14
  22. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +2 -1
  23. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +2 -1
  24. package/dist/Editor/Elements/FreeGrid/styles.js +3 -0
  25. package/dist/Editor/Elements/Grid/GridItem.js +2 -3
  26. package/dist/Editor/Elements/Link/Link.js +70 -43
  27. package/dist/Editor/Elements/SimpleText/index.js +0 -1
  28. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  29. package/dist/Editor/Elements/Table/Table.js +5 -4
  30. package/dist/Editor/Elements/Table/TableCell.js +4 -3
  31. package/dist/Editor/Elements/Title/title.js +13 -1
  32. package/dist/Editor/Elements/Variables/Style.js +28 -2
  33. package/dist/Editor/Elements/Variables/VariableButton.js +17 -4
  34. package/dist/Editor/Styles/EditorStyles.js +5 -5
  35. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  36. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  37. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  38. package/dist/Editor/Toolbar/FormatTools/TextSize.js +7 -15
  39. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +1 -0
  40. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +9 -8
  41. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
  42. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +210 -85
  43. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +2 -1
  44. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +16 -12
  45. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +57 -13
  46. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +438 -0
  47. package/dist/Editor/Toolbar/PopupTool/index.js +2 -1
  48. package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
  49. package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
  50. package/dist/Editor/common/ColorPickerButton.js +35 -9
  51. package/dist/Editor/common/CustomColorPicker/index.js +106 -0
  52. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  53. package/dist/Editor/common/CustomDialog/index.js +90 -0
  54. package/dist/Editor/common/CustomDialog/styles.js +80 -0
  55. package/dist/Editor/common/CustomDialog2/index.js +94 -0
  56. package/dist/Editor/common/CustomDialog2/style.js +67 -0
  57. package/dist/Editor/common/CustomSelect.js +33 -0
  58. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  59. package/dist/Editor/common/DnD/Draggable.js +0 -1
  60. package/dist/Editor/common/FontLoader/FontLoader.js +3 -0
  61. package/dist/Editor/common/Icon.js +28 -0
  62. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  63. package/dist/Editor/common/ImageSelector/UploadStyles.js +0 -1
  64. package/dist/Editor/common/LinkSettings/index.js +2 -1
  65. package/dist/Editor/common/MentionsPopup/Styles.js +6 -12
  66. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  67. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  68. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  69. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  70. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  71. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
  72. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +3 -2
  73. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  74. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +3 -2
  75. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +8 -2
  76. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  77. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  78. package/dist/Editor/common/RnD/Utils/gridDropItem.js +5 -4
  79. package/dist/Editor/common/RnD/Utils/index.js +45 -0
  80. package/dist/Editor/common/RnD/index.js +23 -3
  81. package/dist/Editor/common/Shorthands/elements.js +54 -0
  82. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  83. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +5 -0
  84. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  85. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  86. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +10 -2
  87. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +35 -11
  88. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +13 -4
  89. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  90. package/dist/Editor/common/Uploader.js +8 -0
  91. package/dist/Editor/commonStyle.js +114 -69
  92. package/dist/Editor/helper/index.js +2 -2
  93. package/dist/Editor/helper/theme.js +200 -2
  94. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  95. package/dist/Editor/hooks/useMouseMove.js +9 -3
  96. package/dist/Editor/plugins/withEmbeds.js +1 -1
  97. package/dist/Editor/plugins/withHTML.js +19 -14
  98. package/dist/Editor/plugins/withLayout.js +1 -1
  99. package/dist/Editor/plugins/withTable.js +1 -1
  100. package/dist/Editor/theme/ThemeList.js +50 -173
  101. package/dist/Editor/theme/index.js +144 -0
  102. package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
  103. package/dist/Editor/themeSettings/buttons/index.js +283 -0
  104. package/dist/Editor/themeSettings/buttons/style.js +21 -0
  105. package/dist/Editor/themeSettings/colorTheme/index.js +292 -0
  106. package/dist/Editor/themeSettings/colorTheme/style.js +77 -0
  107. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  108. package/dist/Editor/themeSettings/fonts/index.js +220 -0
  109. package/dist/Editor/themeSettings/fonts/style.js +44 -0
  110. package/dist/Editor/themeSettings/icons.js +60 -0
  111. package/dist/Editor/themeSettings/index.js +320 -0
  112. package/dist/Editor/themeSettings/style.js +152 -0
  113. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  114. package/dist/Editor/themeSettingsAI/index.js +356 -0
  115. package/dist/Editor/themeSettingsAI/saveTheme.js +197 -0
  116. package/dist/Editor/themeSettingsAI/style.js +250 -0
  117. package/dist/Editor/utils/SlateUtilityFunctions.js +150 -37
  118. package/dist/Editor/utils/button.js +0 -14
  119. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +23 -0
  120. package/dist/Editor/utils/draftToSlate.js +3 -2
  121. package/dist/Editor/utils/font.js +40 -37
  122. package/dist/Editor/utils/helper.js +59 -19
  123. package/dist/Editor/utils/link.js +1 -1
  124. 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,7 +225,10 @@ function SelectTypography({
125
225
  ...upData
126
226
  }
127
227
  });
228
+
229
+ // closeMainPopup();
128
230
  };
231
+
129
232
  const selectedBlock = useMemo(() => {
130
233
  return typographyOptions.find(t => {
131
234
  if (t.type === "block") {
@@ -147,15 +250,13 @@ function SelectTypography({
147
250
  });
148
251
  }, [typographyOptions, activeMark, isBlockActive, editor]);
149
252
  const onChange = (format, option) => {
150
- // add/reset block elements
151
- toggleBlock(editor, format);
152
253
  if (option.type === "block") {
153
- // reset old font size
154
- // let updatedValue = !selectedBlock ? {} : { xs: "16px", sm: "16px", md: "16px", lg: "16px" }
155
- addMarkData(editor, {
156
- format: "fontSize",
157
- value: {}
254
+ themeFields.forEach(field => {
255
+ Editor.removeMark(editor, field);
158
256
  });
257
+
258
+ // add/reset block elements
259
+ toggleBlock(editor, format);
159
260
  } else if (option.type === "mark") {
160
261
  const size = sizeMap[option.value] || "";
161
262
  const [sizeInNumber] = size.split("px");
@@ -163,11 +264,35 @@ function SelectTypography({
163
264
  }
164
265
  closeMainPopup();
165
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
+ }
166
291
  return /*#__PURE__*/_jsx(CustomSelectTool, {
167
292
  options: typographyOptions,
168
293
  editor: editor,
169
294
  onChange: onChange,
170
- value: selectedBlock?.value || "headingOne",
295
+ value: typographyValue,
171
296
  classes: classes
172
297
  });
173
298
  }
@@ -56,7 +56,8 @@ const MiniTextFormat = props => {
56
56
  }), /*#__PURE__*/_jsx(SelectTypography, {
57
57
  classes: classes,
58
58
  editor: editor,
59
- closeMainPopup: closeMainPopup
59
+ closeMainPopup: closeMainPopup,
60
+ type: "miniToolBar"
60
61
  }), /*#__PURE__*/_jsx("div", {
61
62
  className: "verticalLine"
62
63
  }), /*#__PURE__*/_jsx(SelectList, {
@@ -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",
@@ -10,6 +10,8 @@ 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";
@@ -33,17 +35,14 @@ const TextFormat = props => {
33
35
  const [anchorEl, setAnchorEl] = useState(null);
34
36
  const [type, setType] = useState(null);
35
37
  const open = Boolean(anchorEl);
36
- const {
37
- element: pageSt
38
- } = getPageSettings(editor) || {};
38
+
39
+ // const { element: pageSt } = getPageSettings(editor) || {};
39
40
  // const pageSettingLine = pageSt?.pageProps?.lineHeight;
40
41
  const {
41
42
  fontFamilies,
42
- theme
43
- } = useEditorContext();
44
- const {
45
- activeBreakPoint
43
+ theme: appTheme
46
44
  } = useEditorContext();
45
+ // const { activeBreakPoint } = useEditorContext();
47
46
  // const breakpoint = activeBreakPoint === "" ? "lg" : activeBreakPoint;
48
47
  const fontWeight = allTools.find(f => f.format === "fontWeight");
49
48
  const fontStyle = allTools.filter(f => f.type === "mark" && f.format !== "strikethrough" && f.format !== "superscript" && f.format !== "subscript");
@@ -61,6 +60,11 @@ const TextFormat = props => {
61
60
  color: "",
62
61
  bgColor: ""
63
62
  };
63
+ const {
64
+ theme,
65
+ updateTheme
66
+ } = useEditorTheme();
67
+ const customized = isTextCustomized(editor);
64
68
 
65
69
  // let lineSpacingValue = activeMark(editor, "lineHeight");
66
70
  // lineSpacingValue =
@@ -117,6 +121,50 @@ const TextFormat = props => {
117
121
  sx: classes.textFormatWrapper,
118
122
  className: "text-formatter-popup",
119
123
  children: [/*#__PURE__*/_jsxs(Grid, {
124
+ item: true,
125
+ xs: 12,
126
+ children: [/*#__PURE__*/_jsxs(Grid, {
127
+ container: true,
128
+ justifyContent: "space-between",
129
+ alignItems: "center",
130
+ children: [/*#__PURE__*/_jsx(Grid, {
131
+ item: true,
132
+ children: /*#__PURE__*/_jsx(Typography, {
133
+ variant: "body1",
134
+ color: "primary",
135
+ sx: classes.typoLabel,
136
+ children: "Style"
137
+ })
138
+ }), /*#__PURE__*/_jsx(Grid, {
139
+ item: true,
140
+ children: theme?.id ? /*#__PURE__*/_jsx(Button, {
141
+ sx: classes.defaultBtn,
142
+ onClick: () => {
143
+ const {
144
+ field,
145
+ theme
146
+ } = saveToTheme(editor) || {};
147
+ updateTheme(theme, {
148
+ action: "ELEMENT_PROPS_CHANGE",
149
+ fieldName: field
150
+ });
151
+ },
152
+ disabled: !customized,
153
+ children: "Save to theme"
154
+ }) : null
155
+ })]
156
+ }), /*#__PURE__*/_jsx(Grid, {
157
+ item: true,
158
+ xs: 12,
159
+ sx: classes.textFormatField,
160
+ children: /*#__PURE__*/_jsx(SelectTypography, {
161
+ editor: editor,
162
+ classes: classes,
163
+ closeMainPopup: () => {},
164
+ type: "fullWidth"
165
+ })
166
+ })]
167
+ }), /*#__PURE__*/_jsxs(Grid, {
120
168
  item: true,
121
169
  xs: 12,
122
170
  children: [/*#__PURE__*/_jsxs(Grid, {
@@ -269,7 +317,7 @@ const TextFormat = props => {
269
317
  children: /*#__PURE__*/_jsx(Button, {
270
318
  sx: classes.defaultBtn2,
271
319
  startIcon: /*#__PURE__*/_jsx(ColorResetIcon, {
272
- stroke: theme?.palette?.type === "dark" ? "#505359" : "#A2B0B9"
320
+ stroke: appTheme?.palette?.type === "dark" ? "#505359" : "#A2B0B9"
273
321
  }),
274
322
  onClick: handleDefault({
275
323
  format: "bgColor"
@@ -357,11 +405,7 @@ const TextFormat = props => {
357
405
  xs: 12,
358
406
  className: "typo-icons",
359
407
  sx: classes.evenSpace,
360
- children: [/*#__PURE__*/_jsx(SelectTypography, {
361
- classes: classes,
362
- editor: editor,
363
- closeMainPopup: closeMainPopup || onClose
364
- }), fontStyle?.map((m, i) => {
408
+ children: [fontStyle?.map((m, i) => {
365
409
  return /*#__PURE__*/_jsx(MarkButton, {
366
410
  editor: editor,
367
411
  ...m