@flozy/editor 9.1.2 → 9.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/Editor/ChatEditor.js +19 -2
  2. package/dist/Editor/CommonEditor.js +104 -37
  3. package/dist/Editor/DialogWrapper.js +31 -25
  4. package/dist/Editor/Editor.css +21 -3
  5. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  6. package/dist/Editor/Elements/Button/EditorButton.js +25 -9
  7. package/dist/Editor/Elements/Color Picker/ColorButtons.js +57 -12
  8. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  9. package/dist/Editor/Elements/Color Picker/ColorPicker.js +5 -5
  10. package/dist/Editor/Elements/Color Picker/Styles.js +1 -1
  11. package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +4 -1
  12. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +3 -4
  13. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +6 -1
  14. package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +19 -9
  15. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +32 -2
  16. package/dist/Editor/Elements/DataView/Layouts/TableView.js +126 -29
  17. package/dist/Editor/Elements/DataView/Layouts/ViewData.js +3 -3
  18. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +1 -1
  19. package/dist/Editor/Elements/DataView/styles.js +8 -8
  20. package/dist/Editor/Elements/Embed/Image.js +2 -2
  21. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +0 -14
  22. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +2 -1
  23. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +2 -1
  24. package/dist/Editor/Elements/FreeGrid/styles.js +3 -0
  25. package/dist/Editor/Elements/Grid/GridItem.js +2 -3
  26. package/dist/Editor/Elements/Link/Link.js +70 -43
  27. package/dist/Editor/Elements/SimpleText/index.js +0 -1
  28. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  29. package/dist/Editor/Elements/Table/Table.js +43 -27
  30. package/dist/Editor/Elements/Table/TableCell.js +4 -3
  31. package/dist/Editor/Elements/Title/title.js +13 -31
  32. package/dist/Editor/Elements/Variables/Style.js +28 -2
  33. package/dist/Editor/Elements/Variables/VariableButton.js +17 -4
  34. package/dist/Editor/Styles/EditorStyles.js +5 -5
  35. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  36. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  37. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  38. package/dist/Editor/Toolbar/FormatTools/TextSize.js +7 -15
  39. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +1 -0
  40. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +9 -8
  41. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
  42. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +210 -85
  43. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +2 -1
  44. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +16 -12
  45. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +54 -7
  46. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +438 -0
  47. package/dist/Editor/Toolbar/PopupTool/index.js +5 -10
  48. package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
  49. package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
  50. package/dist/Editor/common/ColorPickerButton.js +35 -9
  51. package/dist/Editor/common/CustomColorPicker/index.js +106 -0
  52. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  53. package/dist/Editor/common/CustomDialog/index.js +90 -0
  54. package/dist/Editor/common/CustomDialog/styles.js +80 -0
  55. package/dist/Editor/common/CustomDialog2/index.js +94 -0
  56. package/dist/Editor/common/CustomDialog2/style.js +67 -0
  57. package/dist/Editor/common/CustomSelect.js +33 -0
  58. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  59. package/dist/Editor/common/DnD/Draggable.js +0 -1
  60. package/dist/Editor/common/FontLoader/FontLoader.js +3 -0
  61. package/dist/Editor/common/Icon.js +28 -0
  62. package/dist/Editor/common/ImageSelector/Options/Upload.js +1 -1
  63. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  64. package/dist/Editor/common/ImageSelector/UploadStyles.js +9 -10
  65. package/dist/Editor/common/MentionsPopup/Styles.js +6 -12
  66. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  67. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  68. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  69. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  70. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  71. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
  72. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +3 -2
  73. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  74. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +3 -2
  75. package/dist/Editor/common/RnD/ElementSettings/styles.js +0 -1
  76. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +8 -2
  77. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  78. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  79. package/dist/Editor/common/RnD/Utils/gridDropItem.js +5 -4
  80. package/dist/Editor/common/RnD/Utils/index.js +45 -0
  81. package/dist/Editor/common/RnD/index.js +23 -3
  82. package/dist/Editor/common/Shorthands/elements.js +54 -0
  83. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  84. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +5 -0
  85. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  86. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  87. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +10 -2
  88. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +35 -11
  89. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +13 -4
  90. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  91. package/dist/Editor/common/Uploader.js +8 -0
  92. package/dist/Editor/commonStyle.js +114 -69
  93. package/dist/Editor/helper/index.js +2 -2
  94. package/dist/Editor/helper/theme.js +200 -2
  95. package/dist/Editor/hooks/useDrag.js +17 -11
  96. package/dist/Editor/hooks/useEditorScroll.js +0 -1
  97. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  98. package/dist/Editor/hooks/useMouseMove.js +9 -3
  99. package/dist/Editor/plugins/withEmbeds.js +1 -1
  100. package/dist/Editor/plugins/withHTML.js +19 -14
  101. package/dist/Editor/plugins/withLayout.js +1 -1
  102. package/dist/Editor/plugins/withTable.js +1 -1
  103. package/dist/Editor/theme/ThemeList.js +50 -173
  104. package/dist/Editor/theme/index.js +144 -0
  105. package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
  106. package/dist/Editor/themeSettings/buttons/index.js +283 -0
  107. package/dist/Editor/themeSettings/buttons/style.js +21 -0
  108. package/dist/Editor/themeSettings/colorTheme/index.js +292 -0
  109. package/dist/Editor/themeSettings/colorTheme/style.js +77 -0
  110. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  111. package/dist/Editor/themeSettings/fonts/index.js +220 -0
  112. package/dist/Editor/themeSettings/fonts/style.js +44 -0
  113. package/dist/Editor/themeSettings/icons.js +60 -0
  114. package/dist/Editor/themeSettings/index.js +320 -0
  115. package/dist/Editor/themeSettings/style.js +152 -0
  116. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  117. package/dist/Editor/themeSettingsAI/index.js +356 -0
  118. package/dist/Editor/themeSettingsAI/saveTheme.js +197 -0
  119. package/dist/Editor/themeSettingsAI/style.js +250 -0
  120. package/dist/Editor/utils/SlateUtilityFunctions.js +150 -37
  121. package/dist/Editor/utils/button.js +0 -14
  122. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +23 -0
  123. package/dist/Editor/utils/draftToSlate.js +3 -2
  124. package/dist/Editor/utils/font.js +40 -37
  125. package/dist/Editor/utils/helper.js +59 -27
  126. package/dist/Editor/utils/link.js +1 -1
  127. package/dist/Editor/utils/table.js +8 -0
  128. package/package.json +6 -3
