@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.
Files changed (123) hide show
  1. package/dist/Editor/ChatEditor.js +3 -2
  2. package/dist/Editor/CommonEditor.js +103 -24
  3. package/dist/Editor/DialogWrapper.js +31 -25
  4. package/dist/Editor/Editor.css +19 -1
  5. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  6. package/dist/Editor/Elements/Button/EditorButton.js +25 -9
  7. package/dist/Editor/Elements/Color Picker/ColorButtons.js +57 -12
  8. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  9. package/dist/Editor/Elements/Color Picker/ColorPicker.js +5 -5
  10. package/dist/Editor/Elements/Color Picker/Styles.js +1 -1
  11. package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +4 -1
  12. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +3 -4
  13. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +6 -1
  14. package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +19 -9
  15. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +32 -2
  16. package/dist/Editor/Elements/DataView/Layouts/TableView.js +126 -29
  17. package/dist/Editor/Elements/DataView/Layouts/ViewData.js +3 -3
  18. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +1 -1
  19. package/dist/Editor/Elements/DataView/styles.js +8 -8
  20. package/dist/Editor/Elements/Embed/Image.js +2 -2
  21. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +0 -14
  22. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +2 -1
  23. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +2 -1
  24. package/dist/Editor/Elements/FreeGrid/styles.js +3 -0
  25. package/dist/Editor/Elements/Grid/GridItem.js +2 -3
  26. package/dist/Editor/Elements/Link/Link.js +70 -43
  27. package/dist/Editor/Elements/SimpleText/index.js +0 -1
  28. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  29. package/dist/Editor/Elements/Table/Table.js +5 -4
  30. package/dist/Editor/Elements/Table/TableCell.js +4 -3
  31. package/dist/Editor/Elements/Title/title.js +13 -1
  32. package/dist/Editor/Elements/Variables/Style.js +28 -2
  33. package/dist/Editor/Elements/Variables/VariableButton.js +17 -4
  34. package/dist/Editor/Styles/EditorStyles.js +5 -5
  35. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  36. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  37. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  38. package/dist/Editor/Toolbar/FormatTools/TextSize.js +7 -15
  39. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +1 -0
  40. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +9 -8
  41. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
  42. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +210 -85
  43. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +2 -1
  44. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +16 -12
  45. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +57 -13
  46. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +438 -0
  47. package/dist/Editor/Toolbar/PopupTool/index.js +2 -1
  48. package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
  49. package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
  50. package/dist/Editor/common/ColorPickerButton.js +35 -9
  51. package/dist/Editor/common/CustomColorPicker/index.js +106 -0
  52. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  53. package/dist/Editor/common/CustomDialog/index.js +90 -0
  54. package/dist/Editor/common/CustomDialog/styles.js +80 -0
  55. package/dist/Editor/common/CustomDialog2/index.js +94 -0
  56. package/dist/Editor/common/CustomDialog2/style.js +67 -0
  57. package/dist/Editor/common/CustomSelect.js +33 -0
  58. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  59. package/dist/Editor/common/DnD/Draggable.js +0 -1
  60. package/dist/Editor/common/FontLoader/FontLoader.js +3 -0
  61. package/dist/Editor/common/Icon.js +28 -0
  62. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  63. package/dist/Editor/common/ImageSelector/UploadStyles.js +0 -1
  64. package/dist/Editor/common/MentionsPopup/Styles.js +6 -12
  65. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  66. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  67. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  68. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  69. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  70. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
  71. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +3 -2
  72. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  73. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +3 -2
  74. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +8 -2
  75. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  76. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  77. package/dist/Editor/common/RnD/Utils/gridDropItem.js +5 -4
  78. package/dist/Editor/common/RnD/Utils/index.js +45 -0
  79. package/dist/Editor/common/RnD/index.js +23 -3
  80. package/dist/Editor/common/Shorthands/elements.js +54 -0
  81. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  82. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +5 -0
  83. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  84. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  85. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +10 -2
  86. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +35 -11
  87. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +13 -4
  88. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  89. package/dist/Editor/common/Uploader.js +8 -0
  90. package/dist/Editor/commonStyle.js +114 -69
  91. package/dist/Editor/helper/index.js +2 -2
  92. package/dist/Editor/helper/theme.js +200 -2
  93. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  94. package/dist/Editor/hooks/useMouseMove.js +9 -3
  95. package/dist/Editor/plugins/withEmbeds.js +1 -1
  96. package/dist/Editor/plugins/withHTML.js +19 -14
  97. package/dist/Editor/plugins/withLayout.js +1 -1
  98. package/dist/Editor/plugins/withTable.js +1 -1
  99. package/dist/Editor/theme/ThemeList.js +50 -173
  100. package/dist/Editor/theme/index.js +144 -0
  101. package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
  102. package/dist/Editor/themeSettings/buttons/index.js +283 -0
  103. package/dist/Editor/themeSettings/buttons/style.js +21 -0
  104. package/dist/Editor/themeSettings/colorTheme/index.js +292 -0
  105. package/dist/Editor/themeSettings/colorTheme/style.js +77 -0
  106. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  107. package/dist/Editor/themeSettings/fonts/index.js +220 -0
  108. package/dist/Editor/themeSettings/fonts/style.js +44 -0
  109. package/dist/Editor/themeSettings/icons.js +60 -0
  110. package/dist/Editor/themeSettings/index.js +320 -0
  111. package/dist/Editor/themeSettings/style.js +152 -0
  112. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  113. package/dist/Editor/themeSettingsAI/index.js +356 -0
  114. package/dist/Editor/themeSettingsAI/saveTheme.js +197 -0
  115. package/dist/Editor/themeSettingsAI/style.js +250 -0
  116. package/dist/Editor/utils/SlateUtilityFunctions.js +150 -37
  117. package/dist/Editor/utils/button.js +0 -14
  118. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +23 -0
  119. package/dist/Editor/utils/draftToSlate.js +3 -2
  120. package/dist/Editor/utils/font.js +40 -37
  121. package/dist/Editor/utils/helper.js +59 -19
  122. package/dist/Editor/utils/link.js +1 -1
  123. package/package.json +5 -2
@@ -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
@@ -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 { 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,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) || "Untitled"
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 (selection) {
406
- if (!Range.isCollapsed(selection)) {
407
- editor.deleteFragment();
408
- } else {
409
- editor.deleteBackward({
410
- unit: "character"
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__*/_jsx(EditorProvider, {
536
+ return /*#__PURE__*/_jsxs(EditorProvider, {
493
537
  theme: theme,
494
538
  editor: editor,
495
- 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, {
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 && showViewport ? /*#__PURE__*/_jsx(SwitchViewport, {
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__*/_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
  };
@@ -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,
@@ -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__*/_jsxs(Popover, {
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: [/*#__PURE__*/_jsx(Box, {
172
+ children: /*#__PURE__*/_jsxs(Box, {
162
173
  sx: classes.colorButtonsInner,
163
- children: restRows.map((m, i) => {
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
- }), forMiniTool ? /*#__PURE__*/_jsx(IconButton, {
174
- onClick: onColorPickerClick,
175
- children: /*#__PURE__*/_jsx("img", {
176
- src: ColorPicker,
177
- alt: "color wheel"
178
- })
179
- }) : null]
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
  };