@flozy/editor 4.0.2 → 4.0.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 (110) hide show
  1. package/dist/Editor/ChatEditor.js +14 -9
  2. package/dist/Editor/CommonEditor.js +110 -167
  3. package/dist/Editor/Editor.css +3 -43
  4. package/dist/Editor/Elements/AI/AIInput.js +33 -31
  5. package/dist/Editor/Elements/AI/CustomSelect.js +12 -19
  6. package/dist/Editor/Elements/AI/PopoverAIInput.js +97 -73
  7. package/dist/Editor/Elements/AI/Styles.js +2 -2
  8. package/dist/Editor/Elements/AI/helper.js +3 -5
  9. package/dist/Editor/Elements/Accordion/AccordionSummary.js +4 -15
  10. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  11. package/dist/Editor/Elements/Button/EditorButton.js +16 -28
  12. package/dist/Editor/Elements/Carousel/CarouselButton.js +1 -2
  13. package/dist/Editor/Elements/Color Picker/ColorButtons.js +15 -60
  14. package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
  15. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  16. package/dist/Editor/Elements/Color Picker/Styles.js +1 -3
  17. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +3 -12
  18. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +1 -2
  19. package/dist/Editor/Elements/Grid/Grid.js +0 -2
  20. package/dist/Editor/Elements/Grid/GridItem.js +1 -3
  21. package/dist/Editor/Elements/Link/Link.js +1 -6
  22. package/dist/Editor/Elements/Link/LinkButton.js +2 -4
  23. package/dist/Editor/Elements/Link/LinkPopup.js +14 -73
  24. package/dist/Editor/Elements/NewLine/NewLineButton.js +1 -2
  25. package/dist/Editor/Elements/Signature/Signature.css +6 -13
  26. package/dist/Editor/Elements/Signature/SignatureOptions/UploadSignature.js +1 -2
  27. package/dist/Editor/Elements/Signature/SignaturePopup.js +30 -185
  28. package/dist/Editor/Elements/SimpleText/index.js +1 -11
  29. package/dist/Editor/Elements/SimpleText/style.js +1 -1
  30. package/dist/Editor/MiniEditor.js +1 -3
  31. package/dist/Editor/Toolbar/Basic/index.js +2 -4
  32. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +3 -27
  33. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  34. package/dist/Editor/Toolbar/FormatTools/TextSize.js +13 -7
  35. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +5 -34
  36. package/dist/Editor/Toolbar/PopupTool/ButtonTemplatesCard.js +13 -12
  37. package/dist/Editor/Toolbar/PopupTool/FullViewCard.js +13 -12
  38. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/CustomSelectTool.js +0 -3
  39. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +11 -4
  40. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +86 -213
  41. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +2 -4
  42. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +44 -123
  43. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +44 -106
  44. package/dist/Editor/Toolbar/PopupTool/index.js +3 -5
  45. package/dist/Editor/Toolbar/toolbarGroups.js +11 -53
  46. package/dist/Editor/assets/svg/AIIcons.js +1 -153
  47. package/dist/Editor/common/ColorPickerButton.js +9 -25
  48. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  49. package/dist/Editor/common/EditorIcons.js +7 -7
  50. package/dist/Editor/common/Icon.js +24 -51
  51. package/dist/Editor/common/ImageList.js +3 -16
  52. package/dist/Editor/common/ImageSelector/ImageSelector.js +9 -30
  53. package/dist/Editor/common/ImageSelector/Styles.js +1 -2
  54. package/dist/Editor/common/LinkSettings/NavComponents.js +2 -5
  55. package/dist/Editor/common/LinkSettings/index.js +2 -4
  56. package/dist/Editor/common/LinkSettings/navOptions.js +2 -7
  57. package/dist/Editor/common/LinkSettings/style.js +8 -11
  58. package/dist/Editor/common/MentionsPopup/Styles.js +1 -1
  59. package/dist/Editor/common/Shorthands/elements.js +9 -63
  60. package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
  61. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +23 -39
  62. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +23 -33
  63. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +1 -1
  64. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +7 -31
  65. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +4 -13
  66. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +4 -14
  67. package/dist/Editor/common/StyleBuilder/index.js +1 -1
  68. package/dist/Editor/commonStyle.js +0 -6
  69. package/dist/Editor/helper/theme.js +4 -191
  70. package/dist/Editor/hooks/useMouseMove.js +1 -4
  71. package/dist/Editor/hooks/useWindowMessage.js +7 -10
  72. package/dist/Editor/plugins/withEmbeds.js +1 -1
  73. package/dist/Editor/plugins/withHTML.js +1 -1
  74. package/dist/Editor/plugins/withTable.js +1 -1
  75. package/dist/Editor/theme/ThemeList.js +173 -50
  76. package/dist/Editor/utils/SlateUtilityFunctions.js +25 -161
  77. package/dist/Editor/utils/button.js +17 -1
  78. package/dist/Editor/utils/font.js +37 -40
  79. package/dist/Editor/utils/helper.js +1 -30
  80. package/package.json +1 -2
  81. package/dist/Editor/Elements/AI/VoiceToText/AudioWave.js +0 -73
  82. package/dist/Editor/Elements/AI/VoiceToText/index.js +0 -184
  83. package/dist/Editor/Elements/AI/VoiceToText/style.js +0 -40
  84. package/dist/Editor/Elements/Link/LinkPopupStyles.js +0 -28
  85. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectSuperSubscript.js +0 -59
  86. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -438
  87. package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
  88. package/dist/Editor/common/CustomColorPicker/index.js +0 -106
  89. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  90. package/dist/Editor/common/CustomDialog/index.js +0 -94
  91. package/dist/Editor/common/CustomDialog/style.js +0 -67
  92. package/dist/Editor/common/CustomSelect.js +0 -33
  93. package/dist/Editor/common/iconListV2.js +0 -843
  94. package/dist/Editor/hooks/useEditorTheme.js +0 -139
  95. package/dist/Editor/theme/index.js +0 -144
  96. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  97. package/dist/Editor/themeSettings/buttons/index.js +0 -290
  98. package/dist/Editor/themeSettings/buttons/style.js +0 -21
  99. package/dist/Editor/themeSettings/colorTheme/index.js +0 -290
  100. package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
  101. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -123
  102. package/dist/Editor/themeSettings/fonts/index.js +0 -213
  103. package/dist/Editor/themeSettings/fonts/style.js +0 -44
  104. package/dist/Editor/themeSettings/icons.js +0 -60
  105. package/dist/Editor/themeSettings/index.js +0 -320
  106. package/dist/Editor/themeSettings/style.js +0 -152
  107. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  108. package/dist/Editor/themeSettingsAI/index.js +0 -356
  109. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -190
  110. package/dist/Editor/themeSettingsAI/style.js +0 -247
