@flozy/editor 3.8.2 → 3.8.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. package/dist/Editor/ChatEditor.js +45 -55
  2. package/dist/Editor/CommonEditor.js +169 -111
  3. package/dist/Editor/Elements/AI/AIInput.js +16 -5
  4. package/dist/Editor/Elements/AI/PopoverAIInput.js +31 -17
  5. package/dist/Editor/Elements/AI/Styles.js +2 -1
  6. package/dist/Editor/Elements/AI/VoiceToText/AudioWave.js +73 -0
  7. package/dist/Editor/Elements/AI/VoiceToText/index.js +167 -0
  8. package/dist/Editor/Elements/AI/VoiceToText/style.js +40 -0
  9. package/dist/Editor/Elements/Accordion/Accordion.js +74 -7
  10. package/dist/Editor/Elements/Accordion/AccordionBtnPopup.js +3 -2
  11. package/dist/Editor/Elements/Accordion/AccordionSummary.js +4 -60
  12. package/dist/Editor/Elements/AppHeader/AppHeader.js +26 -4
  13. package/dist/Editor/Elements/Button/EditorButton.js +28 -16
  14. package/dist/Editor/Elements/Color Picker/ColorButtons.js +60 -17
  15. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  16. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  17. package/dist/Editor/Elements/Color Picker/Styles.js +2 -1
  18. package/dist/Editor/Elements/Embed/Image.js +28 -20
  19. package/dist/Editor/Elements/Embed/Video.js +15 -11
  20. package/dist/Editor/Elements/Emoji/EmojiPicker.js +2 -4
  21. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +2 -1
  22. package/dist/Editor/Elements/Grid/Grid.js +2 -0
  23. package/dist/Editor/Elements/Grid/GridItem.js +3 -1
  24. package/dist/Editor/Elements/Link/Link.js +6 -1
  25. package/dist/Editor/Elements/Link/LinkButton.js +4 -2
  26. package/dist/Editor/Elements/Link/LinkPopup.js +11 -3
  27. package/dist/Editor/Elements/Link/LinkPopupStyles.js +28 -0
  28. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +3 -3
  29. package/dist/Editor/Elements/Redo/RedoButton.js +14 -0
  30. package/dist/Editor/Elements/Table/Table.js +1 -1
  31. package/dist/Editor/Elements/Table/TableCell.js +1 -1
  32. package/dist/Editor/Elements/Undo/UndoButton.js +14 -0
  33. package/dist/Editor/MiniEditor.js +3 -1
  34. package/dist/Editor/Toolbar/Basic/index.js +4 -2
  35. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +26 -2
  36. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  37. package/dist/Editor/Toolbar/FormatTools/TextSize.js +29 -18
  38. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +4 -2
  39. package/dist/Editor/Toolbar/Mini/Options/Options.js +10 -0
  40. package/dist/Editor/Toolbar/Mini/Styles.js +7 -0
  41. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +4 -11
  42. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +213 -86
  43. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +2 -1
  44. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +20 -13
  45. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +52 -7
  46. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +438 -0
  47. package/dist/Editor/Toolbar/PopupTool/index.js +6 -5
  48. package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
  49. package/dist/Editor/assets/svg/AIIcons.js +153 -1
  50. package/dist/Editor/assets/svg/AddTemplateIcon.js +13 -10
  51. package/dist/Editor/assets/svg/RedoIcon.js +27 -0
  52. package/dist/Editor/assets/svg/SettingsIcon.js +28 -0
  53. package/dist/Editor/assets/svg/TextIcon.js +8 -5
  54. package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
  55. package/dist/Editor/assets/svg/UndoIcon.js +27 -0
  56. package/dist/Editor/common/ColorPickerButton.js +25 -9
  57. package/dist/Editor/common/CustomColorPicker/index.js +106 -0
  58. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  59. package/dist/Editor/common/CustomDialog/index.js +94 -0
  60. package/dist/Editor/common/CustomDialog/style.js +67 -0
  61. package/dist/Editor/common/CustomSelect.js +33 -0
  62. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  63. package/dist/Editor/common/EditorCmds.js +35 -0
  64. package/dist/Editor/common/Icon.js +43 -3
  65. package/dist/Editor/common/LinkSettings/NavComponents.js +5 -2
  66. package/dist/Editor/common/LinkSettings/index.js +2 -1
  67. package/dist/Editor/common/LinkSettings/navOptions.js +7 -2
  68. package/dist/Editor/common/MentionsPopup/MentionsListCard.js +1 -6
  69. package/dist/Editor/common/MentionsPopup/Styles.js +5 -2
  70. package/dist/Editor/common/Shorthands/elements.js +54 -0
  71. package/dist/Editor/common/StyleBuilder/accordionTitleBtnStyle.js +7 -7
  72. package/dist/Editor/common/StyleBuilder/accordionTitleStyle.js +16 -16
  73. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  74. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +13 -3
  75. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  76. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +1 -1
  77. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +31 -7
  78. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +13 -4
  79. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +14 -4
  80. package/dist/Editor/common/StyleBuilder/index.js +1 -1
  81. package/dist/Editor/common/iconslist.js +0 -31
  82. package/dist/Editor/helper/deserialize/index.js +14 -9
  83. package/dist/Editor/helper/theme.js +190 -4
  84. package/dist/Editor/hooks/useEditorTheme.js +139 -0
  85. package/dist/Editor/hooks/useMouseMove.js +4 -2
  86. package/dist/Editor/plugins/withEmbeds.js +1 -1
  87. package/dist/Editor/plugins/withHTML.js +47 -5
  88. package/dist/Editor/plugins/withLayout.js +15 -10
  89. package/dist/Editor/plugins/withTable.js +2 -2
  90. package/dist/Editor/theme/ThemeList.js +50 -173
  91. package/dist/Editor/theme/index.js +144 -0
  92. package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
  93. package/dist/Editor/themeSettings/buttons/index.js +290 -0
  94. package/dist/Editor/themeSettings/buttons/style.js +21 -0
  95. package/dist/Editor/themeSettings/colorTheme/index.js +290 -0
  96. package/dist/Editor/themeSettings/colorTheme/style.js +77 -0
  97. package/dist/Editor/themeSettings/fonts/PreviewElement.js +123 -0
  98. package/dist/Editor/themeSettings/fonts/index.js +213 -0
  99. package/dist/Editor/themeSettings/fonts/style.js +44 -0
  100. package/dist/Editor/themeSettings/icons.js +60 -0
  101. package/dist/Editor/themeSettings/index.js +320 -0
  102. package/dist/Editor/themeSettings/style.js +152 -0
  103. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  104. package/dist/Editor/themeSettingsAI/index.js +356 -0
  105. package/dist/Editor/themeSettingsAI/saveTheme.js +190 -0
  106. package/dist/Editor/themeSettingsAI/style.js +247 -0
  107. package/dist/Editor/utils/SlateUtilityFunctions.js +161 -25
  108. package/dist/Editor/utils/button.js +1 -17
  109. package/dist/Editor/utils/draftToSlate.js +1 -1
  110. package/dist/Editor/utils/events.js +11 -4
  111. package/dist/Editor/utils/font.js +40 -37
  112. package/dist/Editor/utils/helper.js +51 -1
  113. package/package.json +2 -1
