@flozy/editor 9.3.2 → 9.3.4

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 (250) hide show
  1. package/dist/Editor/ChatEditor.js +50 -15
  2. package/dist/Editor/CommonEditor.js +133 -22
  3. package/dist/Editor/DialogWrapper.js +31 -25
  4. package/dist/Editor/Editor.css +17 -7
  5. package/dist/Editor/Elements/AI/AIInput.js +5 -3
  6. package/dist/Editor/Elements/AI/CustomSelect.js +9 -5
  7. package/dist/Editor/Elements/AI/PopoverAIInput.js +4 -2
  8. package/dist/Editor/Elements/Accordion/Accordion.js +4 -3
  9. package/dist/Editor/Elements/Accordion/AccordionBtnPopup.js +4 -1
  10. package/dist/Editor/Elements/Accordion/AccordionButton.js +6 -2
  11. package/dist/Editor/Elements/Accordion/AccordionTitlePopup.js +4 -1
  12. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  13. package/dist/Editor/Elements/AppHeader/AppHeaderButton.js +6 -2
  14. package/dist/Editor/Elements/AppHeader/AppHeaderPopup.js +4 -1
  15. package/dist/Editor/Elements/Attachments/AttachmentsButton.js +4 -1
  16. package/dist/Editor/Elements/Button/ButtonPopup.js +4 -1
  17. package/dist/Editor/Elements/Button/ButtonToolIcon.js +6 -2
  18. package/dist/Editor/Elements/Button/EditorButton.js +31 -14
  19. package/dist/Editor/Elements/Carousel/Carousel.js +5 -4
  20. package/dist/Editor/Elements/Carousel/CarouselButton.js +6 -2
  21. package/dist/Editor/Elements/Carousel/CarouselItem.js +3 -2
  22. package/dist/Editor/Elements/ChipText/ChipTextPopup.js +4 -1
  23. package/dist/Editor/Elements/CodeToText/CodeToText.js +5 -4
  24. package/dist/Editor/Elements/CodeToText/HtmlContextMenu.js +6 -2
  25. package/dist/Editor/Elements/Color Picker/ColorButtons.js +60 -14
  26. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  27. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  28. package/dist/Editor/Elements/Color Picker/Styles.js +3 -3
  29. package/dist/Editor/Elements/Colorbox/ColorboxButton.js +6 -2
  30. package/dist/Editor/Elements/DataView/DataView.js +5 -2
  31. package/dist/Editor/Elements/DataView/DataViewButton.js +6 -2
  32. package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +4 -1
  33. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +4 -3
  34. package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +6 -1
  35. package/dist/Editor/Elements/DataView/Layouts/DataTypes/TextType.js +7 -2
  36. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseSort.js +13 -12
  37. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/index.js +7 -4
  38. package/dist/Editor/Elements/DataView/Layouts/FilterSort/index.js +7 -5
  39. package/dist/Editor/Elements/DataView/Layouts/FilterView.js +9 -7
  40. package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +3 -2
  41. package/dist/Editor/Elements/DataView/Layouts/Options/AddProperty.js +5 -3
  42. package/dist/Editor/Elements/DataView/Layouts/Options/AllProperties.js +6 -5
  43. package/dist/Editor/Elements/DataView/Layouts/Options/ChangeProperty.js +5 -3
  44. package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +7 -6
  45. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +64 -38
  46. package/dist/Editor/Elements/DataView/Layouts/Options/FilterProperty.js +3 -2
  47. package/dist/Editor/Elements/DataView/Layouts/Options/PropertyList.js +3 -2
  48. package/dist/Editor/Elements/DataView/Layouts/Options/index.js +12 -6
  49. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +4 -1
  50. package/dist/Editor/Elements/DataView/Layouts/TableView.js +6 -4
  51. package/dist/Editor/Elements/DataView/Layouts/index.js +3 -1
  52. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +5 -2
  53. package/dist/Editor/Elements/Divider/Divider.js +5 -3
  54. package/dist/Editor/Elements/Divider/DividerButton.js +6 -2
  55. package/dist/Editor/Elements/Divider/DividerPopup.js +3 -2
  56. package/dist/Editor/Elements/Embed/Embed.js +4 -1
  57. package/dist/Editor/Elements/Embed/EmbedPopup.js +4 -1
  58. package/dist/Editor/Elements/Embed/Image.js +16 -11
  59. package/dist/Editor/Elements/Embed/Video.js +10 -7
  60. package/dist/Editor/Elements/EmbedScript/Code.js +7 -4
  61. package/dist/Editor/Elements/EmbedScript/EmbedScript.js +6 -2
  62. package/dist/Editor/Elements/EmbedScript/EmbedScriptPopup.js +8 -5
  63. package/dist/Editor/Elements/Emoji/EmojiButton.js +6 -2
  64. package/dist/Editor/Elements/Form/FieldPopup.js +4 -1
  65. package/dist/Editor/Elements/Form/Form.js +12 -9
  66. package/dist/Editor/Elements/Form/FormButton.js +6 -2
  67. package/dist/Editor/Elements/Form/FormPopup.js +3 -2
  68. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +18 -12
  69. package/dist/Editor/Elements/Form/Workflow/ListWorkflow.js +13 -8
  70. package/dist/Editor/Elements/Form/Workflow/MoreOptions.js +3 -2
  71. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +4 -2
  72. package/dist/Editor/Elements/Form/Workflow/index.js +15 -9
  73. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +21 -18
  74. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +6 -2
  75. package/dist/Editor/Elements/FreeGrid/FreeGridButton.js +6 -2
  76. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +8 -3
  77. package/dist/Editor/Elements/FreeGrid/Options/AddElement.js +3 -2
  78. package/dist/Editor/Elements/FreeGrid/Options/More.js +4 -3
  79. package/dist/Editor/Elements/FreeGrid/styles.js +3 -0
  80. package/dist/Editor/Elements/Grid/Grid.js +13 -10
  81. package/dist/Editor/Elements/Grid/GridButton.js +9 -5
  82. package/dist/Editor/Elements/Grid/GridItem.js +14 -8
  83. package/dist/Editor/Elements/Grid/GridItemPopup.js +4 -1
  84. package/dist/Editor/Elements/Grid/GridPopup.js +4 -1
  85. package/dist/Editor/Elements/Grid/SectionPopup.js +4 -1
  86. package/dist/Editor/Elements/Link/Link.js +14 -7
  87. package/dist/Editor/Elements/Link/LinkButton.js +4 -1
  88. package/dist/Editor/Elements/List/CheckList.js +14 -9
  89. package/dist/Editor/Elements/NewLine/NewLineButton.js +6 -2
  90. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +16 -5
  91. package/dist/Editor/Elements/PageSettings/PageSettingsPopup.js +4 -1
  92. package/dist/Editor/Elements/Search/SearchButton.js +6 -3
  93. package/dist/Editor/Elements/Search/SearchList.js +7 -3
  94. package/dist/Editor/Elements/Signature/SignatureButton.js +6 -2
  95. package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +6 -2
  96. package/dist/Editor/Elements/Signature/SignatureOptions/UploadSignature.js +4 -1
  97. package/dist/Editor/Elements/Signature/SignaturePopup.js +17 -16
  98. package/dist/Editor/Elements/SimpleText/index.js +5 -4
  99. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  100. package/dist/Editor/Elements/Table/DragButton.js +4 -2
  101. package/dist/Editor/Elements/Table/Table.js +48 -25
  102. package/dist/Editor/Elements/Table/TableCell.js +6 -27
  103. package/dist/Editor/Elements/Table/TablePopup.js +4 -1
  104. package/dist/Editor/Elements/Table/TableSelector.js +10 -6
  105. package/dist/Editor/Elements/Table/TableTool.js +8 -4
  106. package/dist/Editor/Elements/Title/title.js +10 -0
  107. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +4 -1
  108. package/dist/Editor/Elements/Variables/VariableButton.js +10 -1
  109. package/dist/Editor/MiniEditor.js +9 -3
  110. package/dist/Editor/Styles/EditorStyles.js +5 -5
  111. package/dist/Editor/Toolbar/Basic/index.js +2 -1
  112. package/dist/Editor/Toolbar/FormatTools/BlockButton.js +6 -2
  113. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  114. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  115. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +8 -4
  116. package/dist/Editor/Toolbar/FormatTools/TextSize.js +7 -13
  117. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +20 -15
  118. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +10 -5
  119. package/dist/Editor/Toolbar/PopupTool/ButtonTemplatesCard.js +10 -4
  120. package/dist/Editor/Toolbar/PopupTool/FullViewCard.js +10 -4
  121. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +6 -2
  122. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectAlignment.js +42 -35
  123. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
  124. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +58 -51
  125. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectSuperSubscript.js +29 -22
  126. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +226 -87
  127. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +15 -7
  128. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +8 -4
  129. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +16 -9
  130. package/dist/Editor/Toolbar/PopupTool/TemplateCard.js +11 -5
  131. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +120 -41
  132. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +441 -0
  133. package/dist/Editor/Toolbar/PopupTool/index.js +3 -8
  134. package/dist/Editor/Toolbar/Toolbar.js +20 -10
  135. package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
  136. package/dist/Editor/assets/svg/CalenderIconTick.js +1 -0
  137. package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
  138. package/dist/Editor/common/ColorPickerButton.js +45 -10
  139. package/dist/Editor/common/CustomColorPicker/index.js +125 -0
  140. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  141. package/dist/Editor/common/CustomDialog/index.js +8 -10
  142. package/dist/Editor/common/CustomDialog2/index.js +94 -0
  143. package/dist/Editor/common/CustomDialog2/style.js +67 -0
  144. package/dist/Editor/common/CustomSelect.js +33 -0
  145. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  146. package/dist/Editor/common/FontLoader/FontLoader.js +3 -0
  147. package/dist/Editor/common/Icon.js +46 -1
  148. package/dist/Editor/common/ImageSelector/ImageSelector.js +10 -8
  149. package/dist/Editor/common/ImageSelector/Options/AddLink.js +6 -4
  150. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  151. package/dist/Editor/common/LinkSettings/NavComponents.js +14 -10
  152. package/dist/Editor/common/LinkSettings/index.js +20 -14
  153. package/dist/Editor/common/LinkSettings/navOptions.js +1 -1
  154. package/dist/Editor/common/MentionsPopup/Styles.js +106 -68
  155. package/dist/Editor/common/MentionsPopup/index.js +8 -4
  156. package/dist/Editor/common/RnD/ContextMenu/CMenus.js +22 -22
  157. package/dist/Editor/common/RnD/ContextMenu/index.js +3 -2
  158. package/dist/Editor/common/RnD/ElementOptions/index.js +7 -2
  159. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/SaveAsTemplate.js +8 -3
  160. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +7 -3
  161. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  162. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  163. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  164. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  165. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +7 -4
  166. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +3 -2
  167. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  168. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +6 -2
  169. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +3 -2
  170. package/dist/Editor/common/RnD/OptionsPopup/index.js +4 -3
  171. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +11 -4
  172. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  173. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +20 -8
  174. package/dist/Editor/common/RnD/Utils/index.js +45 -0
  175. package/dist/Editor/common/RnD/VirtualElement/index.js +1 -2
  176. package/dist/Editor/common/RnD/index.js +34 -7
  177. package/dist/Editor/common/Section/index.js +7 -4
  178. package/dist/Editor/common/Shorthands/elements.js +98 -10
  179. package/dist/Editor/common/StyleBuilder/appHeaderStyle.js +4 -4
  180. package/dist/Editor/common/StyleBuilder/boxStyle.js +2 -2
  181. package/dist/Editor/common/StyleBuilder/buttonStyle.js +6 -4
  182. package/dist/Editor/common/StyleBuilder/dividerStyles.js +2 -2
  183. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +6 -6
  184. package/dist/Editor/common/StyleBuilder/fieldStyle.js +2 -2
  185. package/dist/Editor/common/StyleBuilder/fieldTypes/alignment.js +13 -9
  186. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +11 -3
  187. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +19 -5
  188. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +22 -10
  189. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +6 -3
  190. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +27 -13
  191. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +41 -14
  192. package/dist/Editor/common/StyleBuilder/fieldTypes/elementSize.js +10 -6
  193. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +19 -6
  194. package/dist/Editor/common/StyleBuilder/fieldTypes/gridSize.js +6 -2
  195. package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +5 -2
  196. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +9 -6
  197. package/dist/Editor/common/StyleBuilder/fieldTypes/metaDataMapping.js +8 -2
  198. package/dist/Editor/common/StyleBuilder/fieldTypes/saveAsTemplate.js +12 -11
  199. package/dist/Editor/common/StyleBuilder/fieldTypes/selectBox.js +6 -2
  200. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +8 -4
  201. package/dist/Editor/common/StyleBuilder/fieldTypes/textAlign.js +6 -2
  202. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +21 -12
  203. package/dist/Editor/common/StyleBuilder/formStyle.js +7 -7
  204. package/dist/Editor/common/StyleBuilder/gridItemStyle.js +6 -6
  205. package/dist/Editor/common/StyleBuilder/gridStyle.js +5 -5
  206. package/dist/Editor/common/StyleBuilder/index.js +8 -5
  207. package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +5 -7
  208. package/dist/Editor/common/Uploader.js +16 -5
  209. package/dist/Editor/commonStyle.js +55 -65
  210. package/dist/Editor/helper/index.js +8 -12
  211. package/dist/Editor/helper/textIndeces.js +58 -0
  212. package/dist/Editor/helper/theme.js +200 -2
  213. package/dist/Editor/hooks/useDrag.js +16 -10
  214. package/dist/Editor/hooks/useEditorScroll.js +10 -5
  215. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  216. package/dist/Editor/hooks/useMouseMove.js +25 -13
  217. package/dist/Editor/hooks/useTable.js +1 -1
  218. package/dist/Editor/plugins/withEmbeds.js +1 -1
  219. package/dist/Editor/plugins/withHTML.js +18 -13
  220. package/dist/Editor/plugins/withLayout.js +3 -2
  221. package/dist/Editor/plugins/withTable.js +1 -1
  222. package/dist/Editor/theme/ThemeList.js +50 -173
  223. package/dist/Editor/theme/index.js +144 -0
  224. package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
  225. package/dist/Editor/themeSettings/buttons/index.js +285 -0
  226. package/dist/Editor/themeSettings/buttons/style.js +23 -0
  227. package/dist/Editor/themeSettings/colorTheme/index.js +297 -0
  228. package/dist/Editor/themeSettings/colorTheme/style.js +81 -0
  229. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  230. package/dist/Editor/themeSettings/fonts/index.js +222 -0
  231. package/dist/Editor/themeSettings/fonts/style.js +59 -0
  232. package/dist/Editor/themeSettings/icons.js +60 -0
  233. package/dist/Editor/themeSettings/index.js +328 -0
  234. package/dist/Editor/themeSettings/style.js +193 -0
  235. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  236. package/dist/Editor/themeSettingsAI/index.js +355 -0
  237. package/dist/Editor/themeSettingsAI/saveTheme.js +215 -0
  238. package/dist/Editor/themeSettingsAI/style.js +250 -0
  239. package/dist/Editor/utils/SlateUtilityFunctions.js +171 -47
  240. package/dist/Editor/utils/button.js +7 -2
  241. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +23 -0
  242. package/dist/Editor/utils/dataView.js +5 -2
  243. package/dist/Editor/utils/divider.js +8 -0
  244. package/dist/Editor/utils/draftToSlate.js +3 -2
  245. package/dist/Editor/utils/embed.js +9 -4
  246. package/dist/Editor/utils/font.js +40 -37
  247. package/dist/Editor/utils/helper.js +74 -20
  248. package/dist/Editor/utils/signature.js +5 -2
  249. package/dist/Editor/utils/table.js +8 -0
  250. package/package.json +1 -1
