@flozy/editor 7.0.9 → 8.0.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 (120) hide show
  1. package/dist/Editor/ChatEditor.js +7 -7
  2. package/dist/Editor/CommonEditor.js +106 -33
  3. package/dist/Editor/DialogWrapper.js +31 -25
  4. package/dist/Editor/Editor.css +32 -16
  5. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  6. package/dist/Editor/Elements/Button/EditorButton.js +25 -9
  7. package/dist/Editor/Elements/Color Picker/ColorButtons.js +57 -12
  8. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  9. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  10. package/dist/Editor/Elements/Color Picker/Styles.js +1 -1
  11. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +15 -0
  12. package/dist/Editor/Elements/DataView/Layouts/TableView.js +111 -29
  13. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +1 -1
  14. package/dist/Editor/Elements/DataView/styles.js +8 -8
  15. package/dist/Editor/Elements/Embed/Image.js +2 -2
  16. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +0 -14
  17. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +2 -1
  18. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +2 -1
  19. package/dist/Editor/Elements/FreeGrid/styles.js +3 -0
  20. package/dist/Editor/Elements/Grid/GridItem.js +2 -3
  21. package/dist/Editor/Elements/Link/Link.js +70 -43
  22. package/dist/Editor/Elements/SimpleText/index.js +7 -12
  23. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  24. package/dist/Editor/Elements/Table/Table.js +12 -12
  25. package/dist/Editor/Elements/Title/title.js +13 -1
  26. package/dist/Editor/Elements/Variables/Style.js +28 -2
  27. package/dist/Editor/Elements/Variables/VariableButton.js +17 -4
  28. package/dist/Editor/Styles/EditorStyles.js +287 -291
  29. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  30. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  31. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  32. package/dist/Editor/Toolbar/FormatTools/TextSize.js +7 -15
  33. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +9 -8
  34. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
  35. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +210 -85
  36. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +2 -1
  37. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +16 -12
  38. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +56 -9
  39. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +438 -0
  40. package/dist/Editor/Toolbar/PopupTool/index.js +31 -38
  41. package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
  42. package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
  43. package/dist/Editor/common/ColorPickerButton.js +35 -9
  44. package/dist/Editor/common/CustomColorPicker/index.js +106 -0
  45. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  46. package/dist/Editor/common/CustomDialog/index.js +90 -0
  47. package/dist/Editor/common/CustomDialog/style.js +67 -0
  48. package/dist/Editor/common/CustomDialog/styles.js +80 -0
  49. package/dist/Editor/common/CustomSelect.js +33 -0
  50. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  51. package/dist/Editor/common/DnD/Draggable.js +0 -1
  52. package/dist/Editor/common/FontLoader/FontList.js +3 -11
  53. package/dist/Editor/common/FontLoader/FontLoader.js +74 -42
  54. package/dist/Editor/common/Icon.js +28 -0
  55. package/dist/Editor/common/ImageSelector/Options/Upload.js +1 -1
  56. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  57. package/dist/Editor/common/ImageSelector/UploadStyles.js +1 -2
  58. package/dist/Editor/common/MentionsPopup/Styles.js +6 -12
  59. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  60. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  61. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  62. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  63. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  64. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
  65. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +3 -2
  66. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  67. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +3 -2
  68. package/dist/Editor/common/RnD/ElementSettings/styles.js +0 -1
  69. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +8 -2
  70. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  71. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  72. package/dist/Editor/common/RnD/Utils/gridDropItem.js +5 -4
  73. package/dist/Editor/common/RnD/Utils/index.js +45 -0
  74. package/dist/Editor/common/RnD/index.js +23 -3
  75. package/dist/Editor/common/Section/index.js +60 -89
  76. package/dist/Editor/common/Shorthands/elements.js +54 -0
  77. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  78. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +5 -0
  79. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  80. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  81. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +10 -2
  82. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +35 -11
  83. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +13 -4
  84. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  85. package/dist/Editor/common/Uploader.js +8 -0
  86. package/dist/Editor/commonStyle.js +55 -65
  87. package/dist/Editor/helper/deserialize/index.js +1 -1
  88. package/dist/Editor/helper/index.js +2 -2
  89. package/dist/Editor/helper/theme.js +200 -2
  90. package/dist/Editor/hooks/useEditorScroll.js +1 -1
  91. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  92. package/dist/Editor/hooks/useMouseMove.js +9 -3
  93. package/dist/Editor/plugins/withEmbeds.js +1 -1
  94. package/dist/Editor/plugins/withHTML.js +5 -9
  95. package/dist/Editor/plugins/withLayout.js +1 -1
  96. package/dist/Editor/plugins/withTable.js +1 -1
  97. package/dist/Editor/theme/ThemeList.js +50 -173
  98. package/dist/Editor/theme/index.js +144 -0
  99. package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
  100. package/dist/Editor/themeSettings/buttons/index.js +283 -0
  101. package/dist/Editor/themeSettings/buttons/style.js +21 -0
  102. package/dist/Editor/themeSettings/colorTheme/index.js +292 -0
  103. package/dist/Editor/themeSettings/colorTheme/style.js +77 -0
  104. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  105. package/dist/Editor/themeSettings/fonts/index.js +220 -0
  106. package/dist/Editor/themeSettings/fonts/style.js +44 -0
  107. package/dist/Editor/themeSettings/icons.js +60 -0
  108. package/dist/Editor/themeSettings/index.js +320 -0
  109. package/dist/Editor/themeSettings/style.js +152 -0
  110. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  111. package/dist/Editor/themeSettingsAI/index.js +356 -0
  112. package/dist/Editor/themeSettingsAI/saveTheme.js +197 -0
  113. package/dist/Editor/themeSettingsAI/style.js +250 -0
  114. package/dist/Editor/utils/SlateUtilityFunctions.js +157 -49
  115. package/dist/Editor/utils/button.js +0 -14
  116. package/dist/Editor/utils/draftToSlate.js +3 -2
  117. package/dist/Editor/utils/font.js +40 -37
  118. package/dist/Editor/utils/helper.js +59 -19
  119. package/dist/Editor/utils/link.js +1 -1
  120. package/package.json +5 -2