@@ -1,4 +1,4 @@
1
- import React, { useCallback, useMemo, useRef, useState, useEffect, useImperativeHandle, forwardRef } from "react";
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, setValue] = useState(convertedContent);
44
+ const [value] = useState(convertedContent);
45
45
  const debouncedValue = useRef(value);
46
46
  const debounced = useDebouncedCallback(
47
47
  // function
@@ -82,6 +82,14 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
82
82
  // Focus enable
83
83
  enableFocus: () => {
84
84
  if (editor) {
85
+ if (editor.children.length === 0) {
86
+ Transforms.insertNodes(editor, {
87
+ type: "paragraph",
88
+ children: [{
89
+ text: ""
90
+ }]
91
+ });
92
+ }
85
93
  const position = {
86
94
  anchor: {
87
95
  path: [0],
@@ -142,6 +150,7 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
142
150
  const mentionsRef = useRef();
143
151
  const customProps = {
144
152
  ...(otherProps || {}),
153
+ hideTools: ["settings", "add_column", "drag", "resize"],
145
154
  readOnly: isReadOnly,
146
155
  editorPlaceholder: "Write Something",
147
156
  page_id: 1
@@ -178,6 +187,14 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
178
187
  });
179
188
  };
180
189
  const handleEditorChange = newValue => {
190
+ if (editor.children.length === 0) {
191
+ Transforms.insertNodes(editor, {
192
+ type: "paragraph",
193
+ children: [{
194
+ text: ""
195
+ }]
196
+ });
197
+ }
181
198
  debounced(newValue);
182
199
  debouncedValue.current = newValue;
183
200
  };
@@ -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 { getBreakpointLineSpacing, getTRBLBreakPoints } from "./helper/theme";
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
- const firstNode = content ? content[0] : {};
80
- return firstNode?.type === "topbanner" ? firstNode : null;
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,20 +203,9 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
186
203
  return {
187
204
  value: JSON.stringify(val),
188
205
  text: text,
189
- title: serializeToText(title?.children) || "Untitled"
206
+ title: serializeToText(title?.children) || ""
190
207
  };
191
208
  };
192
- const getTitleSaveData = title => {
193
- const val = debouncedValue.current;
194
- const data = {
195
- text: serializeToText(val),
196
- title: title
197
- };
198
- if (customProps.onSaveTitle) {
199
- const isTitleChanged = true;
200
- customProps.onSaveTitle(JSON.stringify(val), data, isTitleChanged);
201
- }
202
- };
203
209
  const getPreviewImage = async (needBackground = false, options = {}) => {
204
210
  ReactEditor.blur(editor);
205
211
  const dom = needBackground ? editorWrapper?.current : editorWrapper?.current.getElementsByClassName("innert-editor-textbox")[0];
@@ -296,6 +302,12 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
296
302
  redo() {
297
303
  editor?.redo();
298
304
  },
305
+ toggleTheme() {
306
+ setOpenTheme(!openTheme);
307
+ },
308
+ toggleAITheme() {
309
+ setOpenAITheme(!openAITheme);
310
+ },
299
311
  getPageSettings: {
300
312
  background: pageBgImage && pageBgImage !== "none" ? `url(${pageBgImage})` : pageColor || ""
301
313
  }
@@ -344,8 +356,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
344
356
  page_title: page_title,
345
357
  isIframe: isIframe,
346
358
  onDrawerOpen: onDrawerOpen,
347
- ICON_API: "https://assets.agenciflow.com",
348
- getTitleSaveData
359
+ ICON_API: "https://assets.agenciflow.com"
349
360
  };
350
361
  const lineH = getBreakpointLineSpacing(lineHeight, breakpoint);
351
362
  const renderElement = useCallback(props => {
@@ -367,6 +378,15 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
367
378
  ...partialState
368
379
  }));
369
380
  };
