@flozy/editor 9.1.5 → 9.1.7

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 (247) hide show
  1. package/dist/Editor/ChatEditor.js +9 -33
  2. package/dist/Editor/CommonEditor.js +43 -121
  3. package/dist/Editor/DialogWrapper.js +25 -31
  4. package/dist/Editor/Editor.css +1 -19
  5. package/dist/Editor/Elements/AI/AIInput.js +3 -5
  6. package/dist/Editor/Elements/AI/CustomSelect.js +5 -9
  7. package/dist/Editor/Elements/AI/PopoverAIInput.js +2 -4
  8. package/dist/Editor/Elements/Accordion/Accordion.js +3 -4
  9. package/dist/Editor/Elements/Accordion/AccordionBtnPopup.js +1 -4
  10. package/dist/Editor/Elements/Accordion/AccordionButton.js +2 -6
  11. package/dist/Editor/Elements/Accordion/AccordionTitlePopup.js +1 -4
  12. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  13. package/dist/Editor/Elements/AppHeader/AppHeaderButton.js +2 -6
  14. package/dist/Editor/Elements/AppHeader/AppHeaderPopup.js +1 -4
  15. package/dist/Editor/Elements/Attachments/AttachmentsButton.js +1 -4
  16. package/dist/Editor/Elements/Button/ButtonPopup.js +1 -4
  17. package/dist/Editor/Elements/Button/ButtonToolIcon.js +2 -6
  18. package/dist/Editor/Elements/Button/EditorButton.js +14 -31
  19. package/dist/Editor/Elements/Carousel/Carousel.js +4 -5
  20. package/dist/Editor/Elements/Carousel/CarouselButton.js +2 -6
  21. package/dist/Editor/Elements/Carousel/CarouselItem.js +2 -3
  22. package/dist/Editor/Elements/ChipText/ChipTextPopup.js +1 -4
  23. package/dist/Editor/Elements/CodeToText/CodeToText.js +4 -5
  24. package/dist/Editor/Elements/CodeToText/HtmlContextMenu.js +2 -6
  25. package/dist/Editor/Elements/Color Picker/ColorButtons.js +12 -57
  26. package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
  27. package/dist/Editor/Elements/Color Picker/ColorPicker.js +5 -5
  28. package/dist/Editor/Elements/Color Picker/Styles.js +1 -1
  29. package/dist/Editor/Elements/Colorbox/ColorboxButton.js +2 -6
  30. package/dist/Editor/Elements/DataView/DataView.js +2 -5
  31. package/dist/Editor/Elements/DataView/DataViewButton.js +2 -6
  32. package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +1 -4
  33. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +4 -3
  34. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +1 -6
  35. package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +9 -19
  36. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseSort.js +12 -13
  37. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/index.js +4 -7
  38. package/dist/Editor/Elements/DataView/Layouts/FilterSort/index.js +5 -7
  39. package/dist/Editor/Elements/DataView/Layouts/FilterView.js +7 -9
  40. package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +2 -3
  41. package/dist/Editor/Elements/DataView/Layouts/Options/AddProperty.js +3 -5
  42. package/dist/Editor/Elements/DataView/Layouts/Options/AllProperties.js +5 -6
  43. package/dist/Editor/Elements/DataView/Layouts/Options/ChangeProperty.js +3 -5
  44. package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +6 -7
  45. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +12 -15
  46. package/dist/Editor/Elements/DataView/Layouts/Options/FilterProperty.js +2 -3
  47. package/dist/Editor/Elements/DataView/Layouts/Options/PropertyList.js +2 -3
  48. package/dist/Editor/Elements/DataView/Layouts/Options/index.js +6 -12
  49. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +2 -32
  50. package/dist/Editor/Elements/DataView/Layouts/TableView.js +33 -132
  51. package/dist/Editor/Elements/DataView/Layouts/ViewData.js +3 -3
  52. package/dist/Editor/Elements/DataView/Layouts/index.js +1 -3
  53. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +3 -6
  54. package/dist/Editor/Elements/DataView/styles.js +8 -8
  55. package/dist/Editor/Elements/Divider/Divider.js +3 -5
  56. package/dist/Editor/Elements/Divider/DividerButton.js +2 -6
  57. package/dist/Editor/Elements/Divider/DividerPopup.js +2 -3
  58. package/dist/Editor/Elements/Embed/Embed.js +1 -4
  59. package/dist/Editor/Elements/Embed/EmbedPopup.js +1 -4
  60. package/dist/Editor/Elements/Embed/Image.js +11 -16
  61. package/dist/Editor/Elements/Embed/Video.js +7 -10
  62. package/dist/Editor/Elements/EmbedScript/Code.js +4 -7
  63. package/dist/Editor/Elements/EmbedScript/EmbedScript.js +2 -6
  64. package/dist/Editor/Elements/EmbedScript/EmbedScriptPopup.js +5 -8
  65. package/dist/Editor/Elements/Emoji/EmojiButton.js +2 -6
  66. package/dist/Editor/Elements/Form/FieldPopup.js +1 -4
  67. package/dist/Editor/Elements/Form/Form.js +9 -12
  68. package/dist/Editor/Elements/Form/FormButton.js +2 -6
  69. package/dist/Editor/Elements/Form/FormPopup.js +2 -3
  70. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +12 -18
  71. package/dist/Editor/Elements/Form/Workflow/ListWorkflow.js +8 -13
  72. package/dist/Editor/Elements/Form/Workflow/MoreOptions.js +2 -3
  73. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +2 -4
  74. package/dist/Editor/Elements/Form/Workflow/index.js +9 -15
  75. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +18 -21
  76. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +2 -6
  77. package/dist/Editor/Elements/FreeGrid/FreeGridButton.js +2 -6
  78. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +3 -8
  79. package/dist/Editor/Elements/FreeGrid/Options/AddElement.js +2 -3
  80. package/dist/Editor/Elements/FreeGrid/Options/More.js +3 -4
  81. package/dist/Editor/Elements/FreeGrid/styles.js +0 -3
  82. package/dist/Editor/Elements/Grid/Grid.js +10 -13
  83. package/dist/Editor/Elements/Grid/GridButton.js +5 -9
  84. package/dist/Editor/Elements/Grid/GridItem.js +10 -15
  85. package/dist/Editor/Elements/Grid/GridItemPopup.js +1 -4
  86. package/dist/Editor/Elements/Grid/GridPopup.js +1 -4
  87. package/dist/Editor/Elements/Grid/SectionPopup.js +1 -4
  88. package/dist/Editor/Elements/Link/Link.js +44 -74
  89. package/dist/Editor/Elements/Link/LinkButton.js +1 -4
  90. package/dist/Editor/Elements/List/CheckList.js +9 -14
  91. package/dist/Editor/Elements/NewLine/NewLineButton.js +2 -6
  92. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +1 -4
  93. package/dist/Editor/Elements/PageSettings/PageSettingsPopup.js +1 -4
  94. package/dist/Editor/Elements/Search/SearchButton.js +3 -6
  95. package/dist/Editor/Elements/Search/SearchList.js +3 -7
  96. package/dist/Editor/Elements/Signature/SignatureButton.js +2 -6
  97. package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +2 -6
  98. package/dist/Editor/Elements/Signature/SignatureOptions/UploadSignature.js +1 -4
  99. package/dist/Editor/Elements/Signature/SignaturePopup.js +16 -17
  100. package/dist/Editor/Elements/SimpleText/index.js +5 -5
  101. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  102. package/dist/Editor/Elements/Table/DragButton.js +2 -4
  103. package/dist/Editor/Elements/Table/Table.js +32 -56
  104. package/dist/Editor/Elements/Table/TableCell.js +3 -4
  105. package/dist/Editor/Elements/Table/TablePopup.js +1 -4
  106. package/dist/Editor/Elements/Table/TableSelector.js +6 -10
  107. package/dist/Editor/Elements/Table/TableTool.js +4 -8
  108. package/dist/Editor/Elements/Title/title.js +31 -13
  109. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +1 -4
  110. package/dist/Editor/Elements/Variables/Style.js +2 -28
  111. package/dist/Editor/Elements/Variables/VariableButton.js +4 -17
  112. package/dist/Editor/MiniEditor.js +3 -9
  113. package/dist/Editor/Styles/EditorStyles.js +5 -5
  114. package/dist/Editor/Toolbar/Basic/index.js +1 -2
  115. package/dist/Editor/Toolbar/FormatTools/BlockButton.js +2 -6
  116. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +3 -27
  117. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +3 -4
  118. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +4 -8
  119. package/dist/Editor/Toolbar/FormatTools/TextSize.js +15 -7
  120. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +3 -6
  121. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +13 -19
  122. package/dist/Editor/Toolbar/PopupTool/ButtonTemplatesCard.js +4 -10
  123. package/dist/Editor/Toolbar/PopupTool/FullViewCard.js +4 -10
  124. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +2 -6
  125. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectAlignment.js +35 -42
  126. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +13 -6
  127. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +51 -58
  128. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectSuperSubscript.js +22 -29
  129. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +87 -226
  130. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +7 -15
  131. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +4 -8
  132. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +12 -16
  133. package/dist/Editor/Toolbar/PopupTool/TemplateCard.js +5 -11
  134. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +32 -84
  135. package/dist/Editor/Toolbar/PopupTool/index.js +1 -2
  136. package/dist/Editor/Toolbar/Toolbar.js +10 -20
  137. package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
  138. package/dist/Editor/common/ColorPickerButton.js +9 -35
  139. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  140. package/dist/Editor/common/DnD/Draggable.js +1 -0
  141. package/dist/Editor/common/FontLoader/FontLoader.js +0 -3
  142. package/dist/Editor/common/Icon.js +0 -28
  143. package/dist/Editor/common/ImageSelector/ImageSelector.js +8 -10
  144. package/dist/Editor/common/ImageSelector/Options/AddLink.js +4 -6
  145. package/dist/Editor/common/ImageSelector/Styles.js +9 -3
  146. package/dist/Editor/common/ImageSelector/UploadStyles.js +1 -0
  147. package/dist/Editor/common/LinkSettings/NavComponents.js +10 -14
  148. package/dist/Editor/common/LinkSettings/index.js +14 -20
  149. package/dist/Editor/common/LinkSettings/navOptions.js +1 -1
  150. package/dist/Editor/common/MentionsPopup/Styles.js +12 -6
  151. package/dist/Editor/common/MentionsPopup/index.js +2 -6
  152. package/dist/Editor/common/RnD/ContextMenu/CMenus.js +22 -22
  153. package/dist/Editor/common/RnD/ContextMenu/index.js +2 -3
  154. package/dist/Editor/common/RnD/ElementOptions/index.js +2 -7
  155. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/SaveAsTemplate.js +3 -8
  156. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +3 -7
  157. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +2 -3
  158. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +2 -3
  159. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +2 -3
  160. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +2 -3
  161. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -7
  162. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +2 -3
  163. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
  164. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +2 -4
  165. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +2 -3
  166. package/dist/Editor/common/RnD/OptionsPopup/index.js +3 -4
  167. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +4 -11
  168. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +10 -31
  169. package/dist/Editor/common/RnD/Utils/gridDropItem.js +4 -5
  170. package/dist/Editor/common/RnD/Utils/index.js +0 -45
  171. package/dist/Editor/common/RnD/index.js +7 -34
  172. package/dist/Editor/common/Section/index.js +4 -7
  173. package/dist/Editor/common/Shorthands/elements.js +4 -75
  174. package/dist/Editor/common/StyleBuilder/appHeaderStyle.js +4 -4
  175. package/dist/Editor/common/StyleBuilder/boxStyle.js +2 -2
  176. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -6
  177. package/dist/Editor/common/StyleBuilder/dividerStyles.js +2 -2
  178. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +6 -6
  179. package/dist/Editor/common/StyleBuilder/fieldStyle.js +2 -2
  180. package/dist/Editor/common/StyleBuilder/fieldTypes/alignment.js +9 -13
  181. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +3 -11
  182. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +5 -19
  183. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +10 -22
  184. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +3 -6
  185. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +13 -27
  186. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +14 -41
  187. package/dist/Editor/common/StyleBuilder/fieldTypes/elementSize.js +6 -10
  188. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +6 -19
  189. package/dist/Editor/common/StyleBuilder/fieldTypes/gridSize.js +2 -6
  190. package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +2 -5
  191. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +6 -9
  192. package/dist/Editor/common/StyleBuilder/fieldTypes/metaDataMapping.js +2 -4
  193. package/dist/Editor/common/StyleBuilder/fieldTypes/saveAsTemplate.js +11 -12
  194. package/dist/Editor/common/StyleBuilder/fieldTypes/selectBox.js +2 -6
  195. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +4 -8
  196. package/dist/Editor/common/StyleBuilder/fieldTypes/textAlign.js +2 -6
  197. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +12 -21
  198. package/dist/Editor/common/StyleBuilder/formStyle.js +7 -7
  199. package/dist/Editor/common/StyleBuilder/gridItemStyle.js +6 -6
  200. package/dist/Editor/common/StyleBuilder/gridStyle.js +5 -5
  201. package/dist/Editor/common/StyleBuilder/index.js +3 -4
  202. package/dist/Editor/common/Uploader.js +5 -16
  203. package/dist/Editor/commonStyle.js +69 -114
  204. package/dist/Editor/helper/index.js +2 -2
  205. package/dist/Editor/helper/theme.js +2 -200
  206. package/dist/Editor/hooks/useMouseMove.js +3 -9
  207. package/dist/Editor/plugins/withEmbeds.js +1 -1
  208. package/dist/Editor/plugins/withHTML.js +14 -19
  209. package/dist/Editor/plugins/withLayout.js +2 -3
  210. package/dist/Editor/plugins/withTable.js +1 -1
  211. package/dist/Editor/theme/ThemeList.js +173 -50
  212. package/dist/Editor/utils/SlateUtilityFunctions.js +45 -162
  213. package/dist/Editor/utils/button.js +14 -0
  214. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +0 -23
  215. package/dist/Editor/utils/draftToSlate.js +2 -3
  216. package/dist/Editor/utils/font.js +37 -40
  217. package/dist/Editor/utils/helper.js +27 -59
  218. package/dist/Editor/utils/link.js +1 -1
  219. package/dist/Editor/utils/table.js +0 -8
  220. package/package.json +2 -5
  221. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -438
  222. package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
  223. package/dist/Editor/common/CustomColorPicker/index.js +0 -106
  224. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  225. package/dist/Editor/common/CustomDialog/index.js +0 -88
  226. package/dist/Editor/common/CustomDialog/styles.js +0 -80
  227. package/dist/Editor/common/CustomDialog2/index.js +0 -94
  228. package/dist/Editor/common/CustomDialog2/style.js +0 -67
  229. package/dist/Editor/common/CustomSelect.js +0 -33
  230. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
  231. package/dist/Editor/hooks/useEditorTheme.js +0 -153
  232. package/dist/Editor/theme/index.js +0 -144
  233. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  234. package/dist/Editor/themeSettings/buttons/index.js +0 -283
  235. package/dist/Editor/themeSettings/buttons/style.js +0 -21
  236. package/dist/Editor/themeSettings/colorTheme/index.js +0 -292
  237. package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
  238. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
  239. package/dist/Editor/themeSettings/fonts/index.js +0 -220
  240. package/dist/Editor/themeSettings/fonts/style.js +0 -44
  241. package/dist/Editor/themeSettings/icons.js +0 -60
  242. package/dist/Editor/themeSettings/index.js +0 -320
  243. package/dist/Editor/themeSettings/style.js +0 -152
  244. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  245. package/dist/Editor/themeSettingsAI/index.js +0 -356
  246. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -197
  247. package/dist/Editor/themeSettingsAI/style.js +0 -250