@@ -1,4 +1,4 @@
1
- import { Editor, Transforms, Element as SlateElement, Range } from "slate";
1
+ import { Editor, Transforms, Element as SlateElement } from "slate";
2
2
  import { Box } from "@mui/material";
3
3
  import { fontFamilyMap, sizeMap } from "./font";
4
4
  import Link from "../Elements/Link/Link";
@@ -34,12 +34,12 @@ import SimpleText from "../Elements/SimpleText";
34
34
  import CheckList from "../Elements/List/CheckList";
35
35
  import { isEmptyTextNode } from "../helper";
36
36
  import Attachments from "../Elements/Attachments/Attachments";
37
- import { getBreakPointsValue, textThemeFields } from "../helper/theme";
37
+ import { getBreakPointsValue } from "../helper/theme";
38
38
  import Variables from "../Elements/Variables/Variable";
39
+ import insertNewLine from "./insertNewLine";
39
40
  import Divider from "../Elements/Divider/Divider";
40
41
  import { getBorderColor } from "./helper";
41
42
  import Code from "../Elements/EmbedScript/Code";
42
- import { ReactEditor } from "slate-react";
43
43
  import { jsx as _jsx } from "react/jsx-runtime";
44
44
  const alignment = ["alignLeft", "alignRight", "alignCenter"];
45
45
  const list_types = ["orderedList", "unorderedList"];
@@ -47,17 +47,7 @@ const LIST_FORMAT_TYPE = {
47
47
  orderedList: "list-item",
48
48
  unorderedList: "list-item"
49
49
  };
