@flozy/editor 10.1.9 → 10.2.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 (172) hide show
  1. package/dist/Editor/ChatEditor.js +16 -17
  2. package/dist/Editor/CommonEditor.js +16 -120
  3. package/dist/Editor/DialogWrapper.js +25 -31
  4. package/dist/Editor/Editor.css +8 -46
  5. package/dist/Editor/Elements/AI/PopoverAIInput.js +3 -11
  6. package/dist/Editor/Elements/Accordion/Accordion.js +2 -6
  7. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  8. package/dist/Editor/Elements/Button/EditorButton.js +10 -26
  9. package/dist/Editor/Elements/Carousel/CarouselItem.js +1 -2
  10. package/dist/Editor/Elements/Color Picker/ColorButtons.js +14 -61
  11. package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
  12. package/dist/Editor/Elements/Color Picker/ColorPicker.js +7 -10
  13. package/dist/Editor/Elements/Color Picker/Styles.js +13 -15
  14. package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +2 -4
  15. package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +6 -21
  16. package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +1 -5
  17. package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +2 -3
  18. package/dist/Editor/Elements/DataView/Layouts/Options/index.js +0 -11
  19. package/dist/Editor/Elements/DataView/Layouts/ViewData.js +4 -8
  20. package/dist/Editor/Elements/Embed/Image.js +2 -3
  21. package/dist/Editor/Elements/Embed/Video.js +1 -1
  22. package/dist/Editor/Elements/EmbedScript/Code.js +2 -14
  23. package/dist/Editor/Elements/EmbedScript/EmbedScriptPopup.js +28 -57
  24. package/dist/Editor/Elements/Form/Form.js +168 -181
  25. package/dist/Editor/Elements/Form/FormElements/FormText.js +6 -23
  26. package/dist/Editor/Elements/Form/FormElements/FormTextArea.js +2 -3
  27. package/dist/Editor/Elements/Form/FormField.js +6 -13
  28. package/dist/Editor/Elements/Form/Workflow/Styles.js +22 -24
  29. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +31 -36
  30. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +4 -7
  31. package/dist/Editor/Elements/FreeGrid/Options/More.js +8 -8
  32. package/dist/Editor/Elements/FreeGrid/styles.js +7 -67
  33. package/dist/Editor/Elements/Grid/Grid.js +2 -14
  34. package/dist/Editor/Elements/Grid/GridItem.js +1 -1
  35. package/dist/Editor/Elements/List/CheckList.js +2 -3
  36. package/dist/Editor/Elements/Search/SearchAttachment.js +9 -40
  37. package/dist/Editor/Elements/Search/SearchButton.js +8 -9
  38. package/dist/Editor/Elements/Search/SearchList.js +7 -9
  39. package/dist/Editor/Elements/Signature/Signature.css +1 -2
  40. package/dist/Editor/Elements/Signature/SignatureOptions/DrawSignature.js +5 -18
  41. package/dist/Editor/Elements/Signature/SignatureOptions/UploadSignature.js +3 -16
  42. package/dist/Editor/Elements/SimpleText/index.js +1 -6
  43. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  44. package/dist/Editor/Elements/Table/DragButton.js +1 -0
  45. package/dist/Editor/Elements/Table/Draggable.js +2 -6
  46. package/dist/Editor/Elements/Table/Styles.js +0 -7
  47. package/dist/Editor/Elements/Table/Table.js +3 -3
  48. package/dist/Editor/Elements/Table/TableCell.js +5 -24
  49. package/dist/Editor/Elements/Title/title.js +6 -6
  50. package/dist/Editor/Elements/Variables/VariableButton.js +1 -10
  51. package/dist/Editor/MiniEditor.js +1 -2
  52. package/dist/Editor/Styles/EditorStyles.js +5 -5
  53. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +3 -27
  54. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +3 -4
  55. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  56. package/dist/Editor/Toolbar/FormatTools/TextSize.js +13 -10
  57. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +1 -2
  58. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +2 -4
  59. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +13 -6
  60. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +42 -167
  61. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +4 -7
  62. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +1 -2
  63. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +12 -72
  64. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +27 -100
  65. package/dist/Editor/Toolbar/PopupTool/index.js +1 -1
  66. package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
  67. package/dist/Editor/assets/svg/SettingsIcon.js +0 -1
  68. package/dist/Editor/common/ColorPickerButton.js +16 -38
  69. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  70. package/dist/Editor/common/FontLoader/FontLoader.js +0 -3
  71. package/dist/Editor/common/Icon.js +1 -31
  72. package/dist/Editor/common/ImageSelector/Styles.js +9 -3
  73. package/dist/Editor/common/LinkSettings/NavComponents.js +8 -34
  74. package/dist/Editor/common/LinkSettings/index.js +68 -84
  75. package/dist/Editor/common/LinkSettings/style.js +30 -245
  76. package/dist/Editor/common/RnD/ElementOptions/Actions.js +14 -13
  77. package/dist/Editor/common/RnD/ElementOptions/Icons/LinkIcon.js +0 -1
  78. package/dist/Editor/common/RnD/ElementOptions/index.js +2 -2
  79. package/dist/Editor/common/RnD/ElementOptions/styles.js +1 -28
  80. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +5 -6
  81. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Signature.js +3 -4
  82. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +2 -3
  83. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +2 -3
  84. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +2 -3
  85. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +2 -3
  86. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +2 -4
  87. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +2 -3
  88. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
  89. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +1 -3
  90. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +2 -3
  91. package/dist/Editor/common/RnD/ElementSettings/styles.js +12 -147
  92. package/dist/Editor/common/RnD/OptionsPopup/index.js +5 -8
  93. package/dist/Editor/common/RnD/OptionsPopup/style.js +19 -121
  94. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +5 -8
  95. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +3 -6
  96. package/dist/Editor/common/RnD/Utils/gridDropItem.js +19 -28
  97. package/dist/Editor/common/RnD/Utils/index.js +1 -3
  98. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +54 -48
  99. package/dist/Editor/common/RnD/VirtualElement/helper.js +131 -143
  100. package/dist/Editor/common/RnD/VirtualElement/styles.js +0 -16
  101. package/dist/Editor/common/RnD/index.js +11 -6
  102. package/dist/Editor/common/Select/index.js +0 -2
  103. package/dist/Editor/common/Shorthands/elements.js +0 -54
  104. package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
  105. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +0 -5
  106. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +2 -12
  107. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -15
  108. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +8 -16
  109. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +10 -36
  110. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +7 -16
  111. package/dist/Editor/common/StyleBuilder/fieldTypes/lineSpacing.js +6 -7
  112. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +6 -13
  113. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +7 -15
  114. package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +7 -5
  115. package/dist/Editor/common/Uploader.js +0 -8
  116. package/dist/Editor/common/iconListV2.js +6 -156
  117. package/dist/Editor/common/iconslist.js +0 -24
  118. package/dist/Editor/commonStyle.js +62 -168
  119. package/dist/Editor/helper/index.js +0 -4
  120. package/dist/Editor/helper/theme.js +2 -203
  121. package/dist/Editor/hooks/useMouseMove.js +5 -8
  122. package/dist/Editor/hooks/useTable.js +4 -5
  123. package/dist/Editor/plugins/withEmbeds.js +1 -1
  124. package/dist/Editor/plugins/withHTML.js +1 -3
  125. package/dist/Editor/plugins/withTable.js +1 -1
  126. package/dist/Editor/theme/ThemeList.js +173 -50
  127. package/dist/Editor/utils/SlateUtilityFunctions.js +45 -169
  128. package/dist/Editor/utils/accordion.js +4 -14
  129. package/dist/Editor/utils/button.js +17 -1
  130. package/dist/Editor/utils/customHooks/useTableResize.js +9 -49
  131. package/dist/Editor/utils/draftToSlate.js +2 -3
  132. package/dist/Editor/utils/events.js +6 -50
  133. package/dist/Editor/utils/font.js +37 -40
  134. package/dist/Editor/utils/form.js +4 -4
  135. package/dist/Editor/utils/formfield.js +2 -8
  136. package/dist/Editor/utils/helper.js +29 -114
  137. package/dist/Editor/utils/signature.js +9 -2
  138. package/package.json +4 -4
  139. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +0 -454
  140. package/dist/Editor/Elements/EmbedScript/styles.js +0 -89
  141. package/dist/Editor/Elements/FreeGrid/helper.js +0 -113
  142. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -439
  143. package/dist/Editor/assets/svg/BackIcon.js +0 -18
  144. package/dist/Editor/assets/svg/ClearAllRounded.js +0 -31
  145. package/dist/Editor/assets/svg/ResetIconNew.js +0 -23
  146. package/dist/Editor/assets/svg/ThemeIcons.js +0 -293
  147. package/dist/Editor/common/CustomColorPicker/index.js +0 -130
  148. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  149. package/dist/Editor/common/CustomDialog2/index.js +0 -94
  150. package/dist/Editor/common/CustomDialog2/style.js +0 -67
  151. package/dist/Editor/common/CustomSelect.js +0 -43
  152. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
  153. package/dist/Editor/common/SnackBar/index.js +0 -43
  154. package/dist/Editor/helper/textIndeces.js +0 -58
  155. package/dist/Editor/hooks/useEditorTheme.js +0 -153
  156. package/dist/Editor/hooks/useThemeValues.js +0 -63
  157. package/dist/Editor/theme/index.js +0 -149
  158. package/dist/Editor/themeSettings/ActiveTheme.js +0 -82
  159. package/dist/Editor/themeSettings/buttons/index.js +0 -300
  160. package/dist/Editor/themeSettings/buttons/style.js +0 -23
  161. package/dist/Editor/themeSettings/colorTheme/index.js +0 -310
  162. package/dist/Editor/themeSettings/colorTheme/style.js +0 -81
  163. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
  164. package/dist/Editor/themeSettings/fonts/index.js +0 -240
  165. package/dist/Editor/themeSettings/fonts/style.js +0 -62
  166. package/dist/Editor/themeSettings/icons.js +0 -60
  167. package/dist/Editor/themeSettings/index.js +0 -361
  168. package/dist/Editor/themeSettings/style.js +0 -299
  169. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  170. package/dist/Editor/themeSettingsAI/index.js +0 -355
  171. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -202
  172. package/dist/Editor/themeSettingsAI/style.js +0 -332