@@ -9,7 +9,7 @@ const parseCopiedHTML = html => {
9
9
  const parsed = new DOMParser().parseFromString(html, "text/html");
10
10
 
11
11
  // if ol, ul are inside li, remove and push ol,ul after that li to maintain format between our slate list and external source list's json
12
- parsed.querySelectorAll("li > ul, li > ol, li > table").forEach(list => {
12
+ parsed.querySelectorAll("li > ul, li > ol").forEach(list => {
13
13
  // Find the parent li
14
14
  const parentLi = list.parentElement;
15
15
 
@@ -30,8 +30,6 @@ const parseCopiedHTML = html => {
30
30
 
31
31
  // claude.ai, copy list inbetween, some li tags are not wrapped with ul or ol
32
32
  parsed.querySelectorAll("li").forEach(li => {
33
- li.innerHTML = li.innerHTML.replace(/^\n+|\n+$/g, ""); // Removes leading and trailing newlines
34
-
35
33
  // Check if the parent of <li> is not a <ul> or <ol>
36
34
  if (!li.parentElement || li.parentElement.tagName !== "UL" && li.parentElement.tagName !== "OL") {
37
35
  // Create a <ul> element
@@ -57,7 +55,7 @@ const loopChildren = (children = [], defaultInsert) => {
57
55
  }
58
56
  return defaultInsert;
59
57
  };
60
- export const getCurrentElement = editor => {
58
+ const getCurrentElement = editor => {
61
59
  try {
62
60
  if (editor.selection) {
63
61
  return Node.parent(editor, editor?.selection?.anchor?.path);
@@ -238,9 +236,9 @@ const withHtml = editor => {
238
236
  const isNonText = rootElement ? rootElement?.querySelector(NON_TEXT_TAGS.toString()) : false;
239
237
  const isGoogleSheet = parsed.body.querySelector("google-sheets-html-origin");
240
238
  if (isGoogleSheet) {
241
- // if (editor.isChatEditor) {
242
- // return;
243
- // }
239
+ if (editor.isChatEditor) {
240
+ return;
241
+ }
244
242
  const table = rootElement.querySelector("table");
245
243
  const colGrp = table.querySelector("colgroup");
246
244
  if (colGrp) {
@@ -262,18 +260,15 @@ const withHtml = editor => {
262
260
  return;
263
261
  }
264
262
  const formattedFragment = normalizeFragment ? normalizeFragment(fragment) : fragment;
265
-
266
- // let is_img_table = false;
267
- // formattedFragment.map((f) => {
268
- // if (f.type === "image" || f?.type?.includes("table")) {
269
- // is_img_table = true;
270
- // }
271
- // });
272
-
273
- // if (editor.isChatEditor && is_img_table) {
274
- // return;
275
- // }
276
-
263
+ let is_img_table = false;
264
+ formattedFragment.map(f => {
265
+ if (f.type === "image" || f?.type?.includes("table")) {
266
+ is_img_table = true;
267
+ }
268
+ });
269
+ if (editor.isChatEditor && is_img_table) {
270
+ return;
271
+ }
277
272
  if (isTitlePath && isNonText) {
278
273
  insertAtNextNode(editor, formattedFragment);
279
274
  return;
@@ -27,8 +27,7 @@ const ORDERS_LAYOUT_VALIDATIONS = {
27
27
  };
28
28
  const withLayout = editor => {
29
29
  const {
30
- normalizeNode,
31
- translation
30
+ normalizeNode
32
31
  } = editor;
33
32
  editor.normalizeNode = ([node, path]) => {
34
33
  if (path.length === 0) {
@@ -40,7 +39,7 @@ const withLayout = editor => {
40
39
  const title = {
41
40
  type: "title",
42
41
  children: [{
43
- text: translation ? translation("Untitled") : "Untitled"
42
+ text: "Untitled"
44
43
  }]
45
44
  };
46
45
  Transforms.insertNodes(editor, title, {
@@ -1,6 +1,6 @@
1
1
  import { Editor, Range, Point, Element, Transforms, Node } from "slate";
2
2
  import { TableUtil, createTableCell } from "../utils/table";
3
- const NON_DELETABLE_BLOCKS = ["table-cell", "carousel-item", "page-settings"];
3
+ const NON_DELETABLE_BLOCKS = ["table-cell", "carousel-item"];
4
4
  const withTable = editor => {
5
5
  const {
6
6
  deleteBackward,
@@ -1,58 +1,181 @@
1
- import { Box, MenuItem, Select } from "@mui/material";
2
- import { defaultTheme } from ".";
3
- import { useEditorTheme } from "../hooks/useEditorTheme";
4
- import { useEffect, useState } from "react";
1
+ import { MenuItem, Select, useTheme } from "@mui/material";
2
+ import { fontOptions } from "../utils/font";
3
+ import { toolbarGroups } from "../Toolbar/toolbarGroups";
5
4
  import { jsx as _jsx } from "react/jsx-runtime";
6
5
  import { jsxs as _jsxs } from "react/jsx-runtime";
7
- function ThemeList({
8
- editor,
9
- services = () => {}
10
- }) {
11
- const [themes, setThemes] = useState([]);
12
- const [loading, setLoading] = useState(false);
13
- console.log("loading", loading);
14
- const getThemesList = async () => {
15
- setLoading(true);
16
- try {
17
- const result = await services("getThemes", {});
18
- setThemes(result?.data || []);
19
- } catch (err) {
20
- console.log(err);
21
- }
22
- setLoading(false);
23
- };
6
+ const themes = [{
7
+ label: "Theme 1",
8
+ colors: ["#c90c1f", "#ff5d05"]
9
+ }, {
10
+ label: "Theme 2",
11
+ colors: ["#4c0be3", "#43f7ee"]
12
+ }, {
13
+ label: "Theme 3",
14
+ colors: ["#22f20f", "#fff705"]
15
+ }];
16
+ const allTools = toolbarGroups.flat();
17
+ function ThemeList(props) {
24
18
  const {
25
- updateTheme
26
- } = useEditorTheme();
27
- useEffect(() => {
28
- getThemesList();
29
- }, []);
30
- const handleThemeChange = e => {
31
- const {
32
- value
33
- } = e.target;
34
- const selectedTheme = themes.find(t => t.id === value) || defaultTheme;
35
- updateTheme(selectedTheme, "THEME_CHANGE");
19
+ selectedTheme,
20
+ setSelectedTheme
21
+ } = props;
22
+ const fontWeight = allTools.find(f => f.format === "fontWeight");
23
+ const fontStyles = [{
24
+ text: "Bold",
25
+ value: "bold",
26
+ styleField: "fontWeight"
27
+ }, {
28
+ text: "Italic",
29
+ value: "italic",
30
+ styleField: "fontStyle"
31
+ }
32
+ // {
33
+ // text: "Underline",
34
+ // value: "underline",
35
+ // styleField: "textDecoration",
36
+ // },
37
+ // {
38
+ // text: "Line through",
39
+ // value: "line-through",
40
+ // styleField: "textDecoration",
41
+ // },
42
+ ];
43
+
44
+ const theme = useTheme();
45
+ const colorVars = theme?.vars?.colors || {};
46
+ const handleTypographyTheme = (key, value, elementType) => {
47
+ setSelectedTheme(prev => {
48
+ const newValue = {
49
+ ...prev,
50
+ typography: {
51
+ ...(prev.typography || {}),
52
+ [elementType]: {
53
+ ...(prev?.typography?.[elementType] || {}),
54
+ [key]: value
55
+ }
56
+ }
57
+ };
58
+ if (!value) {
59
+ delete newValue?.typography?.[elementType]?.[key];
60
+ }
61
+ return newValue;
62
+ });
36
63
  };
37
- return /*#__PURE__*/_jsx(Box, {
38
- sx: {
39
- padding: "10px",
40
- background: "#efefef",
41
- borderRadius: "6px"
42
- },
43
- children: /*#__PURE__*/_jsxs(Select, {
44
- onChange: handleThemeChange,
45
- defaultValue: 0,
46
- children: [/*#__PURE__*/_jsx(MenuItem, {
47
- value: 0,
48
- children: "Default Theme"
49
- }), themes.map((theme, i) => {
50
- return /*#__PURE__*/_jsx(MenuItem, {
51
- value: theme?.id,
52
- children: theme?.name
53
- }, i);
64
+ return /*#__PURE__*/_jsxs("div", {
65
+ children: [themes.map((theme, i) => {
66
+ return /*#__PURE__*/_jsxs("button", {
67
+ style: {
68
+ margin: "10px"
69
+ },
70
+ onClick: () => setSelectedTheme(prev => ({
71
+ ...prev,
72
+ colors: theme.colors
73
+ })),
74
+ children: [theme.label, /*#__PURE__*/_jsx("div", {
75
+ children: theme.colors.map((c, j) => {
76
+ return /*#__PURE__*/_jsx("div", {
77
+ style: {
78
+ width: "20px",
79
+ height: "20px",
80
+ background: c,
81
+ margin: "10px"
82
+ }
83
+ }, j);
84
+ })
85
+ })]
86
+ }, i);
87
+ }), /*#__PURE__*/_jsxs("div", {
88
+ children: ["Heading 1 Font Family", /*#__PURE__*/_jsx(Select
89
+ // value={""}
90
+ , {
91
+ label: "Font Family",
92
+ onChange: e => {
93
+ handleTypographyTheme("fontFamily", e.target.value, "h1");
94
+ },
95
+ children: fontOptions.map((font, i) => {
96
+ const {
97
+ text,
98
+ value
99
+ } = font;
100
+ return /*#__PURE__*/_jsx(MenuItem, {
101
+ value: value,
102
+ children: text
103
+ }, i);
104
+ })
105
+ }), "Font Weight", /*#__PURE__*/_jsx(Select
106
+ // value={""}
107
+ , {
108
+ label: "Font Weight",
109
+ onChange: e => {
110
+ handleTypographyTheme("fontWeight", e.target.value, "h1");
111
+ },
112
+ children: fontWeight.options.map((option, i) => {
113
+ const {
114
+ text,
115
+ value
116
+ } = option;
117
+ return /*#__PURE__*/_jsx(MenuItem, {
118
+ value: value,
119
+ children: text
120
+ }, i);
121
+ })
122
+ }), /*#__PURE__*/_jsx("input", {
123
+ type: "number",
124
+ placeholder: "font size",
125
+ onChange: e => {
126
+ handleTypographyTheme("fontSize", e.target.value, "h1");
127
+ }
128
+ }), /*#__PURE__*/_jsxs("div", {
129
+ children: ["Text", /*#__PURE__*/_jsx("br", {}), "Theme color", Object.values(colorVars).map((colorVar, i) => {
130
+ return /*#__PURE__*/_jsx("button", {
131
+ style: {
132
+ width: "20px",
133
+ height: "20px",
134
+ background: colorVar,
135
+ margin: "10px",
136
+ outline: "none"
137
+ },
138
+ onClick: () => handleTypographyTheme("color", colorVar, "h1")
139
+ }, i);
140
+ }), "normal color", /*#__PURE__*/_jsx("button", {
141
+ style: {
142
+ width: "20px",
143
+ height: "20px",
144
+ background: "#ff00e1",
145
+ margin: "10px",
146
+ outline: "none"
147
+ },
148
+ onClick: () => handleTypographyTheme("color", "#ff00e1", "h1")
149
+ })]
150
+ }), /*#__PURE__*/_jsxs("div", {
151
+ children: ["Font styles", fontStyles.map((option, i) => {
152
+ const styles = selectedTheme?.typography?.h1 || {};
153
+ const {
154
+ text,
155
+ value,
156
+ styleField
157
+ } = option;
158
+ return /*#__PURE__*/_jsxs("button", {
159
+ onClick: () => {
160
+ handleTypographyTheme(styleField, styles[styleField] === value ? null : value, "h1");
161
+ },
162
+ children: [text, " ", styles[styleField] === value]
163
+ }, i);
164
+ })]
165
+ }), /*#__PURE__*/_jsx("input", {
166
+ type: "number",
167
+ placeholder: "Margin text Spacing",
168
+ onChange: e => {
169
+ handleTypographyTheme("letterSpacing", e.target.value, "h1");
170
+ }
171
+ }), /*#__PURE__*/_jsx("input", {
172
+ type: "number",
173
+ placeholder: "Line spacing",
174
+ onChange: e => {
175
+ handleTypographyTheme("lineHeight", e.target.value, "h1");
176
+ }
54
177
  })]
55
- })
178
+ })]
56
179
  });
57
180
  }
58
181
  export default ThemeList;
@@ -34,12 +34,12 @@ import SimpleText from "../Elements/SimpleText";
34
34
  import CheckList from "../Elements/List/CheckList";
35
35
  import { getTextColor, isEmptyTextNode } from "../helper";
36
36
  import Attachments from "../Elements/Attachments/Attachments";
37
- import { getBreakPointsValue, textThemeFields, getElementProperty } from "../helper/theme";
37
+ import { getBreakPointsValue, groupByBreakpoint } 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, getSlateDom } from "./helper";
41
42
  import Code from "../Elements/EmbedScript/Code";
42
- import { ReactEditor } from "slate-react";
43
43
  import FreeGrid from "../Elements/FreeGrid/FreeGrid";
44
44
  import FreeGridItem from "../Elements/FreeGrid/FreeGridItem";
45
45
  import FreeGridBox from "../Elements/FreeGrid/FreeGridBox";
@@ -47,7 +47,7 @@ import DataView from "../Elements/DataView/DataView";
47
47
  import ViewData from "../Elements/DataView/Layouts/ViewData";
48
48
  import ColumnView from "../Elements/DataView/Layouts/ColumnView";
49
49
  import SearchAttachment from "../Elements/Search/SearchAttachment";
50
- import { wrapThemeBreakpoints } from "../Elements/FreeGrid/breakpointConstants";
50
+ // import { wrapThemeBreakpoints } from "../Elements/FreeGrid/breakpointConstants";
51
51
  import { jsx as _jsx } from "react/jsx-runtime";
52
52
  const alignment = ["alignLeft", "alignRight", "alignCenter", "alignJustify"];
53
53
  const list_types = ["orderedList", "unorderedList"];
@@ -55,17 +55,7 @@ const LIST_FORMAT_TYPE = {
55
55
  orderedList: "list-item",
56
56
  unorderedList: "list-item"
57
57
  };
58
-
59
- // const NEWLINESAFTER = [
60
- // "headingOne",
61
- // "headingTwo",
62
- // "headingThree",
63
- // "headingFour",
64
- // "headingFive",
65
- // "headingSix",
66
- // ];
67
-
68
- const THEME_BLOCK_FIELDS = ["headingOne", "headingTwo", "headingThree", "headingFour", "headingFive", "headingSix", "paragraphOne", "paragraphTwo", "paragraphThree"];
58
+ const NEWLINESAFTER = ["headingOne", "headingTwo", "headingThree"];
69
59
  export const toggleBlock = (editor, format, selection = true, attr = {}) => {
70
60
  const isActive = isBlockActive(editor, format);
71
61
  const isList = list_types.includes(format);
@@ -98,9 +88,8 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
98
88
  if (!selection) {
99
89
  Transforms.insertText(editor, "");
100
90
  }
101
- const forActiveType = THEME_BLOCK_FIELDS.some(f => f === format) ? format : "paragraph";
102
91
  Transforms.setNodes(editor, {
103
- type: isActive ? forActiveType : isList ? LIST_FORMAT_TYPE[format] : format,
92
+ type: isActive ? "paragraph" : isList ? LIST_FORMAT_TYPE[format] : format,
104
93
  ...attr
105
94
  });
106
95
  if (isList && !isActive) {
@@ -109,12 +98,10 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
109
98
  children: []
110
99
  });
111
100
  }
112
-
113
- // if (NEWLINESAFTER.indexOf(format) > -1) {
114
- // insertNewLine(editor);
115
- // }
101
+ if (NEWLINESAFTER.indexOf(format) > -1) {
102
+ insertNewLine(editor);
103
+ }
116
104
  };
117
-
118
105
  export const addMarkData = (editor, data) => {
119
106
  try {
120
107
  Editor.addMark(editor, data.format, data.value);
@@ -123,14 +110,9 @@ export const addMarkData = (editor, data) => {
123
110
  }
124
111
  };
125
112
  export const toggleMark = (editor, format) => {
126
- const isActive = isMarkBtnActive(editor, format);
113
+ const isActive = isMarkActive(editor, format);
127
114
  if (isActive) {
128
- const isThemeSupportedMark = textThemeFields.some(f => f === format);
129
- if (isThemeSupportedMark) {
130
- Editor.addMark(editor, format, false);
131
- } else {
132
- Editor.removeMark(editor, format);
133
- }
115
+ Editor.removeMark(editor, format);
134
116
  } else {
135
117
  Editor.addMark(editor, format, true);
136
118
  }
@@ -144,52 +126,6 @@ export const isMarkActive = (editor, format) => {
144
126
  return null;
145
127
  }
146
128
  };
147
- export const isMarkBtnActive = (editor, format) => {
148
- switch (format) {
149
- case "bold":
150
- {
151
- const style = getSelectedElementStyle("font-weight", editor);
152
- return style === "700";
153
- }
154
- case "italic":
155
- {
156
- const style = getSelectedElementStyle("font-style", editor);
157
- return style === format;
158
- }
159
- // case "underline": {
160
- // const style = getSelectedElementStyle("text-decoration");
161
-
162
- // return style?.includes(format);
163
- // }
164
- // case "strikethrough": {
165
- // const style = getSelectedElementStyle("text-decoration");
166
-
167
- // return style?.includes("line-through");
168
- // }
169
- default:
170
- return isMarkActive(editor, format);
171
- }
172
- };
173
- export const getSelectedElementStyle = (styleProperty, editor) => {
174
- try {
175
- if (!editor.selection) {
176
- return "";
177
- }
178
- if (Range.isCollapsed(editor.selection)) {
179
- return "";
180
- }
181
- const domRange = ReactEditor.toDOMRange(editor, editor.selection);
182
- const selectedDomNode = domRange.commonAncestorContainer;
183
-
184
- // If it's a text node, get its parent element
185
- const selectedElement = selectedDomNode.nodeType === 3 ? selectedDomNode.parentElement : selectedDomNode;
186
- if (selectedElement) {
187
- return getElementProperty(selectedElement, styleProperty);
188
- }
189
- } catch (err) {
190
- console.log(err);
191
- }
192
- };
193
129
  export const isBlockActive = (editor, format) => {
194
130
  const [match] = Editor.nodes(editor, {
195
131
  match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && n.type === format
@@ -242,31 +178,6 @@ export const activeMark = (editor, format) => {
242
178
  return null;
243
179
  }
244
180
  };
245
-
246
- // to avoid the styles, that automatically assign from themes
247
- const getThemeMarkedLeaf = (leaf, children) => {
248
- const {
249
- italic,
250
- bold
251
- } = leaf || {};
252
- const style = {};
253
- if (italic === false) {
254
- style.fontStyle = "normal";
255
- }
256
- if (bold === false) {
257
- style.fontWeight = "normal";
258
- }
259
- if (Object.keys(style).length) {
260
- children = /*#__PURE__*/_jsx(Box, {
261
- component: "span",
262
- sx: {
263
- "& span": style
264
- },
265
- children: children
266
- });
267
- }
268
- return children;
269
- };
270
181
  export const getMarked = (leaf, children, theme) => {
271
182
  const className = leaf?.doublequote ? "doublequote" : "";
272
183
  if (leaf.highlight) {
@@ -293,7 +204,6 @@ export const getMarked = (leaf, children, theme) => {
293
204
  children: children
294
205
  });
295
206
  }
296
- children = getThemeMarkedLeaf(leaf, children);
297
207
  if (leaf.strikethrough) {
298
208
  children = /*#__PURE__*/_jsx("span", {
299
209
  style: {
@@ -321,27 +231,20 @@ export const getMarked = (leaf, children, theme) => {
321
231
  if (leaf.color || leaf.bgColor || leaf.fontSize || leaf.fontFamily || leaf.fontWeight || className) {
322
232
  const family = leaf?.fontFamily;
323
233
  const textStyles = getTextColor(leaf?.color);
324
- const fontSize = {
325
- lg: sizeMap[leaf.fontSize] || leaf.fontSize,
326
- ...getBreakPointsValue(leaf.fontSize, null, "overrideText")
327
- };
328
- const fontSizesImportant = {};
329
- Object.entries(fontSize).forEach(([key, value]) => {
330
- fontSizesImportant[key] = `${value} !important`;
331
- });
332
- const fontSizeWithBreakpoints = wrapThemeBreakpoints(fontSizesImportant, "fontSize", theme);
333
234
  children = /*#__PURE__*/_jsx("span", {
235
+ style: {
236
+ background: leaf.bgColor
237
+ },
334
238
  children: /*#__PURE__*/_jsx(Box, {
335
239
  className: className,
336
240
  component: "span",
337
241
  sx: {
338
- "& span": {
339
- // fontSize: fontSizesImportant,
340
- // ...groupByBreakpoint(fontSizesImportant, theme),
341
- background: leaf.bgColor,
342
- ...fontSizeWithBreakpoints
343
- },
344
- ...fontSizeWithBreakpoints,
242
+ ...groupByBreakpoint({
243
+ fontSize: {
244
+ lg: sizeMap[leaf.fontSize] || leaf.fontSize,
245
+ ...getBreakPointsValue(leaf.fontSize, null, "overrideText")
246
+ }
247
+ }, theme),
345
248
  // ...wrapThemeBreakpoints(
346
249
  // {
347
250
  // lg: sizeMap[leaf.fontSize] || leaf.fontSize,
@@ -379,77 +282,57 @@ export const getMarked = (leaf, children, theme) => {
379
282
  export const getBlock = props => {
380
283
  const {
381
284
  element,
382
- children,
383
- customProps
285
+ children
384
286
  } = props;
385
287
  const attributes = props.attributes ?? {};
386
288
  const isEmpty = isEmptyTextNode(element);
387
- const {
388
- translation
389
- } = customProps;
390
- const commonHeadingProps = () => ({
391
- ...attributes,
392
- ...element.attr,
393
- className: `edt-headings content-editable ${isEmpty ? "empty" : ""} theme-element`
394
- });
395
- const commonParaProps = paraType => ({
396
- ...attributes,
397
- ...element.attr,
398
- className: `content-editable ${isEmpty ? "empty" : ""} theme-element ${paraType}`
399
- });
400
289
  switch (element.type) {
401
290
  case "headingOne":
402
291
  return /*#__PURE__*/_jsx("h1", {
403
- ...commonHeadingProps(),
404
- placeholder: translation("Heading 1"),
292
+ ...attributes,
293
+ ...element.attr,
294
+ className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
295
+ placeholder: "Heading 1",
405
296
  children: children
406
297
  });
407
298
  case "headingTwo":
408
299
  return /*#__PURE__*/_jsx("h2", {
409
- ...commonHeadingProps(),
410
- placeholder: translation("Heading 2"),
300
+ ...attributes,
301
+ ...element.attr,
302
+ className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
303
+ placeholder: "Heading 2",
411
304
  children: children
412
305
  });
413
306
  case "headingThree":
414
307
  return /*#__PURE__*/_jsx("h3", {
415
- ...commonHeadingProps(),
416
- placeholder: translation("Heading 3"),
308
+ ...attributes,
309
+ ...element.attr,
310
+ className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
311
+ placeholder: "Heading 3",
417
312
  children: children
418
313
  });
419
314
  case "headingFour":
420
315
  return /*#__PURE__*/_jsx("h4", {
421
- ...commonHeadingProps(),
422
- placeholder: translation("Heading 4"),
316
+ ...attributes,
317
+ ...element.attr,
318
+ className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
319
+ placeholder: "Heading 4",
423
320
  children: children
424
321
  });
425
322
  case "headingFive":
426
323
  return /*#__PURE__*/_jsx("h5", {
427
- ...commonHeadingProps(),
428
- placeholder: translation("Heading 5"),
324
+ ...attributes,
325
+ ...element.attr,
326
+ className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
327
+ placeholder: "Heading 5",
429
328
  children: children
430
329
  });
431
330
  case "headingSix":
432
331
  return /*#__PURE__*/_jsx("h6", {
433
- ...commonHeadingProps(),
434
- placeholder: translation("Heading 6"),
435
- children: children
436
- });
437
- case "paragraphOne":
438
- return /*#__PURE__*/_jsx("p", {
439
- ...commonParaProps("para1"),
440
- placeholder: "Paragraph 1",
441
- children: children
442
- });
443
- case "paragraphTwo":
444
- return /*#__PURE__*/_jsx("p", {
445
- ...commonParaProps("para2"),
446
- placeholder: "Paragraph 2",
447
- children: children
448
- });
449
- case "paragraphThree":
450
- return /*#__PURE__*/_jsx("p", {
451
- ...commonParaProps("para3"),
452
- placeholder: "Paragraph 3",
332
+ ...attributes,
333
+ ...element.attr,
334
+ className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
335
+ placeholder: "Heading 6",
453
336
  children: children
454
337
  });
455
338
  case "blockquote":
@@ -517,7 +400,7 @@ export const getBlock = props => {
517
400
  ...attributes,
518
401
  ...element.attr,
519
402
  className: `content-editable ${isEmpty ? "empty" : ""}`,
520
- placeholder: translation("List"),
403
+ placeholder: "List",
521
404
  style: {
522
405
  color: firstChildren?.color
523
406
  },
@@ -11,6 +11,20 @@ export const insertButton = editor => {
11
11
  linkType: "webAddress"
12
12
  },
13
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
+ },
14
28
  ...(windowVar.lastButtonProps || {})
15
29
  };
16
30
  Transforms.insertNodes(editor, button);