50
-
51
- // const NEWLINESAFTER = [
52
- // "headingOne",
53
- // "headingTwo",
54
- // "headingThree",
55
- // "headingFour",
56
- // "headingFive",
57
- // "headingSix",
58
- // ];
59
-
60
- const THEME_BLOCK_FIELDS = ["headingOne", "headingTwo", "headingThree", "headingFour", "headingFive", "headingSix", "paragraphOne", "paragraphTwo", "paragraphThree"];
50
+ const NEWLINESAFTER = ["headingOne", "headingTwo", "headingThree"];
61
51
  export const toggleBlock = (editor, format, selection = true, attr = {}) => {
62
52
  const isActive = isBlockActive(editor, format);
63
53
  const isList = list_types.includes(format);
@@ -90,9 +80,8 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
90
80
  if (!selection) {
91
81
  Transforms.insertText(editor, "");
92
82
  }
93
- const forActiveType = THEME_BLOCK_FIELDS.some(f => f === format) ? format : "paragraph";
94
83
  Transforms.setNodes(editor, {
95
- type: isActive ? forActiveType : isList ? LIST_FORMAT_TYPE[format] : format,
84
+ type: isActive ? "paragraph" : isList ? LIST_FORMAT_TYPE[format] : format,
96
85
  ...attr
97
86
  });
98
87
  if (isList && !isActive) {
@@ -101,12 +90,10 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
101
90
  children: []
102
91
  });
103
92
  }
104
-
105
- // if (NEWLINESAFTER.indexOf(format) > -1) {
106
- // insertNewLine(editor);
107
- // }
93
+ if (NEWLINESAFTER.indexOf(format) > -1) {
94
+ insertNewLine(editor);
95
+ }
108
96
  };
