@flozy/editor 3.9.0 → 3.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. package/dist/Editor/CommonEditor.js +177 -109
  2. package/dist/Editor/Editor.css +8 -12
  3. package/dist/Editor/Elements/AI/AIInput.js +17 -18
  4. package/dist/Editor/Elements/AI/CustomSelect.js +19 -12
  5. package/dist/Editor/Elements/AI/PopoverAIInput.js +23 -28
  6. package/dist/Editor/Elements/AI/Styles.js +2 -1
  7. package/dist/Editor/Elements/AI/VoiceToText/AudioWave.js +73 -0
  8. package/dist/Editor/Elements/AI/VoiceToText/index.js +177 -0
  9. package/dist/Editor/Elements/AI/VoiceToText/style.js +40 -0
  10. package/dist/Editor/Elements/Accordion/AccordionSummary.js +4 -15
  11. package/dist/Editor/Elements/AppHeader/AppHeader.js +26 -4
  12. package/dist/Editor/Elements/Button/EditorButton.js +28 -16
  13. package/dist/Editor/Elements/Color Picker/ColorButtons.js +60 -17
  14. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  15. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  16. package/dist/Editor/Elements/Color Picker/Styles.js +2 -1
  17. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +12 -3
  18. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +2 -1
  19. package/dist/Editor/Elements/Grid/Grid.js +27 -3
  20. package/dist/Editor/Elements/Grid/GridItem.js +3 -1
  21. package/dist/Editor/Elements/Link/Link.js +6 -1
  22. package/dist/Editor/Elements/Link/LinkButton.js +4 -2
  23. package/dist/Editor/Elements/Link/LinkPopup.js +10 -3
  24. package/dist/Editor/Elements/Link/LinkPopupStyles.js +28 -0
  25. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +3 -3
  26. package/dist/Editor/Elements/Redo/RedoButton.js +14 -0
  27. package/dist/Editor/Elements/Signature/SignaturePopup.js +14 -3
  28. package/dist/Editor/Elements/Table/Styles.js +23 -1
  29. package/dist/Editor/Elements/Table/Table.js +2 -1
  30. package/dist/Editor/Elements/Table/TableCell.js +69 -7
  31. package/dist/Editor/Elements/TableContextMenu/TableContextMenu.js +1 -0
  32. package/dist/Editor/Elements/Undo/UndoButton.js +14 -0
  33. package/dist/Editor/MiniEditor.js +3 -1
  34. package/dist/Editor/Styles/EditorStyles.js +1 -1
  35. package/dist/Editor/Toolbar/Basic/index.js +4 -2
  36. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +26 -2
  37. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  38. package/dist/Editor/Toolbar/FormatTools/TextSize.js +29 -18
  39. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +4 -2
  40. package/dist/Editor/Toolbar/Mini/Options/Options.js +10 -0
  41. package/dist/Editor/Toolbar/Mini/Styles.js +7 -0
  42. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +4 -11
  43. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +213 -86
  44. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +2 -1
  45. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +22 -16
  46. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +52 -7
  47. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +438 -0
  48. package/dist/Editor/Toolbar/PopupTool/index.js +7 -17
  49. package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
  50. package/dist/Editor/assets/svg/AIIcons.js +153 -1
  51. package/dist/Editor/assets/svg/AddTemplateIcon.js +13 -10
  52. package/dist/Editor/assets/svg/RedoIcon.js +27 -0
  53. package/dist/Editor/assets/svg/SettingsIcon.js +28 -0
  54. package/dist/Editor/assets/svg/TextIcon.js +8 -5
  55. package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
  56. package/dist/Editor/assets/svg/UndoIcon.js +27 -0
  57. package/dist/Editor/common/ColorPickerButton.js +25 -9
  58. package/dist/Editor/common/CustomColorPicker/index.js +106 -0
  59. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  60. package/dist/Editor/common/CustomDialog/index.js +94 -0
  61. package/dist/Editor/common/CustomDialog/style.js +67 -0
  62. package/dist/Editor/common/CustomSelect.js +33 -0
  63. package/dist/Editor/common/DnD/DragHandleButton.js +56 -47
  64. package/dist/Editor/common/Icon.js +43 -3
  65. package/dist/Editor/common/LinkSettings/NavComponents.js +5 -2
  66. package/dist/Editor/common/LinkSettings/index.js +4 -2
  67. package/dist/Editor/common/LinkSettings/navOptions.js +7 -2
  68. package/dist/Editor/common/LinkSettings/style.js +11 -8
  69. package/dist/Editor/common/Section/index.js +57 -7
  70. package/dist/Editor/common/Section/styles.js +11 -0
  71. package/dist/Editor/common/Shorthands/elements.js +54 -0
  72. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  73. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +33 -29
  74. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +31 -25
  75. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +1 -1
  76. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +31 -7
  77. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +13 -4
  78. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +14 -4
  79. package/dist/Editor/common/StyleBuilder/index.js +1 -1
  80. package/dist/Editor/common/iconslist.js +0 -31
  81. package/dist/Editor/helper/theme.js +189 -4
  82. package/dist/Editor/hooks/useEditorTheme.js +139 -0
  83. package/dist/Editor/hooks/useMouseMove.js +4 -1
  84. package/dist/Editor/hooks/useWindowMessage.js +10 -7
  85. package/dist/Editor/plugins/withEmbeds.js +1 -1
  86. package/dist/Editor/plugins/withHTML.js +1 -1
  87. package/dist/Editor/plugins/withTable.js +1 -1
  88. package/dist/Editor/theme/ThemeList.js +50 -173
  89. package/dist/Editor/theme/index.js +144 -0
  90. package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
  91. package/dist/Editor/themeSettings/buttons/index.js +290 -0
  92. package/dist/Editor/themeSettings/buttons/style.js +21 -0
  93. package/dist/Editor/themeSettings/colorTheme/index.js +290 -0
  94. package/dist/Editor/themeSettings/colorTheme/style.js +77 -0
  95. package/dist/Editor/themeSettings/fonts/PreviewElement.js +123 -0
  96. package/dist/Editor/themeSettings/fonts/index.js +213 -0
  97. package/dist/Editor/themeSettings/fonts/style.js +44 -0
  98. package/dist/Editor/themeSettings/icons.js +60 -0
  99. package/dist/Editor/themeSettings/index.js +320 -0
  100. package/dist/Editor/themeSettings/style.js +152 -0
  101. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  102. package/dist/Editor/themeSettingsAI/index.js +356 -0
  103. package/dist/Editor/themeSettingsAI/saveTheme.js +190 -0
  104. package/dist/Editor/themeSettingsAI/style.js +247 -0
  105. package/dist/Editor/utils/SlateUtilityFunctions.js +161 -25
  106. package/dist/Editor/utils/button.js +1 -17
  107. package/dist/Editor/utils/events.js +54 -2
  108. package/dist/Editor/utils/font.js +40 -37
  109. package/dist/Editor/utils/helper.js +31 -2
  110. package/dist/Editor/utils/table.js +51 -43
  111. package/package.json +4 -3
