@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,6 +1,7 @@
1
1
  import React from "react";
2
- import { useTheme, ThemeProvider, createTheme } from "@mui/material";
2
+ import { useTheme, createTheme } from "@mui/material";
3
3
  import { isStimulator, STIMULATOR_MOCK } from "../../../hooks/useBreakpoints";
4
+ import MainThemeProvider from "./MainThemeProvider";
4
5
 
5
6
  // Custom breakpoints functions
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -51,12 +52,14 @@ const extendedTheme = prevTheme => createTheme({
51
52
  }
52
53
  });
53
54
  const ViewportStimulator = ({
54
- children
55
+ children,
56
+ selectedTheme
55
57
  }) => {
56
58
  const theme = useTheme();
57
59
  const viewportTheme = extendedTheme(theme);
58
- return /*#__PURE__*/_jsx(ThemeProvider, {
60
+ return /*#__PURE__*/_jsx(MainThemeProvider, {
59
61
  theme: viewportTheme,
62
+ userSelectedTheme: selectedTheme,
60
63
  children: children
61
64
  });
62
65
  };
@@ -2,10 +2,11 @@ import { Transforms, Node, Path } from "slate";
2
2
  import { ReactEditor } from "slate-react";
3
3
  import { handleNegativeInteger } from "../../../utils/helper";
4
4
  export const ROW_HEIGHT = 50;
5
- const MARGIN_OF = {
6
- xs: 160,
7
- lg: 490
8
- };
5
+
6
+ // const MARGIN_OF = {
7
+ // xs: 160,
8
+ // lg: 490,
9
+ // };
9
10
 
10
11
  /**
11
12
  * This method will update the grid template rows of parent section based on height
@@ -1,6 +1,9 @@
1
1
  import { Transforms, Node } from "slate";
2
2
  import { ReactEditor } from "slate-react";
3
3
  import { getNearestItem } from "./calculateDropItem";
4
+ import { ROW_HEIGHT, getBorderWidth } from "./gridDropItem";
5
+ import { handleNegativeInteger } from "../../../utils/helper";
6
+ import { getDevice } from "../../../helper/theme";
4
7
  const GUIDE_LINE_THRESHOLD = 5;
5
8
  const GUIDE_LINE_OVERLAP_THRESHOLD = 5;
6
9
  const handleMoveNode = (editor, path, newPath, {
@@ -248,4 +251,46 @@ export function getParentSectionPath(props, closestClass) {
248
251
  } catch (err) {
249
252
  console.log(err);
250
253
  }
254
+ }
255
+ export function getAbsolutePositionX(currentEle) {
256
+ const isMobile = getDevice(window.innerWidth) === "xs";
257
+ const {
258
+ left: currElementLeft
259
+ } = currentEle?.getBoundingClientRect() || {};
260
+ let parentBoxDom = currentEle?.closest(".fgi_type_box");
261
+ if (isMobile && !parentBoxDom) {
262
+ parentBoxDom = currentEle?.closest(".freegrid-section");
263
+ }
264
+ const relativeElementX = parentBoxDom || document.querySelector(".rnd-guideline-lv");
265
+ const {
266
+ left
267
+ } = relativeElementX?.getBoundingClientRect() || {};
268
+ const borderLeftWidth = getBorderWidth(relativeElementX, "borderLeftWidth");
269
+ const absolutePositionX = parseInt(currElementLeft - left - borderLeftWidth);
270
+ return {
271
+ absolutePositionX
272
+ };
273
+ }
274
+ export function getAbsolutePositionY(currentEle) {
275
+ const {
276
+ top: currElementTop
277
+ } = currentEle?.getBoundingClientRect() || {};
278
+ const relativeElementY = currentEle?.closest(".freegrid-container-parent");
279
+ const borderTopWidth = getBorderWidth(relativeElementY, "borderTopWidth");
280
+ const rect = relativeElementY.getBoundingClientRect();
281
+ const absolutePositionY = handleNegativeInteger(currElementTop - rect.top - borderTopWidth);
282
+
283
+ // Calculate grid position
284
+ const row = Math.floor(absolutePositionY / ROW_HEIGHT) + 1;
285
+
286
+ // Update grid area
287
+ const gridArea = `${row} / 1 / ${row + 1} / 2`;
288
+
289
+ // to calculate difference inside the grid
290
+ const marginTop = Math.abs((row - 1) * ROW_HEIGHT - absolutePositionY);
291
+ return {
292
+ absolutePositionY,
293
+ gridArea,
294
+ marginTop
295
+ };
251
296
  }
@@ -6,7 +6,7 @@ import Handles from "./TransformHandles";
6
6
  import { useEditorContext } from "../../hooks/useMouseMove";
7
7
  import ElementOptions from "./ElementOptions";
8
8
  import ElementSettings from "./ElementSettings";
9
- import { getClosestDraggable, getParentSectionPath } from "./Utils";
9
+ import { getAbsolutePositionX, getAbsolutePositionY, getClosestDraggable, getParentSectionPath } from "./Utils";
10
10
  import DragInfo from "./DragInfo";
11
11
  import GuideLines from "./GuideLines";
12
12
  import ShadowElement from "./ShadowElement";
@@ -425,9 +425,26 @@ const RnD = props => {
425
425
  };
426
426
  const onResizeStop = (e, direction, ref, d, position) => {
427
427
  e.preventDefault();
428
+ let updatedPosition = {};
429
+ if (type !== "parent") {
430
+ // update element position while resizing, (for free grid box and item)
431
+ const {
432
+ absolutePositionX
433
+ } = getAbsolutePositionX(ref);
434
+ const {
435
+ gridArea,
436
+ marginTop
437
+ } = getAbsolutePositionY(ref);
438
+ updatedPosition = {
439
+ left: absolutePositionX,
440
+ gridArea: gridArea,
441
+ marginTop: marginTop
442
+ };
443
+ }
428
444
  const updatedSize = {
429
445
  width: delta?.width + d.width,
430
- height: delta?.height + d.height
446
+ height: delta?.height + d.height,
447
+ ...updatedPosition
431
448
  };
432
449
  onChange({
433
450
  ...updatedSize
@@ -505,7 +522,10 @@ const RnD = props => {
505
522
  ref: c => {
506
523
  positionRef.current = c;
507
524
  },
508
- className: `${className || ""} ${dragInfoOpen ? "active-drag" : "inactive-drag"} enable-${enable} type_${childType} section_type_${type || "parent"}`,
525
+ className: `${className || ""} ${dragInfoOpen ? "active-drag" : "inactive-drag"} enable-${enable} type_${childType} section_type_${type || "parent"} ${Object.keys(absPosition)?.length ? "" : "remove-resize-styles"
526
+ // Fix rerender issue (remove-resize-styles): After resizing, click close button on a free grid-selected element
527
+ // doesn't remove the default `transform` style from react-rnd. Removing it manually.
528
+ }`,
509
529
  "data-path": str_path,
510
530
  style: {
511
531
  position: "relative",
@@ -43,6 +43,60 @@ const ELEMENTS_LIST = [{
43
43
  icon: "headingThree"
44
44
  }),
45
45
  onInsert: editor => toggleBlock(editor, "headingThree", false)
46
+ }, {
47
+ name: "Heading 4",
48
+ desc: "",
49
+ group: "Text",
50
+ type: "headingFour",
51
+ icon: /*#__PURE__*/_jsx(Icon, {
52
+ icon: "headingFour"
53
+ }),
54
+ onInsert: editor => toggleBlock(editor, "headingFour", false)
55
+ }, {
56
+ name: "Heading 5",
57
+ desc: "",
58
+ group: "Text",
59
+ type: "headingFive",
60
+ icon: /*#__PURE__*/_jsx(Icon, {
61
+ icon: "headingFive"
62
+ }),
63
+ onInsert: editor => toggleBlock(editor, "headingFive", false)
64
+ }, {
65
+ name: "Heading 6",
66
+ desc: "",
67
+ group: "Text",
68
+ type: "headingSix",
69
+ icon: /*#__PURE__*/_jsx(Icon, {
70
+ icon: "headingSix"
71
+ }),
72
+ onInsert: editor => toggleBlock(editor, "headingSix", false)
73
+ }, {
74
+ name: "Paragraph 1",
75
+ desc: "",
76
+ group: "Text",
77
+ type: "paragraphOne",
78
+ icon: /*#__PURE__*/_jsx(Icon, {
79
+ icon: "paragraphOne"
80
+ }),
81
+ onInsert: editor => toggleBlock(editor, "paragraphOne", false)
82
+ }, {
83
+ name: "Paragraph 2",
84
+ desc: "",
85
+ group: "Text",
86
+ type: "paragraphTwo",
87
+ icon: /*#__PURE__*/_jsx(Icon, {
88
+ icon: "paragraphTwo"
89
+ }),
90
+ onInsert: editor => toggleBlock(editor, "paragraphTwo", false)
91
+ }, {
92
+ name: "Paragraph 3",
93
+ desc: "",
94
+ group: "Text",
95
+ type: "paragraphThree",
96
+ icon: /*#__PURE__*/_jsx(Icon, {
97
+ icon: "paragraphThree"
98
+ }),
99
+ onInsert: editor => toggleBlock(editor, "paragraphThree", false)
46
100
  }, {
47
101
  name: "Quote",
48
102
  desc: "",
@@ -21,7 +21,8 @@ const buttonStyle = [{
21
21
  },
22
22
  children: option.text
23
23
  });
24
- }
24
+ },
25
+ themeEnabled: true
25
26
  }, {
26
27
  label: "Font Size",
27
28
  key: "textSize",
@@ -45,7 +46,8 @@ const buttonStyle = [{
45
46
  }, {
46
47
  label: "Button Color",
47
48
  key: "bgColor",
48
- type: "color"
49
+ type: "color",
50
+ themeEnabled: true
49
51
  }, {
50
52
  label: "Border Color",
51
53
  key: "borderColor",
@@ -73,6 +73,11 @@ const BackgroundImage = props => {
73
73
  children: "REMOVE"
74
74
  }) : /*#__PURE__*/_jsx(Grid, {
75
75
  className: "uploadImageText",
76
+ sx: {
77
+ padding: 0,
78
+ background: `${theme?.palette?.editor?.inputFieldBgColor}`,
79
+ border: `1px solid ${theme?.palette?.editor?.inputFieldBorder}`
80
+ },
76
81
  children: /*#__PURE__*/_jsxs(Button, {
77
82
  component: "label",
78
83
  variant: "text",
@@ -3,13 +3,13 @@ import { Checkbox, FormControlLabel, Grid, Slider, Typography, Box, IconButton }
3
3
  import { squreStyle } from "./radiusStyle";
4
4
  import { getBreakPointsValue } from "../../../helper/theme";
5
5
  import useWindowResize from "../../../hooks/useWindowResize";
6
+ import { useEditorTheme } from "../../../hooks/useEditorTheme";
6
7
  import { CheckedBoxCheckIcon } from "../../iconListV2";
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
10
  const BANNER_SPACING_KEYS = ["top", "left", "right", "bottom"];
10
11
  const BannerSpacing = props => {
11
12
  const {
12
- value: val,
13
13
  data,
14
14
  onChange,
15
15
  elementProps,
@@ -19,7 +19,17 @@ const BannerSpacing = props => {
19
19
  key
20
20
  } = data;
21
21
  const lockKeyVal = `lock${key}`;
22
- let lockSpacing = elementProps[lockKeyVal];
22
+ const {
23
+ selectedTheme
24
+ } = useEditorTheme();
25
+ const {
26
+ bannerSpacing,
27
+ lockbannerSpacing
28
+ } = selectedTheme?.elementProps?.button || {};
29
+ const isUserValue = Object.keys(props?.value || {})?.length;
30
+ const isUserLockedSpacing = typeof elementProps[lockKeyVal] === "boolean";
31
+ const val = isUserValue ? props?.value : bannerSpacing;
32
+ let lockSpacing = isUserLockedSpacing ? elementProps[lockKeyVal] : lockbannerSpacing;
23
33
  if (lockSpacing === undefined) {
24
34
  lockSpacing = true;
25
35
  }
@@ -3,28 +3,36 @@ import { Grid, Typography, Slider, FormControlLabel, Checkbox, Box, IconButton }
3
3
  import { radiusStyle } from "./radiusStyle";
4
4
  import useWindowResize from "../../../hooks/useWindowResize";
5
5
  import { getBreakPointsValue, getCustomizationValue } from "../../../helper/theme";
6
+ import { useEditorTheme } from "../../../hooks/useEditorTheme";
6
7
  import { CheckedBoxCheckIcon } from "../../iconListV2";
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
10
  const BORDER_RADIUS_KEYS = ["topLeft", "topRight", "bottomLeft", "bottomRight"];
10
11
  const BorderRadius = props => {
11
12
  const {
12
- value: val,
13
13
  data,
14
14
  onChange,
15
15
  elementProps,
16
16
  classes
17
17
  } = props;
18
- let {
19
- lockRadius
20
- } = elementProps;
21
- if (lockRadius === undefined) {
22
- lockRadius = true;
23
- }
24
18
  const {
25
19
  key
26
20
  } = data;
27
21
  const [size] = useWindowResize();
22
+ const {
23
+ selectedTheme
24
+ } = useEditorTheme();
25
+ const {
26
+ borderRadius,
27
+ lockRadius: themeLockRadius
28
+ } = selectedTheme?.elementProps?.button || {};
29
+ const isUserValue = Object.keys(props?.value || {})?.length;
30
+ const isUserLockedRadius = typeof elementProps?.lockRadius === "boolean";
31
+ const val = isUserValue ? props?.value : borderRadius;
32
+ let lockRadius = isUserLockedRadius ? elementProps?.lockRadius : themeLockRadius;
33
+ if (lockRadius === undefined) {
34
+ lockRadius = true;
35
+ }
28
36
  const value = getBreakPointsValue(val, size?.device);
29
37
  const handleChange = e => {
30
38
  let changeAll = {};
@@ -1,6 +1,7 @@
1
1
  import { Box, Card, Checkbox, FormControlLabel, Grid, Tooltip, Typography } from "@mui/material";
2
2
  import React from "react";
3
3
  import Icon from "../../Icon";
4
+ import { useEditorContext } from "../../../hooks/useMouseMove";
4
5
  import { jsx as _jsx } from "react/jsx-runtime";
5
6
  import { Fragment as _Fragment } from "react/jsx-runtime";
6
7
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -15,7 +16,10 @@ const RenderCard = ({
15
16
  return /*#__PURE__*/_jsx(Card, {
16
17
  sx: {
17
18
  position: 'relative',
18
- padding: "10px"
19
+ padding: "10px",
20
+ '& .MuiCheckbox-root svg': {
21
+ fill: 'unset !important'
22
+ }
19
23
  },
20
24
  children: /*#__PURE__*/_jsx(FormControlLabel, {
21
25
  control: /*#__PURE__*/_jsx(Checkbox, {
@@ -81,6 +85,9 @@ const CardsMapping = props => {
81
85
  selectedCard,
82
86
  infoIcon
83
87
  } = data;
88
+ const {
89
+ theme
90
+ } = useEditorContext();
84
91
  const activeCard = value === selectedCard;
85
92
  const handleChange = e => {
86
93
  if (selectedCard === data?.value) {
@@ -99,7 +106,8 @@ const CardsMapping = props => {
99
106
  sx: {
100
107
  marginBottom: "12px",
101
108
  "& .MuiPaper-root": {
102
- border: activeCard ? "1px solid #2563EB" : "1px solid #C8D8FA",
109
+ background: theme?.palette?.editor?.miniToolBarBackground,
110
+ border: activeCard ? "1px solid #2563EB" : `1px solid ${theme?.palette?.editor?.inputFieldBorder}`,
103
111
  borderRadius: "8px",
104
112
  boxShadow: activeCard ? "0px 4px 16px 0px #2563EB40" : "unset"
105
113
  }
@@ -1,14 +1,23 @@
1
- import React, { useEffect, useState } from "react";
1
+ import React, { useEffect, useMemo, useState } from "react";
2
2
  import { Grid, TextField, InputAdornment, Typography, Tooltip } from "@mui/material";
3
3
  import ColorPickerButton from "../../ColorPickerButton";
4
+ import { useSlateStatic } from "slate-react";
5
+ import { getElementStyle, getVariableValue } from "../../../helper/theme";
4
6
  import { jsx as _jsx } from "react/jsx-runtime";
5
7
  import { jsxs as _jsxs } from "react/jsx-runtime";
8
+ const MAP_STYLE_PROPS = {
9
+ bgColor: "background-color",
10
+ textColor: "color"
11
+ };
6
12
  const Color = props => {
7
13
  const {
8
- value,
14
+ value: val,
9
15
  data,
10
16
  onChange,
11
- classes
17
+ classes,
18
+ elementProps,
19
+ handleClose,
20
+ customProps
12
21
  } = props;
13
22
  const {
14
23
  key,
@@ -16,7 +25,20 @@ const Color = props => {
16
25
  hideGradient
17
26
  } = data;
18
27
  const [recentColors, setRecentColors] = useState({});
19
- const getLable = label === 'Text' ? 'Select text color' : label === 'Background' ? 'Select background color' : label;
28
+ const editor = useSlateStatic();
29
+ const {
30
+ value,
31
+ inputValue
32
+ } = useMemo(() => {
33
+ const isVariable = val && val.startsWith("var");
34
+ const value = isVariable ? val : getElementStyle(editor, elementProps, MAP_STYLE_PROPS[key]);
35
+ const inputValue = isVariable ? getVariableValue(val) : getElementStyle(editor, elementProps, MAP_STYLE_PROPS[key]);
36
+ return {
37
+ value: value || val,
38
+ inputValue: inputValue || val
39
+ };
40
+ }, [editor, val]);
41
+ const getLable = label === "Text" ? "Select text color" : label === "Background" ? "Select background color" : label;
20
42
  useEffect(() => {
21
43
  const storedColors = JSON.parse(localStorage.getItem("recentColors"));
22
44
  if (storedColors) {
@@ -54,11 +76,11 @@ const Color = props => {
54
76
  fontSize: "14px",
55
77
  fontWeight: 500,
56
78
  marginBottom: "5px",
57
- display: 'flex',
58
- alignItems: 'center',
59
- '& svg': {
60
- width: '20px',
61
- height: '20px'
79
+ display: "flex",
80
+ alignItems: "center",
81
+ "& svg": {
82
+ width: "20px",
83
+ height: "20px"
62
84
  }
63
85
  },
64
86
  children: [label, data?.infoIcon ? /*#__PURE__*/_jsx(Tooltip, {
@@ -66,14 +88,14 @@ const Color = props => {
66
88
  title: "Note: If color gradient is used, divider styles will not apply",
67
89
  children: /*#__PURE__*/_jsx("span", {
68
90
  style: {
69
- display: 'inline-block'
91
+ display: "inline-block"
70
92
  },
71
93
  children: data?.infoIcon
72
94
  })
73
95
  }) : null]
74
96
  }), /*#__PURE__*/_jsx(TextField, {
75
97
  fullWidth: true,
76
- value: value,
98
+ value: inputValue,
77
99
  placeholder: getLable || `${label} color code`,
78
100
  InputLabelProps: {
79
101
  shrink: true
@@ -86,6 +108,8 @@ const Color = props => {
86
108
  value: value,
87
109
  onSave: onSave,
88
110
  recentColors: recentColors[key],
111
+ handleClose: handleClose,
112
+ disableEditTheme: customProps?.disableEditTheme,
89
113
  hideGradient: hideGradient
90
114
  })
91
115
  })
@@ -1,19 +1,26 @@
1
- import React from "react";
1
+ import React, { useMemo } from "react";
2
2
  import { TextField, IconButton, Grid, Typography } from "@mui/material";
3
3
  import { sizeMap } from "../../../utils/font.js";
4
4
  import { TextMinusIcon, TextPlusIcon } from "../../../common/iconslist.js";
5
+ import { getElementStyle } from "../../../helper/theme.js";
6
+ import { useSlateStatic } from "slate-react";
5
7
  import { jsx as _jsx } from "react/jsx-runtime";
6
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
7
9
  const FontSize = props => {
8
10
  const {
9
- value,
11
+ value: val,
10
12
  data,
11
- onChange
13
+ onChange,
14
+ elementProps
12
15
  } = props;
13
16
  const {
14
17
  key,
15
18
  width
16
19
  } = data;
20
+ const editor = useSlateStatic();
21
+ const value = useMemo(() => {
22
+ return getElementStyle(editor, elementProps, "font-size") || val;
23
+ }, [editor, val]);
17
24
  const handleChange = e => {
18
25
  let inc = parseInt(e.target.value) || 16;
19
26
  inc = inc > 200 ? 200 : inc;
@@ -24,7 +31,9 @@ const FontSize = props => {
24
31
  const getSizeVal = () => {
25
32
  try {
26
33
  const size = `${value}`?.indexOf("px") >= 0 ? value : sizeMap[value] || value;
27
- return parseInt(size || 16);
34
+ const defaultSize = 16;
35
+ const val = parseInt(size || defaultSize);
36
+ return isNaN(val) ? defaultSize : val;
28
37
  } catch (err) {
29
38
  return "";
30
39
  }
@@ -1,13 +1,13 @@
1
- import React from "react";
1
+ import React, { useMemo } from "react";
2
2
  import { FormControl, Grid, ListItemIcon, ListSubheader, MenuItem, Select, Typography } from "@mui/material";
3
- import { getBreakPointsValue } from "../../../helper/theme";
3
+ import { getBreakPointsValue, getElementStyle } from "../../../helper/theme";
4
4
  import useWindowResize from "../../../hooks/useWindowResize";
5
5
  import { useEditorContext } from "../../../hooks/useMouseMove";
6
6
  import FontFamilyAutocomplete from "../../../Toolbar/FormatTools/FontFamilyAutocomplete";
7
7
  import { useSlate } from "slate-react";
8
8
  import KeyboardArrowDownRoundedIcon from "@mui/icons-material/KeyboardArrowDownRounded";
9
9
 
10
- // hideMetaDataOptions -- pass true to hide metadata option in select field
10
+ // hideMetaDataOptions -- pass true to hide metadata option in select field
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  import { jsxs as _jsxs } from "react/jsx-runtime";
13
13
  import { Fragment as _Fragment } from "react/jsx-runtime";
@@ -30,14 +30,22 @@ const TextOptions = props => {
30
30
  renderOption,
31
31
  width,
32
32
  webFont = false,
33
- hideMetaDataOptions = false
33
+ hideMetaDataOptions = false,
34
+ themeEnabled
34
35
  } = data;
35
36
  const {
36
37
  fontFamilies
37
38
  } = useEditorContext();
38
- const editor = useSlate();
39
39
  const [size] = useWindowResize();
40
- const value = isBreakpoint ? getBreakPointsValue(val, size?.device) : val;
40
+ const editor = useSlate();
41
+ const value = useMemo(() => {
42
+ const userValue = isBreakpoint ? getBreakPointsValue(val, size?.device) : val;
43
+ if (themeEnabled) {
44
+ // editor takes a little amount of time to update the new style in element, in that case userValue will be returned
45
+ return getElementStyle(editor, elementProps, key) || userValue;
46
+ }
47
+ return userValue;
48
+ }, [editor, isBreakpoint, val, size?.device]);
41
49
  const metaDataMappingOptions = metaMappings?.boards || [];
42
50
  const updatedOption = !hideMetaDataOptions && elementProps?.metadatamapping ? [...options, ...metaDataMappingOptions] : webFont ? fontFamilies?.options : options;
43
51
  const handleChange = (e, d) => {
@@ -116,7 +124,7 @@ const TextOptions = props => {
116
124
  editor: editor,
117
125
  format: key,
118
126
  options: fontFamilies.options,
119
- width: '100%',
127
+ width: "100%",
120
128
  onChange: onChange,
121
129
  val: value,
122
130
  webFont: true
@@ -4,6 +4,7 @@ import { convertBase64 } from "../utils/helper";
4
4
  import { uploadFile } from "../service/fileupload";
5
5
  import Icon from "./Icon";
6
6
  import UploadStyles from "../common/ImageSelector/UploadStyles";
7
+ import { useEditorContext } from "../hooks/useMouseMove";
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  import { Fragment as _Fragment } from "react/jsx-runtime";
9
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -18,6 +19,9 @@ const Uploader = props => {
18
19
  const [base64, setBase64] = useState(value?.url);
19
20
  const [fileName, setFileName] = useState("");
20
21
  const [uploading, setUploading] = useState(false);
22
+ const {
23
+ theme
24
+ } = useEditorContext();
21
25
  const handleChange = async e => {
22
26
  const uFile = e.target.files[0];
23
27
  const strImage = await convertBase64(uFile);
@@ -99,6 +103,10 @@ const Uploader = props => {
99
103
  className: "uploadImageSection",
100
104
  children: base64 ? renderThumb() : /*#__PURE__*/_jsx(Grid, {
101
105
  className: "uploadImageText",
106
+ sx: {
107
+ background: `${theme?.palette?.editor?.inputFieldBgColor}`,
108
+ border: `1px solid ${theme?.palette?.editor?.inputFieldBorder}`
109
+ },
102
110
  children: /*#__PURE__*/_jsxs(Button, {
103
111
  component: "label",
104
112
  variant: "text",