@flozy/editor 10.6.5 → 10.6.6
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.
- package/dist/Editor/ChatEditor.js +17 -16
- package/dist/Editor/CommonEditor.js +133 -14
- package/dist/Editor/DialogWrapper.js +31 -25
- package/dist/Editor/Editor.css +57 -11
- package/dist/Editor/Elements/AI/PopoverAIInput.js +11 -3
- package/dist/Editor/Elements/AI/Styles.js +1 -0
- package/dist/Editor/Elements/Accordion/Accordion.js +45 -9
- package/dist/Editor/Elements/Accordion/AccordionSummary.js +1 -23
- package/dist/Editor/Elements/AppHeader/AppHeader.js +10 -5
- package/dist/Editor/Elements/Button/EditorButton.js +26 -10
- package/dist/Editor/Elements/Carousel/CarouselItem.js +2 -1
- package/dist/Editor/Elements/Color Picker/ColorButtons.js +61 -14
- package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
- package/dist/Editor/Elements/Color Picker/ColorPicker.js +10 -7
- package/dist/Editor/Elements/Color Picker/Styles.js +15 -13
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/{MultiSelect.js → SelectV1.js} +125 -69
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +10 -10
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/SelectType.js +28 -9
- package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +12 -5
- package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +40 -14
- package/dist/Editor/Elements/Divider/Divider.js +1 -1
- package/dist/Editor/Elements/Embed/Embed.css +4 -0
- package/dist/Editor/Elements/Embed/Video.js +1 -1
- package/dist/Editor/Elements/Form/Form.js +3 -3
- package/dist/Editor/Elements/Form/FormElements/FormTextArea.js +0 -1
- package/dist/Editor/Elements/Form/FormField.js +1 -1
- package/dist/Editor/Elements/Form/Workflow/Styles.js +24 -22
- package/dist/Editor/Elements/FreeGrid/FreeGrid.js +35 -31
- package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +7 -4
- package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +1 -0
- package/dist/Editor/Elements/FreeGrid/Options/More.js +7 -7
- package/dist/Editor/Elements/FreeGrid/Options/sectionItemOptions.js +1 -1
- package/dist/Editor/Elements/FreeGrid/helper.js +115 -0
- package/dist/Editor/Elements/FreeGrid/styles.js +9 -0
- package/dist/Editor/Elements/Grid/Grid.js +14 -2
- package/dist/Editor/Elements/Grid/GridItem.js +1 -1
- package/dist/Editor/Elements/Signature/Signature.css +2 -1
- package/dist/Editor/Elements/Signature/SignatureOptions/DrawSignature.js +18 -5
- package/dist/Editor/Elements/Signature/SignatureOptions/UploadSignature.js +16 -3
- package/dist/Editor/Elements/SimpleText/style.js +2 -2
- package/dist/Editor/Elements/Table/AddRowCol.js +8 -2
- package/dist/Editor/Elements/Table/DragButton.js +0 -1
- package/dist/Editor/Elements/Table/Draggable.js +6 -2
- package/dist/Editor/Elements/Table/Styles.js +7 -0
- package/dist/Editor/Elements/Table/Table.js +3 -3
- package/dist/Editor/Elements/Table/TableCell.js +24 -5
- package/dist/Editor/Elements/Title/title.js +8 -11
- package/dist/Editor/Elements/Variables/VariableButton.js +10 -1
- package/dist/Editor/MiniEditor.js +2 -1
- package/dist/Editor/Styles/EditorStyles.js +4 -4
- package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
- package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
- package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
- package/dist/Editor/Toolbar/FormatTools/TextSize.js +10 -13
- package/dist/Editor/Toolbar/Mini/MiniToolbar.js +2 -1
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +4 -2
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +167 -42
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +7 -4
- package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +2 -1
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +73 -13
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +58 -10
- package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +439 -0
- package/dist/Editor/Toolbar/PopupTool/index.js +12 -5
- package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
- package/dist/Editor/assets/svg/BackIcon.js +18 -0
- package/dist/Editor/assets/svg/ThemeIcons.js +293 -0
- package/dist/Editor/common/Checkbox/index.js +46 -0
- package/dist/Editor/common/Checkbox/styles.js +45 -0
- package/dist/Editor/common/ColorPickerButton.js +41 -16
- package/dist/Editor/common/CustomColorPicker/index.js +130 -0
- package/dist/Editor/common/CustomColorPicker/style.js +53 -0
- package/dist/Editor/common/CustomDialog2/index.js +94 -0
- package/dist/Editor/common/CustomDialog2/style.js +67 -0
- package/dist/Editor/common/CustomSelect.js +43 -0
- package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
- package/dist/Editor/common/FontLoader/FontLoader.js +3 -0
- package/dist/Editor/common/Icon.js +28 -0
- package/dist/Editor/common/ImageSelector/ImageSelector.js +2 -2
- package/dist/Editor/common/ImageSelector/Styles.js +3 -9
- package/dist/Editor/common/LinkSettings/NavComponents.js +47 -63
- package/dist/Editor/common/LinkSettings/index.js +17 -28
- package/dist/Editor/common/LinkSettings/navOptions.js +2 -2
- package/dist/Editor/common/LinkSettings/style.js +164 -244
- package/dist/Editor/common/RadioGroup/index.js +48 -0
- package/dist/Editor/common/RadioGroup/styles.js +29 -0
- package/dist/Editor/common/RnD/ElementOptions/Actions.js +4 -5
- package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
- package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Signature.js +4 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +3 -1
- package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/styles.js +0 -1
- package/dist/Editor/common/RnD/OptionsPopup/style.js +0 -1
- package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +11 -2
- package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
- package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
- package/dist/Editor/common/RnD/Utils/gridDropItem.js +28 -19
- package/dist/Editor/common/RnD/Utils/index.js +58 -25
- package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +45 -58
- package/dist/Editor/common/RnD/VirtualElement/helper.js +323 -132
- package/dist/Editor/common/RnD/VirtualElement/styles.js +22 -0
- package/dist/Editor/common/RnD/index.js +72 -38
- package/dist/Editor/common/Select/index.js +44 -7
- package/dist/Editor/common/Select/styles.js +30 -2
- package/dist/Editor/common/Shorthands/elements.js +54 -0
- package/dist/Editor/common/StyleBuilder/accordionTitleBtnStyle.js +2 -2
- package/dist/Editor/common/StyleBuilder/accordionTitleStyle.js +12 -9
- package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
- package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +4 -0
- package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +5 -0
- package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
- package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +16 -8
- package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +36 -10
- package/dist/Editor/common/StyleBuilder/fieldTypes/embedUpload.js +115 -0
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +16 -7
- package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
- package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +2 -0
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
- package/dist/Editor/common/SwipeableDrawer/style.js +14 -12
- package/dist/Editor/common/Uploader.js +16 -0
- package/dist/Editor/common/iconListV2.js +76 -0
- package/dist/Editor/common/iconslist.js +21 -0
- package/dist/Editor/commonStyle.js +116 -61
- package/dist/Editor/helper/deserialize/index.js +6 -4
- package/dist/Editor/helper/index.js +11 -2
- package/dist/Editor/helper/textIndeces.js +58 -0
- package/dist/Editor/helper/theme.js +203 -2
- package/dist/Editor/hooks/useEditorTheme.js +153 -0
- package/dist/Editor/hooks/useMouseMove.js +9 -3
- package/dist/Editor/hooks/useTable.js +5 -4
- package/dist/Editor/hooks/useThemeValues.js +63 -0
- package/dist/Editor/plugins/withCustomDeleteBackward.js +6 -1
- package/dist/Editor/plugins/withEmbeds.js +1 -1
- package/dist/Editor/plugins/withHTML.js +14 -5
- package/dist/Editor/plugins/withTable.js +1 -1
- package/dist/Editor/theme/ThemeList.js +50 -173
- package/dist/Editor/theme/index.js +149 -0
- package/dist/Editor/themeSettings/ActiveTheme.js +82 -0
- package/dist/Editor/themeSettings/buttons/index.js +300 -0
- package/dist/Editor/themeSettings/buttons/style.js +23 -0
- package/dist/Editor/themeSettings/colorTheme/index.js +310 -0
- package/dist/Editor/themeSettings/colorTheme/style.js +81 -0
- package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
- package/dist/Editor/themeSettings/fonts/index.js +240 -0
- package/dist/Editor/themeSettings/fonts/style.js +62 -0
- package/dist/Editor/themeSettings/icons.js +60 -0
- package/dist/Editor/themeSettings/index.js +380 -0
- package/dist/Editor/themeSettings/style.js +299 -0
- package/dist/Editor/themeSettingsAI/icons.js +96 -0
- package/dist/Editor/themeSettingsAI/index.js +355 -0
- package/dist/Editor/themeSettingsAI/saveTheme.js +202 -0
- package/dist/Editor/themeSettingsAI/style.js +332 -0
- package/dist/Editor/utils/SlateUtilityFunctions.js +173 -50
- package/dist/Editor/utils/accordion.js +158 -37
- package/dist/Editor/utils/button.js +1 -17
- package/dist/Editor/utils/customHooks/useTableResize.js +49 -9
- package/dist/Editor/utils/draftToSlate.js +3 -2
- package/dist/Editor/utils/events.js +18 -6
- package/dist/Editor/utils/font.js +40 -37
- package/dist/Editor/utils/formfield.js +1 -0
- package/dist/Editor/utils/helper.js +149 -30
- package/dist/Editor/utils/insertAppHeader.js +9 -5
- package/dist/Editor/utils/signature.js +2 -9
- package/dist/Editor/utils/updateFormName.js +22 -0
- package/package.json +4 -4
@@ -1,6 +1,6 @@
|
|
1
1
|
import React, { useCallback, useMemo, useRef, useImperativeHandle, forwardRef, useState } from "react";
|
2
|
-
import { Editable, Slate, ReactEditor } from
|
3
|
-
import { createEditor, Transforms, Editor } from
|
2
|
+
import { Editable, Slate, ReactEditor } from "slate-react";
|
3
|
+
import { createEditor, Transforms, Editor } from "slate";
|
4
4
|
import withCommon from "./hooks/withCommon";
|
5
5
|
import { getBlock, getMarked, serializeMentions } from "./utils/chatEditor/SlateUtilityFunctions";
|
6
6
|
import MiniTextFormat from "./Toolbar/PopupTool/MiniTextFormat";
|
@@ -33,15 +33,15 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
33
33
|
isMobile = false,
|
34
34
|
debounceTimeOut = 10,
|
35
35
|
isMarkDown = false,
|
36
|
-
markDownContent =
|
36
|
+
markDownContent = "",
|
37
37
|
translation
|
38
38
|
} = props;
|
39
39
|
const classes = usePopupStyle(theme);
|
40
40
|
const convertedContent = draftToSlate({
|
41
41
|
data: content && content?.length > 0 ? content : [{
|
42
|
-
type:
|
42
|
+
type: "paragraph",
|
43
43
|
children: [{
|
44
|
-
text:
|
44
|
+
text: ""
|
45
45
|
}]
|
46
46
|
}]
|
47
47
|
});
|
@@ -153,14 +153,6 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
153
153
|
// needLayout = true,
|
154
154
|
} = otherProps || {};
|
155
155
|
const mentionsRef = useRef();
|
156
|
-
const customProps = {
|
157
|
-
...(otherProps || {}),
|
158
|
-
hideTools: ["settings", "add_column", "drag", "resize"],
|
159
|
-
readOnly: isReadOnly,
|
160
|
-
editorPlaceholder: "Write Something",
|
161
|
-
page_id: 1,
|
162
|
-
translation: translation || translationMock
|
163
|
-
};
|
164
156
|
const [mentions, setMentions] = useMentions({
|
165
157
|
editor,
|
166
158
|
selection: editor?.selection
|
@@ -222,6 +214,15 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
222
214
|
debounced(newValue);
|
223
215
|
debouncedValue.current = newValue;
|
224
216
|
};
|
217
|
+
const dummyTranslation = () => {};
|
218
|
+
const customProps = {
|
219
|
+
...(otherProps || {}),
|
220
|
+
hideTools: ["settings", "add_column", "drag", "resize"],
|
221
|
+
readOnly: isReadOnly,
|
222
|
+
editorPlaceholder: "Write Something",
|
223
|
+
page_id: 1,
|
224
|
+
translation: translation || translationMock || dummyTranslation
|
225
|
+
};
|
225
226
|
const Element = props => {
|
226
227
|
return getBlock(props);
|
227
228
|
};
|
@@ -257,7 +258,7 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
257
258
|
editor
|
258
259
|
});
|
259
260
|
} else if (event.key === "Enter" && !isMobile) {
|
260
|
-
const isEmpty = debouncedValue?.current.length === 1 && debouncedValue?.current[0].type ===
|
261
|
+
const isEmpty = debouncedValue?.current.length === 1 && debouncedValue?.current[0].type === "paragraph" && debouncedValue?.current[0].children.length === 1 && debouncedValue?.current[0].children[0].text === "";
|
261
262
|
if (isEmpty) {
|
262
263
|
event.preventDefault();
|
263
264
|
return;
|
@@ -297,10 +298,10 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
297
298
|
}
|
298
299
|
};
|
299
300
|
|
301
|
+
const html = isMarkDown ? convertMDToHTML(markDownContent) : null;
|
300
302
|
const handleFocus = () => {
|
301
303
|
setIsFocused(true);
|
302
304
|
};
|
303
|
-
const html = isMarkDown ? convertMDToHTML(markDownContent) : null;
|
304
305
|
return !isMarkDown ? /*#__PURE__*/_jsx(EditorProvider, {
|
305
306
|
theme: theme,
|
306
307
|
editor: editor,
|
@@ -314,13 +315,13 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
314
315
|
closeMainPopup: handleClose,
|
315
316
|
customProps: customProps
|
316
317
|
}), /*#__PURE__*/_jsx(Editable, {
|
317
|
-
onFocus: handleFocus,
|
318
318
|
className: "chatEditorRoot",
|
319
319
|
renderElement: renderElement,
|
320
320
|
renderLeaf: renderLeaf,
|
321
321
|
decorate: decorators,
|
322
322
|
placeholder: "Start typing ...",
|
323
323
|
spellCheck: true,
|
324
|
+
onFocus: handleFocus,
|
324
325
|
onBlur: handleBlur,
|
325
326
|
onKeyDown: onKeyDown,
|
326
327
|
onPaste: handlePaste,
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/* eslint-disable no-unused-vars */
|
2
|
-
import React, { useRef, useCallback, useEffect, useMemo, useState, forwardRef, useImperativeHandle } from "react";
|
2
|
+
import React, { useRef, useCallback, useEffect, useMemo, useState, forwardRef, useImperativeHandle, createContext } from "react";
|
3
3
|
import PropTypes from "prop-types";
|
4
|
-
import { createEditor, Range, Transforms } from "slate";
|
4
|
+
import { createEditor, Editor, Range, Transforms } from "slate";
|
5
5
|
import { Slate, Editable, ReactEditor } from "slate-react";
|
6
6
|
import { useDebouncedCallback } from "use-debounce";
|
7
7
|
import { getMarked, getBlock } from "./utils/SlateUtilityFunctions";
|
@@ -10,14 +10,14 @@ import { draftToSlate } from "./utils/draftToSlate";
|
|
10
10
|
import useMentions from "./hooks/useMentions";
|
11
11
|
import MentionsPopup from "./common/MentionsPopup";
|
12
12
|
import { RemoteCursorOverlay } from "./RemoteCursorOverlay/Overlay";
|
13
|
-
import { mentionsEvent, commands, indentation, escapeEvent, enterEvent, upDownArrowKeyEvents } from "./utils/events";
|
13
|
+
import { mentionsEvent, commands, indentation, escapeEvent, enterEvent, upDownArrowKeyEvents, handleAccordionOnBackspace } from "./utils/events";
|
14
14
|
import withCommon from "./hooks/withCommon";
|
15
15
|
import DialogWrapper from "./DialogWrapper";
|
16
16
|
import { serializeToText } from "./utils/serializeToText";
|
17
17
|
import { getPageSettings } from "./utils/pageSettings";
|
18
18
|
import { getThumbnailImage, invertColor, pageTextStyle } from "./helper";
|
19
19
|
import PopupTool from "./Toolbar/PopupTool";
|
20
|
-
import { Box, Typography, useTheme } from "@mui/material";
|
20
|
+
import { Box, Typography, useTheme, IconButton } from "@mui/material";
|
21
21
|
import Shorthands from "./common/Shorthands";
|
22
22
|
import MiniToolbar from "./Toolbar/Mini/MiniToolbar";
|
23
23
|
import { EditorProvider } from "./hooks/useMouseMove";
|
@@ -26,9 +26,12 @@ import editorStyles from "./Styles/EditorStyles";
|
|
26
26
|
import DragAndDrop from "./common/DnD";
|
27
27
|
import Section from "./common/Section";
|
28
28
|
import decorators from "./utils/Decorators";
|
29
|
-
import {
|
29
|
+
import { getTRBLBreakPoints, getVariableValue, getBreakpointLineSpacing } from "./helper/theme";
|
30
30
|
import { getInitialValue, handleCopy, handleInsertLastElement, isEverythingSelected, isFreeGrid, isFreeGridFragment, isRestrictedNode, outsideEditorClickLabel } from "./utils/helper";
|
31
31
|
import useWindowResize from "./hooks/useWindowResize";
|
32
|
+
import { getTheme } from "./theme";
|
33
|
+
import ThemeSettings from "./themeSettings";
|
34
|
+
import ThemeSettingsAI from "./themeSettingsAI";
|
32
35
|
import PopoverAIInput from "./Elements/AI/PopoverAIInput";
|
33
36
|
import RnDCopy from "./common/RnD/RnDCopy";
|
34
37
|
import SwitchViewport from "./common/RnD/SwitchViewport/SwitchViewport";
|
@@ -37,9 +40,12 @@ import "./font.css";
|
|
37
40
|
import "./Editor.css";
|
38
41
|
import "animate.css";
|
39
42
|
import FontLoader from "./common/FontLoader/FontLoader";
|
43
|
+
import { ThemeAIIcon, ThemePaintIcon } from "./assets/svg/ThemeIcons";
|
40
44
|
import { CustomDialogComponent } from "./common/CustomDialog";
|
45
|
+
import { extractTextWithPath, replaceTextPath } from "./helper/textIndeces.js";
|
41
46
|
import { jsx as _jsx } from "react/jsx-runtime";
|
42
47
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
48
|
+
export const ThemeContext = /*#__PURE__*/createContext(null);
|
43
49
|
const Item = /*#__PURE__*/forwardRef(({
|
44
50
|
children,
|
45
51
|
...props
|
@@ -81,6 +87,7 @@ const updateTopBanner = (content = [], setTopBanner) => {
|
|
81
87
|
return firstNode?.type === "topbanner" ? firstNode : null;
|
82
88
|
});
|
83
89
|
};
|
90
|
+
const dummyTranslation = () => {};
|
84
91
|
const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
85
92
|
const {
|
86
93
|
id,
|
@@ -94,6 +101,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
94
101
|
otherProps,
|
95
102
|
isIframe,
|
96
103
|
theme,
|
104
|
+
showThemeButtons,
|
97
105
|
showViewport = false,
|
98
106
|
overrideWrapperStyles = {},
|
99
107
|
translation
|
@@ -101,7 +109,8 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
101
109
|
const editorWrapper = useRef();
|
102
110
|
const mentionsRef = useRef();
|
103
111
|
const convertedContent = draftToSlate({
|
104
|
-
data: content
|
112
|
+
data: content,
|
113
|
+
needLayout: otherProps?.needLayout
|
105
114
|
});
|
106
115
|
const [value, setValue] = useState(convertedContent);
|
107
116
|
const [isInteracted, setIsInteracted] = useState(false);
|
@@ -145,10 +154,11 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
145
154
|
const {
|
146
155
|
bannerSpacing,
|
147
156
|
pageBgImage,
|
148
|
-
pageColor,
|
157
|
+
pageColor = "",
|
149
158
|
color: pageTextColor,
|
150
159
|
pageWidth,
|
151
160
|
maxWidth: pageMaxWidth,
|
161
|
+
theme: selectedTheme,
|
152
162
|
lineHeight
|
153
163
|
} = pageSt?.pageProps || {
|
154
164
|
bannerSpacing: {
|
@@ -160,10 +170,17 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
160
170
|
};
|
161
171
|
const classes = editorStyles({
|
162
172
|
padHeight: !fullScreen ? otherProps?.padHeight : 20,
|
163
|
-
placeHolderColor: invertColor(pageColor || "#FFF"),
|
173
|
+
placeHolderColor: invertColor(pageColor.startsWith("var") ? getVariableValue(pageColor) : pageColor || "#FFF"),
|
164
174
|
theme,
|
165
175
|
overrideWrapperStyles
|
166
176
|
});
|
177
|
+
const [openTheme, setOpenTheme] = useState(false);
|
178
|
+
const [openAITheme, setOpenAITheme] = useState(false);
|
179
|
+
const [, setThemeUpdated] = useState(0);
|
180
|
+
const triggerRender = () => {
|
181
|
+
setThemeUpdated(prev => prev + 1); // Incrementing forces a re-render while updating theme
|
182
|
+
};
|
183
|
+
|
167
184
|
const isMobile = window.matchMedia("(max-width: 899px)")?.matches || false;
|
168
185
|
useEffect(() => {
|
169
186
|
setValue(draftToSlate({
|
@@ -174,14 +191,25 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
174
191
|
ReactEditor.focus(editor);
|
175
192
|
}
|
176
193
|
}, [id, content]);
|
194
|
+
useEffect(() => {
|
195
|
+
if (isReadOnly) {
|
196
|
+
const sectionId = window.location.hash.substring(1);
|
197
|
+
const sectionEle = sectionId ? document.getElementById(decodeURIComponent(sectionId)) : null;
|
198
|
+
if (sectionEle) {
|
199
|
+
sectionEle.scrollIntoView({
|
200
|
+
behavior: "smooth"
|
201
|
+
});
|
202
|
+
}
|
203
|
+
}
|
204
|
+
}, []);
|
177
205
|
const debounced = useDebouncedCallback(
|
178
206
|
// function
|
179
207
|
value => {
|
208
|
+
debouncedValue.current = value;
|
180
209
|
const {
|
181
210
|
value: strVal,
|
182
211
|
...restVal
|
183
212
|
} = getOnSaveData(value);
|
184
|
-
debouncedValue.current = value;
|
185
213
|
onSave(strVal, restVal);
|
186
214
|
},
|
187
215
|
// delay in ms
|
@@ -192,7 +220,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
192
220
|
return {
|
193
221
|
value: JSON.stringify(val),
|
194
222
|
text: text,
|
195
|
-
title: serializeToText(title?.children) || "
|
223
|
+
title: serializeToText(title?.children) || ""
|
196
224
|
};
|
197
225
|
};
|
198
226
|
const getTitleSaveData = title => {
|
@@ -209,8 +237,12 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
209
237
|
const getPreviewImage = async (needBackground = false, options = {}) => {
|
210
238
|
ReactEditor.blur(editor);
|
211
239
|
const dom = needBackground ? editorWrapper?.current : editorWrapper?.current.getElementsByClassName("innert-editor-textbox")[0];
|
240
|
+
const pageBg = options?.fromBrains ? {
|
241
|
+
pageColor
|
242
|
+
} : {};
|
212
243
|
const c = await getThumbnailImage(dom, {
|
213
244
|
...options,
|
245
|
+
...pageBg,
|
214
246
|
proxy: `${otherProps?.PAGES_API_HOST}/page/2canvas`
|
215
247
|
});
|
216
248
|
return c;
|
@@ -305,6 +337,12 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
305
337
|
redo() {
|
306
338
|
editor?.redo();
|
307
339
|
},
|
340
|
+
toggleTheme() {
|
341
|
+
setOpenTheme(!openTheme);
|
342
|
+
},
|
343
|
+
toggleAITheme() {
|
344
|
+
setOpenAITheme(!openAITheme);
|
345
|
+
},
|
308
346
|
getPageSettings: {
|
309
347
|
background: pageBgImage && pageBgImage !== "none" ? `url(${pageBgImage})` : pageColor || ""
|
310
348
|
}
|
@@ -428,6 +466,11 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
428
466
|
} else if (event.key === "ArrowDown" && otherProps?.tagName !== "Pages") {
|
429
467
|
upDownArrowKeyEvents(event, editor);
|
430
468
|
} else if (event.key === "Backspace") {
|
469
|
+
// const isAccordion = handleAccordionOnBackspace(event, editor);
|
470
|
+
// if (isAccordion) {
|
471
|
+
// return;
|
472
|
+
// }
|
473
|
+
|
431
474
|
const isNodeRestricted = isRestrictedNode(event, editor);
|
432
475
|
if (isNodeRestricted) {
|
433
476
|
return;
|
@@ -503,6 +546,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
503
546
|
}
|
504
547
|
return style;
|
505
548
|
}, [pageBgImage, pageColor, pageTextColor]);
|
549
|
+
const themeProps = getTheme(selectedTheme);
|
506
550
|
|
507
551
|
// const handleContextMenu = (e) => {
|
508
552
|
// if (!readOnly) {
|
@@ -533,19 +577,80 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
533
577
|
console.log("handleCursorScroll", err);
|
534
578
|
}
|
535
579
|
};
|
580
|
+
window.getTextIndeces = () => {
|
581
|
+
try {
|
582
|
+
const textWithPaths = extractTextWithPath(editor.children, []);
|
583
|
+
return textWithPaths;
|
584
|
+
} catch (err) {
|
585
|
+
console.log(err);
|
586
|
+
}
|
587
|
+
};
|
588
|
+
window.replaceTextIndeces = (path_data = []) => {
|
589
|
+
try {
|
590
|
+
const replacedJson = replaceTextPath(JSON.parse(JSON.stringify(editor.children)), path_data);
|
591
|
+
|
592
|
+
// loop delete all
|
593
|
+
editor.children.forEach(() => {
|
594
|
+
Transforms.delete(editor, {
|
595
|
+
at: [0]
|
596
|
+
});
|
597
|
+
});
|
598
|
+
|
599
|
+
// Insert new nodes
|
600
|
+
Transforms.insertNodes(editor, replacedJson, {
|
601
|
+
at: [0]
|
602
|
+
});
|
603
|
+
} catch (err) {
|
604
|
+
console.log(err);
|
605
|
+
}
|
606
|
+
};
|
607
|
+
window.replaceEditorContent = (fragments = []) => {
|
608
|
+
try {
|
609
|
+
// loop delete all
|
610
|
+
editor.children.forEach(() => {
|
611
|
+
Transforms.delete(editor, {
|
612
|
+
at: [0]
|
613
|
+
});
|
614
|
+
});
|
615
|
+
|
616
|
+
// Insert new nodes
|
617
|
+
Transforms.insertNodes(editor, fragments, {
|
618
|
+
at: [0]
|
619
|
+
});
|
620
|
+
} catch (err) {
|
621
|
+
console.log(err);
|
622
|
+
}
|
623
|
+
};
|
536
624
|
return /*#__PURE__*/_jsxs(EditorProvider, {
|
537
625
|
theme: theme,
|
538
626
|
editor: editor,
|
627
|
+
openTheme: openTheme,
|
628
|
+
setOpenTheme: setOpenTheme,
|
629
|
+
triggerRender: triggerRender,
|
539
630
|
children: [/*#__PURE__*/_jsx(FontLoader, {
|
540
631
|
otherProps: {
|
541
632
|
services: otherProps?.services
|
542
633
|
},
|
543
634
|
readOnly: readOnly
|
544
|
-
}), /*#__PURE__*/
|
635
|
+
}), showThemeButtons ? /*#__PURE__*/_jsxs("div", {
|
636
|
+
className: "theme-buttons",
|
637
|
+
children: [/*#__PURE__*/_jsx(IconButton, {
|
638
|
+
onClick: () => setOpenTheme(true),
|
639
|
+
className: "themePaintIcon",
|
640
|
+
children: /*#__PURE__*/_jsx(ThemePaintIcon, {})
|
641
|
+
}), /*#__PURE__*/_jsx(IconButton, {
|
642
|
+
onClick: () => setOpenAITheme(true),
|
643
|
+
style: {
|
644
|
+
marginTop: "4px"
|
645
|
+
},
|
646
|
+
children: /*#__PURE__*/_jsx(ThemeAIIcon, {})
|
647
|
+
})]
|
648
|
+
}) : null, /*#__PURE__*/_jsx(DialogWrapper, {
|
545
649
|
classes: classes,
|
546
650
|
...props,
|
547
651
|
fullScreen: fullScreen,
|
548
652
|
footer: footer || "",
|
653
|
+
selectedTheme: selectedTheme,
|
549
654
|
children: /*#__PURE__*/_jsx(Box, {
|
550
655
|
component: "div",
|
551
656
|
className: `et-wrpr stimulate-${breakpoint} ${editorClass || ""} ${isIframe ? "iframe-editor" : ""}`,
|
@@ -580,6 +685,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
580
685
|
children: /*#__PURE__*/_jsxs(Box, {
|
581
686
|
component: "div",
|
582
687
|
className: "max-content",
|
688
|
+
sx: themeProps?.sxProps || {},
|
583
689
|
"data-info": outsideEditorClickLabel,
|
584
690
|
children: [renderTopBanner(), /*#__PURE__*/_jsx("div", {
|
585
691
|
className: "scroll-area",
|
@@ -625,8 +731,8 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
625
731
|
chars: chars,
|
626
732
|
type: type,
|
627
733
|
theme: theme,
|
628
|
-
|
629
|
-
|
734
|
+
customProps: customProps,
|
735
|
+
otherProps: customProps
|
630
736
|
}) : null, /*#__PURE__*/_jsx(RnDCopy, {
|
631
737
|
readOnly: readOnly
|
632
738
|
})]
|
@@ -649,6 +755,18 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
649
755
|
"data-info": outsideEditorClickLabel,
|
650
756
|
onClick: handleFooterClick,
|
651
757
|
children: footer
|
758
|
+
}), openTheme ? /*#__PURE__*/_jsx(ThemeSettings, {
|
759
|
+
open: openTheme,
|
760
|
+
setOpen: setOpenTheme,
|
761
|
+
editor: editor,
|
762
|
+
services: otherProps?.services,
|
763
|
+
appTheme: theme,
|
764
|
+
customProps: customProps
|
765
|
+
}) : null, /*#__PURE__*/_jsx(ThemeSettingsAI, {
|
766
|
+
openAITheme: openAITheme,
|
767
|
+
setOpenAITheme: setOpenAITheme,
|
768
|
+
onSaveTheme: otherProps?.onSaveTheme,
|
769
|
+
theme: theme
|
652
770
|
})]
|
653
771
|
})
|
654
772
|
}), !readOnly ? /*#__PURE__*/_jsx(PopupTool, {
|
@@ -657,8 +775,9 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
657
775
|
setIsTextSelected: setIsTextSelected,
|
658
776
|
customProps: customProps,
|
659
777
|
editorWrapper: editorWrapper
|
660
|
-
}) : null, !readOnly
|
778
|
+
}) : null, !readOnly ? /*#__PURE__*/_jsx(SwitchViewport, {
|
661
779
|
breakpoint: breakpoint,
|
780
|
+
show: showViewport,
|
662
781
|
onChange: b => onSwitchBreakpoint(b),
|
663
782
|
translation: translationFn
|
664
783
|
}) : null]
|
@@ -2,6 +2,7 @@ import React from "react";
|
|
2
2
|
import { Dialog, DialogTitle, DialogContent, IconButton, Grid } from "@mui/material";
|
3
3
|
import CloseIcon from "@mui/icons-material/Close";
|
4
4
|
import ViewportStimulator from "./common/RnD/Theme/ViewportStimulator";
|
5
|
+
import MainThemeProvider from "./common/RnD/Theme/MainThemeProvider";
|
5
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
6
7
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
7
8
|
const DialogWrapper = props => {
|
@@ -9,40 +10,45 @@ const DialogWrapper = props => {
|
|
9
10
|
fullScreen,
|
10
11
|
onClose,
|
11
12
|
children,
|
12
|
-
classes
|
13
|
+
classes,
|
14
|
+
selectedTheme
|
13
15
|
} = props;
|
14
|
-
return fullScreen ? /*#__PURE__*/
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
},
|
22
|
-
sx: classes.fullScreenWrapper,
|
23
|
-
children: [/*#__PURE__*/_jsx(DialogTitle, {
|
16
|
+
return fullScreen ? /*#__PURE__*/_jsx(MainThemeProvider, {
|
17
|
+
userSelectedTheme: selectedTheme,
|
18
|
+
children: /*#__PURE__*/_jsxs(Dialog, {
|
19
|
+
className: `dialogComp`,
|
20
|
+
open: fullScreen,
|
21
|
+
fullScreen: fullScreen,
|
22
|
+
onClose: onClose,
|
24
23
|
style: {
|
25
|
-
|
24
|
+
zIndex: 1000
|
26
25
|
},
|
27
|
-
|
26
|
+
sx: classes.fullScreenWrapper,
|
27
|
+
children: [/*#__PURE__*/_jsx(DialogTitle, {
|
28
|
+
style: {
|
29
|
+
padding: "6px 8px"
|
30
|
+
},
|
28
31
|
children: /*#__PURE__*/_jsx(Grid, {
|
29
|
-
|
30
|
-
display: "flex",
|
31
|
-
justifyContent: "end"
|
32
|
-
},
|
33
|
-
children: /*#__PURE__*/_jsx(IconButton, {
|
34
|
-
onClick: onClose,
|
32
|
+
children: /*#__PURE__*/_jsx(Grid, {
|
35
33
|
style: {
|
36
|
-
|
34
|
+
display: "flex",
|
35
|
+
justifyContent: "end"
|
37
36
|
},
|
38
|
-
children: /*#__PURE__*/_jsx(
|
37
|
+
children: /*#__PURE__*/_jsx(IconButton, {
|
38
|
+
onClick: onClose,
|
39
|
+
style: {
|
40
|
+
background: "rgba(255,255,255,0.5)"
|
41
|
+
},
|
42
|
+
children: /*#__PURE__*/_jsx(CloseIcon, {})
|
43
|
+
})
|
39
44
|
})
|
40
45
|
})
|
41
|
-
})
|
42
|
-
|
43
|
-
|
44
|
-
})
|
46
|
+
}), /*#__PURE__*/_jsx(DialogContent, {
|
47
|
+
children: children
|
48
|
+
})]
|
49
|
+
})
|
45
50
|
}) : /*#__PURE__*/_jsx(ViewportStimulator, {
|
51
|
+
selectedTheme: selectedTheme,
|
46
52
|
children: children
|
47
53
|
});
|
48
54
|
};
|
package/dist/Editor/Editor.css
CHANGED
@@ -426,6 +426,32 @@ blockquote {
|
|
426
426
|
|
427
427
|
.upload-sign-img-wrapper {
|
428
428
|
text-align: center;
|
429
|
+
position: relative;
|
430
|
+
}
|
431
|
+
|
432
|
+
.upload-sign-img {
|
433
|
+
max-width: 100%;
|
434
|
+
}
|
435
|
+
|
436
|
+
.remove-sign-img-btn {
|
437
|
+
padding: 8px 12px;
|
438
|
+
background-color: #ffffff68;
|
439
|
+
cursor: pointer;
|
440
|
+
width: fit-content;
|
441
|
+
border-radius: 8px;
|
442
|
+
position: absolute;
|
443
|
+
left: 50%;
|
444
|
+
top: 50%;
|
445
|
+
transform: translate(-50%, -50%);
|
446
|
+
display: none;
|
447
|
+
}
|
448
|
+
|
449
|
+
.remove-sign-img-btn:hover {
|
450
|
+
background-color: #ffffffa0;
|
451
|
+
}
|
452
|
+
|
453
|
+
.upload-sign-img-wrapper:hover .remove-sign-img-btn {
|
454
|
+
display: block;
|
429
455
|
}
|
430
456
|
|
431
457
|
.signature-tab img {
|
@@ -1106,6 +1132,14 @@ blockquote {
|
|
1106
1132
|
margin: 0px;
|
1107
1133
|
}
|
1108
1134
|
|
1135
|
+
.listItemMargin .accordion-container {
|
1136
|
+
margin-left: -20px;
|
1137
|
+
}
|
1138
|
+
|
1139
|
+
li:has(.accordion-container) {
|
1140
|
+
list-style: none;
|
1141
|
+
}
|
1142
|
+
|
1109
1143
|
.content-editable.empty {
|
1110
1144
|
position: relative;
|
1111
1145
|
}
|
@@ -1316,16 +1350,16 @@ blockquote {
|
|
1316
1350
|
|
1317
1351
|
::selection {
|
1318
1352
|
color: inherit;
|
1319
|
-
background: rgba(35, 131, 226, 0.35) !important;
|
1353
|
+
/* background: rgba(35, 131, 226, 0.35) !important; */
|
1320
1354
|
}
|
1321
1355
|
|
1322
1356
|
::-moz-selection {
|
1323
|
-
background: rgba(35, 131, 226, 0.35) !important;
|
1357
|
+
/* background: rgba(35, 131, 226, 0.35) !important; */
|
1324
1358
|
color: inherit;
|
1325
1359
|
}
|
1326
1360
|
|
1327
1361
|
::-webkit-selection {
|
1328
|
-
background: rgba(35, 131, 226, 0.35) !important;
|
1362
|
+
/* background: rgba(35, 131, 226, 0.35) !important; */
|
1329
1363
|
color: inherit;
|
1330
1364
|
}
|
1331
1365
|
|
@@ -1342,21 +1376,33 @@ code.markcode {
|
|
1342
1376
|
background-color: #f3f3f3;
|
1343
1377
|
font-family: 'Source Code Pro' !important;
|
1344
1378
|
}
|
1379
|
+
|
1345
1380
|
/* Hide the popper when the reference is hidden */
|
1346
1381
|
.hide-popper-on-overlap[data-popper-escaped],
|
1347
1382
|
.hide-popper-on-overlap[data-popper-reference-hidden] {
|
1348
1383
|
visibility: hidden;
|
1349
1384
|
pointer-events: none;
|
1350
1385
|
}
|
1351
|
-
|
1352
|
-
|
1353
|
-
|
1354
|
-
|
1355
|
-
|
1356
|
-
|
1357
|
-
|
1386
|
+
|
1387
|
+
.theme-buttons {
|
1388
|
+
display: flex;
|
1389
|
+
justify-content: end;
|
1390
|
+
align-items: center;
|
1391
|
+
margin: auto;
|
1392
|
+
position: absolute;
|
1393
|
+
top: 60px;
|
1394
|
+
right: 20px;
|
1395
|
+
z-index: 1000;
|
1396
|
+
}
|
1397
|
+
|
1398
|
+
.themePaintIcon:hover .iconBorder {
|
1399
|
+
fill: #2563EB;
|
1400
|
+
}
|
1401
|
+
|
1402
|
+
.themePaintIcon:hover .iconStroke {
|
1403
|
+
stroke: #2563EB;
|
1358
1404
|
}
|
1359
1405
|
|
1360
1406
|
.hyperLink {
|
1361
1407
|
word-break: break-all;
|
1362
|
-
}
|
1408
|
+
}
|
@@ -167,6 +167,7 @@ function PopoverAIInput({
|
|
167
167
|
const [generatedText, setGeneratedText] = useState("");
|
168
168
|
const [inputValue, setInputValue] = useState("");
|
169
169
|
const [selectedOption, setSelectedOption] = useState();
|
170
|
+
const [threadId, setThreadId] = useState("");
|
170
171
|
const selectedEleRef = useRef({});
|
171
172
|
const classes = Styles();
|
172
173
|
const editor = useSlate();
|
@@ -188,6 +189,7 @@ function PopoverAIInput({
|
|
188
189
|
useEffect(() => {
|
189
190
|
if (openAI) {
|
190
191
|
scrollToAIInput(editor);
|
192
|
+
setThreadId("");
|
191
193
|
}
|
192
194
|
}, [openAI]);
|
193
195
|
useEffect(() => {
|
@@ -196,8 +198,12 @@ function PopoverAIInput({
|
|
196
198
|
const framePayload = (type, option) => {
|
197
199
|
let payload = {
|
198
200
|
mode: option.mode || 0,
|
199
|
-
query: option?.inputValue || inputValue
|
201
|
+
query: option?.inputValue || inputValue,
|
202
|
+
useSession: true
|
200
203
|
};
|
204
|
+
if (threadId) {
|
205
|
+
payload.threadId = threadId;
|
206
|
+
}
|
201
207
|
if (option.mode === MODES.translate || option.mode === MODES.rephraseTone) {
|
202
208
|
payload.textOptionInput = type;
|
203
209
|
}
|
@@ -257,12 +263,14 @@ function PopoverAIInput({
|
|
257
263
|
setLoading(false);
|
258
264
|
setInputValue("");
|
259
265
|
let {
|
260
|
-
|
261
|
-
|
266
|
+
body: text,
|
267
|
+
threadId
|
268
|
+
} = result?.data || {};
|
262
269
|
if (!text) {
|
263
270
|
onClickOutside();
|
264
271
|
return;
|
265
272
|
}
|
273
|
+
setThreadId(threadId || "");
|
266
274
|
|
267
275
|
// if (!option.replace) {
|
268
276
|
if (type === "continue_writing") {
|