@flozy/editor 9.0.9 → 9.1.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 (124) hide show
  1. package/dist/Editor/ChatEditor.js +3 -2
  2. package/dist/Editor/CommonEditor.js +103 -24
  3. package/dist/Editor/DialogWrapper.js +31 -25
  4. package/dist/Editor/Editor.css +19 -1
  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 +5 -5
  10. package/dist/Editor/Elements/Color Picker/Styles.js +1 -1
  11. package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +4 -1
  12. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +3 -4
  13. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +6 -1
  14. package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +19 -9
  15. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +32 -2
  16. package/dist/Editor/Elements/DataView/Layouts/TableView.js +126 -29
  17. package/dist/Editor/Elements/DataView/Layouts/ViewData.js +3 -3
  18. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +1 -1
  19. package/dist/Editor/Elements/DataView/styles.js +8 -8
  20. package/dist/Editor/Elements/Embed/Image.js +2 -2
  21. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +0 -14
  22. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +2 -1
  23. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +2 -1
  24. package/dist/Editor/Elements/FreeGrid/styles.js +3 -0
  25. package/dist/Editor/Elements/Grid/GridItem.js +2 -3
  26. package/dist/Editor/Elements/Link/Link.js +70 -43
  27. package/dist/Editor/Elements/SimpleText/index.js +0 -1
  28. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  29. package/dist/Editor/Elements/Table/Table.js +5 -4
  30. package/dist/Editor/Elements/Table/TableCell.js +4 -3
  31. package/dist/Editor/Elements/Title/title.js +13 -1
  32. package/dist/Editor/Elements/Variables/Style.js +28 -2
  33. package/dist/Editor/Elements/Variables/VariableButton.js +17 -4
  34. package/dist/Editor/Styles/EditorStyles.js +5 -5
  35. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  36. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  37. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  38. package/dist/Editor/Toolbar/FormatTools/TextSize.js +7 -15
  39. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +1 -0
  40. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +9 -8
  41. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
  42. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +210 -85
  43. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +2 -1
  44. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +16 -12
  45. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +57 -13
  46. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +438 -0
  47. package/dist/Editor/Toolbar/PopupTool/index.js +2 -1
  48. package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
  49. package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
  50. package/dist/Editor/common/ColorPickerButton.js +35 -9
  51. package/dist/Editor/common/CustomColorPicker/index.js +106 -0
  52. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  53. package/dist/Editor/common/CustomDialog/index.js +90 -0
  54. package/dist/Editor/common/CustomDialog/styles.js +80 -0
  55. package/dist/Editor/common/CustomDialog2/index.js +94 -0
  56. package/dist/Editor/common/CustomDialog2/style.js +67 -0
  57. package/dist/Editor/common/CustomSelect.js +33 -0
  58. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  59. package/dist/Editor/common/DnD/Draggable.js +0 -1
  60. package/dist/Editor/common/FontLoader/FontLoader.js +3 -0
  61. package/dist/Editor/common/Icon.js +28 -0
  62. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  63. package/dist/Editor/common/ImageSelector/UploadStyles.js +0 -1
  64. package/dist/Editor/common/LinkSettings/index.js +2 -1
  65. package/dist/Editor/common/MentionsPopup/Styles.js +6 -12
  66. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  67. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  68. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  69. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  70. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  71. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
  72. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +3 -2
  73. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  74. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +3 -2
  75. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +8 -2
  76. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  77. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  78. package/dist/Editor/common/RnD/Utils/gridDropItem.js +5 -4
  79. package/dist/Editor/common/RnD/Utils/index.js +45 -0
  80. package/dist/Editor/common/RnD/index.js +23 -3
  81. package/dist/Editor/common/Shorthands/elements.js +54 -0
  82. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  83. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +5 -0
  84. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  85. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  86. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +10 -2
  87. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +35 -11
  88. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +13 -4
  89. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  90. package/dist/Editor/common/Uploader.js +8 -0
  91. package/dist/Editor/commonStyle.js +114 -69
  92. package/dist/Editor/helper/index.js +2 -2
  93. package/dist/Editor/helper/theme.js +200 -2
  94. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  95. package/dist/Editor/hooks/useMouseMove.js +9 -3
  96. package/dist/Editor/plugins/withEmbeds.js +1 -1
  97. package/dist/Editor/plugins/withHTML.js +19 -14
  98. package/dist/Editor/plugins/withLayout.js +1 -1
  99. package/dist/Editor/plugins/withTable.js +1 -1
  100. package/dist/Editor/theme/ThemeList.js +50 -173
  101. package/dist/Editor/theme/index.js +144 -0
  102. package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
  103. package/dist/Editor/themeSettings/buttons/index.js +283 -0
  104. package/dist/Editor/themeSettings/buttons/style.js +21 -0
  105. package/dist/Editor/themeSettings/colorTheme/index.js +292 -0
  106. package/dist/Editor/themeSettings/colorTheme/style.js +77 -0
  107. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  108. package/dist/Editor/themeSettings/fonts/index.js +220 -0
  109. package/dist/Editor/themeSettings/fonts/style.js +44 -0
  110. package/dist/Editor/themeSettings/icons.js +60 -0
  111. package/dist/Editor/themeSettings/index.js +320 -0
  112. package/dist/Editor/themeSettings/style.js +152 -0
  113. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  114. package/dist/Editor/themeSettingsAI/index.js +356 -0
  115. package/dist/Editor/themeSettingsAI/saveTheme.js +197 -0
  116. package/dist/Editor/themeSettingsAI/style.js +250 -0
  117. package/dist/Editor/utils/SlateUtilityFunctions.js +150 -37
  118. package/dist/Editor/utils/button.js +0 -14
  119. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +23 -0
  120. package/dist/Editor/utils/draftToSlate.js +3 -2
  121. package/dist/Editor/utils/font.js +40 -37
  122. package/dist/Editor/utils/helper.js +59 -19
  123. package/dist/Editor/utils/link.js +1 -1
  124. package/package.json +5 -2