109
-
110
97
  export const addMarkData = (editor, data) => {
111
98
  try {
112
99
  Editor.addMark(editor, data.format, data.value);
@@ -115,14 +102,9 @@ export const addMarkData = (editor, data) => {
115
102
  }
116
103
  };
117
104
  export const toggleMark = (editor, format) => {
118
- const isActive = isMarkBtnActive(editor, format);
105
+ const isActive = isMarkActive(editor, format);
119
106
  if (isActive) {
120
- const isThemeSupportedMark = textThemeFields.some(f => f === format);
121
- if (isThemeSupportedMark) {
122
- Editor.addMark(editor, format, false);
123
- } else {
124
- Editor.removeMark(editor, format);
125
- }
107
+ Editor.removeMark(editor, format);
126
108
  } else {
127
109
  Editor.addMark(editor, format, true);
128
110
  }
@@ -136,53 +118,6 @@ export const isMarkActive = (editor, format) => {
136
118
  return null;
137
119
  }
138
120
  };
139
- export const isMarkBtnActive = (editor, format) => {
140
- switch (format) {
141
- case "bold":
142
- {
143
- const style = getSelectedElementStyle("font-weight", editor);
144
- return style === "700";
145
- }
146
- case "italic":
147
- {
148
- const style = getSelectedElementStyle("font-style", editor);
149
- return style === format;
150
- }
151
- // case "underline": {
152
- // const style = getSelectedElementStyle("text-decoration");
153
-
154
- // return style?.includes(format);
155
- // }
156
- // case "strikethrough": {
157
- // const style = getSelectedElementStyle("text-decoration");
158
-
159
- // return style?.includes("line-through");
160
- // }
161
- default:
162
- return isMarkActive(editor, format);
163
- }
164
- };
165
- export const getSelectedElementStyle = (styleProperty, editor) => {
166
- try {
167
- if (!editor.selection) {
168
- return "";
169
- }
170
- if (Range.isCollapsed(editor.selection)) {
171
- return "";
172
- }
173
- const domRange = ReactEditor.toDOMRange(editor, editor.selection);
174
- const selectedDomNode = domRange.commonAncestorContainer;
175
-
176
- // If it's a text node, get its parent element
177
- const selectedElement = selectedDomNode.nodeType === 3 ? selectedDomNode.parentElement : selectedDomNode;
178
- if (selectedElement) {
179
- const computedStyle = window.getComputedStyle(selectedElement);
180
- return computedStyle.getPropertyValue(styleProperty) || "";
181
- }
182
- } catch (err) {
183
- console.log(err);
184
- }
185
- };
186
121
  export const isBlockActive = (editor, format) => {
187
122
  const [match] = Editor.nodes(editor, {
188
123
  match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && n.type === format
@@ -225,31 +160,6 @@ export const activeMark = (editor, format) => {
225
160
  return null;
226
161
  }
227
162
  };
228
-
229
- // to avoid the styles, that automatically assign from themes
230
- const getThemeMarkedLeaf = (leaf, children) => {
231
- const {
232
- italic,
233
- bold
234
- } = leaf || {};
235
- const style = {};
236
- if (italic === false) {
237
- style.fontStyle = "normal";
238
- }
239
- if (bold === false) {
240
- style.fontWeight = "normal";
241
- }
242
- if (Object.keys(style).length) {
243
- children = /*#__PURE__*/_jsx(Box, {
244
- component: "span",
245
- sx: {
246
- "& span": style
247
- },
248
- children: children
249
- });
250
- }
251
- return children;
252
- };
253
163
  export const getMarked = (leaf, children) => {
254
164
  const className = leaf?.doublequote ? "doublequote" : "";
255
165
  if (leaf.bold) {
@@ -267,7 +177,6 @@ export const getMarked = (leaf, children) => {
267
177
  children: children
268
178
  });
269
179
  }
270
- children = getThemeMarkedLeaf(leaf, children);
271
180
  if (leaf.strikethrough) {
272
181
  children = /*#__PURE__*/_jsx("span", {
273
182
  style: {
@@ -301,22 +210,17 @@ export const getMarked = (leaf, children) => {
301
210
  } : {
302
211
  color: leaf.color
303
212
  };
304
- const fontSize = {
305
- lg: sizeMap[leaf.fontSize] || leaf.fontSize,
306
- ...getBreakPointsValue(leaf.fontSize, null, "overrideText")
307
- };
308
- const fontSizesImportant = {};
309
- Object.entries(fontSize).forEach(([key, value]) => {
310
- fontSizesImportant[key] = `${value} !important`;
311
- });
312
213
  children = /*#__PURE__*/_jsx("span", {
214
+ style: {
215
+ background: leaf.bgColor
216
+ },
313
217
  children: /*#__PURE__*/_jsx(Box, {
314
218
  className: className,
315
219
  component: "span",
316
220
  sx: {
317
- "& span": {
318
- fontSize: fontSizesImportant,
319
- background: leaf.bgColor
221
+ fontSize: {
222
+ lg: sizeMap[leaf.fontSize] || leaf.fontSize,
223
+ ...getBreakPointsValue(leaf.fontSize, null, "overrideText")
320
224
  },
321
225
  ...textStyles,
322
226
  fontFamily: family,
@@ -346,71 +250,31 @@ export const getBlock = props => {
346
250
  } = props;
347
251
  const attributes = props.attributes ?? {};
348
252
  const isEmpty = isEmptyTextNode(element);
349
- const commonHeadingProps = () => ({
350
- ...attributes,
351
- ...element.attr,
352
- className: `content-editable ${isEmpty ? "empty" : ""} theme-element`
353
- });
354
- const commonParaProps = paraType => ({
355
- ...attributes,
356
- ...element.attr,
357
- className: `content-editable ${isEmpty ? "empty" : ""} theme-element ${paraType}`
358
- });
359
253
  switch (element.type) {
360
254
  case "headingOne":
361
255
  return /*#__PURE__*/_jsx("h1", {
362
- ...commonHeadingProps(),
256
+ ...attributes,
257
+ ...element.attr,
258
+ className: `content-editable ${isEmpty ? "empty" : ""}`,
363
259
  placeholder: "Heading 1",
364
260
  children: children
365
261
  });
366
262
  case "headingTwo":
367
263
  return /*#__PURE__*/_jsx("h2", {
368
- ...commonHeadingProps(),
264
+ ...attributes,
265
+ ...element.attr,
266
+ className: `content-editable ${isEmpty ? "empty" : ""}`,
369
267
  placeholder: "Heading 2",
370
268
  children: children
371
269
  });
372
270
  case "headingThree":
373
271
  return /*#__PURE__*/_jsx("h3", {
374
- ...commonHeadingProps(),
272
+ ...attributes,
273
+ ...element.attr,
274
+ className: `content-editable ${isEmpty ? "empty" : ""}`,
375
275
  placeholder: "Heading 3",
376
276
  children: children
377
277
  });
378
- case "headingFour":
379
- return /*#__PURE__*/_jsx("h4", {
380
- ...commonHeadingProps(),
381
- placeholder: "Heading 4",
382
- children: children
383
- });
384
- case "headingFive":
385
- return /*#__PURE__*/_jsx("h5", {
386
- ...commonHeadingProps(),
387
- placeholder: "Heading 5",
388
- children: children
389
- });
390
- case "headingSix":
391
- return /*#__PURE__*/_jsx("h6", {
392
- ...commonHeadingProps(),
393
- placeholder: "Heading 6",
394
- children: children
395
- });
396
- case "paragraphOne":
397
- return /*#__PURE__*/_jsx("p", {
398
- ...commonParaProps("para1"),
399
- placeholder: "Paragraph 1",
400
- children: children
401
- });
402
- case "paragraphTwo":
403
- return /*#__PURE__*/_jsx("p", {
404
- ...commonParaProps("para2"),
405
- placeholder: "Paragraph 2",
406
- children: children
407
- });
408
- case "paragraphThree":
409
- return /*#__PURE__*/_jsx("p", {
410
- ...commonParaProps("para3"),
411
- placeholder: "Paragraph 3",
412
- children: children
413
- });
414
278
  case "blockquote":
415
279
  return /*#__PURE__*/_jsx("blockquote", {
416
280
  ...attributes,
@@ -1,5 +1,6 @@
1
1
  import { Transforms } from "slate";
2
2
  import insertNewLine from "./insertNewLine";
3
+ import { windowVar } from "./helper";
3
4
  export const insertButton = editor => {
4
5
  const button = {
5
6
  type: "button",
@@ -9,7 +10,22 @@ export const insertButton = editor => {
9
10
  buttonLink: {
10
11
  linkType: "webAddress"
11
12
  },
12
- iconPosition: "start"
13
+ iconPosition: "start",
14
+ bgColor: "#2563EB",
15
+ textColor: "#FFF",
16
+ borderRadius: {
17
+ topLeft: 30,
18
+ topRight: 30,
19
+ bottomLeft: 30,
20
+ bottomRight: 30
21
+ },
22
+ bannerSpacing: {
23
+ left: 16,
24
+ top: 8,
25
+ right: 16,
26
+ bottom: 8
27
+ },
28
+ ...(windowVar.lastButtonProps || {})
13
29
  };
14
30
  Transforms.insertNodes(editor, button);
15
31
  Transforms.move(editor);
@@ -7,43 +7,43 @@ export const sizeMap = {
7
7
  export const fontFamilyMap = {
8
8
  PoppinsRegular: "PoppinsRegular",
9
9
  PoppinsBold: "PoppinsBold",
10
- sans: 'Helvetica, Arial, "sans serif"',
11
- serif: 'Georgia, "Times New Roaman", serif',
12
- monospace: 'Monaco, "Courier New", monospace',
13
- roboto: "Roboto, sans-serif",
14
- qwitcher: '"Qwitcher Grypen", cursive',
15
- garamond: '"EB Garamond", serif',
16
- anton: "Anton, sans-serif",
17
- dmserif: '"DM Serif Text", serif',
18
- inter: "Inter, sans-serif",
19
- libre: '"Libre Baskerville", serif',
20
- montserrat: "Montserrat, sans-serif",
21
- opensans: '"Open Sans", sans-serif',
22
- publicsans: '"Public Sans", sans-serif',
23
- raleway: "Raleway, sans-serif",
24
- spacemono: '"Space Mono", sans-serif',
25
- bulgarian: '"Bulgarian Garamond", monospace',
26
- impact: "Impact, serif",
27
- redacted: '"Redacted Script", cursive',
28
- greatVibes: '"Great Vibes", cursive',
29
- zeyada: "Zeyada, cursive",
30
- allura: "Allura, cursive",
31
- pinyon: '"Pinyon Script", cursive',
32
- muellerhoff: '"Herr Von Muellerhoff", cursive',
33
- dawning: '"Dawning of a New Day", cursive',
10
+ sans: "Helvetica,Arial, sans serif",
11
+ serif: "Georgia, Times New Roaman,serif",
12
+ monospace: "Monaco, Courier New,monospace",
13
+ roboto: "'Roboto', sans-serif",
14
+ qwitcher: "'Qwitcher Grypen', cursive",
15
+ garamond: "'EB Garamond', serif",
16
+ anton: "'Anton', sans-serif",
17
+ dmserif: "'DM Serif Text', serif",
18
+ inter: "'Inter', sans-serif",
19
+ libre: "'Libre Baskerville', serif",
20
+ montserrat: "'Montserrat', sans-serif",
21
+ opensans: "'Open Sans', sans-serif",
22
+ publicsans: "'Public Sans', sans-serif",
23
+ raleway: "'Raleway', sans-serif",
24
+ spacemono: "'Space Mono', sans-serif",
25
+ bulgarian: "'Bulgarian Garamond', monospace",
26
+ impact: "'Impact', serif",
27
+ redacted: "'Redacted Script', cursive",
28
+ greatVibes: "'Great Vibes', cursive",
29
+ zeyada: "'Zeyada', cursive",
30
+ allura: "'Allura', cursive",
31
+ pinyon: "'Pinyon Script', cursive",
32
+ muellerhoff: "'Herr Von Muellerhoff', cursive",
33
+ dawning: "'Dawning of a New Day', cursive",
34
34
  // New Font Added for Type Signature
35
- comingsoon: '"Coming Soon", cursive',
36
- dancingScript: '"Dancing Script", cursive',
37
- engagement: "Engagement, cursive",
38
- gaegu: "Gaegu, cursive",
39
- ingridDarling: '"Ingrid Darling", cursive',
40
- kitaOne: "Times",
41
- laBelleAurore: '"La Belle Aurore", cursive',
42
- lobster: "Lobster, cursive",
43
- meaCulpa: '"Mea Culpa", cursive',
44
- meddon: "Meddon, cursive",
45
- merriWeather: "Merriweather, serif",
46
- theGirlNextDoor: '"The Girl Next Door", cursive'
35
+ comingsoon: "'Coming Soon', cursive",
36
+ dancingScript: "'Dancing Script', cursive",
37
+ engagement: "'Engagement', cursive",
38
+ gaegu: "'Gaegu', cursive",
39
+ ingridDarling: "'Ingrid Darling', cursive",
40
+ kitaOne: "'Kite One', sans - serif",
41
+ laBelleAurore: "'La Belle Aurore', cursive",
42
+ lobster: "'Lobster', cursive",
43
+ meaCulpa: "'Mea Culpa', cursive",
44
+ meddon: "'Meddon', cursive",
45
+ merriWeather: "'Merriweather', serif",
46
+ theGirlNextDoor: "'The Girl Next Door', cursive"
47
47
  };
48
48
  export const fontOptions = Object.keys(fontFamilyMap).map(m => {
49
49
  return {
@@ -62,8 +62,5 @@ export const signedTextFonts = Object.keys(fontFamilyMap).slice(-12).map(m => {
62
62
  export const headingMap = {
63
63
  "headingOne": "32px",
64
64
  "headingTwo": "24px",
65
- "headingThree": "19px",
66
- "headingFour": "16px",
67
- "headingFive": "13px",
68
- "headingSix": "11px"
65
+ "headingThree": "19px"
69
66
  };
@@ -246,8 +246,7 @@ export const handleLinkType = (url, linkType, readOnly, openInNewTab, onClick =
246
246
  props.target = "_blank";
247
247
  }
248
248
  break;
249
- case "nextTrigger":
250
- case "prevTrigger":
249
+ case "actionTrigger":
251
250
  if (!readOnly) {
252
251
  props.component = "button";
253
252
  props.onClick = () => {};
@@ -379,34 +378,6 @@ export const decodeString = str => {
379
378
  console.log(err);
380
379
  }
381
380
  };
382
- export const getContrastColor = color => {
383
- let r, g, b;
384
-
385
- // Check if the color is in hex format
386
- if (color.startsWith("#")) {
387
- r = parseInt(color.substring(1, 3), 16);
388
- g = parseInt(color.substring(3, 5), 16);
389
- b = parseInt(color.substring(5, 7), 16);
390
- }
391
- // Check if the color is in RGB/RGBA format
392
- else if (color.startsWith("rgb")) {
393
- const rgbValues = color.replace(/^rgba?\(|\s+|\)$/g, "") // Remove the rgb/rgba and spaces
394
- .split(","); // Split the values into an array
395
-
396
- r = parseInt(rgbValues[0]);
397
- g = parseInt(rgbValues[1]);
398
- b = parseInt(rgbValues[2]);
399
- } else {
400
- // If the format is not recognized, default to black text
401
- return "#000000";
402
- }
403
-
404
- // Calculate relative luminance
405
- const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
406
-
407
- // Return black for light colors, white for dark colors
408
- return luminance > 0.5 ? "#000000" : "#FFFFFF";
409
- };
410
381
  export const onDeleteKey = (event, {
411
382
  editor
412
383
  }) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flozy/editor",
3
- "version": "4.0.2",
3
+ "version": "4.0.3",
4
4
  "description": "An Editor for flozy app brain",
5
5
  "files": [
6
6
  "dist"
@@ -46,7 +46,6 @@
46
46
  "slate-react": "^0.98.3",
47
47
  "styled-components": "^5.3.11",
48
48
  "use-debounce": "^10.0.0",
49
- "wavesurfer.js": "^7.8.6",
50
49
  "web-vitals": "^2.1.4",
51
50
  "y-websocket": "^1.5.0",
52
51
  "yjs": "^13.6.8"
@@ -1,73 +0,0 @@
1
- import { Box } from "@mui/material";
2
- import { useEffect, useRef, useState } from "react";
3
- import WaveSurfer from "wavesurfer.js";
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- const SoundWave = props => {
6
- const {
7
- audioChunks = null
8
- } = props; // Initialize to null if not provided
9
- const waveContent = useRef(null);
10
- const wavesurfer = useRef(null);
11
- const [playOnce, setPlayOnce] = useState(false);
12
- useEffect(() => {
13
- if (waveContent.current) {
14
- if (wavesurfer.current) {
15
- wavesurfer.current.destroy();
16
- }
17
- wavesurfer.current = WaveSurfer.create({
18
- container: waveContent.current,
19
- waveColor: "#2563EB",
20
- progressColor: "#2563EB",
21
- cursorWidth: 0,
22
- // Disable the cursor
23
- barWidth: 2,
24
- barGap: 1,
25
- barRadius: 2,
26
- scrollParent: false,
27
- // Prevent scrolling
28
- height: waveContent.current.clientHeight // Set height to fit container
29
- });
30
-
31
- // Fit the waveform to the container width
32
- const resize = () => {
33
- if (wavesurfer.current) {
34
- const containerWidth = waveContent.current.clientWidth;
35
- const duration = wavesurfer.current.getDuration();
36
- if (duration > 0) {
37
- const newZoom = containerWidth / duration;
38
- wavesurfer.current.zoom(newZoom);
39
- }
40
- }
41
- };
42
- window.addEventListener("resize", resize);
43
- resize();
44
- return () => {
45
- window.removeEventListener("resize", resize);
46
- };
47
- }
48
- }, []);
49
- useEffect(() => {
50
- if (wavesurfer.current && audioChunks) {
51
- const audioBlob = new Blob(audioChunks, {
52
- type: "audio/webm"
53
- });
54
- const recordedUrl = URL.createObjectURL(audioBlob);
55
- wavesurfer.current.load(recordedUrl).then().catch(e => console.error("Error loading audio: ", e));
56
- if (!playOnce) {
57
- setPlayOnce(true);
58
- }
59
- } else if (wavesurfer.current && !audioChunks) {
60
- // Clear the waveform when audioChunks is null
61
- wavesurfer.current.empty();
62
- }
63
- }, [audioChunks, playOnce]);
64
- return /*#__PURE__*/_jsx(Box, {
65
- ref: waveContent,
66
- style: {
67
- width: "100%",
68
- height: "100%",
69
- overflow: "hidden"
70
- }
71
- });
72
- };
73
- export const AudioWave = SoundWave;