@@ -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,10 +62,7 @@ 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
  };
70
67
  export const fontWeightOptions = [{
71
68
  text: "Bold",
@@ -12,10 +12,10 @@ export const FORM_NODE = () => {
12
12
  },
13
13
  buttonProps: {
14
14
  bannerSpacing: {
15
- left: 24,
16
- right: 24,
17
- top: 4,
18
- bottom: 4
15
+ left: 12,
16
+ right: 12,
17
+ top: 12,
18
+ bottom: 12
19
19
  }
20
20
  },
21
21
  workflow: [],
@@ -22,14 +22,8 @@ export const formField = data => {
22
22
  },
23
23
  fontFamily: data?.fontFamily ? data?.fontFamily : "",
24
24
  textSize: data?.textSize ? data?.textSize : "",
25
- textColor: data?.textColor && `${data?.textColor} !important`,
26
- fontWeight: data?.fontWeight ? data?.fontWeight : "500",
27
- borderRadius: {
28
- topLeft: 8,
29
- topRight: 8,
30
- bottomLeft: 8,
31
- bottomRight: 8
32
- }
25
+ textColor: data?.textColor ? data?.textColor : "",
26
+ fontWeight: data?.fontWeight ? data?.fontWeight : "500"
33
27
  };
34
28
  };
