@flozy/editor 8.0.7 → 8.0.8

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 (132) hide show
  1. package/dist/Editor/ChatEditor.js +2 -1
  2. package/dist/Editor/CommonEditor.js +112 -33
  3. package/dist/Editor/DialogWrapper.js +31 -25
  4. package/dist/Editor/Editor.css +32 -16
  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 +9 -7
  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/Options/styles.js +1 -1
  16. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +32 -2
  17. package/dist/Editor/Elements/DataView/Layouts/TableView.js +126 -29
  18. package/dist/Editor/Elements/DataView/Layouts/ViewData.js +3 -3
  19. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +1 -1
  20. package/dist/Editor/Elements/DataView/styles.js +8 -8
  21. package/dist/Editor/Elements/Embed/Image.js +2 -2
  22. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +0 -14
  23. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +2 -1
  24. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +2 -1
  25. package/dist/Editor/Elements/FreeGrid/styles.js +3 -0
  26. package/dist/Editor/Elements/Grid/GridItem.js +2 -3
  27. package/dist/Editor/Elements/Link/Link.js +70 -43
  28. package/dist/Editor/Elements/SimpleText/index.js +7 -12
  29. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  30. package/dist/Editor/Elements/Table/Table.js +17 -16
  31. package/dist/Editor/Elements/Table/TableCell.js +4 -3
  32. package/dist/Editor/Elements/Title/title.js +13 -1
  33. package/dist/Editor/Elements/Variables/Style.js +28 -2
  34. package/dist/Editor/Elements/Variables/VariableButton.js +17 -4
  35. package/dist/Editor/Styles/EditorStyles.js +287 -291
  36. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  37. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  38. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  39. package/dist/Editor/Toolbar/FormatTools/TextSize.js +7 -15
  40. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +1 -0
  41. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +9 -8
  42. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
  43. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +210 -85
  44. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +2 -1
  45. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +16 -12
  46. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +56 -9
  47. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +438 -0
  48. package/dist/Editor/Toolbar/PopupTool/index.js +34 -56
  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 +35 -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 +90 -0
  55. package/dist/Editor/common/CustomDialog/style.js +67 -0
  56. package/dist/Editor/common/CustomDialog/styles.js +80 -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/FontList.js +3 -11
  61. package/dist/Editor/common/FontLoader/FontLoader.js +74 -42
  62. package/dist/Editor/common/Icon.js +28 -0
  63. package/dist/Editor/common/ImageSelector/Options/Upload.js +2 -2
  64. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  65. package/dist/Editor/common/ImageSelector/UploadStyles.js +9 -10
  66. package/dist/Editor/common/LinkSettings/NavComponents.js +0 -5
  67. package/dist/Editor/common/LinkSettings/index.js +0 -5
  68. package/dist/Editor/common/MentionsPopup/Styles.js +6 -12
  69. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  70. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  71. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  72. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  73. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  74. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
  75. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +3 -2
  76. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  77. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +3 -2
  78. package/dist/Editor/common/RnD/ElementSettings/styles.js +0 -2
  79. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +8 -2
  80. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  81. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  82. package/dist/Editor/common/RnD/Utils/gridDropItem.js +5 -4
  83. package/dist/Editor/common/RnD/Utils/index.js +45 -0
  84. package/dist/Editor/common/RnD/index.js +23 -3
  85. package/dist/Editor/common/Section/index.js +60 -89
  86. package/dist/Editor/common/Shorthands/elements.js +54 -0
  87. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  88. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +5 -0
  89. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  90. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  91. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +10 -2
  92. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +35 -11
  93. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +13 -4
  94. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  95. package/dist/Editor/common/Uploader.js +8 -0
  96. package/dist/Editor/commonStyle.js +114 -69
  97. package/dist/Editor/helper/deserialize/index.js +1 -1
  98. package/dist/Editor/helper/index.js +2 -2
  99. package/dist/Editor/helper/theme.js +200 -2
  100. package/dist/Editor/hooks/useDrag.js +17 -11
  101. package/dist/Editor/hooks/useEditorScroll.js +1 -2
  102. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  103. package/dist/Editor/hooks/useMouseMove.js +9 -3
  104. package/dist/Editor/plugins/withEmbeds.js +1 -1
  105. package/dist/Editor/plugins/withHTML.js +20 -21
  106. package/dist/Editor/plugins/withLayout.js +1 -1
  107. package/dist/Editor/plugins/withTable.js +1 -1
  108. package/dist/Editor/theme/ThemeList.js +50 -173
  109. package/dist/Editor/theme/index.js +144 -0
  110. package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
  111. package/dist/Editor/themeSettings/buttons/index.js +283 -0
  112. package/dist/Editor/themeSettings/buttons/style.js +21 -0
  113. package/dist/Editor/themeSettings/colorTheme/index.js +292 -0
  114. package/dist/Editor/themeSettings/colorTheme/style.js +77 -0
  115. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  116. package/dist/Editor/themeSettings/fonts/index.js +220 -0
  117. package/dist/Editor/themeSettings/fonts/style.js +44 -0
  118. package/dist/Editor/themeSettings/icons.js +60 -0
  119. package/dist/Editor/themeSettings/index.js +320 -0
  120. package/dist/Editor/themeSettings/style.js +152 -0
  121. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  122. package/dist/Editor/themeSettingsAI/index.js +356 -0
  123. package/dist/Editor/themeSettingsAI/saveTheme.js +197 -0
  124. package/dist/Editor/themeSettingsAI/style.js +250 -0
  125. package/dist/Editor/utils/SlateUtilityFunctions.js +157 -49
  126. package/dist/Editor/utils/button.js +0 -14
  127. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +23 -0
  128. package/dist/Editor/utils/draftToSlate.js +3 -2
  129. package/dist/Editor/utils/font.js +40 -37
  130. package/dist/Editor/utils/helper.js +59 -19
  131. package/dist/Editor/utils/link.js +1 -1
  132. package/package.json +6 -3
