@flozy/editor 6.0.9 → 7.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 (114) 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 +16 -21
  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/Table/Table.js +12 -12
  20. package/dist/Editor/Elements/Title/title.js +1 -13
  21. package/dist/Editor/Elements/Variables/Style.js +2 -28
  22. package/dist/Editor/Elements/Variables/VariableButton.js +4 -17
  23. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +3 -27
  24. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +3 -4
  25. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  26. package/dist/Editor/Toolbar/FormatTools/TextSize.js +15 -7
  27. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +8 -9
  28. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +13 -6
  29. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +85 -210
  30. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +1 -2
  31. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +12 -16
  32. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +9 -56
  33. package/dist/Editor/Toolbar/PopupTool/index.js +48 -32
  34. package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
  35. package/dist/Editor/common/ColorPickerButton.js +9 -32
  36. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  37. package/dist/Editor/common/DnD/Draggable.js +1 -0
  38. package/dist/Editor/common/FontLoader/FontList.js +11 -3
  39. package/dist/Editor/common/FontLoader/FontLoader.js +42 -74
  40. package/dist/Editor/common/Icon.js +0 -28
  41. package/dist/Editor/common/ImageSelector/Options/Upload.js +1 -1
  42. package/dist/Editor/common/ImageSelector/Styles.js +9 -3
  43. package/dist/Editor/common/ImageSelector/UploadStyles.js +2 -1
  44. package/dist/Editor/common/MentionsPopup/Styles.js +9 -3
  45. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +1 -2
  46. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +2 -3
  47. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +2 -3
  48. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +2 -3
  49. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +2 -3
  50. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +2 -4
  51. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +2 -3
  52. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
  53. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +2 -3
  54. package/dist/Editor/common/RnD/ElementSettings/styles.js +1 -0
  55. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +2 -8
  56. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +3 -6
  57. package/dist/Editor/common/RnD/Utils/gridDropItem.js +4 -5
  58. package/dist/Editor/common/RnD/Utils/index.js +0 -40
  59. package/dist/Editor/common/RnD/index.js +3 -23
  60. package/dist/Editor/common/Section/index.js +89 -60
  61. package/dist/Editor/common/Shorthands/elements.js +0 -54
  62. package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
  63. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +0 -5
  64. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +2 -12
  65. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -15
  66. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +2 -10
  67. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +11 -35
  68. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +4 -13
  69. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +7 -15
  70. package/dist/Editor/common/Uploader.js +0 -8
  71. package/dist/Editor/commonStyle.js +65 -55
  72. package/dist/Editor/helper/deserialize/index.js +1 -1
  73. package/dist/Editor/helper/index.js +2 -2
  74. package/dist/Editor/helper/theme.js +2 -200
  75. package/dist/Editor/hooks/useDrag.js +11 -17
  76. package/dist/Editor/hooks/useEditorScroll.js +2 -1
  77. package/dist/Editor/hooks/useMouseMove.js +3 -9
  78. package/dist/Editor/plugins/withEmbeds.js +1 -1
  79. package/dist/Editor/plugins/withHTML.js +9 -5
  80. package/dist/Editor/plugins/withLayout.js +1 -1
  81. package/dist/Editor/plugins/withTable.js +1 -1
  82. package/dist/Editor/theme/ThemeList.js +173 -50
  83. package/dist/Editor/utils/SlateUtilityFunctions.js +49 -157
  84. package/dist/Editor/utils/button.js +14 -0
  85. package/dist/Editor/utils/draftToSlate.js +2 -3
  86. package/dist/Editor/utils/font.js +37 -40
  87. package/dist/Editor/utils/helper.js +20 -48
  88. package/dist/Editor/utils/link.js +1 -1
  89. package/package.json +3 -6
  90. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -438
  91. package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
  92. package/dist/Editor/common/CustomColorPicker/index.js +0 -106
  93. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  94. package/dist/Editor/common/CustomDialog/index.js +0 -94
  95. package/dist/Editor/common/CustomDialog/style.js +0 -67
  96. package/dist/Editor/common/CustomSelect.js +0 -33
  97. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
  98. package/dist/Editor/hooks/useEditorTheme.js +0 -153
  99. package/dist/Editor/theme/index.js +0 -144
  100. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  101. package/dist/Editor/themeSettings/buttons/index.js +0 -283
  102. package/dist/Editor/themeSettings/buttons/style.js +0 -21
  103. package/dist/Editor/themeSettings/colorTheme/index.js +0 -292
  104. package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
  105. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
  106. package/dist/Editor/themeSettings/fonts/index.js +0 -220
  107. package/dist/Editor/themeSettings/fonts/style.js +0 -44
  108. package/dist/Editor/themeSettings/icons.js +0 -60
  109. package/dist/Editor/themeSettings/index.js +0 -320
  110. package/dist/Editor/themeSettings/style.js +0 -152
  111. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  112. package/dist/Editor/themeSettingsAI/index.js +0 -356
  113. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -197
  114. 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);