@@ -261,7 +261,15 @@ export const customInsertNode = (editor, insertNode, defaultInsertOptions = {})
261
261
  if (isListItem) {
262
262
  insertOptions.at = editor.selection.focus;
263
263
  }
264
- Transforms.insertNodes(editor, insertNode, insertOptions);
264
+ const hasText = getCurrentNodeText(editor);
265
+ if (hasText) {
266
+ Transforms.insertNodes(editor, insertNode, {
267
+ at: Path.next(Path.parent(editor?.selection.focus.path)),
268
+ select: true
269
+ });
270
+ } else {
271
+ Transforms.insertNodes(editor, insertNode, insertOptions);
272
+ }
265
273
  insertNewLine(editor);
266
274
  };
267
275
  export const decodeAndParseBase64 = encodedString => {
@@ -472,6 +480,34 @@ export const decodeString = str => {
472
480
  console.log(err);
473
481
  }
474
482
  };
483
+ export const getContrastColor = color => {
484
+ let r, g, b;
485
+
486
+ // Check if the color is in hex format
487
+ if (color.startsWith("#")) {
488
+ r = parseInt(color.substring(1, 3), 16);
489
+ g = parseInt(color.substring(3, 5), 16);
490
+ b = parseInt(color.substring(5, 7), 16);
491
+ }
492
+ // Check if the color is in RGB/RGBA format
493
+ else if (color.startsWith("rgb")) {
494
+ const rgbValues = color.replace(/^rgba?\(|\s+|\)$/g, "") // Remove the rgb/rgba and spaces
495
+ .split(","); // Split the values into an array
496
+
497
+ r = parseInt(rgbValues[0]);
498
+ g = parseInt(rgbValues[1]);
499
+ b = parseInt(rgbValues[2]);
500
+ } else {
501
+ // If the format is not recognized, default to black text
502
+ return "#000000";
503
+ }
504
+
505
+ // Calculate relative luminance
506
+ const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
507
+
508
+ // Return black for light colors, white for dark colors
509
+ return luminance > 0.5 ? "#000000" : "#FFFFFF";
510
+ };
475
511
  export const onDeleteKey = (event, {
476
512
  editor
477
513
  }) => {
@@ -633,6 +669,10 @@ export const isRestrictedNode = (event, editor) => {
633
669
  return isNodeRestricted;
634
670
  }
635
671
  };