@@ -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";
@@ -39,7 +41,7 @@ const TextFormat = props => {
39
41
  const pageSettingLine = pageSt?.pageProps?.lineHeight;
40
42
  const {
41
43
  fontFamilies,
42
- theme
44
+ theme: appTheme
43
45
  } = useEditorContext();
44
46
  const {
45
47
  activeBreakPoint
@@ -61,7 +63,12 @@ const TextFormat = props => {
61
63
  color: "",
62
64
  bgColor: ""
63
65
  };
64
- let lineSpacingValue = activeMark(editor, 'lineHeight');
66
+ const {
67
+ theme,
68
+ updateTheme
69
+ } = useEditorTheme();
70
+ const customized = isTextCustomized(editor);
71
+ let lineSpacingValue = activeMark(editor, "lineHeight");
65
72
  lineSpacingValue = lineSpacingValue?.[breakpoint] !== undefined ? lineSpacingValue : pageSettingLine;
66
73
  const handleColorPicker = type => e => {
67
74
  setType(type);
@@ -115,6 +122,50 @@ const TextFormat = props => {
115
122
  sx: classes.textFormatWrapper,
116
123
  className: "text-formatter-popup",
117
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, {
118
169
  item: true,
119
170
  xs: 12,
120
171
  children: [/*#__PURE__*/_jsxs(Grid, {
@@ -267,7 +318,7 @@ const TextFormat = props => {
267
318
  children: /*#__PURE__*/_jsx(Button, {
268
319
  sx: classes.defaultBtn2,
269
320
  startIcon: /*#__PURE__*/_jsx(ColorResetIcon, {
270
- stroke: theme?.palette?.type === "dark" ? "#505359" : "#A2B0B9"
321
+ stroke: appTheme?.palette?.type === "dark" ? "#505359" : "#A2B0B9"
271
322
  }),
272
323
  onClick: handleDefault({
273
324
  format: "bgColor"
@@ -355,11 +406,7 @@ const TextFormat = props => {
355
406
  xs: 12,
356
407
  className: "typo-icons",
357
408
  sx: classes.evenSpace,
358
- children: [/*#__PURE__*/_jsx(SelectTypography, {
359
- classes: classes,
360
- editor: editor,
361
- closeMainPopup: closeMainPopup || onClose
362
- }), fontStyle?.map((m, i) => {
409
+ children: [fontStyle?.map((m, i) => {
363
410
  return /*#__PURE__*/_jsx(MarkButton, {
364
411
  editor: editor,
365
412
  ...m
@@ -396,7 +443,7 @@ const TextFormat = props => {
396
443
  value: lineSpacingValue,
397
444
  onChange: handleLineSpacing,
398
445
  data: {
399
- key: 'lineHeight'
446
+ key: "lineHeight"
400
447
  }
401
448
  })
402
449
  })]
@@ -0,0 +1,438 @@
1
+ import { Button, Grid, IconButton, Popover, TextField, Tooltip, Typography } from "@mui/material";
2
+ import { useEditorContext } from "../../hooks/useMouseMove";
3
+ import FormatClearIcon from "@mui/icons-material/FormatClear";
4
+ import usePopupStyles from "../PopupTool/PopupToolStyle";
5
+ import { TextMinusIcon, TextPlusIcon } from "../../common/iconslist";
6
+ import { BREAKPOINTS_DEVICES, getBreakPointsValue, getVariableValue } from "../../helper/theme";
7
+ import useWindowResize from "../../hooks/useWindowResize";
8
+ import { toolbarGroups } from "../toolbarGroups";
9
+ import Icon from "../../common/Icon";
10
+ import { useMemo, useState } from "react";
11
+ import CommonButton from "../../common/Button";
12
+ import CustomSelect from "../../common/CustomSelect";
13
+ import ColorButtons from "../../Elements/Color Picker/ColorButtons";
14
+ import FormatColorResetIcon from "@mui/icons-material/FormatColorReset";
15
+ import ColorPickerStyles from "../../Elements/Color Picker/Styles";
16
+ import colorWheel from "../../Elements/Color Picker/colorWheel.png";
17
+ import CustomColorPicker from "../../common/CustomColorPicker";
18
+ import FontFamilyAutocomplete from "../FormatTools/FontFamilyAutocomplete";
19
+ import { googleFontList as defaultFonts } from "../../common/FontLoader/FontList";
20
+ import { jsx as _jsx } from "react/jsx-runtime";
21
+ import { jsxs as _jsxs } from "react/jsx-runtime";
22
+ import { Fragment as _Fragment } from "react/jsx-runtime";
23
+ function getFontStyleProps(settings = {}, format) {
24
+ const {
25
+ fontWeight,
26
+ fontStyle
27
+ } = settings;
28
+ let isActive;
29
+ let onClick;
30
+ switch (format) {
31
+ case "bold":
32
+ isActive = fontWeight === "bold" || fontWeight === "700";
33
+ onClick = () => {
34
+ return {
35
+ fontWeight: isActive ? "normal" : "bold"
36
+ };
37
+ };
38
+ break;
39
+ case "italic":
40
+ isActive = fontStyle === "italic";
41
+ onClick = () => {
42
+ return {
43
+ fontStyle: isActive ? "unset" : "italic"
44
+ };
45
+ };
46
+ break;
47
+
48
+ // case "underline":
49
+ // isActive = textDecoration.includes("underline");
50
+ // onClick = () => {
51
+ // let otherTextDecoration = textDecoration?.includes("line-through")
52
+ // ? "line-through"
53
+ // : "";
54
+
55
+ // otherTextDecoration += isActive ? "" : " underline";
56
+
57
+ // return { textDecoration: otherTextDecoration };
58
+ // };
59
+ // break;
60
+ // case "strikethrough":
61
+ // isActive = textDecoration.includes("line-through");
62
+ // onClick = () => {
63
+ // let otherTextDecoration = textDecoration?.includes("underline")
64
+ // ? "underline"
65
+ // : "";
66
+
67
+ // otherTextDecoration += isActive ? "" : " line-through";
68
+
69
+ // return { textDecoration: otherTextDecoration };
70
+ // };
71
+ // break;
72
+
73
+ default:
74
+ isActive = false;
75
+ onClick = () => {};
76
+ break;
77
+ }
78
+ return {
79
+ isActive,
80
+ onClick
81
+ };
82
+ }
83
+ const allTools = toolbarGroups.flat();
84
+ function ThemeTextFormat(props) {
85
+ const {
86
+ settings,
87
+ updateSettings,
88
+ onSaveTextSettings,
89
+ onClose
90
+ } = props;
91
+ const {
92
+ theme,
93
+ fontFamilies
94
+ } = useEditorContext();
95
+ const classes = usePopupStyles(theme);
96
+ const pickerStyles = ColorPickerStyles(theme);
97
+ const fontStyle = allTools.filter(f => f.type === "mark" && f.themeEnabled);
98
+ const fontWeight = allTools.find(f => f.format === "fontWeight");
99
+ const fontFamilyVal = useMemo(() => {
100
+ const {
101
+ fontFamily = ""
102
+ } = settings;
103
+ let font = fontFamily.startsWith("var") ? getVariableValue(fontFamily) : fontFamily;
104
+ return font;
105
+ }, [settings]);
106
+ const fontWeightVal = useMemo(() => {
107
+ const {
108
+ options
109
+ } = fontWeight || {};
110
+ const selected = options?.find(o => o.value === settings?.fontWeight || o.numVal === settings?.fontWeight);
111
+ return selected?.value;
112
+ }, [settings?.fontWeight]);
113
+ return /*#__PURE__*/_jsxs(Grid, {
114
+ container: true,
115
+ sx: classes.textFormatWrapper,
116
+ children: [/*#__PURE__*/_jsxs(Grid, {
117
+ item: true,
118
+ xs: 12,
119
+ children: [/*#__PURE__*/_jsxs(Grid, {
120
+ container: true,
121
+ justifyContent: "space-between",
122
+ alignItems: "center",
123
+ children: [/*#__PURE__*/_jsx(Grid, {
124
+ item: true,
125
+ children: /*#__PURE__*/_jsx(Typography, {
126
+ variant: "body1",
127
+ color: "primary",
128
+ sx: classes.typoLabel,
129
+ children: "Font Family"
130
+ })
131
+ }), /*#__PURE__*/_jsx(Grid, {
132
+ item: true,
133
+ children: /*#__PURE__*/_jsx(Button, {
134
+ sx: classes.defaultBtn,
135
+ startIcon: /*#__PURE__*/_jsx(FormatClearIcon, {}),
136
+ onClick: () => updateSettings({
137
+ fontFamily: defaultFonts[0]
138
+ }),
139
+ children: "Default"
140
+ })
141
+ })]
142
+ }), /*#__PURE__*/_jsx(Grid, {
143
+ item: true,
144
+ xs: 12,
145
+ sx: classes.textFormatField,
146
+ children: /*#__PURE__*/_jsx(FontFamilyAutocomplete, {
147
+ editor: {},
148
+ format: "fontFamily",
149
+ options: fontFamilies?.options,
150
+ width: "100%",
151
+ onChange: updateSettings,
152
+ val: fontFamilyVal || defaultFonts[0],
153
+ webFont: true
154
+ })
155
+ })]
156
+ }), /*#__PURE__*/_jsxs(Grid, {
157
+ container: true,
158
+ spacing: 2,
159
+ children: [/*#__PURE__*/_jsxs(Grid, {
160
+ item: true,
161
+ xs: 6,
162
+ children: [/*#__PURE__*/_jsx(Typography, {
163
+ variant: "body1",
164
+ color: "primary",
165
+ sx: classes.typoLabel,
166
+ children: "Font Weight"
167
+ }), /*#__PURE__*/_jsx(Grid, {
168
+ item: true,
169
+ xs: 12,
170
+ sx: classes.textFormatField,
171
+ children: /*#__PURE__*/_jsx(CustomSelect, {
172
+ options: fontWeight?.options || [],
173
+ classes: classes,
174
+ onChange: e => {
175
+ updateSettings({
176
+ fontWeight: e.target.value
177
+ });
178
+ },
179
+ value: fontWeightVal
180
+ })
181
+ })]
182
+ }), /*#__PURE__*/_jsxs(Grid, {
183
+ item: true,
184
+ xs: 6,
185
+ children: [/*#__PURE__*/_jsx(Typography, {
186
+ variant: "body1",
187
+ color: "primary",
188
+ sx: classes.typoLabel,
189
+ children: "Font Size"
190
+ }), /*#__PURE__*/_jsx(Grid, {
191
+ item: true,
192
+ xs: 12,
193
+ sx: classes.textFormatCG,
194
+ children: /*#__PURE__*/_jsx(TextSize, {
195
+ classes: classes,
196
+ value: settings?.fontSize || 16,
197
+ onChange: fontSize => updateSettings({
198
+ fontSize
199
+ }),
200
+ fullWidth: true
201
+ })
202
+ })]
203
+ })]
204
+ }), /*#__PURE__*/_jsxs(Grid, {
205
+ item: true,
206
+ xs: 12,
207
+ sx: classes.textFormatField,
208
+ style: {
209
+ marginTop: "14px"
210
+ },
211
+ children: [/*#__PURE__*/_jsxs(Grid, {
212
+ container: true,
213
+ justifyContent: "space-between",
214
+ alignItems: "center",
215
+ children: [/*#__PURE__*/_jsx(Grid, {
216
+ item: true,
217
+ children: /*#__PURE__*/_jsx(Typography, {
218
+ variant: "body1",
219
+ color: "primary",
220
+ sx: classes.typoLabel,
221
+ children: "Text Color"
222
+ })
223
+ }), /*#__PURE__*/_jsx(Grid, {
224
+ item: true,
225
+ children: /*#__PURE__*/_jsx(Button, {
226
+ sx: classes.defaultBtn,
227
+ startIcon: /*#__PURE__*/_jsx(FormatColorResetIcon, {}),
228
+ onClick: () => updateSettings({
229
+ color: "#ddd"
230
+ }),
231
+ children: "Default"
232
+ })
233
+ })]
234
+ }), /*#__PURE__*/_jsx(Grid, {
235
+ sx: classes.textFormatColorWrpr,
236
+ children: /*#__PURE__*/_jsx(ColorPicker, {
237
+ classes: classes,
238
+ pickerStyles: pickerStyles,
239
+ onChange: color => updateSettings({
240
+ color
241
+ }),
242
+ color: settings?.color,
243
+ disableEditTheme: true
244
+ })
245
+ })]
246
+ }), /*#__PURE__*/_jsxs(Grid, {
247
+ item: true,
248
+ xs: 12,
249
+ children: [/*#__PURE__*/_jsx(Typography, {
250
+ variant: "body1",
251
+ color: "primary",
252
+ sx: classes.typoLabel,
253
+ children: "Typography"
254
+ }), /*#__PURE__*/_jsx(Grid, {
255
+ item: true,
256
+ xs: 12,
257
+ className: "typo-icons",
258
+ sx: classes.evenSpace,
259
+ children: fontStyle?.map((m, i) => {
260
+ const {
261
+ isActive,
262
+ onClick
263
+ } = getFontStyleProps(settings, m.format) || {};
264
+ return /*#__PURE__*/_jsx(CommonButton, {
265
+ active: isActive,
266
+ onClick: () => {
267
+ const style = onClick();
268
+ updateSettings(style);
269
+ },
270
+ children: /*#__PURE__*/_jsx(Icon, {
271
+ icon: m.format
272
+ })
273
+ }, i);
274
+ })
275
+ })]
276
+ }), /*#__PURE__*/_jsx(Grid, {
277
+ item: true,
278
+ xs: 12,
279
+ sx: {
280
+ mt: 2
281
+ },
282
+ children: /*#__PURE__*/_jsxs("div", {
283
+ style: {
284
+ display: "flex",
285
+ justifyContent: "end",
286
+ margin: "8px",
287
+ position: "absolute",
288
+ bottom: 0,
289
+ right: 0
290
+ },
291
+ children: [/*#__PURE__*/_jsx(Button, {
292
+ onClick: onClose,
293
+ className: "secondaryBtn",
294
+ children: "Cancel"
295
+ }), /*#__PURE__*/_jsx(Button, {
296
+ onClick: onSaveTextSettings,
297
+ className: "primaryBtn",
298
+ children: "Save"
299
+ })]
300
+ })
301
+ })]
302
+ });
303
+ }
304
+ export default ThemeTextFormat;
305
+ function TextSize(props) {
306
+ const {
307
+ classes,
308
+ value: val,
309
+ onChange,
310
+ fullWidth
311
+ } = props;
312
+ const [size] = useWindowResize();
313
+ const value = getBreakPointsValue(val, size?.device);
314
+ const updateMarkData = newVal => {
315
+ let upData = {
316
+ ...getBreakPointsValue(val),
317
+ [size?.device]: `${newVal}px`
318
+ };
319
+
320
+ // if desktop update to all other devices
321
+ // to avoid default normal size
322
+ if (size?.device === "lg") {
323
+ upData = BREAKPOINTS_DEVICES.reduce((a, b) => {
324
+ a[b] = `${newVal}px`;
325
+ return a;
326
+ }, {});
327
+ }
328
+ onChange(upData);
329
+ };
330
+ const onChangeSize = e => {
331
+ let inc = parseInt(e.target.value) || 8;
332
+ inc = inc > 200 ? 200 : inc;
333
+ updateMarkData(inc || 8);
334
+ };
335
+ const getSizeVal = () => {
336
+ try {
337
+ return parseInt(value);
338
+ } catch (err) {
339
+ return "";
340
+ }
341
+ };
342
+ const combinedOldVal = getSizeVal();
343
+ const onIncreaseSize = () => {
344
+ let inc = (combinedOldVal || 0) + 1;
345
+ inc = inc > 200 ? 200 : inc;
346
+ updateMarkData(inc);
347
+ };
348
+ const onDecreaseSize = () => {
349
+ const newVal = combinedOldVal - 1 < 0 ? 0 : combinedOldVal - 1;
350
+ updateMarkData(newVal);
351
+ };
352
+ return /*#__PURE__*/_jsx(TextField, {
353
+ sx: classes?.textSize,
354
+ value: combinedOldVal,
355
+ onChange: onChangeSize,
356
+ size: "small",
357
+ inputProps: {
358
+ style: {
359
+ width: fullWidth ? "100%" : "30px",
360
+ textAlign: "center",
361
+ height: "19px",
362
+ fontSize: "14px"
363
+ }
364
+ },
365
+ fullWidth: fullWidth,
366
+ InputProps: {
367
+ style: {
368
+ borderRadius: "8px"
369
+ },
370
+ endAdornment: /*#__PURE__*/_jsxs("div", {
371
+ className: "textFontArrows",
372
+ children: [/*#__PURE__*/_jsx(IconButton, {
373
+ onClick: onIncreaseSize,
374
+ size: "small",
375
+ children: /*#__PURE__*/_jsx(TextPlusIcon, {})
376
+ }), /*#__PURE__*/_jsx(IconButton, {
377
+ onClick: onDecreaseSize,
378
+ size: "small",
379
+ children: /*#__PURE__*/_jsx(TextMinusIcon, {})
380
+ })]
381
+ })
382
+ }
383
+ });
384
+ }
385
+ function ColorPicker(props) {
386
+ const {
387
+ classes,
388
+ pickerStyles,
389
+ onChange,
390
+ color,
391
+ disableEditTheme
392
+ } = props;
393
+ const [anchorEl, setAnchorEl] = useState(null);
394
+ const open = Boolean(anchorEl);
395
+ const handleClose = () => {
396
+ setAnchorEl(null);
397
+ };
398
+ return /*#__PURE__*/_jsxs(_Fragment, {
399
+ children: [/*#__PURE__*/_jsx(Tooltip, {
400
+ title: "",
401
+ arrow: true,
402
+ children: /*#__PURE__*/_jsx(IconButton, {
403
+ sx: pickerStyles.colorPickerIcon,
404
+ onClick: e => {
405
+ setAnchorEl(e.currentTarget);
406
+ },
407
+ children: /*#__PURE__*/_jsx("img", {
408
+ src: colorWheel,
409
+ alt: "color wheel"
410
+ })
411
+ })
412
+ }), /*#__PURE__*/_jsx(ColorButtons, {
413
+ classes: pickerStyles,
414
+ onSelect: onChange,
415
+ activeColor: color,
416
+ disableEditTheme: disableEditTheme
417
+ }), /*#__PURE__*/_jsx(Popover, {
418
+ open: open,
419
+ anchorEl: anchorEl,
420
+ onClose: handleClose,
421
+ anchorOrigin: {
422
+ vertical: "top",
423
+ horizontal: "center"
424
+ },
425
+ transformOrigin: {
426
+ vertical: "bottom",
427
+ horizontal: "top"
428
+ },
429
+ sx: classes.colorPickerPopup,
430
+ children: /*#__PURE__*/_jsx(CustomColorPicker, {
431
+ gradient: true,
432
+ onChange: onChange,
433
+ color: color,
434
+ disableEditTheme: disableEditTheme
435
+ })
436
+ })]
437
+ });
438
+ }