@@ -0,0 +1,90 @@
1
+ import { Button, Dialog, DialogActions, DialogContent, Grid, SwipeableDrawer, Typography, useMediaQuery } from "@mui/material";
2
+ import PropTypes from "prop-types";
3
+ import { useEditorContext } from "../../hooks/useMouseMove";
4
+ import CustomDialogStyles from "./styles";
5
+ import { forwardRef, useImperativeHandle, useState } from "react";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ import { jsxs as _jsxs } from "react/jsx-runtime";
8
+ import { Fragment as _Fragment } from "react/jsx-runtime";
9
+ const CustomDialog = (props, ref) => {
10
+ const {
11
+ content,
12
+ confirmText,
13
+ cancelText,
14
+ onConfirm
15
+ } = props;
16
+ const [open, setOpen] = useState(false);
17
+ const isMobile = useMediaQuery("(max-width:899px)");
18
+ const {
19
+ theme
20
+ } = useEditorContext();
21
+ const classes = CustomDialogStyles(theme);
22
+ useImperativeHandle(ref, () => ({
23
+ handleOpen: () => setOpen(true),
24
+ handleClose: () => setOpen(false)
25
+ }));
26
+ const DialogueContent = () => /*#__PURE__*/_jsxs(_Fragment, {
27
+ children: [/*#__PURE__*/_jsx(DialogContent, {
28
+ children: /*#__PURE__*/_jsx(Typography, {
29
+ children: content
30
+ })
31
+ }), /*#__PURE__*/_jsxs(DialogActions, {
32
+ children: [/*#__PURE__*/_jsx(Button, {
33
+ className: "closeBtn",
34
+ onClick: () => setOpen(false),
35
+ children: cancelText
36
+ }), /*#__PURE__*/_jsx(Button, {
37
+ className: "confirmBtn",
38
+ onClick: () => {
39
+ onConfirm();
40
+ setOpen(false);
41
+ },
42
+ children: confirmText
43
+ })]
44
+ })]
45
+ });
46
+ return /*#__PURE__*/_jsx(_Fragment, {
47
+ children: !isMobile ? /*#__PURE__*/_jsx(Dialog, {
48
+ className: `${classes.MuiBackdropRoot}`,
49
+ open: open,
50
+ onClose: () => setOpen(false),
51
+ fullWidth: true,
52
+ maxWidth: "sm",
53
+ sx: classes.CustomDialogu,
54
+ children: /*#__PURE__*/_jsx(DialogueContent, {})
55
+ }) : /*#__PURE__*/_jsxs(SwipeableDrawer, {
56
+ open: open,
57
+ anchor: "bottom",
58
+ onClose: () => setOpen(false),
59
+ style: {
60
+ zIndex: "1300"
61
+ },
62
+ sx: classes.CustomDialogu,
63
+ disableBackdropTransition: true,
64
+ disableSwipeToOpen: true,
65
+ children: [/*#__PURE__*/_jsx(Grid, {
66
+ container: true,
67
+ justifyContent: "center",
68
+ className: "pullerRoot",
69
+ children: /*#__PURE__*/_jsx(Grid, {
70
+ item: true,
71
+ className: "pullerGrid"
72
+ })
73
+ }), /*#__PURE__*/_jsx(DialogueContent, {})]
74
+ })
75
+ });
76
+ };
77
+ const CustomDialogComponent = /*#__PURE__*/forwardRef(CustomDialog);
78
+ CustomDialogComponent.defaultProps = {
79
+ content: "Are you sure you want to proceed?",
80
+ confirmText: "Confirm",
81
+ cancelText: "Cancel",
82
+ onConfirm: () => console.warn("onConfirm not provided")
83
+ };
84
+ CustomDialogComponent.propTypes = {
85
+ content: PropTypes.string,
86
+ confirmText: PropTypes.string,
87
+ cancelText: PropTypes.string,
88
+ onConfirm: PropTypes.func
89
+ };
90
+ export { CustomDialogComponent };
@@ -0,0 +1,67 @@
1
+ const styles = () => ({
2
+ dialogContainer: {
3
+ "& .MuiDialogContent-root": {
4
+ padding: "0px 20px"
5
+ },
6
+ "& .MuiDialogActions-root": {
7
+ padding: "10px"
8
+ },
9
+ "& .MuiTypography-h6": {
10
+ fontWeight: 600,
11
+ fontSize: "16px",
12
+ paddingRight: "20px"
13
+ },
14
+ "& .MuiGrid-container": {
15
+ marginTop: "0px"
16
+ },
17
+ "& .MuiGrid-item": {
18
+ padding: "14px"
19
+ }
20
+ },
21
+ saveBtn: {
22
+ color: "#fff",
23
+ background: "#2563EB",
24
+ fontSize: "14px",
25
+ fontWeight: 500,
26
+ padding: "4px 24px",
27
+ textTransform: "none",
28
+ "&:hover": {
29
+ color: "#fff",
30
+ background: "#2563EB"
31
+ }
32
+ },
33
+ closeBtn: {
34
+ backgroundColor: "#F4F6F9",
35
+ color: "#64748B",
36
+ fontSize: "14px",
37
+ fontWeight: 500,
38
+ padding: "4px 22px",
39
+ textTransform: "none",
40
+ border: "1px solid #D8DDE1",
41
+ "&:hover": {
42
+ border: "1px solid #64748B"
43
+ }
44
+ },
45
+ closeIcon: {
46
+ position: "absolute",
47
+ right: 8,
48
+ top: 8,
49
+ color: theme => theme.palette.grey[500]
50
+ },
51
+ gridDivider: {
52
+ borderRight: "1px solid rgba(0, 0, 0, 0.12)"
53
+ },
54
+ mobileActionBtns: {
55
+ display: "flex",
56
+ justifyContent: "flex-end",
57
+ gap: "8px",
58
+ paddingTop: "14px",
59
+ marginTop: "14px",
60
+ borderTop: theme => `1px solid ${theme.palette.grey[300]}`
61
+ },
62
+ mobileDialogContent: {
63
+ borderTop: theme => `1px solid ${theme.palette.grey[300]}`,
64
+ paddingTop: "14px"
65
+ }
66
+ });
67
+ export default styles;
@@ -0,0 +1,80 @@
1
+ const CustomDialogStyles = theme => ({
2
+ MuiBackdropRoot: {
3
+ opacity: "1",
4
+ transition: "opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms"
5
+ },
6
+ CustomDialogu: {
7
+ "& .MuiPaper-root": {
8
+ borderRadius: "12px 12px 0px 0px",
9
+ backgroundColor: `${theme?.palette?.greyshades?.light9} !important`,
10
+ "@media only screen and (min-width: 899px)": {
11
+ maxWidth: "400px",
12
+ border: `1px solid ${theme?.palette?.editor?.customDialogueBorder}`,
13
+ borderRadius: "12px"
14
+ }
15
+ },
16
+ "& .MuiDialogContent-root": {
17
+ padding: "20px 24px 8px 24px",
18
+ "& .MuiTypography-root": {
19
+ textAlign: "center",
20
+ fontFamily: "Inter, sans-serif",
21
+ fontSize: "14px",
22
+ fontWeight: 500,
23
+ color: theme?.palette?.editor?.textColor
24
+ }
25
+ },
26
+ "& .confirmBtn": {
27
+ backgroundColor: "#2563EB",
28
+ padding: "8px 12px",
29
+ color: "#ffffff",
30
+ fontWeight: 600,
31
+ fontSize: "14px",
32
+ opacity: 1,
33
+ borderRadius: "8px",
34
+ textTransform: "math-auto",
35
+ height: "36px",
36
+ padding: "0px 12px",
37
+ minWidth: "90px",
38
+ "&:hover": {
39
+ backgroundColor: "#2563EB"
40
+ },
41
+ "@media only screen and (max-width: 899px)": {
42
+ width: "50%"
43
+ }
44
+ },
45
+ "& .MuiDialogActions-root": {
46
+ justifyContent: "center",
47
+ paddingBottom: "20px"
48
+ },
49
+ "& .closeBtn": {
50
+ padding: "8px 12px",
51
+ color: theme?.palette?.editor?.customDialogueCloseBtnColor,
52
+ fontWeight: 600,
53
+ fontSize: "14px",
54
+ opacity: 1,
55
+ borderRadius: "8px",
56
+ textTransform: "math-auto",
57
+ height: "36px",
58
+ padding: "0px 12px",
59
+ minWidth: "90px",
60
+ backgroundColor: theme?.palette?.editor?.closeButtonBackground,
61
+ border: `1px solid ${theme?.palette?.editor?.customDialogueCloseBtnBorder}`,
62
+ "&:hover": {
63
+ backgroundColor: theme?.palette?.editor?.closeButtonBackground
64
+ },
65
+ "@media only screen and (max-width: 899px)": {
66
+ width: "50%"
67
+ }
68
+ },
69
+ "& .pullerRoot": {
70
+ padding: "8px 0"
71
+ },
72
+ "& .pullerGrid": {
73
+ width: "40px",
74
+ height: "5px",
75
+ backgroundColor: "#ccc",
76
+ borderRadius: "10px"
77
+ }
78
+ }
79
+ });
80
+ export default CustomDialogStyles;
@@ -0,0 +1,33 @@
1
+ import { MenuItem, Select } from "@mui/material";
2
+ import { fontFamilyMap } from "../utils/font";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ function CustomSelect(props) {
5
+ const {
6
+ onChange,
7
+ options = [],
8
+ value
9
+ } = props;
10
+ return /*#__PURE__*/_jsx(Select, {
11
+ fullWidth: true,
12
+ value: value,
13
+ onChange: onChange,
14
+ className: "editor-dd",
15
+ style: {
16
+ fontFamily: fontFamilyMap[value],
17
+ width: "100%",
18
+ height: "36px",
19
+ borderRadius: "10px",
20
+ fontSize: "14px"
21
+ },
22
+ children: options.map((option, i) => {
23
+ return /*#__PURE__*/_jsx(MenuItem, {
24
+ value: option.value,
25
+ style: {
26
+ fontFamily: option.text
27
+ },
28
+ children: option?.label || option?.text
29
+ }, i);
30
+ })
31
+ });
32
+ }
33
+ export default CustomSelect;
@@ -7,7 +7,7 @@ import { useEditorContext } from "../../hooks/useMouseMove";
7
7
  import { Transforms } from "slate";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
