@flozy/editor 5.9.8 → 6.0.0

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 (108) hide show
  1. package/dist/Editor/ChatEditor.js +7 -7
  2. package/dist/Editor/CommonEditor.js +21 -79
  3. package/dist/Editor/DialogWrapper.js +25 -31
  4. package/dist/Editor/Editor.css +15 -29
  5. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  6. package/dist/Editor/Elements/Button/EditorButton.js +9 -25
  7. package/dist/Editor/Elements/Color Picker/ColorButtons.js +12 -57
  8. package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
  9. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  10. package/dist/Editor/Elements/Color Picker/Styles.js +1 -1
  11. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +1 -1
  12. package/dist/Editor/Elements/Embed/Image.js +2 -2
  13. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +14 -0
  14. package/dist/Editor/Elements/FreeGrid/styles.js +0 -3
  15. package/dist/Editor/Elements/Grid/GridItem.js +3 -2
  16. package/dist/Editor/Elements/Link/Link.js +43 -70
  17. package/dist/Editor/Elements/SimpleText/index.js +12 -7
  18. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  19. package/dist/Editor/Elements/Title/title.js +1 -13
  20. package/dist/Editor/Elements/Variables/Style.js +2 -28
  21. package/dist/Editor/Elements/Variables/VariableButton.js +4 -17
  22. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +3 -27
  23. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +3 -4
  24. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  25. package/dist/Editor/Toolbar/FormatTools/TextSize.js +15 -7
  26. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +8 -9
  27. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +13 -6
  28. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +90 -210
  29. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +1 -2
  30. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +12 -16
  31. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +9 -56
  32. package/dist/Editor/Toolbar/PopupTool/index.js +37 -29
  33. package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
  34. package/dist/Editor/common/ColorPickerButton.js +9 -32
  35. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  36. package/dist/Editor/common/DnD/Draggable.js +1 -0
  37. package/dist/Editor/common/FontLoader/FontList.js +11 -3
  38. package/dist/Editor/common/FontLoader/FontLoader.js +42 -74
  39. package/dist/Editor/common/Icon.js +0 -28
  40. package/dist/Editor/common/ImageSelector/Styles.js +9 -3
  41. package/dist/Editor/common/MentionsPopup/Styles.js +9 -3
  42. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +1 -2
  43. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +2 -3
  44. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +2 -3
  45. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +2 -3
  46. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +2 -3
  47. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +2 -4
  48. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +2 -3
  49. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
  50. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +2 -3
  51. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +2 -8
  52. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +3 -6
  53. package/dist/Editor/common/RnD/Utils/gridDropItem.js +4 -5
  54. package/dist/Editor/common/RnD/Utils/index.js +0 -40
  55. package/dist/Editor/common/RnD/index.js +3 -23
  56. package/dist/Editor/common/Section/index.js +89 -60
  57. package/dist/Editor/common/Shorthands/elements.js +0 -54
  58. package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
  59. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +0 -5
  60. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +2 -12
  61. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -15
  62. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +2 -10
  63. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +11 -35
  64. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +4 -13
  65. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +7 -15
  66. package/dist/Editor/common/Uploader.js +0 -8
  67. package/dist/Editor/commonStyle.js +65 -55
  68. package/dist/Editor/helper/index.js +2 -2
  69. package/dist/Editor/helper/theme.js +2 -200
  70. package/dist/Editor/hooks/useEditorScroll.js +1 -1
  71. package/dist/Editor/hooks/useMouseMove.js +3 -9
  72. package/dist/Editor/plugins/withEmbeds.js +1 -1
  73. package/dist/Editor/plugins/withHTML.js +1 -1
  74. package/dist/Editor/plugins/withLayout.js +1 -1
  75. package/dist/Editor/plugins/withTable.js +1 -1
  76. package/dist/Editor/theme/ThemeList.js +173 -50
  77. package/dist/Editor/utils/SlateUtilityFunctions.js +38 -156
  78. package/dist/Editor/utils/button.js +14 -0
  79. package/dist/Editor/utils/draftToSlate.js +2 -3
  80. package/dist/Editor/utils/font.js +37 -40
  81. package/dist/Editor/utils/helper.js +20 -48
  82. package/dist/Editor/utils/link.js +1 -1
  83. package/package.json +2 -2
  84. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -438
  85. package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
  86. package/dist/Editor/common/CustomColorPicker/index.js +0 -106
  87. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  88. package/dist/Editor/common/CustomDialog/index.js +0 -94
  89. package/dist/Editor/common/CustomDialog/style.js +0 -67
  90. package/dist/Editor/common/CustomSelect.js +0 -33
  91. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
  92. package/dist/Editor/hooks/useEditorTheme.js +0 -153
  93. package/dist/Editor/theme/index.js +0 -144
  94. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  95. package/dist/Editor/themeSettings/buttons/index.js +0 -283
  96. package/dist/Editor/themeSettings/buttons/style.js +0 -21
  97. package/dist/Editor/themeSettings/colorTheme/index.js +0 -292
  98. package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
  99. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
  100. package/dist/Editor/themeSettings/fonts/index.js +0 -220
  101. package/dist/Editor/themeSettings/fonts/style.js +0 -44
  102. package/dist/Editor/themeSettings/icons.js +0 -60
  103. package/dist/Editor/themeSettings/index.js +0 -320
  104. package/dist/Editor/themeSettings/style.js +0 -152
  105. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  106. package/dist/Editor/themeSettingsAI/index.js +0 -356
  107. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -197
  108. package/dist/Editor/themeSettingsAI/style.js +0 -250