672
+ export function capitalizeFirstLetter(str) {
673
+ if (!str) return str;
674
+ return str.charAt(0).toUpperCase() + str.slice(1);
675
+ }
636
676
  export const insertLineBreakAtEndOfPath = (editor, path) => {
637
677
  try {
638
678
  const [node, nodePath] = Editor.node(editor, path); // Get the node at the specified path
@@ -651,6 +691,13 @@ export const insertLineBreakAtEndOfPath = (editor, path) => {
651
691
  console.log(err);
652
692
  }
653
693
  };
694
+ export function isHavingSelection(editor) {
695
+ try {
696
+ return editor?.selection && !Range.isCollapsed(editor.selection);
697
+ } catch (err) {
698
+ console.log(err);
699
+ }
700
+ }
654
701
  const omitNodes = ["site-settings", "page-settings"];
655
702
  export function getInitialValue(value = [], readOnly) {
656
703
  if (readOnly === "readonly" && value?.length) {
@@ -681,20 +728,17 @@ export function getInitialValue(value = [], readOnly) {
681
728
  }
682
729
  return value;
683
730
  }
684
- export function capitalizeFirstLetter(str) {
685
- if (!str) return str;
686
- return str.charAt(0).toUpperCase() + str.slice(1);
687
- }
688
- export function isHavingSelection(editor) {
689
- try {
690
- return editor?.selection && !Range.isCollapsed(editor.selection);
691
- } catch (err) {
692
- console.log(err);
693
- }
694
- }
695
731
  export function getSelectedCls(defaultCls = "", selected, selectedClsName = "selected") {
696
732
  return `${defaultCls} ${selected ? selectedClsName : ""}`;
697
733
  }
734
+ export function handleNegativeInteger(val) {
735
+ return val < 0 ? 0 : val;
736
+ }
737
+ export const containsSurrogatePair = text => {
738
+ // Match surrogate pairs (high and low surrogate)
739
+ const surrogatePairRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]/;
740
+ return surrogatePairRegex.test(text);
741
+ };
698
742
  export const getNodeWithType = (editor, nodeType = "", otherOptions) => {
699
743
  try {
700
744
  const options = {
@@ -708,11 +752,6 @@ export const getNodeWithType = (editor, nodeType = "", otherOptions) => {
708
752
  return [];
709
753
  }
710
754
  };
711
- export const containsSurrogatePair = text => {
712
- // Match surrogate pairs (high and low surrogate)
713
- const surrogatePairRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]/;
714
- return surrogatePairRegex.test(text);
715
- };
716
755
  export const getSlateDom = (editor, range) => {
717
756
  try {
718
757
  const slateDom = ReactEditor.toDOMRange(editor, range);
@@ -762,9 +801,6 @@ export const hideSlateSelection = () => {
762
801
  const root = document.documentElement;
763
802
  root.style.setProperty("--slate-highlight-bg", "none");
764
803
  };
765
- export function handleNegativeInteger(val) {
766
- return val < 0 ? 0 : val;
767
- }
768
804
  export const isEverythingSelected = editor => {
769
805
  const {
770
806
  selection
@@ -776,4 +812,22 @@ export const isEverythingSelected = editor => {
776
812
  return false;
777
813
  }
778
814
  }
815
+ };
816
+ export const getCurrentNodeText = editor => {
817
+ try {
818
+ const {
819
+ selection
820
+ } = editor;
821
+ if (selection) {
822
+ const [block] = Editor.node(editor, selection, {
823
+ match: n => Editor.isBlock(editor, n)
824
+ });
825
+ const blockText = block?.text;
826
+ return blockText;
827
+ } else {
828
+ return;
829
+ }
830
+ } catch (error) {
831
+ console.log("Error:", error);
832
+ }
779
833
  };
@@ -1,6 +1,9 @@
1
- import { Transforms } from "slate";
1
+ import { Path, Transforms } from "slate";
2
2
  import insertNewLine from "./insertNewLine";
3
+ import { getCurrentElementText } from "../plugins/withHTML";
3
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;
4
7
  const signature = {
5
8
  type: "signature",
6
9
  alignment: "center",
@@ -15,7 +18,7 @@ export const insertSignature = editor => {
15
18
  }]
16
19
  };
17
20
  Transforms.insertNodes(editor, signature, {
18
- at: editor.selection.anchor.path
21
+ at: insertPath
19
22
  });
20
23
  insertNewLine(editor);
21
24
  };
@@ -174,6 +174,14 @@ export class TableUtil {
174
174
  Transforms.removeNodes(this.editor, {
175
175
  match: n => !Editor.isEditor(n) && Element.isElement(n) && n.type === "table"
176
176
  });
177
+ if (this.editor.children.length === 0) {
178
+ Transforms.insertNodes(this.editor, {
179
+ type: "paragraph",
180
+ children: [{
181
+ text: ""
182
+ }]
183
+ });
184
+ }
177
185
  }
178
186
  };
179
187
  duplicateTable = () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flozy/editor",
3
- "version": "9.3.2",
3
+ "version": "9.3.4",
4
4
  "description": "An Editor for flozy app brain",
5
5
  "files": [
6
6
  "dist"