10
- const DRAGGABLE_TYPES = ["paragraph", "headingOne", "headingTwo", "headingThree", "grid"];
10
+ const DRAGGABLE_TYPES = ["paragraph", "headingOne", "headingTwo", "headingThree", "headingFour", "headingFive", "headingSix", "paragraphOne", "paragraphTwo", "paragraphThree", "grid"];
11
11
  const DragHandleStyle = fromPopper => {
12
12
  const handleDragStyle = fromPopper ? {
13
13
  position: "absolute",
@@ -1,7 +1,6 @@
1
1
  import React, { useEffect } from "react";
2
2
  import { useDraggable } from "@dnd-kit/core";
3
3
  import { Box } from "@mui/material";
4
- import DragIndicatorIcon from "@mui/icons-material/DragIndicator";
5
4
  import { SectionDragIcon } from "../iconListV2";
6
5
  import { jsx as _jsx } from "react/jsx-runtime";
7
6
  const Draggable = props => {
@@ -1,11 +1,3 @@
1
- export const defaultFonts = [
2
- // "EB Garamond",
3
- "Anton", "DM Serif Text", "Libre Baskerville", "Montserrat", "Open Sans", "Public Sans", "Raleway", "Space Mono", "Great Vibes", "Zeyada", "Allura", "Pinyon Script", "Dancing Script", "Gaegu", "Kite One", "Merriweather"];
4
- export const otherFonts = ["PoppinsRegular", "PoppinsBold", "Monaco", "Qwitcher Grypen", "Bulgarian Garamond", "Redacted Script", "Herr Von Muellerhoff", "Dawning of a New Day", "Coming Soon", "Engagement", "Ingrid Darling", "La Belle Aurore", "Mea Culpa", "The Girl Next Door", "Helvetica", "Georgia", "Times New Roman", "Courier New", "Impact"];
5
- export const googleFontList = ["Roboto", "Noto Sans JP", "Poppins", "Lato", "Inter", "Roboto Condensed", "Roboto Mono", "Oswald", "Noto Sans", "Nunito", "Nunito Sans", "Ubuntu", "Rubik", "Playfair Display", "Noto Sans KR", "Roboto Slab", "PT Sans", "Kanit", "Work Sans", "Lora", "DM Sans", "Mulish", "Quicksand", "Fira Sans", "Noto Sans TC", "Inconsolata", "Barlow", "Manrope", "IBM Plex Sans", "PT Serif", "Karla", "Titillium Web", "Heebo", "Noto Serif", "Nanum Gothic", "Noto Color Emoji", "Agdasima", "Bebas Neue", "Libre Franklin", "Mukta", "Outfit", "Josefin Sans", "Source Code Pro", "Jost", "Space Grotesk", "Hind Siliguri", "Arimo", "Cabin", "Barlow Condensed", "Dosis", "Fira Sans Condensed", "Bitter", "Archivo", "Figtree", "Noto Serif JP", "PT Sans Narrow", "Abel", "Noto Sans SC",
6
- // "Source Sans 3",
7
- "Hind",
8
- // "Exo 2",
9
- "Teko", "Oxygen", "Cairo", "Crimson Text", "Plus Jakarta Sans", "Overpass", "Pacifico", "Prompt", "Red Hat Display", "Varela Round", "Cormorant Garamond", "Assistant", "Comfortaa", "Lexend", "Signika Negative",
10
- // "M PLUS Rounded 1c",
11
- "Fjalla One", "Caveat", "IBM Plex Mono", "Arvo", "Lobster", "Schibsted Grotesk", "Chakra Petch", "Maven Pro", "Sora", "Kalam", "Onest", "Space Grotesk", "Outfit", 'Titillium Web', ...defaultFonts];
1
+ const otherFonts = ["PoppinsRegular", "PoppinsBold", "Qwitcher Grypen", "Bulgarian Garamond", "Redacted Script", "Herr Von Muellerhoff", "Dawning of a New Day", "Coming Soon", "Engagement", "Ingrid Darling", "La Belle Aurore", "Mea Culpa", "The Girl Next Door"];
2
+ const mostUsedGoogleFonts = ["Roboto", "Poppins", "Lato", "Inter", "Nunito", "Ubuntu", "Oswald", "Rubik", "Roboto Slab", "PT Sans", "Work Sans", "Lora", "Mulish", "DM Sans", "Fira Sans", "Quicksand", "Barlow", "Manrope", "IBM Plex Sans", "PT Serif", "Libre Franklin", "Bebas Neue", "Cabin", "Titillium Web", "Heebo", "Noto Serif", "Jost", "Source Code Pro", "Josefin Sans", "Dosis", "Fira Sans Condensed", "Archivo", "Noto Serif JP", "Crimson Text", "Cairo", "Pacifico", "Red Hat Display", "Assistant", "Comfortaa", "Lexend", "Fjalla One", "Caveat", "Arvo", "Lobster", "Schibsted Grotesk", "EB Garamond", "Sora", "Kalam", "Onest", "Space Grotesk", "Outfit", "Plus Jakarta Sans"];
3
+ export const googleFontList = [...mostUsedGoogleFonts, ...otherFonts];
@@ -1,7 +1,11 @@
1
- import { useEffect } from "react";
1
+ import { useEffect, useState } from "react";
2
2
  import WebFont from "webfontloader";
3
3
  import { useEditorContext } from "../../hooks/useMouseMove";
4
- import { defaultFonts, googleFontList, otherFonts } from "./FontList";
4
+ import { googleFontList } from "./FontList";
5
+ import CircularProgress from "@mui/material/CircularProgress";
6
+ import Box from "@mui/material/Box";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ import { Fragment as _Fragment } from "react/jsx-runtime";
5
9
  const FontLoader = props => {
6
10
  const {
7
11
  otherProps,
@@ -10,65 +14,72 @@ const FontLoader = props => {
10
14
  const {
11
15
  setFontFamilies
12
16
  } = useEditorContext();
17
+ const [loading, setLoading] = useState(true);
13
18
  const loadFontsInBatches = (families, batchSize = 5, maxRetries = 3) => {
14
19
  let currentIndex = 0;
15
20
  let retryCount = 0;
16
- function loadNextBatch() {
17
- if (currentIndex >= families?.length) {
18
- // console.log("All fonts have been loaded");
19
- return;
20
- }
21
- const batch = families?.slice(currentIndex, currentIndex + batchSize);
22
- const batchWithWeights = batch.map(font => `${font}:300,400,600,700`);
23
- WebFont.load({
24
- google: {
25
- families: [...batchWithWeights]
26
- },
27
- classes: false,
28
- timeout: 2000,
29
- active: () => {
30
- // console.log(`Fonts loaded successfully: ${batch}`);
31
- currentIndex += batchSize;
32
- retryCount = 0; // Reset retry count for the next batch
33
- loadNextBatch();
34
- },
35
- inactive: () => {
36
- // console.log(`Font loading failed for: ${batch}`);
37
-
38
- if (retryCount < maxRetries) {
39
- retryCount++;
40
- // console.log(`Retrying batch (${retryCount}/${maxRetries})...`);
41
- // Retry loading the same batch
42
- loadNextBatch();
43
- } else {
44
- // console.log(
45
- // `Max retries reached for batch: ${batch}. Moving to the next batch.`
46
- // );
21
+ let hideLoaderOn = 30;
22
+ const loadNextBatch = () => {
23
+ try {
24
+ if (currentIndex >= families?.length) {
25
+ // console.log("All fonts have been loaded");
26
+ setLoading(false);
27
+ return;
28
+ }
29
+ const batch = families?.slice(currentIndex, currentIndex + batchSize);
30
+ const batchWithWeights = batch.map(font => `${font}:300,400,600,700`);
31
+ WebFont.load({
32
+ google: {
33
+ families: [...batchWithWeights]
34
+ },
35
+ classes: false,
36
+ timeout: 2000,
37
+ active: () => {
38
+ // console.log(`Fonts loaded successfully: ${batch}`);
47
39
  currentIndex += batchSize;
48
40
  retryCount = 0; // Reset retry count for the next batch
49
41
  loadNextBatch();
42
+ },
43
+ inactive: () => {
44
+ // console.log(`Font loading failed for: ${batch}`);
45
+ if (retryCount < maxRetries) {
46
+ retryCount++;
47
+ // console.log(`Retrying batch (${retryCount}/${maxRetries})...`);
48
+ // Retry loading the same batch
49
+ loadNextBatch();
50
+ } else {
51
+ // console.log(
52
+ // `Max retries reached for batch: ${batch}. Moving to the next batch.`
53
+ // );
54
+ currentIndex += batchSize;
55
+ retryCount = 0;
56
+ loadNextBatch();
57
+ }
50
58
  }
51
- }
52
- });
53
- }
59
+ });
60
+ } catch (err) {
61
+ setLoading(false);
62
+ }
63
+ };
54
64
  loadNextBatch();
55
65
  };
56
66
  useEffect(() => {
57
- let families = [...otherFonts, ...defaultFonts];
67
+ let families = [...googleFontList];
58
68
  if (!readOnly) {
59
69
  otherProps?.services("listGoogleFont", []).then(data => {
60
- families = [...families, ...(data?.data || [])];
61
- const filteredfamilies = families?.filter(font => !font?.includes("Material"));
70
+ families = [...(data?.data || [])];
62
71
  setFontFamilies({
63
72
  id: 1,
64
73
  format: "fontFamily",
65
74
  type: "fontfamilydropdown",
66
- options: filteredfamilies || []
75
+ options: families || []
67
76
  });
68
77
  loadFontsInBatches(families);
69
78
  }).catch(err => {
70
79
  // console.log(err);
80
+ setLoading(false);
71
81
  });
82
+ // setLoading(true);
72
83
  } else {
73
84
  function correctFontArray(fontString) {
74
85
  let fontsArray = fontString.split(",");
@@ -88,11 +99,32 @@ const FontLoader = props => {
88
99
  let families = Array.from(fontSet);
89
100
  families = correctFontArray(families.join(", "));
90
101
  families = families?.map(font => font?.replace(/\"/g, ""));
91
- families = families?.map(font => font?.replace(", sans-serif", "")); //This is temporary fix for patch
102
+ families = families?.map(font => font?.replace(", sans-serif", ""));
92
103
  families = families.filter(font => googleFontList.includes(font));
93
104
  loadFontsInBatches(families);
94
105
  }
106
+
107
+ // Set timeout to hide loader after 5 seconds
108
+ const timeoutId = setTimeout(() => {
109
+ setLoading(false);
110
+ }, 5000);
111
+ return () => clearTimeout(timeoutId);
95
112
  }, []);
96
- return null;
113
+ return /*#__PURE__*/_jsx(_Fragment, {
114
+ children: loading ? /*#__PURE__*/_jsx(Box, {
115
+ sx: {
116
+ position: "absolute",
117
+ top: 0,
118
+ left: 0,
119
+ right: 0,
120
+ bottom: 0,
121
+ zIndex: 99999,
122
+ display: "flex",
123
+ justifyContent: "center",
124
+ alignItems: "center"
125
+ },
126
+ children: /*#__PURE__*/_jsx(CircularProgress, {})
127
+ }) : null
128
+ });
97
129
  };
98
130
  export default FontLoader;
@@ -44,6 +44,16 @@ import ChervDown from "../assets/svg/ChervDown";
44
44
  import ChervUp from "../assets/svg/ChervUp";
45
45
  import { jsx as _jsx } from "react/jsx-runtime";
46
46
  import { jsxs as _jsxs } from "react/jsx-runtime";
47
+ const HeadingIcon = ({
48
+ variant
49
+ }) => {
50
+ return /*#__PURE__*/_jsx("div", {
51
+ style: {
52
+ color: "#64748B"
53
+ },
54
+ children: variant
55
+ });
56
+ };
47
57
  const iconList = {
48
58
  fontFamily: /*#__PURE__*/_jsx(FontFamilyIcon, {
49
59
  size: 20
@@ -76,6 +86,24 @@ const iconList = {
76
86
  size: 18,
77
87
  fill: "#64748B"
78
88
  }),
89
+ headingFour: /*#__PURE__*/_jsx(HeadingIcon, {
90
+ variant: "H4"
91
+ }),
92
+ headingFive: /*#__PURE__*/_jsx(HeadingIcon, {
93
+ variant: "H5"
94
+ }),
95
+ headingSix: /*#__PURE__*/_jsx(HeadingIcon, {
96
+ variant: "H6"
97
+ }),
98
+ paragraphOne: /*#__PURE__*/_jsx(HeadingIcon, {
99
+ variant: "P1"
100
+ }),
101
+ paragraphTwo: /*#__PURE__*/_jsx(HeadingIcon, {
102
+ variant: "P2"
103
+ }),
104
+ paragraphThree: /*#__PURE__*/_jsx(HeadingIcon, {
105
+ variant: "P3"
106
+ }),
79
107
  blockquote: /*#__PURE__*/_jsx(MdFormatQuote, {
80
108
  size: 20,
81
109
  fill: "#64748B",
@@ -18,7 +18,7 @@ const Upload = props => {
18
18
  item: true,
19
19
  xs: 12,
20
20
  sx: {
21
- padding: "10px",
21
+ padding: 0,
22
22
  height: '100%'
23
23
  },
24
24
  className: "ims-right",
@@ -76,7 +76,7 @@ const ImageSelectorStyles = theme => ({
76
76
  background: theme?.palette?.editor?.deviderBgColor,
77
77
  "@media only screen and (min-width: 899px)": {
78
78
  margin: "0px 24px",
79
- width: 'calc(100% - 48px)'
79
+ width: "calc(100% - 48px)"
80
80
  }
81
81
  },
82
82
  "& .primaryBtn": {
@@ -104,12 +104,6 @@ const ImageSelectorStyles = theme => ({
104
104
  marginRight: "8px !important"
105
105
  },
106
106
  "& .MuiGrid-root": {
107
- "&::-webkit-scrollbar-thumb": {
108
- background: `none !important`
109
- },
110
- "&::-webkit-scrollbar-track": {
111
- visibility: "hidden"
112
- },
113
107
  "&::-webkit-scrollbar-thumb": {
114
108
  background: `${theme?.palette?.editor?.brainPopupScroll} !important`
115
109
  },
@@ -118,10 +112,10 @@ const ImageSelectorStyles = theme => ({
118
112
  }
119
113
  },
120
114
  "& .MuiImageList-root": {
121
- margin: '0px'
115
+ margin: "0px"
122
116
  },
123
117
  "& .MuiDialogContent-root": {
124
- padding: '20px 24px 5px 24px'
118
+ padding: "20px 24px 5px 24px"
125
119
  }
126
120
  },
127
121
  titleTypo: {
@@ -6,8 +6,7 @@ const UploadStyles = theme => ({
6
6
  boxShadow: "0px 4px 10px rgba(0, 0, 0, 0.16)",
7
7
  background: theme?.palette?.editor?.uploadFileBg,
8
8
  height: '100%',
9
- minHeight: '150px',
10
- height: 'inherit'
9
+ minHeight: '150px'
11
10
  },
12
11
  uploadField: {
13
12
  width: "100%",
@@ -53,18 +53,12 @@ const usePopupStyles = theme => ({
53
53
  "& button": {
54
54
  color: theme?.palette?.editor?.textColor
55
55
  },
56
- "@media only screen and (min-width: 899px)": {
57
- maxHeight: "400px"
58
- },
56
+ // "@media only screen and (min-width: 899px)": {
57
+ // maxHeight: "400px",
58
+ // },
59
59
  "& .orderedListIcon, .bulletedListTextIcon, .checkedListTextIcon, .accordianIconSvgTextFormat": {
60
60
  width: "20px !important"
61
61
  },
62
- "&::-webkit-scrollbar-thumb": {
63
- background: `none !important`
64
- },
65
- "&::-webkit-scrollbar-track": {
66
- visibility: "hidden"
67
- },
68
62
  "&::-webkit-scrollbar-thumb": {
69
63
  background: `${theme?.palette?.editor?.brainPopupScroll} !important`
70
64
  },
@@ -148,13 +142,13 @@ const usePopupStyles = theme => ({
148
142
  }
149
143
  },
150
144
  "& .calederIconSvg": {
151
- '& rect': {
145
+ "& rect": {
152
146
  stroke: theme?.palette?.editor?.closeButtonSvgStroke
153
147
  },
154
- '& .strokePath': {
148
+ "& .strokePath": {
155
149
  stroke: theme?.palette?.editor?.closeButtonSvgStroke
156
150
  },
157
- '& .fillPath': {
151
+ "& .fillPath": {
158
152
  fill: theme?.palette?.editor?.closeButtonSvgStroke
159
153
  }
160
154
  }
@@ -65,7 +65,8 @@ const Settings = props => {
65
65
  editor: editor,
66
66
  path: path,
67
67
  customProps: customProps,
68
- theme: theme
68
+ theme: theme,
69
+ onClose: onClose
69
70
  }) : null
70
71
  })]
71
72
  })
@@ -8,7 +8,8 @@ const AppHeaderSettings = props => {
8
8
  const {
9
9
  editor,
10
10
  path,
11
- customProps
11
+ customProps,
12
+ onClose
12
13
  } = props;
13
14
  const item_path = path?.split("|").map(m => parseInt(m));
14
15
  const element_path = [...item_path, 0];
@@ -27,7 +28,7 @@ const AppHeaderSettings = props => {
27
28
  });
28
29
  };
29
30
  const handleClose = () => {
30
- console.log("close");
31
+ onClose();
31
32
  };
32
33
  return /*#__PURE__*/_jsx(Box, {
33
34
  component: "div",
@@ -8,7 +8,8 @@ const BoxSettings = props => {
8
8
  const {
9
9
  editor,
10
10
  path,
11
- customProps
11
+ customProps,
12
+ onClose
12
13
  } = props;
13
14
  const item_path = path?.split("|").map(m => parseInt(m));
14
15
  const element_path = [...item_path];
@@ -27,7 +28,7 @@ const BoxSettings = props => {
27
28
  });
28
29
  };
29
30
  const handleClose = () => {
30
- console.log("close");
31
+ onClose();
31
32
  };
32
33
  return /*#__PURE__*/_jsx(Box, {
33
34
  component: "div",