@flozy/editor 9.1.0 → 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.
- package/dist/Editor/ChatEditor.js +3 -2
- package/dist/Editor/CommonEditor.js +103 -24
- package/dist/Editor/DialogWrapper.js +31 -25
- package/dist/Editor/Editor.css +19 -1
- package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
- package/dist/Editor/Elements/Button/EditorButton.js +25 -9
- package/dist/Editor/Elements/Color Picker/ColorButtons.js +57 -12
- package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
- package/dist/Editor/Elements/Color Picker/ColorPicker.js +5 -5
- package/dist/Editor/Elements/Color Picker/Styles.js +1 -1
- package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +4 -1
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +3 -4
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +6 -1
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +19 -9
- package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +32 -2
- package/dist/Editor/Elements/DataView/Layouts/TableView.js +126 -29
- package/dist/Editor/Elements/DataView/Layouts/ViewData.js +3 -3
- package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +1 -1
- package/dist/Editor/Elements/DataView/styles.js +8 -8
- package/dist/Editor/Elements/Embed/Image.js +2 -2
- package/dist/Editor/Elements/FreeGrid/FreeGrid.js +0 -14
- package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +2 -1
- package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +2 -1
- package/dist/Editor/Elements/FreeGrid/styles.js +3 -0
- package/dist/Editor/Elements/Grid/GridItem.js +2 -3
- package/dist/Editor/Elements/Link/Link.js +70 -43
- package/dist/Editor/Elements/SimpleText/index.js +0 -1
- package/dist/Editor/Elements/SimpleText/style.js +2 -2
- package/dist/Editor/Elements/Table/Table.js +5 -4
- package/dist/Editor/Elements/Table/TableCell.js +4 -3
- package/dist/Editor/Elements/Title/title.js +13 -1
- package/dist/Editor/Elements/Variables/Style.js +28 -2
- package/dist/Editor/Elements/Variables/VariableButton.js +17 -4
- package/dist/Editor/Styles/EditorStyles.js +5 -5
- 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 +7 -15
- package/dist/Editor/Toolbar/Mini/MiniToolbar.js +1 -0
- package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +9 -8
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +210 -85
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +2 -1
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +16 -12
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +57 -13
- package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +438 -0
- package/dist/Editor/Toolbar/PopupTool/index.js +2 -1
- package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
- package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
- package/dist/Editor/common/ColorPickerButton.js +35 -9
- package/dist/Editor/common/CustomColorPicker/index.js +106 -0
- package/dist/Editor/common/CustomColorPicker/style.js +53 -0
- package/dist/Editor/common/CustomDialog/index.js +90 -0
- package/dist/Editor/common/CustomDialog/styles.js +80 -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 +33 -0
- package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
- package/dist/Editor/common/DnD/Draggable.js +0 -1
- package/dist/Editor/common/FontLoader/FontLoader.js +3 -0
- package/dist/Editor/common/Icon.js +28 -0
- package/dist/Editor/common/ImageSelector/Styles.js +3 -9
- package/dist/Editor/common/ImageSelector/UploadStyles.js +0 -1
- package/dist/Editor/common/MentionsPopup/Styles.js +6 -12
- package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
- 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/VideoSettings.js +3 -2
- package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +8 -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 +5 -4
- package/dist/Editor/common/RnD/Utils/index.js +45 -0
- package/dist/Editor/common/RnD/index.js +23 -3
- package/dist/Editor/common/Shorthands/elements.js +54 -0
- package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
- 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 +10 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +35 -11
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +13 -4
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
- package/dist/Editor/common/Uploader.js +8 -0
- package/dist/Editor/commonStyle.js +114 -69
- package/dist/Editor/helper/index.js +2 -2
- package/dist/Editor/helper/theme.js +200 -2
- package/dist/Editor/hooks/useEditorTheme.js +153 -0
- package/dist/Editor/hooks/useMouseMove.js +9 -3
- package/dist/Editor/plugins/withEmbeds.js +1 -1
- package/dist/Editor/plugins/withHTML.js +19 -14
- package/dist/Editor/plugins/withLayout.js +1 -1
- package/dist/Editor/plugins/withTable.js +1 -1
- package/dist/Editor/theme/ThemeList.js +50 -173
- package/dist/Editor/theme/index.js +144 -0
- package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
- package/dist/Editor/themeSettings/buttons/index.js +283 -0
- package/dist/Editor/themeSettings/buttons/style.js +21 -0
- package/dist/Editor/themeSettings/colorTheme/index.js +292 -0
- package/dist/Editor/themeSettings/colorTheme/style.js +77 -0
- package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
- package/dist/Editor/themeSettings/fonts/index.js +220 -0
- package/dist/Editor/themeSettings/fonts/style.js +44 -0
- package/dist/Editor/themeSettings/icons.js +60 -0
- package/dist/Editor/themeSettings/index.js +320 -0
- package/dist/Editor/themeSettings/style.js +152 -0
- package/dist/Editor/themeSettingsAI/icons.js +96 -0
- package/dist/Editor/themeSettingsAI/index.js +356 -0
- package/dist/Editor/themeSettingsAI/saveTheme.js +197 -0
- package/dist/Editor/themeSettingsAI/style.js +250 -0
- package/dist/Editor/utils/SlateUtilityFunctions.js +150 -37
- package/dist/Editor/utils/button.js +0 -14
- package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +23 -0
- package/dist/Editor/utils/draftToSlate.js +3 -2
- package/dist/Editor/utils/font.js +40 -37
- package/dist/Editor/utils/helper.js +59 -19
- package/dist/Editor/utils/link.js +1 -1
- package/package.json +5 -2
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { useCallback, useMemo, useRef, useState,
|
1
|
+
import React, { useCallback, useMemo, useRef, useState, useImperativeHandle, forwardRef } from "react";
|
2
2
|
import { Editable, Slate, ReactEditor } from 'slate-react';
|
3
3
|
import { createEditor, Transforms, Editor } from 'slate';
|
4
4
|
import withCommon from "./hooks/withCommon";
|
@@ -41,7 +41,7 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
41
41
|
}]
|
42
42
|
}]
|
43
43
|
});
|
44
|
-
const [value
|
44
|
+
const [value] = useState(convertedContent);
|
45
45
|
const debouncedValue = useRef(value);
|
46
46
|
const debounced = useDebouncedCallback(
|
47
47
|
// function
|
@@ -142,6 +142,7 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
142
142
|
const mentionsRef = useRef();
|
143
143
|
const customProps = {
|
144
144
|
...(otherProps || {}),
|
145
|
+
hideTools: ["settings", "add_column", "drag", "resize"],
|
145
146
|
readOnly: isReadOnly,
|
146
147
|
editorPlaceholder: "Write Something",
|
147
148
|
page_id: 1
|
@@ -1,5 +1,5 @@
|
|
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
4
|
import { createEditor, Range, Transforms } from "slate";
|
5
5
|
import { Slate, Editable, ReactEditor } from "slate-react";
|
@@ -17,7 +17,7 @@ import { serializeToText } from "./utils/serializeToText";
|
|
17
17
|
import { getPageSettings } from "./utils/pageSettings";
|
18
18
|
import { getThumbnailImage, invertColor } 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 {
|
30
|
-
import { getInitialValue, handleInsertLastElement, isFreeGrid, isFreeGridFragment, isRestrictedNode, outsideEditorClickLabel } from "./utils/helper";
|
29
|
+
import { getTRBLBreakPoints, getVariableValue, getBreakpointLineSpacing } from "./helper/theme";
|
30
|
+
import { getInitialValue, 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,8 +40,11 @@ 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";
|
44
|
+
import { CustomDialogComponent } from "./common/CustomDialog";
|
40
45
|
import { jsx as _jsx } from "react/jsx-runtime";
|
41
46
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
47
|
+
export const ThemeContext = /*#__PURE__*/createContext(null);
|
42
48
|
const Item = /*#__PURE__*/forwardRef(({
|
43
49
|
children,
|
44
50
|
...props
|
@@ -75,10 +81,10 @@ const Leaf = /*#__PURE__*/React.memo(({
|
|
75
81
|
});
|
76
82
|
Leaf.displayName = "Leaf";
|
77
83
|
const updateTopBanner = (content = [], setTopBanner) => {
|
78
|
-
setTopBanner(() => {
|
79
|
-
|
80
|
-
|
81
|
-
});
|
84
|
+
// setTopBanner(() => {
|
85
|
+
// const firstNode = content ? content[0] : {};
|
86
|
+
// return firstNode?.type === "topbanner" ? firstNode : null;
|
87
|
+
// });
|
82
88
|
};
|
83
89
|
const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
84
90
|
const {
|
@@ -93,13 +99,15 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
93
99
|
otherProps,
|
94
100
|
isIframe,
|
95
101
|
theme,
|
102
|
+
showThemeButtons,
|
96
103
|
showViewport = false,
|
97
104
|
overrideWrapperStyles = {}
|
98
105
|
} = props;
|
99
106
|
const editorWrapper = useRef();
|
100
107
|
const mentionsRef = useRef();
|
101
108
|
const convertedContent = draftToSlate({
|
102
|
-
data: content
|
109
|
+
data: content,
|
110
|
+
needLayout: otherProps?.needLayout
|
103
111
|
});
|
104
112
|
const [value, setValue] = useState(convertedContent);
|
105
113
|
const [isInteracted, setIsInteracted] = useState(false);
|
@@ -114,6 +122,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
114
122
|
const [breakpoint, setBreakpoint] = useState("");
|
115
123
|
const [topBanner, setTopBanner] = useState();
|
116
124
|
const debouncedValue = useRef(value);
|
125
|
+
const dialogRef = useRef(null);
|
117
126
|
const [size] = useWindowResize();
|
118
127
|
const {
|
119
128
|
needDotsBG,
|
@@ -139,10 +148,11 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
139
148
|
const {
|
140
149
|
bannerSpacing,
|
141
150
|
pageBgImage,
|
142
|
-
pageColor,
|
151
|
+
pageColor = "",
|
143
152
|
color: pageTextColor,
|
144
153
|
pageWidth,
|
145
154
|
maxWidth: pageMaxWidth,
|
155
|
+
theme: selectedTheme,
|
146
156
|
lineHeight
|
147
157
|
} = pageSt?.pageProps || {
|
148
158
|
bannerSpacing: {
|
@@ -154,10 +164,17 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
154
164
|
};
|
155
165
|
const classes = editorStyles({
|
156
166
|
padHeight: !fullScreen ? otherProps?.padHeight : 20,
|
157
|
-
placeHolderColor: invertColor(pageColor || "#FFF"),
|
167
|
+
placeHolderColor: invertColor(pageColor.startsWith("var") ? getVariableValue(pageColor) : pageColor || "#FFF"),
|
158
168
|
theme,
|
159
169
|
overrideWrapperStyles
|
160
170
|
});
|
171
|
+
const [openTheme, setOpenTheme] = useState(false);
|
172
|
+
const [openAITheme, setOpenAITheme] = useState(false);
|
173
|
+
const [, setThemeUpdated] = useState(0);
|
174
|
+
const triggerRender = () => {
|
175
|
+
setThemeUpdated(prev => prev + 1); // Incrementing forces a re-render while updating theme
|
176
|
+
};
|
177
|
+
|
161
178
|
const isMobile = window.matchMedia("(max-width: 899px)")?.matches || false;
|
162
179
|
useEffect(() => {
|
163
180
|
setValue(draftToSlate({
|
@@ -171,11 +188,11 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
171
188
|
const debounced = useDebouncedCallback(
|
172
189
|
// function
|
173
190
|
value => {
|
191
|
+
debouncedValue.current = value;
|
174
192
|
const {
|
175
193
|
value: strVal,
|
176
194
|
...restVal
|
177
195
|
} = getOnSaveData(value);
|
178
|
-
debouncedValue.current = value;
|
179
196
|
onSave(strVal, restVal);
|
180
197
|
},
|
181
198
|
// delay in ms
|
@@ -186,7 +203,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
186
203
|
return {
|
187
204
|
value: JSON.stringify(val),
|
188
205
|
text: text,
|
189
|
-
title: serializeToText(title?.children) || "
|
206
|
+
title: serializeToText(title?.children) || ""
|
190
207
|
};
|
191
208
|
};
|
192
209
|
const getPreviewImage = async (needBackground = false, options = {}) => {
|
@@ -285,6 +302,12 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
285
302
|
redo() {
|
286
303
|
editor?.redo();
|
287
304
|
},
|
305
|
+
toggleTheme() {
|
306
|
+
setOpenTheme(!openTheme);
|
307
|
+
},
|
308
|
+
toggleAITheme() {
|
309
|
+
setOpenAITheme(!openAITheme);
|
310
|
+
},
|
288
311
|
getPageSettings: {
|
289
312
|
background: pageBgImage && pageBgImage !== "none" ? `url(${pageBgImage})` : pageColor || ""
|
290
313
|
}
|
@@ -355,6 +378,15 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
355
378
|
...partialState
|
356
379
|
}));
|
357
380
|
};
|
381
|
+
const handleDeleteAll = () => {
|
382
|
+
const {
|
383
|
+
selection
|
384
|
+
} = editor;
|
385
|
+
if (selection) {
|
386
|
+
editor.deleteFragment();
|
387
|
+
dialogRef.current?.handleClose();
|
388
|
+
}
|
389
|
+
};
|
358
390
|
const onKeyDown = useCallback(event => {
|
359
391
|
const isMetaKey = event.metaKey && event.keyCode >= 65 && event.keyCode <= 90;
|
360
392
|
const isCtrlKey = event.ctrlKey || isMetaKey;
|
@@ -401,16 +433,27 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
401
433
|
const {
|
402
434
|
selection
|
403
435
|
} = editor;
|
436
|
+
const everythingSelect = isEverythingSelected(editor);
|
404
437
|
event.preventDefault();
|
405
|
-
if (
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
}
|
438
|
+
if (everythingSelect) {
|
439
|
+
dialogRef.current?.handleOpen();
|
440
|
+
} else {
|
441
|
+
if (selection) {
|
442
|
+
if (!Range.isCollapsed(selection)) {
|
443
|
+
editor.deleteFragment();
|
444
|
+
} else {
|
445
|
+
editor.deleteBackward({
|
446
|
+
unit: "character"
|
447
|
+
});
|
448
|
+
}
|
412
449
|
}
|
413
450
|
}
|
451
|
+
} else if (event.key === "Delete") {
|
452
|
+
const everythingSelect = isEverythingSelected(editor);
|
453
|
+
if (everythingSelect) {
|
454
|
+
event.preventDefault();
|
455
|
+
dialogRef.current?.handleOpen();
|
456
|
+
}
|
414
457
|
}
|
415
458
|
}, [chars, target, mentions, setMentions, search, type, mentionsRef]);
|
416
459
|
const Overlay = collaborativeEditor && !isReadOnly ? RemoteCursorOverlay : React.Fragment;
|
@@ -460,6 +503,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
460
503
|
}
|
461
504
|
return style;
|
462
505
|
}, [pageBgImage, pageColor]);
|
506
|
+
const themeProps = getTheme(selectedTheme);
|
463
507
|
|
464
508
|
// const handleContextMenu = (e) => {
|
465
509
|
// if (!readOnly) {
|
@@ -489,14 +533,30 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
489
533
|
console.log("handleCursorScroll", err);
|
490
534
|
}
|
491
535
|
};
|
492
|
-
return /*#__PURE__*/
|
536
|
+
return /*#__PURE__*/_jsxs(EditorProvider, {
|
493
537
|
theme: theme,
|
494
538
|
editor: editor,
|
495
|
-
|
539
|
+
openTheme: openTheme,
|
540
|
+
setOpenTheme: setOpenTheme,
|
541
|
+
triggerRender: triggerRender,
|
542
|
+
children: [showThemeButtons ? /*#__PURE__*/_jsxs("div", {
|
543
|
+
className: "theme-buttons",
|
544
|
+
children: [/*#__PURE__*/_jsx(IconButton, {
|
545
|
+
onClick: () => setOpenTheme(true),
|
546
|
+
children: /*#__PURE__*/_jsx(ThemePaintIcon, {})
|
547
|
+
}), /*#__PURE__*/_jsx(IconButton, {
|
548
|
+
onClick: () => setOpenAITheme(true),
|
549
|
+
style: {
|
550
|
+
marginTop: "4px"
|
551
|
+
},
|
552
|
+
children: /*#__PURE__*/_jsx(ThemeAIIcon, {})
|
553
|
+
})]
|
554
|
+
}) : null, /*#__PURE__*/_jsx(DialogWrapper, {
|
496
555
|
classes: classes,
|
497
556
|
...props,
|
498
557
|
fullScreen: fullScreen,
|
499
558
|
footer: footer || "",
|
559
|
+
selectedTheme: selectedTheme,
|
500
560
|
children: /*#__PURE__*/_jsxs(Box, {
|
501
561
|
component: "div",
|
502
562
|
className: `et-wrpr stimulate-${breakpoint} ${editorClass || ""} ${isIframe ? "iframe-editor" : ""}`,
|
@@ -526,6 +586,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
526
586
|
children: /*#__PURE__*/_jsxs(Box, {
|
527
587
|
component: "div",
|
528
588
|
className: "max-content",
|
589
|
+
sx: themeProps?.sxProps || {},
|
529
590
|
"data-info": outsideEditorClickLabel,
|
530
591
|
children: [renderTopBanner(), /*#__PURE__*/_jsx("div", {
|
531
592
|
className: "scroll-area",
|
@@ -592,6 +653,15 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
592
653
|
"data-info": outsideEditorClickLabel,
|
593
654
|
onClick: handleFooterClick,
|
594
655
|
children: footer
|
656
|
+
}), openTheme ? /*#__PURE__*/_jsx(ThemeSettings, {
|
657
|
+
open: openTheme,
|
658
|
+
setOpen: setOpenTheme,
|
659
|
+
editor: editor,
|
660
|
+
services: otherProps?.services
|
661
|
+
}) : null, /*#__PURE__*/_jsx(ThemeSettingsAI, {
|
662
|
+
openAITheme: openAITheme,
|
663
|
+
setOpenAITheme: setOpenAITheme,
|
664
|
+
onSaveTheme: otherProps?.onSaveTheme
|
595
665
|
})]
|
596
666
|
})
|
597
667
|
}), !readOnly ? /*#__PURE__*/_jsx(PopupTool, {
|
@@ -600,8 +670,9 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
600
670
|
setIsTextSelected: setIsTextSelected,
|
601
671
|
customProps: customProps,
|
602
672
|
editorWrapper: editorWrapper
|
603
|
-
}) : null, !readOnly
|
673
|
+
}) : null, !readOnly ? /*#__PURE__*/_jsx(SwitchViewport, {
|
604
674
|
breakpoint: breakpoint,
|
675
|
+
show: showViewport,
|
605
676
|
onChange: b => onSwitchBreakpoint(b)
|
606
677
|
}) : null]
|
607
678
|
})
|
@@ -616,7 +687,15 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
616
687
|
readOnly: readOnly
|
617
688
|
})]
|
618
689
|
})
|
619
|
-
})
|
690
|
+
}), /*#__PURE__*/_jsx(CustomDialogComponent, {
|
691
|
+
ref: dialogRef,
|
692
|
+
content: "Are you sure you want to delete All the content?",
|
693
|
+
confirmText: "Delete",
|
694
|
+
cancelText: "Cancel",
|
695
|
+
onConfirm: () => {
|
696
|
+
handleDeleteAll();
|
697
|
+
}
|
698
|
+
})]
|
620
699
|
});
|
621
700
|
});
|
622
701
|
CommonEditor.displayName = "CommonEditor";
|
@@ -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
@@ -1339,4 +1339,22 @@ code.markcode {
|
|
1339
1339
|
display: block;
|
1340
1340
|
background-color: #f3f3f3;
|
1341
1341
|
font-family: 'Source Code Pro' !important;
|
1342
|
-
}
|
1342
|
+
}
|
1343
|
+
|
1344
|
+
/* Hide the popper when the reference is hidden */
|
1345
|
+
.hide-popper-on-overlap[data-popper-escaped],
|
1346
|
+
.hide-popper-on-overlap[data-popper-reference-hidden] {
|
1347
|
+
visibility: hidden;
|
1348
|
+
pointer-events: none;
|
1349
|
+
}
|
1350
|
+
|
1351
|
+
.theme-buttons {
|
1352
|
+
display: flex;
|
1353
|
+
justify-content: end;
|
1354
|
+
align-items: center;
|
1355
|
+
margin: auto;
|
1356
|
+
position: absolute;
|
1357
|
+
top: 60px;
|
1358
|
+
right: 20px;
|
1359
|
+
z-index: 1000;
|
1360
|
+
}
|
@@ -265,7 +265,7 @@ function AppHeader(props) {
|
|
265
265
|
style: {
|
266
266
|
display: "inline-flex",
|
267
267
|
alignItems: "center",
|
268
|
-
color: textColor,
|
268
|
+
color: textColor || "#000000",
|
269
269
|
fontSize: logoFontSize,
|
270
270
|
fontFamily: titleFontFamily,
|
271
271
|
justifyContent: isLogoRight ? "end" : "start"
|
@@ -320,7 +320,7 @@ function AppHeader(props) {
|
|
320
320
|
fontFamily: fontFamily,
|
321
321
|
textTransform: "none",
|
322
322
|
fontSize: fontSize || "16px",
|
323
|
-
color: textColor || "#
|
323
|
+
color: textColor || "#000",
|
324
324
|
background: bgColor || "none",
|
325
325
|
"& .m-settings": {
|
326
326
|
display: "none",
|
@@ -335,7 +335,7 @@ function AppHeader(props) {
|
|
335
335
|
background: "#FFF"
|
336
336
|
},
|
337
337
|
"&:hover": {
|
338
|
-
color: textColorHover || textColor || "#
|
338
|
+
color: textColorHover || textColor || "#000",
|
339
339
|
background: bgColorHover || bgColor || "none",
|
340
340
|
"& .m-settings": {
|
341
341
|
display: "block"
|
@@ -9,6 +9,8 @@ import { WorkflowIcon } from "../../common/iconslist";
|
|
9
9
|
import { getTRBLBreakPoints, getBreakPointsValue, groupByBreakpoint } from "../../helper/theme";
|
10
10
|
import { handleLinkType, windowVar } from "../../utils/helper";
|
11
11
|
import LinkSettings from "../../common/LinkSettings";
|
12
|
+
import { useEditorTheme } from "../../hooks/useEditorTheme";
|
13
|
+
import { getTheme } from "../../theme";
|
12
14
|
import Icon from "../../common/Icon";
|
13
15
|
import { useEditorContext } from "../../hooks/useMouseMove";
|
14
16
|
import useCommonStyle from "../../commonStyle";
|
@@ -38,6 +40,12 @@ const EditorButton = props => {
|
|
38
40
|
const [openNav, setOpenNav] = useState(false);
|
39
41
|
const [openMoreOptions, setOpenMoreOptions] = useState(false);
|
40
42
|
const classes = useCommonStyle(appTheme);
|
43
|
+
const {
|
44
|
+
theme: selectedTheme
|
45
|
+
} = useEditorTheme();
|
46
|
+
const {
|
47
|
+
buttonTheme
|
48
|
+
} = getTheme(selectedTheme);
|
41
49
|
const {
|
42
50
|
label,
|
43
51
|
bgColor,
|
@@ -51,7 +59,7 @@ const EditorButton = props => {
|
|
51
59
|
fontFamily,
|
52
60
|
textColorHover,
|
53
61
|
bgColorHover,
|
54
|
-
buttonIcon,
|
62
|
+
// buttonIcon,
|
55
63
|
iconPosition = "start",
|
56
64
|
borderStyle,
|
57
65
|
borderWidth,
|
@@ -72,6 +80,7 @@ const EditorButton = props => {
|
|
72
80
|
};
|
73
81
|
const isTrigger = linkType === "nextTrigger" || linkType === "prevTrigger";
|
74
82
|
const refURl = isTrigger ? buttonLink?.url : url;
|
83
|
+
const buttonIcon = element?.buttonIcon || buttonTheme?.buttonIcon;
|
75
84
|
const BtnIcon = buttonIcon ? buttonIcon : null;
|
76
85
|
windowVar.lastButtonProps = element;
|
77
86
|
const handleTrigger = async () => {
|
@@ -162,6 +171,7 @@ const EditorButton = props => {
|
|
162
171
|
display: "inline-flex",
|
163
172
|
color: "rgba(0, 0, 0, 0.54)",
|
164
173
|
marginBottom: "0px !important",
|
174
|
+
...classes.buttonMoreOption,
|
165
175
|
...classes.buttonMoreOption3
|
166
176
|
},
|
167
177
|
...btnProps,
|
@@ -253,19 +263,14 @@ const EditorButton = props => {
|
|
253
263
|
display: "inline-block"
|
254
264
|
},
|
255
265
|
children: [/*#__PURE__*/_jsxs(Box, {
|
266
|
+
className: `btn textAlign-${tAlign} button theme-element`,
|
256
267
|
ref: buttonRef,
|
257
|
-
className: `btn textAlign-${tAlign}`,
|
258
268
|
sx: {
|
259
269
|
textDecoration: "none",
|
260
|
-
background: bgColor || "rgb(30, 75, 122)",
|
261
270
|
borderBlockStyle: "solid",
|
262
|
-
borderColor: borderColor || "transparent",
|
263
271
|
borderWidth: borderWidth !== undefined ? borderWidth : borderColor ? "1px" : "0px",
|
264
272
|
...btnSp,
|
265
273
|
borderStyle: borderStyle || "solid",
|
266
|
-
color: `${textColor || "#FFFFFF"}`,
|
267
|
-
fontSize: textSize || "inherit",
|
268
|
-
fontFamily: fontFamily || "PoppinsRegular",
|
269
274
|
display: "inline-flex",
|
270
275
|
alignItems: "center",
|
271
276
|
position: "relative",
|
@@ -274,11 +279,22 @@ const EditorButton = props => {
|
|
274
279
|
display: "none"
|
275
280
|
},
|
276
281
|
"&:hover": {
|
277
|
-
color: `${textColorHover || textColor
|
278
|
-
background: bgColorHover || bgColor
|
282
|
+
color: `${textColorHover || textColor}`,
|
283
|
+
background: bgColorHover || bgColor,
|
279
284
|
"& .element-toolbar": {
|
280
285
|
display: "flex"
|
281
286
|
}
|
287
|
+
},
|
288
|
+
color: textColor ? `${textColor} !important` : "#FFFFFF",
|
289
|
+
fontSize: textSize ? `${textSize}px !important` : "inherit",
|
290
|
+
fontFamily: fontFamily ? `${fontFamily} !important` : "PoppinsRegular",
|
291
|
+
background: `${bgColor} !important`,
|
292
|
+
borderColor: `${borderColor} !important`,
|
293
|
+
borderRadius: {
|
294
|
+
...getBreakPointsValue(borderRadius || buttonTheme?.borderRadius || {}, null, "overrideBorderRadius", true)
|
295
|
+
},
|
296
|
+
padding: {
|
297
|
+
...getTRBLBreakPoints(bannerSpacing || buttonTheme?.bannerSpacing || {})
|
282
298
|
}
|
283
299
|
},
|
284
300
|
...buttonProps,
|
@@ -1,11 +1,15 @@
|
|
1
1
|
import React, { useState } from "react";
|
2
|
-
import { Box, IconButton, Popover } from "@mui/material";
|
2
|
+
import { Box, IconButton, Popover, Typography, useTheme } from "@mui/material";
|
3
3
|
import KeyboardArrowDownRoundedIcon from "@mui/icons-material/KeyboardArrowDownRounded";
|
4
4
|
import Button from "../../common/Button";
|
5
5
|
import { colors } from "./defaultColors";
|
6
6
|
import ColorPicker from "./colorPicker.svg";
|
7
|
+
import { useSlateStatic } from "slate-react";
|
8
|
+
import { Transforms } from "slate";
|
9
|
+
import { useEditorContext } from "../../hooks/useMouseMove";
|
7
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
8
11
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
12
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
9
13
|
let c = [];
|
10
14
|
const ColorChunks = (recentColors = []) => [...recentColors, ...colors].reduce((a, b, i) => {
|
11
15
|
if (i % 7 === 0) {
|
@@ -110,12 +114,18 @@ const ColorButtons = props => {
|
|
110
114
|
openColorTool,
|
111
115
|
onClose,
|
112
116
|
onColorPickerClick,
|
117
|
+
disableEditTheme,
|
113
118
|
defaultColors = []
|
114
119
|
} = props;
|
115
120
|
const [row1, ...restRows] = ColorChunks([]);
|
116
121
|
const [anchorEl, setAnchorEl] = useState(null);
|
117
122
|
const open = Boolean(anchorEl);
|
118
123
|
const firstRow = defaultColors?.length ? defaultColors : row1;
|
124
|
+
const theme = useTheme();
|
125
|
+
const editor = useSlateStatic();
|
126
|
+
const {
|
127
|
+
setOpenTheme
|
128
|
+
} = useEditorContext();
|
119
129
|
const handleMore = e => {
|
120
130
|
setAnchorEl(e.currentTarget);
|
121
131
|
};
|
@@ -128,6 +138,7 @@ const ColorButtons = props => {
|
|
128
138
|
const handleSelect = color => () => {
|
129
139
|
onSelect(color);
|
130
140
|
};
|
141
|
+
const colorVars = theme?.vars?.colors || {};
|
131
142
|
return /*#__PURE__*/_jsxs(Box, {
|
132
143
|
component: "span",
|
133
144
|
sx: classes.colorButtons,
|
@@ -144,7 +155,7 @@ const ColorButtons = props => {
|
|
144
155
|
activeColor: activeColor
|
145
156
|
}, `si_btn_row1_${m}_${i}`);
|
146
157
|
})
|
147
|
-
}), /*#__PURE__*/
|
158
|
+
}), /*#__PURE__*/_jsx(Popover, {
|
148
159
|
open: open || openColorTool,
|
149
160
|
anchorEl: anchorEl || openColorTool,
|
150
161
|
onClose: handleClose,
|
@@ -158,9 +169,39 @@ const ColorButtons = props => {
|
|
158
169
|
},
|
159
170
|
sx: classes.colorPopper,
|
160
171
|
className: "colorPopper",
|
161
|
-
children:
|
172
|
+
children: /*#__PURE__*/_jsxs(Box, {
|
162
173
|
sx: classes.colorButtonsInner,
|
163
|
-
children:
|
174
|
+
children: [Object.values(colorVars)?.length ? /*#__PURE__*/_jsxs(_Fragment, {
|
175
|
+
children: [/*#__PURE__*/_jsxs(Box, {
|
176
|
+
component: "div",
|
177
|
+
className: "singleColorTitleWrapper",
|
178
|
+
children: [/*#__PURE__*/_jsx(Typography, {
|
179
|
+
variant: "subtitle2",
|
180
|
+
children: "Theme colours"
|
181
|
+
}), disableEditTheme ? null : /*#__PURE__*/_jsx("div", {
|
182
|
+
className: "editBtn",
|
183
|
+
onClick: () => {
|
184
|
+
Transforms.deselect(editor, {
|
185
|
+
at: editor.selection
|
186
|
+
});
|
187
|
+
setOpenTheme("editThemeColor");
|
188
|
+
},
|
189
|
+
children: "Edit"
|
190
|
+
})]
|
191
|
+
}), /*#__PURE__*/_jsx(SingleColorButton, {
|
192
|
+
crs: Object.values(colorVars),
|
193
|
+
handleSelect: handleSelect,
|
194
|
+
classes: classes,
|
195
|
+
activeColor: activeColor
|
196
|
+
})]
|
197
|
+
}) : null, /*#__PURE__*/_jsx(Box, {
|
198
|
+
component: "div",
|
199
|
+
className: "singleColorTitleWrapper",
|
200
|
+
children: /*#__PURE__*/_jsx(Typography, {
|
201
|
+
variant: "subtitle2",
|
202
|
+
children: "Custom colour"
|
203
|
+
})
|
204
|
+
}), restRows.map((m, i) => {
|
164
205
|
return /*#__PURE__*/_jsx(SingleColorButton, {
|
165
206
|
id: `p2_${id}`,
|
166
207
|
crs: m,
|
@@ -169,14 +210,18 @@ const ColorButtons = props => {
|
|
169
210
|
classes: classes,
|
170
211
|
activeColor: activeColor
|
171
212
|
}, `si_btn_${m}_${i}`);
|
172
|
-
})
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
213
|
+
}), forMiniTool ? /*#__PURE__*/_jsx(IconButton, {
|
214
|
+
onClick: onColorPickerClick,
|
215
|
+
style: {
|
216
|
+
alignSelf: "start",
|
217
|
+
margin: "6px"
|
218
|
+
},
|
219
|
+
children: /*#__PURE__*/_jsx("img", {
|
220
|
+
src: ColorPicker,
|
221
|
+
alt: "color wheel"
|
222
|
+
})
|
223
|
+
}) : null]
|
224
|
+
})
|
180
225
|
})]
|
181
226
|
});
|
182
227
|
};
|