@@ -1,292 +0,0 @@
1
- import React from "react";
2
- import { Accordion, AccordionDetails, AccordionSummary, Divider, FormControlLabel, Grid, IconButton, Radio, RadioGroup, ToggleButton, ToggleButtonGroup, Typography, styled } from "@mui/material";
3
- import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
4
-
5
- // Style
6
- import Style from "./style";
7
-
8
- // icons
9
- import { ChevronLeft } from "@mui/icons-material";
10
- import { EditIcon } from "../icons";
11
- import ColorPickerButton from "../../common/ColorPickerButton";
12
- import { getContrastColor } from "../../utils/helper";
13
- import { jsx as _jsx } from "react/jsx-runtime";
14
- import { jsxs as _jsxs } from "react/jsx-runtime";
15
- const ColorTheme = props => {
16
- const {
17
- className,
18
- colors,
19
- onColorChange,
20
- openDefault
21
- } = props;
22
- const {
23
- primaryColors,
24
- otherColors = []
25
- } = colors || {};
26
-
27
- // State
28
- const [customizeTheme, setCustomizeTheme] = React.useState(false);
29
- const [buttonType, setButtonType] = React.useState("regular");
30
- const customTheme = [{
31
- title: "Text & Line Colors",
32
- data: [{
33
- title: "Headings",
34
- color: "#ccc"
35
- }, {
36
- title: "Subheading text",
37
- color: "#ccc"
38
- }, {
39
- title: "Body text",
40
- color: "#ccc"
41
- }, {
42
- title: "Subtext",
43
- color: "#ccc"
44
- }, {
45
- title: "Lines & dividers",
46
- color: "#ccc"
47
- }]
48
- }, {
49
- title: "Background Colors",
50
- data: [{
51
- title: "Primary background color",
52
- color: "#ccc"
53
- }, {
54
- title: "Secondary background color",
55
- color: "#ccc"
56
- }]
57
- }];
58
- const buttonData = [{
59
- title: "Button background",
60
- color: "#ccc"
61
- }, {
62
- title: "Button text",
63
- color: "#ccc"
64
- }, {
65
- title: "Button border",
66
- color: "#ccc"
67
- }];
68
-
69
- //button
70
- const handleButtonType = (event, buttonType) => {
71
- if (buttonType !== null) {
72
- setButtonType(buttonType);
73
- }
74
- };
75
- return /*#__PURE__*/_jsx(Grid, {
76
- className: className,
77
- children: !customizeTheme ? /*#__PURE__*/_jsxs(Accordion, {
78
- className: "settingAccordion",
79
- defaultExpanded: openDefault,
80
- children: [/*#__PURE__*/_jsx(AccordionSummary, {
81
- expandIcon: /*#__PURE__*/_jsx(ExpandMoreIcon, {}),
82
- "aria-controls": "panel1-content",
83
- id: "panel1-header",
84
- children: "Color Theme"
85
- }), /*#__PURE__*/_jsxs(AccordionDetails, {
86
- children: [/*#__PURE__*/_jsx(Typography, {
87
- variant: "body2",
88
- sx: {
89
- pb: 1
90
- },
91
- className: "fs-12 fw-600",
92
- children: "Primary Color"
93
- }), /*#__PURE__*/_jsx(Grid, {
94
- container: true,
95
- spacing: 1,
96
- sx: {
97
- pb: 2
98
- },
99
- className: "primaryColorBoxes",
100
- wrap: "nowrap",
101
- children: primaryColors?.map((color, i) => {
102
- const textColor = getContrastColor(color);
103
- return /*#__PURE__*/_jsx(Grid, {
104
- item: true,
105
- xs: 6,
106
- children: /*#__PURE__*/_jsx(ColorPickerButton, {
107
- onSave: selectedColor => {
108
- onColorChange(selectedColor, i);
109
- },
110
- hideThemeColors: true,
111
- hideGradient: true,
112
- children: /*#__PURE__*/_jsxs(Grid, {
113
- className: "pmBox",
114
- style: {
115
- backgroundColor: color
116
- },
117
- children: [/*#__PURE__*/_jsx(IconButton, {
118
- className: "editBtn",
119
- children: /*#__PURE__*/_jsx(EditIcon, {})
120
- }), /*#__PURE__*/_jsx(Typography, {
121
- variant: "body2",
122
- className: "fs-12 valyeText",
123
- style: {
124
- color: textColor
125
- },
126
- children: color
127
- })]
128
- })
129
- })
130
- }, i);
131
- })
132
- }), /*#__PURE__*/_jsx(Typography, {
133
- variant: "body2",
134
- sx: {
135
- pb: 1
136
- },
137
- className: "fs-12 fw-600",
138
- children: "Secondary Colors"
139
- }), /*#__PURE__*/_jsx(Grid, {
140
- container: true,
141
- className: "secondaryColorBoxes",
142
- wrap: "nowrap",
143
- sx: {
144
- mb: 1
145
- },
146
- children: otherColors?.slice(0, 4)?.map((color, i) => {
147
- const noOfPrimaryColors = 2;
148
- const colorIndex = noOfPrimaryColors + i;
149
- const textColor = getContrastColor(color);
150
- return /*#__PURE__*/_jsx(Grid, {
151
- item: true,
152
- xs: 6,
153
- children: /*#__PURE__*/_jsx(ColorPickerButton, {
154
- onSave: selectedColor => {
155
- onColorChange(selectedColor, colorIndex);
156
- },
157
- hideThemeColors: true,
158
- hideGradient: true,
159
- children: /*#__PURE__*/_jsxs(Grid, {
160
- className: "sdBox",
161
- style: {
162
- backgroundColor: color
163
- },
164
- children: [/*#__PURE__*/_jsx(IconButton, {
165
- className: "editBtn",
166
- children: /*#__PURE__*/_jsx(EditIcon, {})
167
- }), /*#__PURE__*/_jsx(Typography, {
168
- variant: "body2",
169
- className: "fs-12 valyeText",
170
- style: {
171
- color: textColor
172
- },
173
- children: color
174
- })]
175
- })
176
- })
177
- }, i);
178
- })
179
- })]
180
- })]
181
- }) : /*#__PURE__*/_jsxs(Grid, {
182
- className: "sectionDetail",
183
- children: [/*#__PURE__*/_jsxs(Typography, {
184
- variant: "body1",
185
- className: "sectionTitle flexAlign",
186
- children: [/*#__PURE__*/_jsx(IconButton, {
187
- onClick: () => setCustomizeTheme(false),
188
- children: /*#__PURE__*/_jsx(ChevronLeft, {})
189
- }), "Customize Theme settings"]
190
- }), customTheme.map((item, index) => /*#__PURE__*/_jsxs(Grid, {
191
- className: "settingsSection",
192
- children: [/*#__PURE__*/_jsx(Typography, {
193
- variant: "body1",
194
- className: "sectionTitle",
195
- sx: {
196
- pb: 1
197
- },
198
- children: item.title
199
- }), item.data.map((childitem, childIndex) => /*#__PURE__*/_jsxs(Grid, {
200
- container: true,
201
- justifyContent: "space-between",
202
- sx: {
203
- pt: 2
204
- },
205
- children: [/*#__PURE__*/_jsx(Typography, {
206
- variant: "body1",
207
- className: "fs-14",
208
- children: childitem.title
209
- }), /*#__PURE__*/_jsx(Grid, {
210
- className: "xsColorBox",
211
- sx: {
212
- background: childitem.color
213
- }
214
- })]
215
- }, childIndex))]
216
- }, index)), /*#__PURE__*/_jsxs(Grid, {
217
- className: "settingsSection",
218
- children: [/*#__PURE__*/_jsx(Typography, {
219
- variant: "body1",
220
- className: "sectionTitle",
221
- sx: {
222
- pb: 1
223
- },
224
- children: "Button Colors"
225
- }), /*#__PURE__*/_jsxs(ToggleButtonGroup, {
226
- sx: {
227
- mt: 2
228
- },
229
- className: "toggleType",
230
- value: buttonType,
231
- exclusive: true,
232
- onChange: handleButtonType,
233
- children: [/*#__PURE__*/_jsx(ToggleButton, {
234
- value: "regular",
235
- "aria-label": "regulard",
236
- children: "Regular"
237
- }), /*#__PURE__*/_jsx(ToggleButton, {
238
- value: "hover",
239
- "aria-label": "hover",
240
- children: "Hover"
241
- })]
242
- }), /*#__PURE__*/_jsx(Divider, {
243
- sx: {
244
- mt: 2,
245
- mb: 1
246
- }
247
- }), /*#__PURE__*/_jsxs(RadioGroup, {
248
- sx: {
249
- mt: 1
250
- },
251
- "aria-labelledby": "demo-radio-buttons-group-label",
252
- defaultValue: "primary",
253
- name: "radio-buttons-group",
254
- children: [/*#__PURE__*/_jsx(FormControlLabel, {
255
- value: "primary",
256
- control: /*#__PURE__*/_jsx(Radio, {}),
257
- label: /*#__PURE__*/_jsx(Typography, {
258
- variant: "body1",
259
- className: "fs-14",
260
- children: "Primary button"
261
- })
262
- }), /*#__PURE__*/_jsx(FormControlLabel, {
263
- value: "secondary",
264
- control: /*#__PURE__*/_jsx(Radio, {}),
265
- label: /*#__PURE__*/_jsx(Typography, {
266
- variant: "body1",
267
- className: "fs-14",
268
- children: "Secondary button"
269
- })
270
- })]
271
- }), buttonData.map((item, Index) => /*#__PURE__*/_jsxs(Grid, {
272
- container: true,
273
- justifyContent: "space-between",
274
- sx: {
275
- pt: 2
276
- },
277
- children: [/*#__PURE__*/_jsx(Typography, {
278
- variant: "body1",
279
- className: "fs-14",
280
- children: item.title
281
- }), /*#__PURE__*/_jsx(Grid, {
282
- className: "xsColorBox",
283
- sx: {
284
- background: item.color
285
- }
286
- })]
287
- }, Index))]
288
- })]
289
- })
290
- });
291
- };
292
- export default styled(ColorTheme)(Style);
@@ -1,77 +0,0 @@
1
- const Style = () => ({
2
- ".primaryColorBoxes": {
3
- ".pmBox": {
4
- border: "1px solid #D1D1D1",
5
- height: "65px",
6
- borderRadius: "4px",
7
- position: "relative",
8
- flexShrink: 0,
9
- "&:hover": {
10
- ".editBtn": {
11
- opacity: "1",
12
- visibility: "visible"
13
- }
14
- }
15
- }
16
- },
17
- ".secondaryColorBoxes": {
18
- gap: "10px",
19
- ".sdBox": {
20
- border: "1px solid #D1D1D1",
21
- height: "60px",
22
- borderRadius: "4px",
23
- width: "100%",
24
- flexShrink: 0,
25
- position: "relative",
26
- "&:hover": {
27
- ".editBtn": {
28
- opacity: "1",
29
- visibility: "visible"
30
- }
31
- }
32
- }
33
- },
34
- ".valyeText": {
35
- position: "absolute",
36
- right: "5px",
37
- bottom: "5px"
38
- },
39
- ".editBtn": {
40
- position: "absolute",
41
- right: "2px",
42
- top: "2px",
43
- padding: "2px",
44
- opacity: "0",
45
- visibility: "hidden"
46
- },
47
- ".settingsSection": {
48
- background: "#FFFFFF",
49
- border: "1px solid #E4E6E9",
50
- padding: "12px",
51
- marginTop: "10px",
52
- borderRadius: "7px"
53
- },
54
- ".toggleType": {
55
- width: "100%",
56
- border: "1px solid #2563EB",
57
- background: "#F5F6F9",
58
- borderRadius: "8px",
59
- padding: "3px",
60
- height: "40px",
61
- ".MuiToggleButton-root": {
62
- padding: "10px",
63
- width: "50%",
64
- border: "none",
65
- textTransform: "unset",
66
- fontSize: "14px",
67
- color: "#64748B",
68
- "&.Mui-selected": {
69
- borderRadius: "8px",
70
- background: "#2563EB",
71
- color: "#fff",
72
- fontWeight: "700"
73
- }
74
- }
75
- }
76
- });
77
- export default Style;
@@ -1,121 +0,0 @@
1
- import { Grid, IconButton, Typography } from "@mui/material";
2
- import { useEditorTheme } from "../../hooks/useEditorTheme";
3
- import { PenIcon } from "../icons";
4
- import useWindowResize from "../../hooks/useWindowResize";
5
- import { getElementProperty } from "../../helper/theme";
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- import { jsxs as _jsxs } from "react/jsx-runtime";
8
- const MAP_TEXT_PLACEHOLDER = {
9
- h1: "Heading 1",
10
- h2: "Heading 2",
11
- h3: "Heading 3",
12
- h4: "Heading 4",
13
- h5: "Heading 5",
14
- h6: "Heading 6",
15
- para1: "Paragraph 1",
16
- para2: "Paragraph 2",
17
- para3: "Paragraph 3"
18
- };
19
- const MAP_COMP = {
20
- para1: "p",
21
- para2: "p",
22
- para3: "p"
23
- };
24
- function getPreviewElementStyle(styleProperty, elementId) {
25
- const element = document.getElementById(elementId);
26
- return getElementProperty(element, styleProperty);
27
- }
28
- function getTextSettings(elementId, otherStyles = {}) {
29
- return {
30
- fontFamily: getPreviewElementStyle("font-family", elementId),
31
- fontSize: getPreviewElementStyle("font-size", elementId),
32
- fontWeight: getPreviewElementStyle("font-weight", elementId),
33
- fontStyle: getPreviewElementStyle("font-style", elementId),
34
- textDecoration: getPreviewElementStyle("text-decoration", elementId),
35
- ...otherStyles
36
- };
37
- }
38
- function getFontSize(fontSize = "", windowSize) {
39
- let size = "";
40
- if (typeof fontSize === "string") {
41
- size = fontSize;
42
- } else if (typeof fontSize === "object") {
43
- size = fontSize[windowSize?.device];
44
- }
45
- return size?.includes("px") ? size : size + "px";
46
- }
47
- function PreviewElement(props) {
48
- const {
49
- field,
50
- selectedField,
51
- setSelectedField,
52
- settings,
53
- setSettings,
54
- setAnchorEl
55
- } = props;
56
- const {
57
- selectedTheme
58
- } = useEditorTheme();
59
- const {
60
- elementProps = {}
61
- } = selectedTheme || {};
62
- const previewElementId = `theme-heading-element-preview-${field}`;
63
- const Comp = MAP_COMP[field] || field;
64
- const selectedSettings = selectedField === field ? settings : {};
65
- const themeStyles = elementProps[field] || {};
66
- const placeholder = MAP_TEXT_PLACEHOLDER[field];
67
- const [windowSize] = useWindowResize();
68
- const fontFamily = getPreviewElementStyle("font-family", previewElementId);
69
- const {
70
- fontSize = "",
71
- color
72
- } = themeStyles;
73
- const size = getFontSize(fontSize, windowSize);
74
- return /*#__PURE__*/_jsxs(Grid, {
75
- container: true,
76
- className: "fontTypeItem",
77
- justifyContent: "space-between",
78
- alignItems: "center",
79
- wrap: "nowrap",
80
- children: [/*#__PURE__*/_jsxs(Grid, {
81
- item: true,
82
- children: [/*#__PURE__*/_jsx(Typography, {
83
- variant: "body1",
84
- children: /*#__PURE__*/_jsx(Comp, {
85
- id: previewElementId,
86
- style: {
87
- ...themeStyles,
88
- ...selectedSettings,
89
- fontSize: size
90
- },
91
- className: "preview-theme-text",
92
- children: placeholder
93
- })
94
- }), /*#__PURE__*/_jsxs(Typography, {
95
- variant: "body2",
96
- className: "flexAlign typeValue",
97
- children: [/*#__PURE__*/_jsx(Grid, {
98
- component: "span",
99
- className: "dotColor",
100
- style: {
101
- background: selectedSettings?.color || color
102
- }
103
- }), /*#__PURE__*/_jsxs(Grid, {
104
- component: "span",
105
- children: [fontFamily, ",", size]
106
- })]
107
- })]
108
- }), /*#__PURE__*/_jsx(IconButton, {
109
- className: "editIcon",
110
- onClick: e => {
111
- setSettings(getTextSettings(previewElementId, {
112
- color
113
- }));
114
- setSelectedField(field);
115
- setAnchorEl(e.currentTarget);
116
- },
117
- children: /*#__PURE__*/_jsx(PenIcon, {})
118
- })]
119
- });
120
- }
121
- export default PreviewElement;
@@ -1,220 +0,0 @@
1
- import React from "react";
2
- import { Accordion, AccordionDetails, AccordionSummary, Checkbox, Divider, Fade, FormControlLabel, Grid, Paper, Popper, Typography, styled } from "@mui/material";
3
- import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
4
-
5
- // Style
6
- import Style from "./style";
7
- import ThemeTextFormat from "../../Toolbar/PopupTool/ThemeTextFormat";
8
- import { useEditorContext } from "../../hooks/useMouseMove";
9
- import usePopupStyle from "../../Toolbar/PopupTool/PopupToolStyle";
10
- import useWindowResize from "../../hooks/useWindowResize";
11
- import PopperHeader from "../../Toolbar/PopupTool/PopperHeader";
12
- import { useEditorTheme } from "../../hooks/useEditorTheme";
13
- import { HEADING_THEME_FIELDS, PARAGRAPH_THEME_FIELDS } from "../../helper/theme";
14
- import PreviewElement from "./PreviewElement";
15
- import FontFamilyAutocomplete from "../../Toolbar/FormatTools/FontFamilyAutocomplete";
16
- import { googleFontList as defaultFonts } from "../../common/FontLoader/FontList";
17
- import { jsx as _jsx } from "react/jsx-runtime";
18
- import { jsxs as _jsxs } from "react/jsx-runtime";
19
- const Fonts = props => {
20
- const {
21
- className
22
- } = props;
23
- const [anchorEl, setAnchorEl] = React.useState();
24
- const [selectedField, setSelectedField] = React.useState("");
25
- const [settings, setSettings] = React.useState({});
26
- const updateSettings = update => {
27
- setSettings(prev => {
28
- return {
29
- ...prev,
30
- ...update
31
- };
32
- });
33
- };
34
- const onClose = () => {
35
- setAnchorEl(null);
36
- setSelectedField("");
37
- setSettings({});
38
- };
39
- const {
40
- theme,
41
- fontFamilies
42
- } = useEditorContext();
43
- const classes = usePopupStyle(theme);
44
- const [size] = useWindowResize();
45
- const {
46
- selectedTheme,
47
- updateTheme
48
- } = useEditorTheme();
49
- const {
50
- otherProps = {}
51
- } = selectedTheme || {};
52
- const {
53
- isHeadingCustomized,
54
- headingFontFamily,
55
- isParagraphCustomized,
56
- paragraphFontFamily
57
- } = otherProps;
58
- const onSaveTextSettings = () => {
59
- updateTheme(settings, {
60
- action: "ELEMENT_PROPS_CHANGE",
61
- fieldName: selectedField
62
- });
63
- onClose();
64
- };
65
- const updateOtherThemeProps = update => {
66
- updateTheme(update, {
67
- action: "OTHER_PROPS_CHANGE"
68
- });
69
- };
70
- const updateFont = (update, fieldType) => {
71
- updateTheme(update, {
72
- action: "FONT_CHANGE",
73
- fieldType
74
- });
75
- };
76
- const tabs = [{
77
- title: "Heading Font family",
78
- onFontFamilyChange: ({
79
- fontFamily
80
- }) => {
81
- updateFont({
82
- fontFamily
83
- }, "HEADING");
84
- updateSettings({
85
- fontFamily
86
- });
87
- },
88
- fontFamily: headingFontFamily || defaultFonts[0],
89
- isCustomized: isHeadingCustomized,
90
- onCustomizeClick: event => {
91
- updateOtherThemeProps({
92
- isHeadingCustomized: event.target.checked
93
- });
94
- },
95
- fields: HEADING_THEME_FIELDS
96
- }, {
97
- title: "Paragraph Font family",
98
- onFontFamilyChange: ({
99
- fontFamily
100
- }) => {
101
- updateFont({
102
- fontFamily
103
- }, "PARAGRAPH");
104
- updateSettings({
105
- fontFamily
106
- });
107
- },
108
- fontFamily: paragraphFontFamily || defaultFonts[0],
109
- isCustomized: isParagraphCustomized,
110
- onCustomizeClick: event => {
111
- updateOtherThemeProps({
112
- isParagraphCustomized: event.target.checked
113
- });
114
- },
115
- fields: PARAGRAPH_THEME_FIELDS
116
- }];
117
- return /*#__PURE__*/_jsxs(Grid, {
118
- className: className,
119
- children: [/*#__PURE__*/_jsxs(Accordion, {
120
- className: "settingAccordion",
121
- children: [/*#__PURE__*/_jsx(AccordionSummary, {
122
- expandIcon: /*#__PURE__*/_jsx(ExpandMoreIcon, {}),
123
- "aria-controls": "panel1-content",
124
- id: "panel1-header",
125
- children: "Fonts"
126
- }), /*#__PURE__*/_jsx(AccordionDetails, {
127
- children: tabs?.map((tab, i) => {
128
- const {
129
- title,
130
- onFontFamilyChange,
131
- fontFamily,
132
- isCustomized = "",
133
- onCustomizeClick,
134
- fields
135
- } = tab;
136
- return /*#__PURE__*/_jsxs(React.Fragment, {
137
- children: [/*#__PURE__*/_jsxs(Grid, {
138
- sx: {
139
- pt: 2
140
- },
141
- children: [/*#__PURE__*/_jsx(Typography, {
142
- variant: "body2",
143
- sx: {
144
- pb: 1
145
- },
146
- className: "fs-14 fw-500",
147
- children: title
148
- }), /*#__PURE__*/_jsx(FontFamilyAutocomplete, {
149
- editor: {},
150
- format: "fontFamily",
151
- options: fontFamilies.options,
152
- width: "100%",
153
- onChange: onFontFamilyChange,
154
- val: fontFamily,
155
- webFont: true
156
- }), /*#__PURE__*/_jsx(FormControlLabel, {
157
- control: /*#__PURE__*/_jsx(Checkbox, {
158
- checked: isCustomized,
159
- onChange: onCustomizeClick,
160
- size: "small"
161
- }),
162
- label: /*#__PURE__*/_jsx(Typography, {
163
- variant: "body2",
164
- className: "fs-12",
165
- children: "Customize Font style"
166
- })
167
- }), isCustomized && /*#__PURE__*/_jsx(Grid, {
168
- ref: anchorEl,
169
- children: fields.map((field, index) => {
170
- return /*#__PURE__*/_jsx(PreviewElement, {
171
- field: field,
172
- settings: settings,
173
- setSettings: setSettings,
174
- setAnchorEl: setAnchorEl,
175
- selectedField: selectedField,
176
- setSelectedField: setSelectedField
177
- }, index);
178
- })
179
- })]
180
- }), i === 0 && /*#__PURE__*/_jsx(Divider, {
181
- sx: {
182
- mt: 1,
183
- mb: 1
184
- }
185
- })]
186
- }, i);
187
- })
188
- })]
189
- }), /*#__PURE__*/_jsx(Popper, {
190
- open: Boolean(anchorEl),
191
- anchorEl: anchorEl,
192
- transition: true,
193
- placement: "left-start",
194
- sx: classes.popupWrapper,
195
- className: `tools-drawer ${size?.device} textSettings`,
196
- children: ({
197
- TransitionProps
198
- }) => /*#__PURE__*/_jsx(Fade, {
199
- ...TransitionProps,
200
- children: /*#__PURE__*/_jsxs(Paper, {
201
- style: {
202
- borderRadius: "10px",
203
- position: "relative"
204
- },
205
- children: [/*#__PURE__*/_jsx(PopperHeader, {
206
- title: "Text Settings",
207
- classes: classes,
208
- onClose: onClose
209
- }), /*#__PURE__*/_jsx(ThemeTextFormat, {
210
- settings: settings,
211
- updateSettings: updateSettings,
212
- onSaveTextSettings: onSaveTextSettings,
213
- onClose: onClose
214
- })]
215
- })
216
- })
217
- })]
218
- });
219
- };
220
- export default styled(Fonts)(Style);