@@ -50,8 +50,7 @@ const GridItemToolbar = props => {
50
50
  open: true,
51
51
  placement: "top-end",
52
52
  sx: classes.popTools,
53
- className: "gi-tool-pp",
54
- disablePortal: true,
53
+ className: "gi-tool-pp hide-popper-on-overlap",
55
54
  contentEditable: false,
56
55
  children: /*#__PURE__*/_jsxs(Box, {
57
56
  className: "ico-grp-ss",
@@ -288,7 +287,7 @@ const GridItem = props => {
288
287
  ...getBRProps,
289
288
  display: "flex",
290
289
  flexDirection: flexDirection || "column",
291
- background: bgColor || "transparent",
290
+ background: bgColor,
292
291
  borderColor: getBorderColor(),
293
292
  borderWidth: borderWidth || "1px",
294
293
  borderStyle: borderStyle || "solid",
@@ -1,7 +1,7 @@
1
- import React, { useState } from "react";
1
+ import React, { useRef, useState } from "react";
2
2
  import { Node, Transforms } from "slate";
3
- import { ReactEditor, useFocused, useSelected, useSlateStatic } from "slate-react";
4
- import { Box, IconButton, Tooltip } from "@mui/material";
3
+ import { ReactEditor, useSelected, useSlateStatic } from "slate-react";
4
+ import { Box, IconButton, Popper, Tooltip } from "@mui/material";
5
5
  import OpenInNewIcon from "@mui/icons-material/OpenInNew";
6
6
  import EditIcon from "@mui/icons-material/Edit";
7
7
  import LinkOffIcon from "@mui/icons-material/LinkOff";
@@ -11,6 +11,62 @@ import { getLinkType, handleLinkType } from "../../utils/helper";
11
11
  import LinkSettings from "../../common/LinkSettings";
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import { jsxs as _jsxs } from "react/jsx-runtime";
14
+ const Toolbar = props => {
15
+ const {
16
+ urlPath,
17
+ linkType,
18
+ showInNewTab,
19
+ selected,
20
+ linkRef,
21
+ onEditLink,
22
+ editor
23
+ } = props;
24
+ const btnProps = handleLinkType(urlPath, linkType, true, showInNewTab === "_blank");
25
+ const navType = getLinkType(linkType, urlPath);
26
+ const hideOpenLink = navType === "page" || !navType;
27
+ return selected ? /*#__PURE__*/_jsx(Popper, {
28
+ anchorEl: linkRef?.current,
29
+ open: true,
30
+ placement: "top-start",
31
+ className: "hide-popper-on-overlap",
32
+ contentEditable: false,
33
+ style: {
34
+ zIndex: 1000
35
+ },
36
+ children: /*#__PURE__*/_jsxs(Box, {
37
+ className: "element-toolbar hr",
38
+ style: {
39
+ width: "150px",
40
+ display: "flex",
41
+ position: "unset"
42
+ },
43
+ component: "div",
44
+ children: [hideOpenLink ? null : /*#__PURE__*/_jsx(Tooltip, {
45
+ title: "Open",
46
+ children: /*#__PURE__*/_jsx(Box, {
47
+ sx: {
48
+ display: "inline-flex",
49
+ color: "rgba(0, 0, 0, 0.54)"
50
+ },
51
+ ...btnProps,
52
+ children: /*#__PURE__*/_jsx(OpenInNewIcon, {})
53
+ })
54
+ }), /*#__PURE__*/_jsx(Tooltip, {
55
+ title: "Edit",
56
+ children: /*#__PURE__*/_jsx(IconButton, {
57
+ onClick: onEditLink,
58
+ children: /*#__PURE__*/_jsx(EditIcon, {})
59
+ })
60
+ }), /*#__PURE__*/_jsx(Tooltip, {
61
+ title: "Remove",
62
+ children: /*#__PURE__*/_jsx(IconButton, {
63
+ onClick: () => removeLink(editor),
64
+ children: /*#__PURE__*/_jsx(LinkOffIcon, {})
65
+ })
66
+ })]
67
+ })
68
+ }) : null;
69
+ };
14
70
  const linkStyles = () => ({
15
71
  linkBtn: {
16
72
  border: "none",
@@ -40,7 +96,6 @@ const Link = props => {
40
96
  } = customProps;
41
97
  const editor = useSlateStatic();
42
98
  const selected = useSelected();
43
- const focused = useFocused();
44
99
  const [showInput, setShowInput] = useState(false);
45
100
  const [linkData, setLinkData] = useState({
46
101
  name: "",
@@ -53,6 +108,7 @@ const Link = props => {
53
108
  const showInNewTab = element?.showInNewTab || element?.target;
54
109
  const linkType = element?.linkType;
55
110
  const classes = linkStyles();
111
+ const linkRef = useRef(null);
56
112
  const updateLink = data => {
57
113
  Transforms.setNodes(editor, data, {
58
114
  at: path
@@ -77,54 +133,25 @@ const Link = props => {
77
133
  const handleClose = () => {
78
134
  setShowInput(false);
79
135
  };
80
- const Toolbar = () => {
81
- const btnProps = handleLinkType(urlPath, linkType, true, showInNewTab === "_blank");
82
- const navType = getLinkType(linkType, urlPath);
83
- const hideOpenLink = navType === "page" || !navType;
84
- return selected && focused ? /*#__PURE__*/_jsxs("div", {
85
- className: "element-toolbar hr",
86
- contentEditable: false,
87
- style: {
88
- width: "150px",
89
- top: "100%",
90
- left: "0px",
91
- display: "flex"
92
- },
93
- children: [hideOpenLink ? null : /*#__PURE__*/_jsx(Tooltip, {
94
- title: "Open",
95
- children: /*#__PURE__*/_jsx(Box, {
96
- sx: {
97
- display: "inline-flex",
98
- color: "rgba(0, 0, 0, 0.54)"
99
- },
100
- ...btnProps,
101
- children: /*#__PURE__*/_jsx(OpenInNewIcon, {})
102
- })
103
- }), /*#__PURE__*/_jsx(Tooltip, {
104
- title: "Edit",
105
- children: /*#__PURE__*/_jsx(IconButton, {
106
- onClick: onEditLink,
107
- children: /*#__PURE__*/_jsx(EditIcon, {})
108
- })
109
- }), /*#__PURE__*/_jsx(Tooltip, {
110
- title: "Remove",
111
- children: /*#__PURE__*/_jsx(IconButton, {
112
- onClick: () => removeLink(editor),
113
- children: /*#__PURE__*/_jsx(LinkOffIcon, {})
114
- })
115
- })]
116
- }) : null;
117
- };
118
136
  const buttonProps = handleLinkType(urlPath, linkType, readOnly, showInNewTab === "_blank");
119
137
  return /*#__PURE__*/_jsxs("div", {
120
138
  className: "link",
139
+ ref: linkRef,
121
140
  children: [/*#__PURE__*/_jsx(Box, {
122
141
  ...attributes,
123
142
  ...element.attr,
124
143
  sx: classes.linkBtn,
125
144
  ...buttonProps,
126
145
  children: children
127
- }), /*#__PURE__*/_jsx(Toolbar, {}), showInput ? /*#__PURE__*/_jsx(LinkSettings, {
146
+ }), /*#__PURE__*/_jsx(Toolbar, {
147
+ urlPath: urlPath,
148
+ linkType: linkType,
149
+ showInNewTab: showInNewTab,
150
+ selected: selected,
151
+ linkRef: linkRef,
152
+ onEditLink: onEditLink,
153
+ editor: editor
154
+ }), showInput ? /*#__PURE__*/_jsx(LinkSettings, {
128
155
  handleClose: handleClose,
129
156
  onSave: ({
130
157
  linkType,
@@ -5,7 +5,6 @@ import { Box } from "@mui/material";
5
5
  import { isTextSelected } from "../../utils/helper";
6
6
  import { useEditorContext } from "../../hooks/useMouseMove";
7
7
  import SimpleTextStyle from "./style";
8
- import { getBreakpointLineSpacing } from "../../helper/theme";
9
8
  import { jsx as _jsx } from "react/jsx-runtime";
10
9
  import { Fragment as _Fragment } from "react/jsx-runtime";
11
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -35,8 +35,8 @@ const SimpleTextStyle = ({
35
35
  height: "24px",
36
36
  overflow: "hidden",
37
37
  fontSize: "14px",
38
- display: 'inline-flex',
39
- alignItems: 'center',
38
+ display: "inline-flex",
39
+ alignItems: "center",
40
40
  "& .bg-pad-sl": {
41
41
  padding: "2px 4px 2px 4px",
42
42
  background: "transparent",
@@ -133,7 +133,8 @@ const Table = props => {
133
133
  const classes = TableStyles(editorTheme);
134
134
  const {
135
135
  readOnly,
136
- isMobile
136
+ isMobile,
137
+ hideTools = []
137
138
  } = customProps;
138
139
  const [openSetttings, setOpenSettings] = useState(false);
139
140
  const [exandTools, setExpandTools] = useState(null);
@@ -304,16 +305,16 @@ const Table = props => {
304
305
  ...attributes,
305
306
  children: children
306
307
  })
307
- }), /*#__PURE__*/_jsx(AddRowCol, {
308
+ }), !hideTools.includes("add_column") && /*#__PURE__*/_jsx(AddRowCol, {
308
309
  ...commonAddBtnProps,
309
310
  addType: "col",
310
311
  onAdd: addCol
311
312
  })]
312
- }), /*#__PURE__*/_jsx(AddRowCol, {
313
+ }), !hideTools.includes("add_column") && /*#__PURE__*/_jsx(AddRowCol, {
313
314
  ...commonAddBtnProps,
314
315
  addType: "row",
315
316
  onAdd: addRow
316
- }), !readOnly && /*#__PURE__*/_jsx(ToolBar, {
317
+ }), !readOnly && !hideTools.includes("settings") && /*#__PURE__*/_jsx(ToolBar, {
317
318
  selected: selected,
318
319
  showTool: showTool,
319
320
  classes: classes,
@@ -48,7 +48,8 @@ const TableCell = props => {
48
48
  customProps
49
49
  } = props;
50
50
  const {
51
- readOnly
51
+ readOnly,
52
+ hideTools = []
52
53
  } = customProps;
53
54
  const isMobile = window.matchMedia("(max-width: 899px)")?.matches || false;
54
55
  const {
@@ -106,8 +107,8 @@ const TableCell = props => {
106
107
  const isFirstRow = row === 0;
107
108
  const isFirstColumn = column === 0;
108
109
  const [hoverRow, hoverCol] = hoverPath ? hoverPath.slice(-2) : [];
109
- const showColDrag = isFirstRow && hoverCol === column && !resizing && !readOnly;
110
- const showRowDrag = isFirstColumn && hoverRow === row && !resizing && !readOnly;
110
+ const showColDrag = isFirstRow && hoverCol === column && !resizing && !readOnly && !hideTools.includes("drag");
111
+ const showRowDrag = isFirstColumn && hoverRow === row && !resizing && !readOnly && !hideTools.includes("drag");
111
112
  const [parentProps] = tableNode || [{}];
112
113
  const [rowProps] = rowNode || [{}];
113
114
  const tableDOM = table.getDOMNode(path, true);
@@ -1,12 +1,24 @@
1
1
  import React from "react";
2
+ import { Text } from "slate";
2
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
+ const isEmptyTextNode = node => {
5
+ if (Text.isText(node)) {
6
+ return !node.text.trim();
7
+ }
8
+ return false;
9
+ };
3
10
  const Title = props => {
4
11
  const {
12
+ element,
5
13
  attributes,
6
- children
14
+ children,
15
+ customProps
7
16
  } = props;
17
+ const isEmpty = !customProps?.readOnly && isEmptyTextNode(element?.children[0]) ? "empty" : "";
8
18
  return /*#__PURE__*/_jsx("div", {
9
19
  ...attributes,
20
+ placeholder: "Title",
21
+ className: `content-editable ${isEmpty}`,
10
22
  style: {
11
23
  fontWeight: "bold",
12
24
  fontSize: "20px"
@@ -1,4 +1,4 @@
1
- const VariableStyles = () => ({
1
+ const VariableStyles = theme => ({
2
2
  variablesItem: {
3
3
  color: "#2563EB",
4
4
  background: "#EEEEEE"
@@ -37,8 +37,34 @@ const VariableStyles = () => ({
37
37
  "& .MuiMenuItem-root": {
38
38
  color: "#64748B"
39
39
  },
40
+ "& .MuiPaper-root": {
41
+ borderRadius: '8px',
42
+ backgroundColor: `${theme?.palette?.editor?.miniToolBarBackground} !important`,
43
+ marginTop: '5px',
44
+ "@media only screen and (max-width: 599px)": {
45
+ padding: '10px 0px'
46
+ }
47
+ },
48
+ "& .MuiList-root": {
49
+ padding: '0px'
50
+ },
51
+ "& .MuiButtonBase-root": {
52
+ margin: '6px',
53
+ borderRadius: '8px',
54
+ padding: '6px 14px',
55
+ fontSize: '14px',
56
+ fontWeight: '400',
57
+ color: theme?.palette?.editor?.deletePopUpButtonTextColor,
58
+ "&:hover": {
59
+ background: `${theme?.palette?.editor?.menuOptionHoverBackground} !important`
60
+ },
61
+ "@media only screen and (max-width: 599px)": {
62
+ minHeight: '30px',
63
+ margin: '0px 6px'
64
+ }
65
+ },
40
66
  "& .Mui-selected": {
41
- backgroundColor: "rgba(0, 0, 0, 0.04) !important"
67
+ backgroundColor: 'unset !important'
42
68
  }
43
69
  }
44
70
  });
@@ -3,11 +3,15 @@ import { useSlateStatic } from "slate-react";
3
3
  import { MenuItem, Select } from "@mui/material";
4
4
  import { insertVariables } from "../../utils/variables";
5
5
  import VariableStyles from "./Style";
6
- import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown";
6
+ import KeyboardArrowDownRoundedIcon from '@mui/icons-material/KeyboardArrowDownRounded';
7
+ import { useEditorContext } from "../../hooks/useMouseMove";
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
10
  const VariableButton = props => {
10
- const classes = VariableStyles();
11
+ const {
12
+ theme
13
+ } = useEditorContext();
14
+ const classes = VariableStyles(theme);
11
15
  const editor = useSlateStatic();
12
16
  const {
13
17
  options
@@ -24,13 +28,14 @@ const VariableButton = props => {
24
28
  value: "",
25
29
  sx: classes.variableBtn,
26
30
  onChange: updateVariable,
27
- IconComponent: () => /*#__PURE__*/_jsx(KeyboardArrowDownIcon, {}),
31
+ IconComponent: () => /*#__PURE__*/_jsx(KeyboardArrowDownRoundedIcon, {}),
28
32
  MenuProps: {
29
33
  sx: classes.variableMenuItem,
30
34
  PaperProps: {
31
35
  style: {
32
36
  maxHeight: 300,
33
- overflowY: "auto"
37
+ overflowY: "auto",
38
+ transformOrigin: 'top left'
34
39
  },
35
40
  sx: {
36
41
  "&::-webkit-scrollbar-track": {
@@ -40,6 +45,14 @@ const VariableButton = props => {
40
45
  borderRadius: "16px"
41
46
  }
42
47
  }
48
+ },
49
+ anchorOrigin: {
50
+ vertical: 'bottom',
51
+ horizontal: 'right'
52
+ },
53
+ transformOrigin: {
54
+ vertical: 'top',
55
+ horizontal: 'right'
43
56
  }
44
57
  },
45
58
  children: [/*#__PURE__*/_jsx(MenuItem, {
@@ -133,7 +133,7 @@ const editorStyles = ({
133
133
  },
134
134
  "& .accordion-summary-collapse-btn": {
135
135
  padding: "4px",
136
- width: '5px'
136
+ width: "5px"
137
137
  },
138
138
  "& .workflow-icon-btn": {
139
139
  pointerEvents: "none",
@@ -242,7 +242,7 @@ const editorStyles = ({
242
242
  }
243
243
  },
244
244
  "& .section-tw": {
245
- background: 'transparent !important',
245
+ background: "transparent !important",
246
246
  "& button": {
247
247
  padding: "2px",
248
248
  borderRadius: "0px",
@@ -291,8 +291,8 @@ const editorStyles = ({
291
291
  }
292
292
  },
293
293
  "& ::selection": {
294
- background: 'rgba(35, 131, 226, 0.35)!important',
295
- color: 'inherit'
294
+ background: "rgba(35, 131, 226, 0.35)!important",
295
+ color: "inherit"
296
296
  },
297
297
  "&.readOnlyContainer": {
298
298
  "& .max-content": {
@@ -302,7 +302,7 @@ const editorStyles = ({
302
302
  },
303
303
  fullScreenWrapper: {
304
304
  "& .editor-wrapper": {
305
- paddingTop: '20px'
305
+ paddingTop: "20px"
306
306
  },
307
307
  "& .MuiDialog-paper, & .MuiPopover-paper": {
308
308
  background: `${theme?.palette?.editor?.background} !important`
@@ -1,8 +1,32 @@
1
1
  import React from "react";
2
2
  import { Select, MenuItem } from "@mui/material";
3
- import { addMarkData, activeMark } from "../../utils/SlateUtilityFunctions.js";
3
+ import { addMarkData, activeMark, getSelectedElementStyle } from "../../utils/SlateUtilityFunctions.js";
4
+ import { toolbarGroups } from "../toolbarGroups.js";
4
5
  import KeyboardArrowDownRoundedIcon from "@mui/icons-material/KeyboardArrowDownRounded";
6
+ import { googleFontList as defaultFonts } from "../../common/FontLoader/FontList.js";
5
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
+ const allTools = toolbarGroups.flat();
9
+ const fontWeight = allTools.find(f => f.format === "fontWeight");
10
+ export const getValue = (editor, format) => {
11
+ switch (format) {
12
+ case "fontFamily":
13
+ {
14
+ const style = getSelectedElementStyle("font-family", editor);
15
+ return style || defaultFonts[0];
16
+ }
17
+ case "fontWeight":
18
+ {
19
+ const {
20
+ options
21
+ } = fontWeight || {};
22
+ const fontWeightStyle = getSelectedElementStyle("font-weight", editor);
23
+ const selected = options?.find(o => o.value === fontWeightStyle || o.numVal === fontWeightStyle);
24
+ return selected?.value;
25
+ }
26
+ default:
27
+ return activeMark(editor, format);
28
+ }
29
+ };
6
30
  const Dropdown = ({
7
31
  classes,
8
32
  editor,
@@ -10,7 +34,7 @@ const Dropdown = ({
10
34
  options,
11
35
  width
12
36
  }) => {
13
- const value = activeMark(editor, format);
37
+ const value = getValue(editor, format);
14
38
  const changeMarkData = (event, format) => {
15
39
  event.preventDefault();
16
40
  const value = event.target.value;
@@ -20,7 +44,7 @@ const Dropdown = ({
20
44
  });
21
45
  };
22
46
  return /*#__PURE__*/_jsx(Select, {
23
- value: value,
47
+ value: value || options?.[0]?.value,
24
48
  className: "editor-dd",
25
49
  onChange: e => changeMarkData(e, format),
26
50
  MenuProps: {
@@ -1,9 +1,10 @@
1
1
  import React from "react";
2
2
  import { Autocomplete, TextField } from "@mui/material";
3
- import { activeMark, addMarkData } from "../../utils/SlateUtilityFunctions.js";
3
+ import { addMarkData } from "../../utils/SlateUtilityFunctions.js";
4
4
  import usePopupStyle from "../PopupTool/PopupToolStyle.js";
5
5
  import { useEditorContext } from "../../hooks/useMouseMove.js";
6
- import KeyboardArrowDownRoundedIcon from '@mui/icons-material/KeyboardArrowDownRounded';
6
+ import KeyboardArrowDownRoundedIcon from "@mui/icons-material/KeyboardArrowDownRounded";
7
+ import { getValue } from "./Dropdown.js";
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  const FontFamilyAutocomplete = ({
9
10
  editor,
@@ -14,7 +15,7 @@ const FontFamilyAutocomplete = ({
14
15
  val = "",
15
16
  webFont = false
16
17
  }) => {
17
- const markValue = activeMark(editor, format);
18
+ const markValue = getValue(editor, format);
18
19
  const value = !webFont ? markValue : val;
19
20
  const changeMarkData = (event, newValue, format) => {
20
21
  if (!webFont) {
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import Icon from "../../common/Icon";
3
3
  import Button from "../../common/Button";
4
- import { toggleMark, isMarkActive } from "../../utils/SlateUtilityFunctions.js";
4
+ import { toggleMark, isMarkBtnActive } from "../../utils/SlateUtilityFunctions.js";
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
6
  const MarkButton = ({
7
7
  editor,
@@ -9,7 +9,7 @@ const MarkButton = ({
9
9
  title
10
10
  }) => {
11
11
  return /*#__PURE__*/_jsx(Button, {
12
- active: isMarkActive(editor, format),
12
+ active: isMarkBtnActive(editor, format),
13
13
  format: format,
14
14
  onMouseDown: e => {
15
15
  e.preventDefault();
@@ -1,10 +1,7 @@
1
1
  import React, { useEffect, useRef, useState } from "react";
2
2
  import { TextField, IconButton } from "@mui/material";
3
- import { addMarkData, activeMark, isBlockActive } from "../../utils/SlateUtilityFunctions.js";
4
- import { headingMap, sizeMap } from "../../utils/font.js";
5
- import ExpandLessRoundedIcon from "@mui/icons-material/ExpandLessRounded";
6
- import ExpandMoreRoundedIcon from "@mui/icons-material/ExpandMoreRounded";
7
- import { getBreakPointsValue } from "../../helper/theme.js";
3
+ import { addMarkData, activeMark } from "../../utils/SlateUtilityFunctions.js";
4
+ import { getBreakPointsValue, getTextSizeVal } from "../../helper/theme.js";
8
5
  import useWindowResize from "../../hooks/useWindowResize.js";
9
6
  import { BREAKPOINTS_DEVICES } from "../../helper/theme.js";
10
7
  import { TextSizeDownArrow, TextSizeUpArrow } from "../../common/iconListV2.js";
@@ -17,11 +14,12 @@ const TextSize = ({
17
14
  format,
18
15
  fullWidth
19
16
  }) => {
20
- const [size] = useWindowResize();
21
- const val = activeMark(editor, format);
22
- const value = getBreakPointsValue(val, size?.device);
23
17
  const [fontSize, setFontSize] = useState();
24
18
  const timerRef = useRef();
19
+ const [size] = useWindowResize();
20
+ const val = activeMark(editor, format);
21
+ const noFontSize = val === "normal" || typeof val === "object" && !Object.keys(val)?.length;
22
+ const value = noFontSize ? getTextSizeVal(editor) : getBreakPointsValue(val, size?.device);
25
23
  useEffect(() => {
26
24
  setFontSize(getSizeVal());
27
25
  }, [value]);
@@ -57,13 +55,7 @@ const TextSize = ({
57
55
  };
58
56
  const getSizeVal = () => {
59
57
  try {
60
- let size = `${value}`?.indexOf("px") >= 0 ? value : sizeMap[value] || value;
61
- Object.entries(headingMap).forEach(([format, value]) => {
62
- if (isBlockActive(editor, format) && isNaN(parseInt(size))) {
63
- size = value;
64
- }
65
- });
66
- return parseInt(size);
58
+ return parseInt(value);
67
59
  } catch (err) {
68
60
  return "";
69
61
  }
@@ -67,6 +67,7 @@ const MiniToolbar = props => {
67
67
  if (data) {
68
68
  setToolTip(false);
69
69
  setData(null);
70
+ setPopper(null);
70
71
  }
71
72
  }, [data]);
72
73
  useEffect(() => {
@@ -3,17 +3,18 @@ import { Grid, Tabs, Tab, CircularProgress } from "@mui/material";
3
3
  import TemplateCard from "./TemplateCard";
4
4
  import FullViewCard from "./FullViewCard";
5
5
  import ButtonTemplateCard from "./ButtonTemplatesCard";
6
+
7
+ // const CATEGORIES_SORT_INDEX = {
8
+ // Brief: 1,
9
+ // Buttons: 2,
10
+ // Banners: 3,
11
+ // Tables: 4,
12
+ // Contract: 5,
13
+ // Proposal: 6,
14
+ // };
6
15
  import { jsx as _jsx } from "react/jsx-runtime";
7
16
  import { Fragment as _Fragment } from "react/jsx-runtime";
8
17
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
- const CATEGORIES_SORT_INDEX = {
10
- Brief: 1,
11
- Buttons: 2,
12
- Banners: 3,
13
- Tables: 4,
14
- Contract: 5,
15
- Proposal: 6
16
- };
17
18
  const Categories = props => {
18
19
  const {
19
20
  value,
@@ -1,10 +1,9 @@
1
1
  import { useEffect, useRef, useState } from "react";
2
- import { activeMark, addMarkData, isBlockActive } from "../../../utils/SlateUtilityFunctions";
2
+ import { activeMark, addMarkData } from "../../../utils/SlateUtilityFunctions";
3
3
  import { Button, IconButton, Popover, TextField } from "@mui/material";
4
4
  import DownArrowIcon from "../../../assets/svg/DownArrowIcon";
5
5
  import useWindowResize from "../../../hooks/useWindowResize";
6
- import { BREAKPOINTS_DEVICES, getBreakPointsValue } from "../../../helper/theme";
7
- import { headingMap, sizeMap } from "../../../utils/font";
6
+ import { BREAKPOINTS_DEVICES, getBreakPointsValue, getTextSizeVal } from "../../../helper/theme";
8
7
  import { jsx as _jsx } from "react/jsx-runtime";
9
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
10
9
  const fontSizeOptions = [8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 26, 32, 36, 40, 48, 64, 96, 128];
@@ -19,7 +18,7 @@ function SelectFontSize({
19
18
  const containerRef = useRef();
20
19
  const [size] = useWindowResize();
21
20
  const val = activeMark(editor, format);
22
- const value = getBreakPointsValue(val, size?.device);
21
+ const value = getTextSizeVal(editor);
23
22
  const timerRef = useRef();
24
23
  const updateMarkData = newVal => {
25
24
  let upData = {
@@ -53,13 +52,7 @@ function SelectFontSize({
53
52
  };
54
53
  const getSizeVal = () => {
55
54
  try {
56
- let size = `${value}`?.indexOf("px") >= 0 ? value : sizeMap[value] || value;
57
- Object.entries(headingMap).forEach(([format, value]) => {
58
- if (isBlockActive(editor, format) && isNaN(parseInt(size))) {
59
- size = value;
60
- }
61
- });
62
- return isNaN(parseInt(size)) ? 14 : parseInt(size);
55
+ return parseInt(value);
63
56
  } catch (err) {
64
57
  return "";
65
58
  }
@@ -97,8 +90,8 @@ function SelectFontSize({
97
90
  anchorEl: anchorEl,
98
91
  onClose: () => setAnchorEl(null),
99
92
  anchorOrigin: {
100
- vertical: 'bottom',
101
- horizontal: 'left'
93
+ vertical: "bottom",
94
+ horizontal: "left"
102
95
  },
103
96
  sx: classes.customSelectPopoverWrapper,
104
97
  children: fontSizeOptions.map((s, i) => {