381
+ const handleDeleteAll = () => {
382
+ const {
383
+ selection
384
+ } = editor;
385
+ if (selection) {
386
+ editor.deleteFragment();
387
+ dialogRef.current?.handleClose();
388
+ }
389
+ };
370
390
  const onKeyDown = useCallback(event => {
371
391
  const isMetaKey = event.metaKey && event.keyCode >= 65 && event.keyCode <= 90;
372
392
  const isCtrlKey = event.ctrlKey || isMetaKey;
@@ -413,16 +433,27 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
413
433
  const {
414
434
  selection
415
435
  } = editor;
436
+ const everythingSelect = isEverythingSelected(editor);
416
437
  event.preventDefault();
417
- if (selection) {
418
- if (!Range.isCollapsed(selection)) {
419
- editor.deleteFragment();
420
- } else {
421
- editor.deleteBackward({
422
- unit: "character"
423
- });
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
+ }
424
449
  }
425
450
  }
451
+ } else if (event.key === "Delete") {
452
+ const everythingSelect = isEverythingSelected(editor);
453
+ if (everythingSelect) {
454
+ event.preventDefault();
455
+ dialogRef.current?.handleOpen();
456
+ }
426
457
  }
427
458
  }, [chars, target, mentions, setMentions, search, type, mentionsRef]);
428
459
  const Overlay = collaborativeEditor && !isReadOnly ? RemoteCursorOverlay : React.Fragment;
@@ -472,6 +503,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
472
503
  }
473
504
  return style;
474
505
  }, [pageBgImage, pageColor]);
506
+ const themeProps = getTheme(selectedTheme);
475
507
 
476
508
  // const handleContextMenu = (e) => {
477
509
  // if (!readOnly) {
@@ -501,14 +533,30 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
501
533
  console.log("handleCursorScroll", err);