35
29
  export const insertGridItem = editor => {
@@ -2,8 +2,6 @@ import { Editor, Node, Transforms, Element, Path, Range, Text } from "slate";
2
2
  import { ReactEditor } from "slate-react";
3
3
  import insertNewLine from "./insertNewLine";
4
4
  import { getDevice } from "../helper/theme";
5
- import { activeMark, getSelectedElementStyle } from "./SlateUtilityFunctions";
6
- import { getCurrentElementText } from "../plugins/withHTML";
7
5
  export const windowVar = {};
8
6
  let ST_TIMEOUT = null;
9
7
  const BLOCKS = ["grid", "dataView"];
@@ -306,15 +304,20 @@ const getScrollElement = () => {
306
304
  const scrollFrom = isSlateWrapperScroll ? slateWrapper : window;
307
305
  return scrollFrom;
308
306
  };
309
- const handleLinkBtnClick = (e, props, isMobilePreview) => {
307
+ const handleLinkBtnClick = (e, props, isMobilePreview, metadata) => {
310
308
  if (e) {
311
309
  e.preventDefault();
312
310
  e.stopPropagation();
313
311
  }
312
+ const mobileAppRedirect = metadata?.buttonLink?.inAppRedirection;
314
313
  if (props.target) {
315
314
  window.open(props.href);
316
315
  } else {
317
- window.location.href = props.href;
316
+ if (typeof mobileAppRedirect === "function") {
317
+ mobileAppRedirect(props.href);
318
+ } else {
319
+ window.location.href = props.href;
320
+ }
318
321
  if (isMobilePreview) {
319
322
  // on iframe - mobile preview, window.location.href is not scrolling to the element correctly
320
323
  const [, elementId] = props.href?.split("#");
@@ -330,7 +333,7 @@ const handleLinkBtnClick = (e, props, isMobilePreview) => {
330
333
  }
331
334
  }
332
335
  };
333
- export const handleLinkType = (url, linkType, readOnly, openInNewTab, onClick = () => {}) => {
336
+ export const handleLinkType = (url, linkType, readOnly, openInNewTab, onClick = () => {}, metadata = {}) => {
334
337
  const props = {};
335
338
  if (!readOnly) {
336
339
  return {
@@ -429,13 +432,13 @@ export const handleLinkType = (url, linkType, readOnly, openInNewTab, onClick =
429
432
  let touchEndClicked = false;
430
433
  props.onTouchEnd = e => {
431
434
  touchEndClicked = true;
432
- handleLinkBtnClick(e, props);
435
+ handleLinkBtnClick(e, props, false, metadata);
433
436
  };
434
437
  props.onClick = e => {
435
438
  // This condition is used for mobile preview in the page editor.
436
439
  // 'touchEnd' will not work in the mobile page preview.
437
440
  if (!touchEndClicked && isMobile) {
438
- handleLinkBtnClick(e, props, true);
441
+ handleLinkBtnClick(e, props, true, metadata);
439
442
  }
440
443
  return false;
441
444
  };
@@ -482,34 +485,6 @@ export const decodeString = str => {
482
485
  console.log(err);
483
486
  }
484
487
  };
485
- export const getContrastColor = color => {
486
- let r, g, b;
487
-
488
- // Check if the color is in hex format
489
- if (color.startsWith("#")) {
490
- r = parseInt(color.substring(1, 3), 16);
491
- g = parseInt(color.substring(3, 5), 16);
492
- b = parseInt(color.substring(5, 7), 16);
493
- }
494
- // Check if the color is in RGB/RGBA format
495
- else if (color.startsWith("rgb")) {
496
- const rgbValues = color.replace(/^rgba?\(|\s+|\)$/g, "") // Remove the rgb/rgba and spaces
497
- .split(","); // Split the values into an array
498
-
499
- r = parseInt(rgbValues[0]);
500
- g = parseInt(rgbValues[1]);
501
- b = parseInt(rgbValues[2]);
502
- } else {
503
- // If the format is not recognized, default to black text
504
- return "#000000";
505
- }
506
-
507
- // Calculate relative luminance
508
- const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
509
-
510
- // Return black for light colors, white for dark colors
511
- return luminance > 0.5 ? "#000000" : "#FFFFFF";
512
- };
513
488
  export const onDeleteKey = (event, {
514
489
  editor
515
490
  }) => {
@@ -727,10 +702,6 @@ export const isRestrictedNode = (event, editor) => {
727
702
  return isNodeRestricted;
728
703
  }
729
704
  };
730
- export function capitalizeFirstLetter(str) {
731
- if (!str) return str;
732
- return str.charAt(0).toUpperCase() + str.slice(1);
733
- }
734
705
  export const insertLineBreakAtEndOfPath = (editor, path) => {
735
706
  try {
736
707
  const [node, nodePath] = Editor.node(editor, path); // Get the node at the specified path
@@ -749,13 +720,6 @@ export const insertLineBreakAtEndOfPath = (editor, path) => {
749
720
  console.log(err);
750
721
  }
751
722
  };
752
- export function isHavingSelection(editor) {
753
- try {
754
- return editor?.selection && !Range.isCollapsed(editor.selection);
755
- } catch (err) {
756
- console.log(err);
757
- }
758
- }
759
723
  const omitNodes = ["site-settings", "page-settings"];
760
724
  export function getInitialValue(value = [], readOnly) {
761
725
  if (readOnly === "readonly" && value?.length) {
@@ -786,17 +750,20 @@ export function getInitialValue(value = [], readOnly) {
786
750
  }
787
751
  return value;
788
752
  }
753
+ export function capitalizeFirstLetter(str) {
754
+ if (!str) return str;
755
+ return str.charAt(0).toUpperCase() + str.slice(1);
756
+ }
757
+ export function isHavingSelection(editor) {
758
+ try {
759
+ return editor?.selection && !Range.isCollapsed(editor.selection);
760
+ } catch (err) {
761
+ console.log(err);
762
+ }
763
+ }
789
764
  export function getSelectedCls(defaultCls = "", selected, selectedClsName = "selected") {
790
765
  return `${defaultCls} ${selected ? selectedClsName : ""}`;
791
766
  }
792
- export function handleNegativeInteger(val) {
793
- return val < 0 ? 0 : val;
794
- }
795
- export const containsSurrogatePair = text => {
796
- // Match surrogate pairs (high and low surrogate)
797
- const surrogatePairRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]/;
798
- return surrogatePairRegex.test(text);
799
- };
800
767
  export const getNodeWithType = (editor, nodeType = "", otherOptions) => {
801
768
  try {
802
769
  const options = {
@@ -810,6 +777,11 @@ export const getNodeWithType = (editor, nodeType = "", otherOptions) => {
810
777
  return [];
811
778
  }
812
779
  };
780
+ export const containsSurrogatePair = text => {
781
+ // Match surrogate pairs (high and low surrogate)
782
+ const surrogatePairRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]/;
783
+ return surrogatePairRegex.test(text);
784
+ };
813
785
  export const getSlateDom = (editor, range) => {
814
786
  try {
815
787
  const slateDom = ReactEditor.toDOMRange(editor, range);
@@ -859,24 +831,9 @@ export const hideSlateSelection = () => {
859
831
  const root = document.documentElement;
860
832
  root.style.setProperty("--slate-highlight-bg", "none");
861
833
  };
862
- export const insertSlashNode = (editor, insertNode) => {
863
- try {
864
- // Delete the currently selected text
865
- editor.deleteFragment();
866
- const currentText = getCurrentElementText(editor);
867
- const currentPath = editor?.selection?.anchor?.path;
868
- let insertAt = currentPath;
869
- if (currentText?.trim()) {
870
- const parentPath = Path.parent(currentPath);
871
- insertAt = Path.next(parentPath);
872
- }
873
- Transforms.insertNodes(editor, insertNode, {
874
- at: insertAt
875
- });
876
- } catch (err) {
877
- console.log(err);
878
- }
879
- };
834
+ export function handleNegativeInteger(val) {
835
+ return val < 0 ? 0 : val;
836
+ }
880
837
  export const isEverythingSelected = editor => {
881
838
  const {
882
839
  selection
@@ -906,46 +863,4 @@ export const getCurrentNodeText = editor => {
906
863
  } catch (error) {
907
864
  console.log("Error:", error);
908
865
  }
909
- };
910
- function convertColorToRgb(color) {
911
- if (color?.startsWith("#")) {
912
- // HEX to RGB
913
- let hex = color.replace("#", "");
914
- let r, g, b;
915
- if (hex.length === 3) {
916
- hex = hex.split("").map(x => x + x).join("");
917
- }
918
- if (hex.length === 6) {
919
- [r, g, b] = [hex.substring(0, 2), hex.substring(2, 4), hex.substring(4, 6)].map(val => parseInt(val, 16));
920
- return `rgb(${r}, ${g}, ${b})`;
921
- }
922
- } else {
923
- return color;
924
- }
925
- }
926
- export const getSelectedColor = (selectedColor, theme, hideThemeColors) => {
927
- const colorVars = hideThemeColors ? null : theme?.vars?.colors;
928
- let selectedValue = selectedColor;
929
- if (colorVars) {
930
- const convertedColor = convertColorToRgb(selectedColor);
931
- Object.entries(theme.colors).forEach(([key, value]) => {
932
- const convertedThemeColor = convertColorToRgb(value);
933
- if (convertedThemeColor === convertedColor) {
934
- selectedValue = colorVars[key];
935
- }
936
- });
937
- }
938
- return selectedValue;
939
- };
940
- const themeTextFormats = ["headingOne", "headingTwo", "headingThree", "headingFour", "headingFive", "headingSix", "paragraphOne", "paragraphTwo", "paragraphThree"];
941
- export const getSelectedElementColor = (editor, format, theme) => {
942
- const [isThemeText] = Editor.nodes(editor, {
943
- at: editor.selection,
944
- match: n => themeTextFormats.includes(n?.type)
945
- });
946
- if (!isThemeText) {
947
- return activeMark(editor, "color") || "#000000";
948
- }
949
- const color = getSelectedElementStyle(format, editor, format);
950
- return getSelectedColor(color, theme);
951
866
  };
@@ -1,5 +1,9 @@
1
- import { insertSlashNode } from "./helper";
1
+ import { Path, Transforms } from "slate";
2
+ import insertNewLine from "./insertNewLine";
3
+ import { getCurrentElementText } from "../plugins/withHTML";
2
4
  export const insertSignature = editor => {
5
+ const hasText = getCurrentElementText(editor);
6
+ const insertPath = hasText ? Path.next(Path.parent(editor?.selection.focus.path)) : editor.selection.anchor.path;
3
7
  const signature = {
4
8
  type: "signature",
5
9
  alignment: "center",
@@ -13,5 +17,8 @@ export const insertSignature = editor => {
13
17
  text: " "
14
18
  }]
15
19
  };
16
- insertSlashNode(editor, signature);
20
+ Transforms.insertNodes(editor, signature, {
21
+ at: insertPath
22
+ });
23
+ insertNewLine(editor);
17
24
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flozy/editor",
3
- "version": "10.1.9",
3
+ "version": "10.2.1",
4
4
  "description": "An Editor for flozy app brain",
5
5
  "files": [
6
6
  "dist"
@@ -38,6 +38,7 @@
38
38
  "react-icons": "^4.10.1",
39
39
  "react-katex": "^3.0.1",
40
40
  "react-rnd": "^10.4.11",
41
+ "react-scripts": "5.0.1",
41
42
  "react-signature-canvas": "^1.0.6",
42
43
  "react-slick": "^0.29.0",
43
44
  "sanitize-html": "^2.13.0",
@@ -68,7 +69,7 @@
68
69
  "storybook": "storybook dev -p 6006",
69
70
  "build-storybook": "NODE_OPTIONS='--max_old_space_size=4096' storybook build",
70
71
  "publish:npm": "rm -rf dist && mkdir dist && babel src/components -d dist --copy-files",
71
- "publish:local": "rm -rf /Users/agenciflow08/Documents/flozyapp/client/node_modules/@flozy/editor/dist && babel src/components -d /Users/agenciflow08/Documents/flozyapp/client/node_modules/@flozy/editor/dist --copy-files",
72
+ "publish:local": "rm -rf /Users/agmac03/flozy/client/node_modules/@flozy/editor/dist && babel src/components -d /Users/agmac03/flozy/client/node_modules/@flozy/editor/dist --copy-files",
72
73
  "publish:flozy": "./publish-flozy.sh",
73
74
  "publish:flozy2": "./publish-flozy2.sh",
74
75
  "publish:permission": "chmod +x publish-flozy.sh && chmod +x publish-flozy2.sh"
@@ -121,8 +122,7 @@
121
122
  "prop-types": "^15.8.1",
122
123
  "source-map-explorer": "^2.5.3",
123
124
  "storybook": "^7.4.0",
124
- "webpack": "^5.88.2",
125
- "react-scripts": "5.0.1"
125
+ "webpack": "^5.88.2"
126
126
  },
127
127
  "overrides": {
128
128
  "react-refresh": "0.11.0"