@@ -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,9 +1,8 @@
1
- import React from "react";
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";
3
+ import { addMarkData, activeMark } from "../../utils/SlateUtilityFunctions.js";
5
4
  import { TextMinusIcon, TextPlusIcon } from "../../common/iconslist.js";
6
- import { getBreakPointsValue } from "../../helper/theme.js";
5
+ import { getBreakPointsValue, getTextSizeVal } from "../../helper/theme.js";
7
6
  import useWindowResize from "../../hooks/useWindowResize.js";
8
7
  import { BREAKPOINTS_DEVICES } from "../../helper/theme.js";
9
8
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -17,7 +16,13 @@ const TextSize = ({
17
16
  }) => {
18
17
  const [size] = useWindowResize();
19
18
  const val = activeMark(editor, format);
20
- const value = getBreakPointsValue(val, size?.device);
19
+ const noFontSize = val === "normal" || typeof val === "object" && !Object.keys(val)?.length;
20
+ const value = noFontSize ? getTextSizeVal(editor) : getBreakPointsValue(val, size?.device);
21
+ const [fontSize, setFontSize] = useState();
22
+ const timerRef = useRef();
23
+ useEffect(() => {
24
+ setFontSize(getSizeVal());
25
+ }, [value]);
21
26
  const updateMarkData = newVal => {
22
27
  let upData = {
23
28
  ...getBreakPointsValue(val),
@@ -39,20 +44,18 @@ const TextSize = ({
39
44
  }
40
45
  });
41
46
  };
42
- const onChangeSize = e => {
43
- let inc = parseInt(e.target.value) || 8;
44
- inc = inc > 200 ? 200 : inc;
45
- updateMarkData(inc || 8);
47
+ const onChangeSize = value => {
48
+ if (value) {
49
+ let inc = parseInt(value);
50
+ inc = inc > 200 ? 200 : inc;
51
+ updateMarkData(inc);
52
+ } else {
53
+ setFontSize(null);
54
+ }
46
55
  };
47
56
  const getSizeVal = () => {
48
57
  try {
49
- let size = `${value}`?.indexOf("px") >= 0 ? value : sizeMap[value] || value;
50
- Object.entries(headingMap).forEach(([format, value]) => {
51
- if (isBlockActive(editor, format) && isNaN(parseInt(size))) {
52
- size = value;
53
- }
54
- });
55
- return parseInt(size);
58
+ return parseInt(value);
56
59
  } catch (err) {
57
60
  return "";
58
61
  }
@@ -67,11 +70,19 @@ const TextSize = ({
67
70
  const newVal = combinedOldVal - 1 < 0 ? 0 : combinedOldVal - 1;
68
71
  updateMarkData(newVal);
69
72
  };
73
+ const onChange = e => {
74
+ clearTimeout(timerRef.current);
75
+ const value = e.target.value;
76
+ setFontSize(value);
77
+ timerRef.current = setTimeout(() => {
78
+ onChangeSize(value);
79
+ }, 500);
80
+ };
70
81
  return /*#__PURE__*/_jsx(_Fragment, {
71
82
  children: /*#__PURE__*/_jsx(TextField, {
72
83
  sx: classes?.textSize,
73
- value: combinedOldVal,
74
- onChange: onChangeSize,
84
+ value: fontSize,
85
+ onChange: onChange,
75
86
  size: "small",
76
87
  inputProps: {
77
88
  style: {
@@ -47,6 +47,8 @@ const MiniToolbar = props => {
47
47
  const {
48
48
  popupType
49
49
  } = useEditorContext();
50
+ const canUndo = editor.history.undos.length > 0;
51
+ const canRedo = editor.history.redos.length > 0;
50
52
  useEffect(() => {
51
53
  if (popper) {
52
54
  setPopper(null);
@@ -76,13 +78,13 @@ const MiniToolbar = props => {
76
78
  label,
77
79
  icon: Icon
78
80
  }) => {
79
- const isDisabled = popupType === type; // for textFormat type
81
+ const isDisabled = popupType === type || type === 'undo' ? !canUndo : type === 'redo' ? !canRedo : false; // for textFormat type
80
82
 
81
83
  return /*#__PURE__*/_jsx(Tooltip, {
82
84
  arrow: true,
83
85
  title: label,
84
86
  children: /*#__PURE__*/_jsx(IconButton, {
85
- className: type === popper ? "active" : "",
87
+ className: `${type === popper ? "active" : ""} ${type === 'undo' && !canUndo || type === 'redo' && !canRedo ? "disabled" : ""}`,
86
88
  onClick: handleClick(type),
87
89
  disabled: isDisabled,
88
90
  children: /*#__PURE__*/_jsx(Icon, {
@@ -2,6 +2,8 @@ import TextIcon from "../../../assets/svg/TextIcon";
2
2
  import AddElementIcon from "../../../assets/svg/AddElementIcon";
3
3
  import AddTemplateIcon from "../../../assets/svg/AddTemplateIcon";
4
4
  import PageSettingsButton from "../../../Elements/PageSettings/PageSettingsButton";
5
+ import UndoButton from "../../../Elements/Undo/UndoButton";
6
+ import RedoButton from "../../../Elements/Redo/RedoButton";
5
7
  const MENU_OPTIONS = [{
6
8
  type: "textFormat",
7
9
  icon: TextIcon,
@@ -18,5 +20,13 @@ const MENU_OPTIONS = [{
18
20
  type: "page-settings",
19
21
  icon: PageSettingsButton,
20
22
  label: "Page Settings"
23
+ }, {
24
+ type: "undo",
25
+ icon: UndoButton,
26
+ label: "Undo"
27
+ }, {
28
+ type: "redo",
29
+ icon: RedoButton,
30
+ label: "Redo"
21
31
  }];
22
32
  export default MENU_OPTIONS;
@@ -41,6 +41,13 @@ const miniToolbarStyles = theme => ({
41
41
  "& svg": {
42
42
  stroke: theme?.palette?.editor?.activeColor
43
43
  }
44
+ },
45
+ "&.disabled": {
46
+ "& svg": {
47
+ '& path': {
48
+ stroke: theme?.palette?.editor?.svgStrokeDisabled
49
+ }
50
+ }
44
51
  }
45
52
  }
46
53
  }
@@ -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 parseInt(size);
55
+ return parseInt(value);
63
56
  } catch (err) {
64
57
  return "";
65
58
  }
@@ -2,8 +2,11 @@ import { useMemo } from "react";
2
2
  import { activeMark, addMarkData, isBlockActive, toggleBlock } from "../../../utils/SlateUtilityFunctions";
3
3
  import CustomSelectTool from "./CustomSelectTool";
4
4
  import useWindowResize from "../../../hooks/useWindowResize";
5
- import { BREAKPOINTS_DEVICES, getBreakPointsValue } from "../../../helper/theme";
5
+ import { BREAKPOINTS_DEVICES, getBreakPointsValue, isTextCustomized as isCustomized, textThemeFields as themeFields } from "../../../helper/theme";
6
6
  import { sizeMap } from "../../../utils/font";
7
+ import { Editor } from "slate";
8
+ import { MenuItem, Select } from "@mui/material";
9
+ import { useEditorTheme } from "../../../hooks/useEditorTheme";
7
10
  import { jsx as _jsx } from "react/jsx-runtime";
8
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
12
  function Label({
@@ -17,93 +20,194 @@ function Label({
17
20
  });
18
21
  }
19
22
  function DisplayHeaderLabel({
20
- type
23
+ type,
24
+ isCustomized,
25
+ isPara = false
21
26
  }) {
22
27
  return /*#__PURE__*/_jsxs("div", {
23
- children: ["H", /*#__PURE__*/_jsx("sub", {
28
+ children: [isCustomized ? "*" : "", isPara ? "P" : "H", /*#__PURE__*/_jsx("sub", {
24
29
  children: type
25
30
  })]
26
31
  });
27
32
  }
28
- const typographyOptions = [{
29
- id: 11,
30
- format: "headingOne",
31
- type: "block",
32
- title: /*#__PURE__*/_jsx(Label, {
33
- label: "H1",
34
- type: "Header"
35
- }),
36
- label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
37
- type: 1
38
- }),
39
- group: "typography",
40
- value: "headingOne"
41
- }, {
42
- id: 12,
43
- format: "headingTwo",
44
- type: "block",
45
- title: /*#__PURE__*/_jsx(Label, {
46
- label: "H2",
47
- type: "Header"
48
- }),
49
- label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
50
- type: 2
51
- }),
52
- group: "typography",
53
- value: "headingTwo"
54
- }, {
55
- id: 13,
56
- format: "headingThree",
57
- type: "block",
58
- title: /*#__PURE__*/_jsx(Label, {
59
- label: "H3",
60
- type: "Header"
61
- }),
62
- label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
63
- type: 3
64
- }),
65
- group: "typography",
66
- value: "headingThree"
67
- }, {
68
- id: 14,
69
- format: "fontSize",
70
- type: "mark",
71
- title: /*#__PURE__*/_jsx(Label, {
33
+ function getTypographyOptions(isCustomized) {
34
+ const typographyOptions = [{
35
+ id: 11,
36
+ format: "headingOne",
37
+ type: "block",
38
+ title: /*#__PURE__*/_jsx(Label, {
39
+ label: "H1",
40
+ type: "Heading"
41
+ }),
42
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
43
+ type: 1,
44
+ isCustomized: isCustomized
45
+ }),
46
+ group: "typography",
47
+ value: "headingOne"
48
+ }, {
49
+ id: 12,
50
+ format: "headingTwo",
51
+ type: "block",
52
+ title: /*#__PURE__*/_jsx(Label, {
53
+ label: "H2",
54
+ type: "Heading"
55
+ }),
56
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
57
+ type: 2,
58
+ isCustomized: isCustomized
59
+ }),
60
+ group: "typography",
61
+ value: "headingTwo"
62
+ }, {
63
+ id: 13,
64
+ format: "headingThree",
65
+ type: "block",
66
+ title: /*#__PURE__*/_jsx(Label, {
67
+ label: "H3",
68
+ type: "Heading"
69
+ }),
70
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
71
+ type: 3,
72
+ isCustomized: isCustomized
73
+ }),
74
+ group: "typography",
75
+ value: "headingThree"
76
+ }, {
77
+ id: 17,
78
+ format: "headingFour",
79
+ type: "block",
80
+ title: /*#__PURE__*/_jsx(Label, {
81
+ label: "H4",
82
+ type: "Heading"
83
+ }),
84
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
85
+ type: 4,
86
+ isCustomized: isCustomized
87
+ }),
88
+ group: "typography",
89
+ value: "headingFour"
90
+ }, {
91
+ id: 18,
92
+ format: "headingFive",
93
+ type: "block",
94
+ title: /*#__PURE__*/_jsx(Label, {
95
+ label: "H5",
96
+ type: "Heading"
97
+ }),
98
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
99
+ type: 5,
100
+ isCustomized: isCustomized
101
+ }),
102
+ group: "typography",
103
+ value: "headingFive"
104
+ }, {
105
+ id: 19,
106
+ format: "headingSix",
107
+ type: "block",
108
+ title: /*#__PURE__*/_jsx(Label, {
109
+ label: "H6",
110
+ type: "Heading"
111
+ }),
112
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
113
+ type: 6,
114
+ isCustomized: isCustomized
115
+ }),
116
+ group: "typography",
117
+ value: "headingSix"
118
+ }, {
119
+ id: 20,
120
+ format: "paragraphOne",
121
+ type: "block",
122
+ title: /*#__PURE__*/_jsx(Label, {
123
+ label: "P1",
124
+ type: "Paragraph"
125
+ }),
126
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
127
+ type: 1,
128
+ isCustomized: isCustomized,
129
+ isPara: true
130
+ }),
131
+ group: "typography",
132
+ value: "paragraphOne"
133
+ }, {
134
+ id: 21,
135
+ format: "paragraphTwo",
136
+ type: "block",
137
+ title: /*#__PURE__*/_jsx(Label, {
138
+ label: "P2",
139
+ type: "Paragraph"
140
+ }),
141
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
142
+ type: 2,
143
+ isCustomized: isCustomized,
144
+ isPara: true
145
+ }),
146
+ group: "typography",
147
+ value: "paragraphTwo"
148
+ }, {
149
+ id: 22,
150
+ format: "paragraphThree",
151
+ type: "block",
152
+ title: /*#__PURE__*/_jsx(Label, {
153
+ label: "P3",
154
+ type: "Paragraph"
155
+ }),
156
+ label: /*#__PURE__*/_jsx(DisplayHeaderLabel, {
157
+ type: 3,
158
+ isCustomized: isCustomized,
159
+ isPara: true
160
+ }),
161
+ group: "typography",
162
+ value: "paragraphThree"
163
+ }, {
164
+ id: 14,
165
+ format: "fontSize",
166
+ type: "mark",
167
+ title: /*#__PURE__*/_jsx(Label, {
168
+ label: "L",
169
+ type: "Large"
170
+ }),
72
171
  label: "L",
73
- type: "Large"
74
- }),
75
- label: "L",
76
- group: "typography",
77
- value: "huge"
78
- }, {
79
- id: 15,
80
- format: "fontSize",
81
- type: "mark",
82
- title: /*#__PURE__*/_jsx(Label, {
172
+ group: "typography",
173
+ value: "huge"
174
+ }, {
175
+ id: 15,
176
+ format: "fontSize",
177
+ type: "mark",
178
+ title: /*#__PURE__*/_jsx(Label, {
179
+ label: "M",
180
+ type: "Medium"
181
+ }),
83
182
  label: "M",
84
- type: "Medium"
85
- }),
86
- label: "M",
87
- group: "typography",
88
- value: "medium"
89
- }, {
90
- id: 16,
91
- format: "fontSize",
92
- type: "mark",
93
- title: /*#__PURE__*/_jsx(Label, {
183
+ group: "typography",
184
+ value: "medium"
185
+ }, {
186
+ id: 16,
187
+ format: "fontSize",
188
+ type: "mark",
189
+ title: /*#__PURE__*/_jsx(Label, {
190
+ label: "S",
191
+ type: "Small"
192
+ }),
94
193
  label: "S",
95
- type: "Small"
96
- }),
97
- label: "S",
98
- group: "typography",
99
- value: "small"
100
- }];
194
+ group: "typography",
195
+ value: "small"
196
+ }];
197
+ return typographyOptions;
198
+ }
101
199
  function SelectTypography({
102
200
  editor,
103
201
  classes,
104
- closeMainPopup
202
+ closeMainPopup,
203
+ type
105
204
  }) {
106
205
  const [size] = useWindowResize();
206
+ const {
207
+ theme
208
+ } = useEditorTheme();
209
+ const isTextCustomized = theme?.id ? isCustomized(editor) : false;
210
+ const typographyOptions = getTypographyOptions(isTextCustomized);
107
211
  const updateMarkData = newVal => {
108
212
  const val = activeMark(editor, "fontSize");
109
213
  let upData = {
@@ -148,26 +252,49 @@ function SelectTypography({
148
252
  });
149
253
  }, [typographyOptions, activeMark, isBlockActive, editor]);
150
254
  const onChange = (format, option) => {
151
- // add/reset block elements
152
- toggleBlock(editor, format);
153
255
  if (option.type === "block") {
154
- // reset old font size
155
- addMarkData(editor, {
156
- format: "fontSize",
157
- value: {}
256
+ themeFields.forEach(field => {
257
+ Editor.removeMark(editor, field);
158
258
  });
259
+
260
+ // add/reset block elements
261
+ toggleBlock(editor, format);
159
262
  } else if (option.type === "mark") {
160
263
  const size = sizeMap[option.value] || "";
161
264
  const [sizeInNumber] = size.split("px");
162
265
  updateMarkData(Number(sizeInNumber));
163
266
  }
164
267
  };
165
- return /*#__PURE__*/_jsx(CustomSelectTool, {
166
- options: typographyOptions,
167
- editor: editor,
168
- onChange: onChange,
169
- value: selectedBlock?.value || "headingOne",
170
- classes: classes
268
+ const typographyValue = selectedBlock?.value || "headingOne";
269
+ if (type === "miniToolBar") {
270
+ return /*#__PURE__*/_jsx(CustomSelectTool, {
271
+ options: typographyOptions,
272
+ editor: editor,
273
+ onChange: onChange,
274
+ value: typographyValue,
275
+ classes: classes
276
+ });
277
+ }
278
+ return /*#__PURE__*/_jsx(Select, {
279
+ value: typographyValue,
280
+ className: "editor-dd",
281
+ onChange: e => {
282
+ const {
283
+ value
284
+ } = e.target;
285
+ const option = typographyOptions?.find(o => o.value === value);
286
+ onChange(value, option);
287
+ },
288
+ style: {
289
+ width: "100%",
290
+ height: "36px",
291
+ borderRadius: "10px",
292
+ fontSize: "14px"
293
+ },
294
+ children: typographyOptions.map((item, index) => /*#__PURE__*/_jsxs(MenuItem, {
295
+ value: item.value,
296
+ children: [item.title, " ", isTextCustomized && item.value === typographyValue ? " *" : ""]
297
+ }, index))
171
298
  });
172
299
  }
173
300
  export default SelectTypography;
@@ -53,7 +53,8 @@ const MiniTextFormat = props => {
53
53
  children: [customProps?.hideTools?.includes("infinityAI") ? null : /*#__PURE__*/_jsx(InfinityAITool, {}), /*#__PURE__*/_jsx(SelectTypography, {
54
54
  classes: classes,
55
55
  editor: editor,
56
- closeMainPopup: closeMainPopup
56
+ closeMainPopup: closeMainPopup,
57
+ type: "miniToolBar"
57
58
  }), /*#__PURE__*/_jsx("div", {
58
59
  className: "verticalLine"
59
60
  }), /*#__PURE__*/_jsx(SelectList, {
@@ -19,7 +19,7 @@ const usePopupStyle = theme => ({
19
19
  backgroundColor: theme?.palette?.editor?.background
20
20
  },
21
21
  "&.textSettings": {
22
- '@media only screen and (max-width: 600px)': {
22
+ "@media only screen and (max-width: 600px)": {
23
23
  margin: "4px !important",
24
24
  marginBottom: "54px !important"
25
25
  }
@@ -78,7 +78,7 @@ const usePopupStyle = theme => ({
78
78
  paddingTop: "4px"
79
79
  },
80
80
  "@media only screen and (max-width: 599px)": {
81
- width: '330px'
81
+ width: "330px"
82
82
  }
83
83
  },
84
84
  "&.templates": {
@@ -89,7 +89,7 @@ const usePopupStyle = theme => ({
89
89
  maxHeight: "fit-content"
90
90
  },
91
91
  "@media only screen and (max-width: 599px)": {
92
- width: '330px'
92
+ width: "330px"
93
93
  }
94
94
  },
95
95
  "& .headerContainer": {},
@@ -144,7 +144,7 @@ const usePopupStyle = theme => ({
144
144
  }
145
145
  },
146
146
  "@media only screen and (max-width: 599px)": {
147
- width: '330px'
147
+ width: "330px"
148
148
  }
149
149
  },
150
150
  textFormatLabel: {
@@ -155,13 +155,13 @@ const usePopupStyle = theme => ({
155
155
  lineHeight: "25px",
156
156
  marginTop: "12px",
157
157
  marginBottom: "8px",
158
- '& .searchContainer': {
158
+ "& .searchContainer": {
159
159
  position: "absolute",
160
160
  right: 0,
161
161
  zIndex: 3
162
162
  },
163
- '& .MuiFormControl-root.MuiTextField-root input': {
164
- padding: '8px 35px 6px 12px'
163
+ "& .MuiFormControl-root.MuiTextField-root input": {
164
+ padding: "8px 35px 6px 12px"
165
165
  }
166
166
  },
167
167
  textFormatField: {
@@ -205,7 +205,8 @@ const usePopupStyle = theme => ({
205
205
  fontSize: "14px",
206
206
  marginBottom: "5px",
207
207
  paddingLeft: "5px",
208
- fontWeight: 500
208
+ fontWeight: 500,
209
+ color: "#000000"
209
210
  },
210
211
  templateCard: {
211
212
  borderRadius: "10px",
@@ -327,8 +328,13 @@ const usePopupStyle = theme => ({
327
328
  }
328
329
  },
329
330
  defaultBtn: {
330
- color: "#0F172A",
331
- textTransform: "none"
331
+ color: "#2563EB !important",
332
+ textTransform: "none",
333
+ textDecoration: "underline",
334
+ "&.Mui-disabled": {
335
+ color: "#A0AEC0 !important",
336
+ textDecoration: "none"
337
+ }
332
338
  },
333
339
  templateCardBtnGrp: {
334
340
  display: "none",
@@ -413,7 +419,8 @@ const usePopupStyle = theme => ({
413
419
  colorPopper: {
414
420
  "& .MuiPaper-root": {
415
421
  backgroundColor: theme?.palette?.editor?.background,
416
- '@media only screen and (max-width: 600px)': {
422
+ padding: "4px 14px",
423
+ "@media only screen and (max-width: 600px)": {
417
424
  marginTop: "-40px"
418
425
  }
419
426
  }
@@ -524,9 +531,9 @@ const usePopupStyle = theme => ({
524
531
  },
525
532
  customSelectPopoverWrapper: {
526
533
  "& .MuiPopover-paper": {
527
- maxHeight: '140px',
534
+ maxHeight: "140px",
528
535
  background: theme?.palette?.editor?.background,
529
- '@media only screen and (max-width: 600px)': {
536
+ "@media only screen and (max-width: 600px)": {
530
537
  marginTop: "-40px"
531
538
  }
532
539
  },