502
534
  }
503
535
  };
504
- return /*#__PURE__*/_jsx(EditorProvider, {
536
+ return /*#__PURE__*/_jsxs(EditorProvider, {
505
537
  theme: theme,
506
538
  editor: editor,
507
- children: /*#__PURE__*/_jsx(DialogWrapper, {
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, {
508
555
  classes: classes,
509
556
  ...props,
510
557
  fullScreen: fullScreen,
511
558
  footer: footer || "",
559
+ selectedTheme: selectedTheme,
512
560
  children: /*#__PURE__*/_jsxs(Box, {
513
561
  component: "div",
514
562
  className: `et-wrpr stimulate-${breakpoint} ${editorClass || ""} ${isIframe ? "iframe-editor" : ""}`,
@@ -538,6 +586,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
538
586
  children: /*#__PURE__*/_jsxs(Box, {
539
587
  component: "div",
540
588
  className: "max-content",
589
+ sx: themeProps?.sxProps || {},
541
590
  "data-info": outsideEditorClickLabel,
542
591
  children: [renderTopBanner(), /*#__PURE__*/_jsx("div", {
543
592
  className: "scroll-area",
@@ -604,6 +653,15 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
604
653
  "data-info": outsideEditorClickLabel,
605
654
  onClick: handleFooterClick,
606
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
607
665
  })]
608
666
  })
609
667
  }), !readOnly ? /*#__PURE__*/_jsx(PopupTool, {
@@ -612,8 +670,9 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
612
670
  setIsTextSelected: setIsTextSelected,
613
671
  customProps: customProps,
614
672
  editorWrapper: editorWrapper
615
- }) : null, !readOnly && showViewport ? /*#__PURE__*/_jsx(SwitchViewport, {
673
+ }) : null, !readOnly ? /*#__PURE__*/_jsx(SwitchViewport, {
616
674
  breakpoint: breakpoint,
675
+ show: showViewport,
617
676
  onChange: b => onSwitchBreakpoint(b)
618
677
  }) : null]
619
678
  })
@@ -628,7 +687,15 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
628
687
  readOnly: readOnly
629
688
  })]
630
689
  })
631
- })
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
+ })]
632
699
  });
633
700
  });
634
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__*/_jsxs(Dialog, {
15
- className: `dialogComp`,
16
- open: fullScreen,
17
- fullScreen: fullScreen,
18
- onClose: onClose,
19
- style: {
20
- zIndex: 1000
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
- padding: "6px 8px"
24
+ zIndex: 1000
26
25
  },
27
- children: /*#__PURE__*/_jsx(Grid, {
26
+ sx: classes.fullScreenWrapper,
27
+ children: [/*#__PURE__*/_jsx(DialogTitle, {
28
+ style: {
29
+ padding: "6px 8px"
30
+ },
28
31
  children: /*#__PURE__*/_jsx(Grid, {
29
- style: {
30
- display: "flex",
31
- justifyContent: "end"
32
- },
33
- children: /*#__PURE__*/_jsx(IconButton, {
34
- onClick: onClose,
32
+ children: /*#__PURE__*/_jsx(Grid, {
35
33
  style: {
36
- background: "rgba(255,255,255,0.5)"
34
+ display: "flex",
35
+ justifyContent: "end"
37
36
  },
38
- children: /*#__PURE__*/_jsx(CloseIcon, {})
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
- }), /*#__PURE__*/_jsx(DialogContent, {
43
- children: children
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
  };
@@ -1280,8 +1280,8 @@ blockquote {
1280
1280
  }
1281
1281
  @media (max-width: 899px) {
1282
1282
  /* Qa validation required */
1283
- /* .MuiPopover-root {
1284
- z-index: 1302 !important;
1283
+ /* .MuiPopover-root {
1284
+ z-index: 1302 !important;
1285
1285
  } */
1286
1286
 
1287
1287
  canvas {
@@ -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 || "#FFF",
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 || "#FFF",
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 || "#FFFFFF"}`,
278
- background: bgColorHover || bgColor || "rgb(30, 75, 122)",
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,