@flozy/editor 3.9.0 → 3.9.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 (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
+ }