@flozy/editor 3.9.0 → 3.9.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.
@@ -54,6 +54,22 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
54
54
  if (editor) {
55
55
  ReactEditor.focus(editor);
56
56
  insertEmoji(editor, emoji?.native, editor.selection);
57
+ if (editor.selection) {
58
+ // const path = editor.selection.anchor.path;
59
+ // const offset = editor.selection.anchor.offset + emoji?.native.length;
60
+ const position = {
61
+ anchor: {
62
+ path: [0],
63
+ offset: 0
64
+ },
65
+ focus: {
66
+ path: [0],
67
+ offset: 0
68
+ }
69
+ };
70
+ // Create a new selection
71
+ Transforms.select(editor, position);
72
+ }
57
73
  ReactEditor.focus(editor);
58
74
  }
59
75
  },
@@ -160,7 +160,7 @@ const Accordion = props => {
160
160
  children: [/*#__PURE__*/_jsxs("div", {
161
161
  className: "accordion-title",
162
162
  style: {
163
- backgroundColor: bgColor
163
+ background: bgColor
164
164
  },
165
165
  onClick: onToggle,
166
166
  children: [/*#__PURE__*/_jsx(Box, {
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
+ import { getBorderColor, getTextColor } from "../../helper";
2
3
  import { Box } from "@mui/material";
3
4
  import { getBreakPointsValue, getTRBLBreakPoints } from "../../helper/theme";
4
5
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -15,21 +16,25 @@ const AccordionSummary = props => {
15
16
  borderRadius,
16
17
  bannerSpacing
17
18
  } = element;
19
+ const textStyles = getTextColor(textColor);
20
+ const borderStyle = getBorderColor(borderColor);
18
21
  return /*#__PURE__*/_jsx(Box, {
19
22
  className: `accordion-summary-container`,
20
23
  ...attributes,
21
- sx: {
24
+ style: {
22
25
  width: "100%",
23
26
  position: "relative",
24
- backgroundColor: bgColor,
25
- border: `1px solid ${borderColor}`,
26
- color: textColor,
27
+ background: bgColor,
28
+ ...borderStyle
29
+ },
30
+ sx: {
27
31
  borderRadius: {
28
32
  ...getBreakPointsValue(borderRadius || {}, null, "overrideBorderRadius", true)
29
33
  },
30
34
  padding: {
31
35
  ...getTRBLBreakPoints(bannerSpacing)
32
- }
36
+ },
37
+ '& span[data-slate-string="true"]': textStyles
33
38
  },
34
39
  component: "div",
35
40
  children: children
@@ -68,7 +68,8 @@ const CheckList = ({
68
68
  style: {
69
69
  flex: 1,
70
70
  opacity: checked ? 1 : 1,
71
- textDecoration: !checked ? "none" : "none"
71
+ textDecoration: !checked ? "none" : "none",
72
+ width: '90%'
72
73
  },
73
74
  className: `checkbox-list content-editable ${isEmpty ? "empty" : ""}`,
74
75
  placeholder: nestedCheckList ? "" : "Todo List",
@@ -1,4 +1,4 @@
1
- import React, { useState } from "react";
1
+ import React, { useMemo, useState } from "react";
2
2
  import { Grid, Button, Popover } from "@mui/material";
3
3
  import ColorPickerTool from "react-gcolor-picker";
4
4
  import { colors } from "../Elements/Color Picker/defaultColors";
@@ -11,7 +11,8 @@ const ColorPickerButton = props => {
11
11
  onSave,
12
12
  defaultColors = [],
13
13
  classes = {},
14
- recentColors = []
14
+ recentColors = [],
15
+ hideGradient
15
16
  } = props;
16
17
  const [anchorEl, setAnchorEl] = useState(null);
17
18
  const [color, setColor] = useState(value);
@@ -29,6 +30,13 @@ const ColorPickerButton = props => {
29
30
  const handleColorChange = color => {
30
31
  setColor(color);
31
32
  };
33
+ const initialColors = useMemo(() => {
34
+ let colors = [...recentColors, ...defaultColors];
35
+ if (hideGradient) {
36
+ colors = colors.filter(c => c && !c.includes("gradient"));
37
+ }
38
+ return colors;
39
+ }, [recentColors, defaultColors, hideGradient]);
32
40
  return /*#__PURE__*/_jsxs(_Fragment, {
33
41
  children: [/*#__PURE__*/_jsx(Button, {
34
42
  style: {
@@ -61,10 +69,10 @@ const ColorPickerButton = props => {
61
69
  xs: 12,
62
70
  children: [/*#__PURE__*/_jsx("div", {
63
71
  children: /*#__PURE__*/_jsx(ColorPickerTool, {
64
- gradient: true,
72
+ gradient: hideGradient ? false : true,
65
73
  value: color,
66
74
  onChange: handleColorChange,
67
- defaultColors: [...recentColors, ...defaultColors] || []
75
+ defaultColors: initialColors
68
76
  })
69
77
  }), /*#__PURE__*/_jsxs("div", {
70
78
  style: {
@@ -5,7 +5,8 @@ const accordionTitleBtnStyle = [{
5
5
  label: "Accordion Color",
6
6
  key: "accordionTextColor",
7
7
  type: "color",
8
- needPreview: true
8
+ needPreview: true,
9
+ hideGradient: true
9
10
  }, {
10
11
  label: "Accordion Background Color",
11
12
  key: "accordionBgColor",
@@ -12,11 +12,12 @@ const Color = props => {
12
12
  } = props;
13
13
  const {
14
14
  key,
15
- label
15
+ label,
16
+ hideGradient
16
17
  } = data;
17
18
  const [recentColors, setRecentColors] = useState({});
18
19
  useEffect(() => {
19
- const storedColors = JSON.parse(localStorage.getItem('recentColors'));
20
+ const storedColors = JSON.parse(localStorage.getItem("recentColors"));
20
21
  if (storedColors) {
21
22
  setRecentColors(storedColors);
22
23
  }
@@ -39,7 +40,7 @@ const Color = props => {
39
40
  [key]: updatedColors
40
41
  };
41
42
  setRecentColors(updatedColors);
42
- localStorage.setItem('recentColors', JSON.stringify(updatedColors));
43
+ localStorage.setItem("recentColors", JSON.stringify(updatedColors));
43
44
  };
44
45
  return /*#__PURE__*/_jsxs(Grid, {
45
46
  item: true,
@@ -68,7 +69,8 @@ const Color = props => {
68
69
  classes: classes,
69
70
  value: value,
70
71
  onSave: onSave,
71
- recentColors: recentColors[key]
72
+ recentColors: recentColors[key],
73
+ hideGradient: hideGradient
72
74
  })
73
75
  })
74
76
  }
@@ -154,4 +154,26 @@ export const debounce = function (func, wait, immediate) {
154
154
  timeout = setTimeout(later, wait);
155
155
  if (callNow) func.apply(context, args);
156
156
  };
157
+ };
158
+ export const getTextColor = (color = "") => {
159
+ return color?.indexOf("gradient") >= 0 ? {
160
+ background: color?.concat("text"),
161
+ WebkitBackgroundClip: "text",
162
+ WebkitTextFillColor: "transparent",
163
+ color: "transparent",
164
+ caretColor: "black"
165
+ } : {
166
+ color
167
+ };
168
+ };
169
+ export const getBorderColor = (borderColor = "") => {
170
+ const borderStyle = borderColor ? {
171
+ border: "1px solid"
172
+ } : {};
173
+ if (borderColor?.indexOf("gradient") >= 0) {
174
+ borderStyle.borderImage = `${borderColor} 1`;
175
+ } else {
176
+ borderStyle.borderColor = borderColor;
177
+ }
178
+ return borderStyle;
157
179
  };
@@ -32,7 +32,7 @@ import FormField from "../Elements/Form/FormField";
32
32
  import InlineIcon from "../Elements/InlineIcon/InlineIcon";
33
33
  import SimpleText from "../Elements/SimpleText";
34
34
  import CheckList from "../Elements/List/CheckList";
35
- import { isEmptyTextNode } from "../helper";
35
+ import { getTextColor, isEmptyTextNode } from "../helper";
36
36
  import Attachments from "../Elements/Attachments/Attachments";
37
37
  import { getBreakPointsValue } from "../helper/theme";
38
38
  import Variables from "../Elements/Variables/Variable";
@@ -203,13 +203,7 @@ export const getMarked = (leaf, children) => {
203
203
  // cover under single span
204
204
  if (leaf.color || leaf.bgColor || leaf.fontSize || leaf.fontFamily || leaf.fontWeight || className) {
205
205
  const family = fontFamilyMap[leaf?.fontFamily];
206
- const textStyles = leaf?.color?.indexOf("gradient") >= 0 ? {
207
- background: leaf?.color?.concat("text"),
208
- WebkitBackgroundClip: "text",
209
- WebkitTextFillColor: "transparent"
210
- } : {
211
- color: leaf.color
212
- };
206
+ const textStyles = getTextColor(leaf?.color);
213
207
  children = /*#__PURE__*/_jsx("span", {
214
208
  style: {
215
209
  background: leaf.bgColor
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flozy/editor",
3
- "version": "3.9.0",
3
+ "version": "3.9.3",
4
4
  "description": "An Editor for flozy app brain",
5
5
  "files": [
6
6
  "dist"