@@ -3,9 +3,8 @@ const usePopupStyle = theme => ({
3
3
  boxShadow: "0px 4px 10px 0px rgba(0, 0, 0, 0.16)",
4
4
  zIndex: 1300,
5
5
  marginBottom: "12px !important",
6
- border: "1px solid #E0E0E0",
7
- borderRadius: "10px",
8
- maxWidth: "100%",
6
+ borderRadius: "6px",
7
+ maxWidth: "96%",
9
8
  "&.fullscreen": {
10
9
  marginBottom: "0px !important",
11
10
  "& .papper-wrpr": {
@@ -19,7 +18,7 @@ const usePopupStyle = theme => ({
19
18
  backgroundColor: theme?.palette?.editor?.background
20
19
  },
21
20
  "&.textSettings": {
22
- '@media only screen and (max-width: 600px)': {
21
+ "@media only screen and (max-width: 600px)": {
23
22
  margin: "4px !important",
24
23
  marginBottom: "54px !important"
25
24
  }
@@ -78,7 +77,7 @@ const usePopupStyle = theme => ({
78
77
  paddingTop: "4px"
79
78
  },
80
79
  "@media only screen and (max-width: 599px)": {
81
- width: '330px'
80
+ width: "330px"
82
81
  }
83
82
  },
84
83
  "&.templates": {
@@ -89,7 +88,7 @@ const usePopupStyle = theme => ({
89
88
  maxHeight: "fit-content"
90
89
  },
91
90
  "@media only screen and (max-width: 599px)": {
92
- width: '330px'
91
+ width: "330px"
93
92
  }
94
93
  },
95
94
  "& .headerContainer": {},
@@ -144,7 +143,7 @@ const usePopupStyle = theme => ({
144
143
  }
145
144
  },
146
145
  "@media only screen and (max-width: 599px)": {
147
- width: '330px'
146
+ width: "330px"
148
147
  }
149
148
  },
150
149
  textFormatLabel: {
@@ -155,13 +154,13 @@ const usePopupStyle = theme => ({
155
154
  lineHeight: "25px",
156
155
  marginTop: "12px",
157
156
  marginBottom: "8px",
158
- '& .searchContainer': {
157
+ "& .searchContainer": {
159
158
  position: "absolute",
160
159
  right: 0,
161
160
  zIndex: 3
162
161
  },
163
- '& .MuiFormControl-root.MuiTextField-root input': {
164
- padding: '8px 35px 6px 12px'
162
+ "& .MuiFormControl-root.MuiTextField-root input": {
163
+ padding: "8px 35px 6px 12px"
165
164
  }
166
165
  },
167
166
  textFormatField: {
@@ -205,7 +204,8 @@ const usePopupStyle = theme => ({
205
204
  fontSize: "14px",
206
205
  marginBottom: "5px",
207
206
  paddingLeft: "5px",
208
- fontWeight: 500
207
+ fontWeight: 500,
208
+ color: "#000000"
209
209
  },
210
210
  templateCard: {
211
211
  borderRadius: "10px",
@@ -327,8 +327,13 @@ const usePopupStyle = theme => ({
327
327
  }
328
328
  },
329
329
  defaultBtn: {
330
- color: "#0F172A",
331
- textTransform: "none"
330
+ color: "#2563EB !important",
331
+ textTransform: "none",
332
+ textDecoration: "underline",
333
+ "&.Mui-disabled": {
334
+ color: "#A0AEC0 !important",
335
+ textDecoration: "none"
336
+ }
332
337
  },
333
338
  templateCardBtnGrp: {
334
339
  display: "none",
@@ -413,7 +418,8 @@ const usePopupStyle = theme => ({
413
418
  colorPopper: {
414
419
  "& .MuiPaper-root": {
415
420
  backgroundColor: theme?.palette?.editor?.background,
416
- '@media only screen and (max-width: 600px)': {
421
+ padding: "4px 14px",
422
+ "@media only screen and (max-width: 600px)": {
417
423
  marginTop: "-40px"
418
424
  }
419
425
  }
@@ -524,9 +530,9 @@ const usePopupStyle = theme => ({
524
530
  },
525
531
  customSelectPopoverWrapper: {
526
532
  "& .MuiPopover-paper": {
527
- maxHeight: '140px',
533
+ maxHeight: "140px",
528
534
  background: theme?.palette?.editor?.background,
529
- '@media only screen and (max-width: 600px)': {
535
+ "@media only screen and (max-width: 600px)": {
530
536
  marginTop: "-40px"
531
537
  }
532
538
  },
@@ -14,6 +14,9 @@ import { getPageSettings, updatePageSettings } from "../../utils/pageSettings";
14
14
  import { AllColors } from "../../Elements/Color Picker/ColorButtons";
15
15
  import { fontFamilyMap } from "../../utils/font";
16
16
  import { getBorderColor } from "../../utils/helper";
17
+ import SelectTypography from "./MiniTextFormat/SelectTypography";
18
+ import { isTextCustomized, saveToTheme } from "../../helper/theme";
19
+ import { useEditorTheme } from "../../hooks/useEditorTheme";
17
20
  import { jsx as _jsx } from "react/jsx-runtime";
18
21
  import { jsxs as _jsxs } from "react/jsx-runtime";
19
22
  const allTools = toolbarGroups.flat();
@@ -34,7 +37,6 @@ const TextFormat = props => {
34
37
  const fontAlign = allTools.filter(f => f.format?.indexOf("align") >= 0);
35
38
  const link = allTools.find(f => f.format?.indexOf("link") >= 0);
36
39
  const lists = allTools.filter(f => f.group?.indexOf("list") >= 0);
37
- const typo = allTools.filter(f => f.group?.indexOf("typography") >= 0);
38
40
  const {
39
41
  pageProps
40
42
  } = getPageSettings(editor)?.element || {};
@@ -52,6 +54,11 @@ const TextFormat = props => {
52
54
  color: "",
53
55
  bgColor: ""
54
56
  };
57
+ const {
58
+ theme,
59
+ updateTheme
60
+ } = useEditorTheme();
61
+ const customized = isTextCustomized(editor);
55
62
  const handlePageWidth = width => () => {
56
63
  updatePageSettings(editor, {
57
64
  ...(pageProps || {}),
@@ -101,6 +108,49 @@ const TextFormat = props => {
101
108
  container: true,
102
109
  sx: classes.textFormatWrapper,
103
110
  children: [/*#__PURE__*/_jsxs(Grid, {
111
+ item: true,
112
+ xs: 12,
113
+ children: [/*#__PURE__*/_jsxs(Grid, {
114
+ container: true,
115
+ justifyContent: "space-between",
116
+ alignItems: "center",
117
+ children: [/*#__PURE__*/_jsx(Grid, {
118
+ item: true,
119
+ children: /*#__PURE__*/_jsx(Typography, {
120
+ variant: "body1",
121
+ color: "primary",
122
+ sx: classes.typoLabel,
123
+ children: "Theme Style"
124
+ })
125
+ }), /*#__PURE__*/_jsx(Grid, {
126
+ item: true,
127
+ children: theme?.id ? /*#__PURE__*/_jsx(Button, {
128
+ sx: classes.defaultBtn,
129
+ onClick: () => {
130
+ const {
131
+ field,
132
+ theme
133
+ } = saveToTheme(editor) || {};
134
+ updateTheme(theme, {
135
+ action: "ELEMENT_PROPS_CHANGE",
136
+ fieldName: field
137
+ });
138
+ },
139
+ disabled: !customized,
140
+ children: "Save to theme"
141
+ }) : null
142
+ })]
143
+ }), /*#__PURE__*/_jsx(Grid, {
144
+ item: true,
145
+ xs: 12,
146
+ sx: classes.textFormatField,
147
+ children: /*#__PURE__*/_jsx(SelectTypography, {
148
+ editor: editor,
149
+ classes: classes,
150
+ closeMainPopup: () => {}
151
+ })
152
+ })]
153
+ }), /*#__PURE__*/_jsxs(Grid, {
104
154
  item: true,
105
155
  xs: 12,
106
156
  children: [/*#__PURE__*/_jsxs(Grid, {
@@ -319,12 +369,7 @@ const TextFormat = props => {
319
369
  xs: 12,
320
370
  className: "typo-icons",
321
371
  sx: classes.evenSpace,
322
- children: [typo?.map((m, i) => {
323
- return /*#__PURE__*/_jsx(BlockButton, {
324
- editor: editor,
325
- ...m
326
- }, `pptool_mark_${i}_${m.id}`);
327
- }), fontStyle?.map((m, i) => {
372
+ children: [fontStyle?.map((m, i) => {
328
373
  return /*#__PURE__*/_jsx(MarkButton, {
329
374
  editor: editor,
330
375
  ...m
@@ -0,0 +1,438 @@
1
+ import { Button, Grid, IconButton, Popover, TextField, Tooltip, Typography } from "@mui/material";
2
+ import { useEditorContext } from "../../hooks/useMouseMove";
3
+ import { fontFamilyMap, fontOptions } from "../../utils/font";
4
+ import FormatClearIcon from "@mui/icons-material/FormatClear";
5
+ import usePopupStyles from "../PopupTool/PopupToolStyle";
6
+ import { TextMinusIcon, TextPlusIcon } from "../../common/iconslist";
7
+ import { BREAKPOINTS_DEVICES, getBreakPointsValue, getVariableValue } from "../../helper/theme";
8
+ import useWindowResize from "../../hooks/useWindowResize";
9
+ import { toolbarGroups } from "../toolbarGroups";
10
+ import Icon from "../../common/Icon";
11
+ import { useMemo, useState } from "react";
12
+ import CommonButton from "../../common/Button";
13
+ import CustomSelect from "../../common/CustomSelect";
14
+ import ColorButtons from "../../Elements/Color Picker/ColorButtons";
15
+ import FormatColorResetIcon from "@mui/icons-material/FormatColorReset";
16
+ import ColorPickerStyles from "../../Elements/Color Picker/Styles";
17
+ import colorWheel from "../../Elements/Color Picker/colorWheel.png";
18
+ import CustomColorPicker from "../../common/CustomColorPicker";
19
+ import { jsx as _jsx } from "react/jsx-runtime";
20
+ import { jsxs as _jsxs } from "react/jsx-runtime";
21
+ import { Fragment as _Fragment } from "react/jsx-runtime";
22
+ function getFontStyleProps(settings = {}, format) {
23
+ const {
24
+ fontWeight,
25
+ fontStyle
26
+ } = settings;
27
+ let isActive;
28
+ let onClick;
29
+ switch (format) {
30
+ case "bold":
31
+ isActive = fontWeight === "bold" || fontWeight === "700";
32
+ onClick = () => {
33
+ return {
34
+ fontWeight: isActive ? "normal" : "bold"
35
+ };
36
+ };
37
+ break;
38
+ case "italic":
39
+ isActive = fontStyle === "italic";
40
+ onClick = () => {
41
+ return {
42
+ fontStyle: isActive ? "unset" : "italic"
43
+ };
44
+ };
45
+ break;
46
+
47
+ // case "underline":
48
+ // isActive = textDecoration.includes("underline");
49
+ // onClick = () => {
50
+ // let otherTextDecoration = textDecoration?.includes("line-through")
51
+ // ? "line-through"
52
+ // : "";
53
+
54
+ // otherTextDecoration += isActive ? "" : " underline";
55
+
56
+ // return { textDecoration: otherTextDecoration };
57
+ // };
58
+ // break;
59
+ // case "strikethrough":
60
+ // isActive = textDecoration.includes("line-through");
61
+ // onClick = () => {
62
+ // let otherTextDecoration = textDecoration?.includes("underline")
63
+ // ? "underline"
64
+ // : "";
65
+
66
+ // otherTextDecoration += isActive ? "" : " line-through";
67
+
68
+ // return { textDecoration: otherTextDecoration };
69
+ // };
70
+ // break;
71
+
72
+ default:
73
+ isActive = false;
74
+ onClick = () => {};
75
+ break;
76
+ }
77
+ return {
78
+ isActive,
79
+ onClick
80
+ };
81
+ }
82
+ const allTools = toolbarGroups.flat();
83
+ function ThemeTextFormat(props) {
84
+ const {
85
+ settings,
86
+ updateSettings,
87
+ onSaveTextSettings,
88
+ onClose
89
+ } = props;
90
+ const {
91
+ theme
92
+ } = useEditorContext();
93
+ const classes = usePopupStyles(theme);
94
+ const pickerStyles = ColorPickerStyles(theme);
95
+ const fontStyle = allTools.filter(f => f.type === "mark" && f.themeEnabled);
96
+ const fontWeight = allTools.find(f => f.format === "fontWeight");
97
+ const fontFamilyVal = useMemo(() => {
98
+ const {
99
+ fontFamily = ""
100
+ } = settings;
101
+ let font = fontFamily.startsWith("var") ? getVariableValue(fontFamily) : fontFamily;
102
+ return fontOptions?.find(f => f.text === font)?.value;
103
+ }, [settings, fontOptions]);
104
+ const fontWeightVal = useMemo(() => {
105
+ const {
106
+ options
107
+ } = fontWeight || {};
108
+ const selected = options?.find(o => o.value === settings?.fontWeight || o.numVal === settings?.fontWeight);
109
+ return selected?.value;
110
+ }, [settings?.fontWeight]);
111
+ return /*#__PURE__*/_jsxs(Grid, {
112
+ container: true,
113
+ sx: classes.textFormatWrapper,
114
+ children: [/*#__PURE__*/_jsxs(Grid, {
115
+ item: true,
116
+ xs: 12,
117
+ children: [/*#__PURE__*/_jsxs(Grid, {
118
+ container: true,
119
+ justifyContent: "space-between",
120
+ alignItems: "center",
121
+ children: [/*#__PURE__*/_jsx(Grid, {
122
+ item: true,
123
+ children: /*#__PURE__*/_jsx(Typography, {
124
+ variant: "body1",
125
+ color: "primary",
126
+ sx: classes.typoLabel,
127
+ children: "Font Family"
128
+ })
129
+ }), /*#__PURE__*/_jsx(Grid, {
130
+ item: true,
131
+ children: /*#__PURE__*/_jsx(Button, {
132
+ sx: classes.defaultBtn,
133
+ startIcon: /*#__PURE__*/_jsx(FormatClearIcon, {}),
134
+ onClick: () => updateSettings({
135
+ fontFamily: Object.values(fontFamilyMap)[0]
136
+ }),
137
+ children: "Default"
138
+ })
139
+ })]
140
+ }), /*#__PURE__*/_jsx(Grid, {
141
+ item: true,
142
+ xs: 12,
143
+ sx: classes.textFormatField,
144
+ children: /*#__PURE__*/_jsx(CustomSelect, {
145
+ options: fontOptions,
146
+ classes: classes,
147
+ onChange: e => {
148
+ const fontFamily = fontOptions.find(f => f.value === e.target.value)?.text;
149
+ updateSettings({
150
+ fontFamily
151
+ });
152
+ },
153
+ value: fontFamilyVal || fontOptions[0].value
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
+ }