@flozy/editor 9.6.5 → 9.6.6

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 (255) hide show
  1. package/dist/Editor/ChatEditor.js +26 -19
  2. package/dist/Editor/CommonEditor.js +139 -25
  3. package/dist/Editor/DialogWrapper.js +31 -25
  4. package/dist/Editor/Editor.css +13 -9
  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 -18
  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 +10 -7
  28. package/dist/Editor/Elements/Color Picker/Styles.js +15 -13
  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 -2
  33. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +425 -0
  34. package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +21 -6
  35. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseSort.js +13 -12
  36. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/index.js +7 -4
  37. package/dist/Editor/Elements/DataView/Layouts/FilterSort/index.js +7 -5
  38. package/dist/Editor/Elements/DataView/Layouts/FilterView.js +9 -7
  39. package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +8 -3
  40. package/dist/Editor/Elements/DataView/Layouts/Options/AddProperty.js +5 -3
  41. package/dist/Editor/Elements/DataView/Layouts/Options/AllProperties.js +6 -5
  42. package/dist/Editor/Elements/DataView/Layouts/Options/ChangeProperty.js +5 -3
  43. package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +9 -7
  44. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +15 -12
  45. package/dist/Editor/Elements/DataView/Layouts/Options/FilterProperty.js +3 -2
  46. package/dist/Editor/Elements/DataView/Layouts/Options/PropertyList.js +3 -2
  47. package/dist/Editor/Elements/DataView/Layouts/Options/index.js +23 -6
  48. package/dist/Editor/Elements/DataView/Layouts/TableView.js +6 -4
  49. package/dist/Editor/Elements/DataView/Layouts/ViewData.js +8 -4
  50. package/dist/Editor/Elements/DataView/Layouts/index.js +3 -1
  51. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +5 -2
  52. package/dist/Editor/Elements/Divider/Divider.js +5 -3
  53. package/dist/Editor/Elements/Divider/DividerButton.js +6 -2
  54. package/dist/Editor/Elements/Divider/DividerPopup.js +3 -2
  55. package/dist/Editor/Elements/Embed/Embed.js +4 -1
  56. package/dist/Editor/Elements/Embed/EmbedPopup.js +4 -1
  57. package/dist/Editor/Elements/Embed/Image.js +14 -9
  58. package/dist/Editor/Elements/Embed/Video.js +9 -6
  59. package/dist/Editor/Elements/EmbedScript/Code.js +7 -4
  60. package/dist/Editor/Elements/EmbedScript/EmbedScript.js +6 -2
  61. package/dist/Editor/Elements/EmbedScript/EmbedScriptPopup.js +8 -5
  62. package/dist/Editor/Elements/Emoji/EmojiButton.js +6 -2
  63. package/dist/Editor/Elements/Form/FieldPopup.js +4 -1
  64. package/dist/Editor/Elements/Form/Form.js +12 -9
  65. package/dist/Editor/Elements/Form/FormButton.js +6 -2
  66. package/dist/Editor/Elements/Form/FormPopup.js +3 -2
  67. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +24 -15
  68. package/dist/Editor/Elements/Form/Workflow/ListWorkflow.js +13 -8
  69. package/dist/Editor/Elements/Form/Workflow/MoreOptions.js +3 -2
  70. package/dist/Editor/Elements/Form/Workflow/Styles.js +24 -22
  71. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +4 -2
  72. package/dist/Editor/Elements/Form/Workflow/index.js +22 -10
  73. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +67 -23
  74. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +31 -6
  75. package/dist/Editor/Elements/FreeGrid/FreeGridButton.js +6 -2
  76. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +38 -5
  77. package/dist/Editor/Elements/FreeGrid/Options/AddElement.js +3 -2
  78. package/dist/Editor/Elements/FreeGrid/Options/More.js +10 -4
  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 +8 -5
  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 +4 -1
  91. package/dist/Editor/Elements/PageSettings/PageSettingsPopup.js +4 -1
  92. package/dist/Editor/Elements/Search/SearchButton.js +7 -4
  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 +24 -12
  102. package/dist/Editor/Elements/Table/TablePopup.js +4 -1
  103. package/dist/Editor/Elements/Table/TableSelector.js +10 -6
  104. package/dist/Editor/Elements/Table/TableTool.js +8 -4
  105. package/dist/Editor/Elements/Title/title.js +10 -0
  106. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +4 -1
  107. package/dist/Editor/Elements/Variables/VariableButton.js +10 -1
  108. package/dist/Editor/MiniEditor.js +10 -3
  109. package/dist/Editor/Styles/EditorStyles.js +5 -5
  110. package/dist/Editor/Toolbar/Basic/index.js +2 -1
  111. package/dist/Editor/Toolbar/FormatTools/BlockButton.js +6 -2
  112. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  113. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  114. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +8 -4
  115. package/dist/Editor/Toolbar/FormatTools/TextSize.js +10 -13
  116. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +12 -5
  117. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +10 -5
  118. package/dist/Editor/Toolbar/PopupTool/ButtonTemplatesCard.js +10 -4
  119. package/dist/Editor/Toolbar/PopupTool/FullViewCard.js +10 -4
  120. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +9 -3
  121. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectAlignment.js +42 -35
  122. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
  123. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +58 -51
  124. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectSuperSubscript.js +29 -22
  125. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +226 -87
  126. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +20 -10
  127. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +10 -5
  128. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +71 -11
  129. package/dist/Editor/Toolbar/PopupTool/TemplateCard.js +11 -5
  130. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +128 -45
  131. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +436 -0
  132. package/dist/Editor/Toolbar/PopupTool/index.js +20 -10
  133. package/dist/Editor/Toolbar/Toolbar.js +20 -10
  134. package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
  135. package/dist/Editor/assets/svg/ClearAllRounded.js +31 -0
  136. package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
  137. package/dist/Editor/common/ColorPickerButton.js +39 -14
  138. package/dist/Editor/common/CustomColorPicker/index.js +131 -0
  139. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  140. package/dist/Editor/common/CustomDialog/index.js +8 -10
  141. package/dist/Editor/common/CustomDialog2/index.js +94 -0
  142. package/dist/Editor/common/CustomDialog2/style.js +67 -0
  143. package/dist/Editor/common/CustomSelect.js +43 -0
  144. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  145. package/dist/Editor/common/FontLoader/FontLoader.js +3 -0
  146. package/dist/Editor/common/Icon.js +28 -0
  147. package/dist/Editor/common/ImageSelector/ImageSelector.js +10 -8
  148. package/dist/Editor/common/ImageSelector/Options/AddLink.js +6 -4
  149. package/dist/Editor/common/ImageSelector/Options/Upload.js +1 -1
  150. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  151. package/dist/Editor/common/ImageSelector/UploadStyles.js +9 -9
  152. package/dist/Editor/common/LinkSettings/NavComponents.js +14 -10
  153. package/dist/Editor/common/LinkSettings/index.js +20 -14
  154. package/dist/Editor/common/LinkSettings/navOptions.js +1 -1
  155. package/dist/Editor/common/MentionsPopup/index.js +6 -2
  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/ElementSettings/styles.js +0 -1
  171. package/dist/Editor/common/RnD/OptionsPopup/index.js +4 -3
  172. package/dist/Editor/common/RnD/ShadowElement.js +2 -1
  173. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +11 -4
  174. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  175. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  176. package/dist/Editor/common/RnD/Utils/gridDropItem.js +55 -8
  177. package/dist/Editor/common/RnD/Utils/index.js +3 -0
  178. package/dist/Editor/common/RnD/VirtualElement/BoxHeaderAutoAlignment.js +43 -0
  179. package/dist/Editor/common/RnD/VirtualElement/ForceAutoAlignment.js +44 -0
  180. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +134 -0
  181. package/dist/Editor/common/RnD/VirtualElement/helper.js +375 -0
  182. package/dist/Editor/common/RnD/VirtualElement/index.js +187 -103
  183. package/dist/Editor/common/RnD/VirtualElement/styles.js +151 -7
  184. package/dist/Editor/common/RnD/VirtualElement/updateAutoProps.js +5 -3
  185. package/dist/Editor/common/RnD/index.js +64 -13
  186. package/dist/Editor/common/Section/index.js +7 -4
  187. package/dist/Editor/common/Shorthands/elements.js +74 -3
  188. package/dist/Editor/common/SnackBar/index.js +43 -0
  189. package/dist/Editor/common/StyleBuilder/appHeaderStyle.js +4 -4
  190. package/dist/Editor/common/StyleBuilder/boxStyle.js +2 -2
  191. package/dist/Editor/common/StyleBuilder/buttonStyle.js +6 -4
  192. package/dist/Editor/common/StyleBuilder/dividerStyles.js +2 -2
  193. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +6 -6
  194. package/dist/Editor/common/StyleBuilder/fieldStyle.js +2 -2
  195. package/dist/Editor/common/StyleBuilder/fieldTypes/alignment.js +13 -9
  196. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +11 -3
  197. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +19 -5
  198. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +22 -10
  199. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +6 -3
  200. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +27 -13
  201. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +43 -14
  202. package/dist/Editor/common/StyleBuilder/fieldTypes/elementSize.js +10 -6
  203. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +19 -6
  204. package/dist/Editor/common/StyleBuilder/fieldTypes/gridSize.js +6 -2
  205. package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +5 -2
  206. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +9 -6
  207. package/dist/Editor/common/StyleBuilder/fieldTypes/metaDataMapping.js +8 -2
  208. package/dist/Editor/common/StyleBuilder/fieldTypes/saveAsTemplate.js +12 -11
  209. package/dist/Editor/common/StyleBuilder/fieldTypes/selectBox.js +6 -2
  210. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +8 -4
  211. package/dist/Editor/common/StyleBuilder/fieldTypes/textAlign.js +6 -2
  212. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +21 -12
  213. package/dist/Editor/common/StyleBuilder/formStyle.js +7 -7
  214. package/dist/Editor/common/StyleBuilder/gridItemStyle.js +6 -6
  215. package/dist/Editor/common/StyleBuilder/gridStyle.js +5 -5
  216. package/dist/Editor/common/StyleBuilder/index.js +8 -5
  217. package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +5 -7
  218. package/dist/Editor/common/Uploader.js +16 -5
  219. package/dist/Editor/commonStyle.js +23 -12
  220. package/dist/Editor/helper/index.js +27 -3
  221. package/dist/Editor/helper/textIndeces.js +58 -0
  222. package/dist/Editor/helper/theme.js +202 -2
  223. package/dist/Editor/hooks/useAutoScroll.js +38 -0
  224. package/dist/Editor/hooks/useDrag.js +1 -1
  225. package/dist/Editor/hooks/useEditorScroll.js +0 -1
  226. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  227. package/dist/Editor/hooks/useMouseMove.js +9 -3
  228. package/dist/Editor/hooks/useThemeValues.js +63 -0
  229. package/dist/Editor/plugins/withEmbeds.js +1 -1
  230. package/dist/Editor/plugins/withHTML.js +11 -9
  231. package/dist/Editor/plugins/withLayout.js +3 -2
  232. package/dist/Editor/plugins/withTable.js +1 -1
  233. package/dist/Editor/theme/ThemeList.js +50 -173
  234. package/dist/Editor/theme/index.js +149 -0
  235. package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
  236. package/dist/Editor/themeSettings/buttons/index.js +290 -0
  237. package/dist/Editor/themeSettings/buttons/style.js +23 -0
  238. package/dist/Editor/themeSettings/colorTheme/index.js +310 -0
  239. package/dist/Editor/themeSettings/colorTheme/style.js +81 -0
  240. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  241. package/dist/Editor/themeSettings/fonts/index.js +240 -0
  242. package/dist/Editor/themeSettings/fonts/style.js +61 -0
  243. package/dist/Editor/themeSettings/icons.js +60 -0
  244. package/dist/Editor/themeSettings/index.js +351 -0
  245. package/dist/Editor/themeSettings/style.js +220 -0
  246. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  247. package/dist/Editor/themeSettingsAI/index.js +355 -0
  248. package/dist/Editor/themeSettingsAI/saveTheme.js +205 -0
  249. package/dist/Editor/themeSettingsAI/style.js +259 -0
  250. package/dist/Editor/utils/SlateUtilityFunctions.js +201 -60
  251. package/dist/Editor/utils/draftToSlate.js +3 -2
  252. package/dist/Editor/utils/font.js +40 -37
  253. package/dist/Editor/utils/freegrid.js +2 -2
  254. package/dist/Editor/utils/helper.js +90 -19
  255. package/package.json +3 -3
@@ -9,19 +9,26 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
9
9
  const SwitchViewport = props => {
10
10
  const {
11
11
  breakpoint,
12
- onChange
12
+ onChange,
13
+ translation,
14
+ show
13
15
  } = props;
14
16
  const classes = useSwitchViewport();
15
17
  const {
18
+ setSelectedElement,
16
19
  setActiveBreakPoint
17
20
  } = useEditorContext();
18
21
  useEffect(() => {
19
- console.log(breakpoint);
22
+ // to reset selection on viewport changes - FS-6589
23
+ setSelectedElement({});
20
24
  }, [breakpoint]);
21
25
  return /*#__PURE__*/_jsxs(Box, {
22
26
  sx: classes.root,
27
+ style: {
28
+ display: show ? "block" : "none"
29
+ },
23
30
  children: [/*#__PURE__*/_jsx(Tooltip, {
24
- title: "Desktop View",
31
+ title: translation("Desktop View"),
25
32
  children: /*#__PURE__*/_jsx(IconButton, {
26
33
  className: `${!breakpoint || breakpoint === "lg" ? "active" : ""}`,
27
34
  onClick: () => {
@@ -31,7 +38,7 @@ const SwitchViewport = props => {
31
38
  children: /*#__PURE__*/_jsx(PersonalVideoIcon, {})
32
39
  })
33
40
  }), /*#__PURE__*/_jsx(Tooltip, {
34
- title: "Mobile View",
41
+ title: translation("Mobile View"),
35
42
  children: /*#__PURE__*/_jsx(IconButton, {
36
43
  className: `${breakpoint === "xs" ? "active" : ""}`,
37
44
  onClick: () => {
@@ -0,0 +1,17 @@
1
+ import { Experimental_CssVarsProvider as CssVarsProvider, experimental_extendTheme as extendTheme } from "@mui/material/styles";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ function MainThemeProvider({
4
+ children,
5
+ userSelectedTheme,
6
+ theme = {}
7
+ }) {
8
+ const themeVars = extendTheme(userSelectedTheme?.theme?.cssVars || {});
9
+ return /*#__PURE__*/_jsx(CssVarsProvider, {
10
+ theme: {
11
+ ...themeVars,
12
+ ...theme
13
+ },
14
+ children: children
15
+ });
16
+ }
17
+ export default MainThemeProvider;
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
- import { useTheme, ThemeProvider, createTheme, useMediaQuery } from "@mui/material";
2
+ import { useTheme, createTheme, useMediaQuery } from "@mui/material";
3
3
  import { isStimulator, STIMULATOR_MOCK } from "../../../hooks/useBreakpoints";
4
+ import MainThemeProvider from "./MainThemeProvider";
4
5
 
5
6
  // Custom breakpoints functions
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -59,13 +60,15 @@ const extendedTheme = (prevTheme, isPrintMode) => createTheme({
59
60
  } : getBreakPoints(prevTheme)
60
61
  });
61
62
  const ViewportStimulator = ({
62
- children
63
+ children,
64
+ selectedTheme
63
65
  }) => {
64
66
  const theme = useTheme();
65
67
  const isPrintMode = useMediaQuery("print");
66
68
  const viewportTheme = extendedTheme(theme, isPrintMode);
67
- return /*#__PURE__*/_jsx(ThemeProvider, {
69
+ return /*#__PURE__*/_jsx(MainThemeProvider, {
68
70
  theme: viewportTheme,
71
+ userSelectedTheme: selectedTheme,
69
72
  children: children
70
73
  });
71
74
  };
@@ -1,6 +1,7 @@
1
- import { Transforms, Node, Path } from "slate";
1
+ import { Transforms, Node, Path, Editor } from "slate";
2
2
  import { ReactEditor } from "slate-react";
3
- import { handleNegativeInteger } from "../../../utils/helper";
3
+ import { getNode, handleNegativeInteger } from "../../../utils/helper";
4
+ import { handleBoxAlignment } from "../VirtualElement/helper";
4
5
  export const ROW_HEIGHT = 50;
5
6
 
6
7
  // const MARGIN_OF = {
@@ -21,9 +22,18 @@ export function updateRows() {}
21
22
  export function updateCols() {}
22
23
  const handleMoveNode = (editor, path, newPath, {
23
24
  isEmpty
24
- }) => {
25
+ }, autoAlign) => {
25
26
  try {
26
- const replaceNode = Node.get(editor, path);
27
+ let replaceNode = Node.get(editor, path);
28
+ if (autoAlign) {
29
+ // reset node for auto alignment in mobile
30
+ replaceNode = {
31
+ ...replaceNode,
32
+ gridArea_xs: null,
33
+ xs_updatedOn: null,
34
+ marginTop_xs: null
35
+ };
36
+ }
27
37
  if (isEmpty) {
28
38
  const toPath = [...newPath, 0];
29
39
  Transforms.insertNodes(editor, [{
@@ -57,9 +67,10 @@ const handleMoveNode = (editor, path, newPath, {
57
67
  * This method will update prop in child node so it will re-render and update the path
58
68
  * @param {*} path - contains the parent section path
59
69
  */
60
- const reRenderChildNodes = (editor, path) => {
70
+ export const reRenderChildNodes = (editor, path) => {
61
71
  try {
62
72
  const sectionNode = Node.get(editor, path);
73
+
63
74
  // parent node
64
75
  Transforms.setNodes(editor, {
65
76
  updated_at: new Date().getTime()
@@ -127,6 +138,9 @@ function isContainerElement(editor, moveTopath, props, appenBp) {
127
138
  console.log(err);
128
139
  }
129
140
  }
141
+ const isInsidePath = (from, moveTo) => {
142
+ return Path.isAncestor(from, moveTo);
143
+ };
130
144
  export function onDropItem(props, parentClass) {
131
145
  try {
132
146
  const {
@@ -174,7 +188,17 @@ export function onDropItem(props, parentClass) {
174
188
  }, {
175
189
  at: path
176
190
  });
177
- reRenderChildNodes(editor, from);
191
+ let reRenderSectionPath;
192
+ const [sectionData] = Editor.nodes(editor, {
193
+ at: moveTo,
194
+ match: n => n.type === "freegrid"
195
+ });
196
+ const [sectionNode, sectionPath] = sectionData || [];
197
+ if (needMove && isInsidePath(from, moveTo)) {
198
+ reRenderSectionPath = sectionPath;
199
+ } else {
200
+ reRenderChildNodes(editor, from);
201
+ }
178
202
 
179
203
  // move the node if section parent changed
180
204
  if (needMove) {
@@ -183,10 +207,33 @@ export function onDropItem(props, parentClass) {
183
207
  if (!isEmpty) {
184
208
  newPath = [...newPath, toSectionNode?.children?.length];
185
209
  }
210
+ const autoAlign = breakpoint === "lg";
211
+ const currentNode = getNode(editor, path);
212
+ const isBoxHeader = currentNode?.childType === "appHeader" && moveTo?.length > 2;
213
+ if (isBoxHeader) {
214
+ // will handle on <BoxHeaderAutoAlignment />
215
+ } else if (moveTo?.length === 2 && autoAlign) {
216
+ // auto align in mobile
217
+ Transforms.setNodes(editor, {
218
+ xs_updatedOn: null
219
+ }, {
220
+ at: moveTo
221
+ });
222
+ } else if (autoAlign) {
223
+ Transforms.setNodes(editor, {
224
+ autoAlign: true,
225
+ xs_updatedOn: new Date().getTime()
226
+ }, {
227
+ at: moveTo
228
+ });
229
+ }
186
230
  const rPath = handleMoveNode(editor, path, newPath, {
187
231
  isEmpty
188
- });
189
- reRenderChildNodes(editor, moveTo);
232
+ }, autoAlign);
233
+ reRenderChildNodes(editor, reRenderSectionPath || moveTo);
234
+ if (autoAlign && !isBoxHeader) {
235
+ handleBoxAlignment(editor, sectionNode, sectionPath);
236
+ }
190
237
  return {
191
238
  updated_at: rPath
192
239
  };
@@ -293,4 +293,7 @@ export function getAbsolutePositionY(currentEle) {
293
293
  gridArea,
294
294
  marginTop
295
295
  };
296
+ }
297
+ export function getPathFromElement(element) {
298
+ return element?.dataset.path?.split("|").map(m => parseInt(m));
296
299
  }
@@ -0,0 +1,43 @@
1
+ import { Box } from "@mui/material";
2
+ import { useAutoAlignStyles } from "./styles";
3
+ import { useEffect, useRef } from "react";
4
+ import updateAutoProps from "./updateAutoProps";
5
+ import { reRenderChildNodes } from "../Utils/gridDropItem";
6
+ import { calculateProps, sortElements } from "./helper";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const appendItems = (boxCls, virtualRef, ROOT_ITEM_CLASS) => {
9
+ const cloneNode = document.querySelector(boxCls)?.cloneNode(true);
10
+ const items = cloneNode.querySelectorAll(ROOT_ITEM_CLASS);
11
+ if (!cloneNode || !items?.length) {
12
+ return;
13
+ }
14
+ virtualRef.current.innerHTML = "";
15
+ const container = virtualRef?.current;
16
+ sortElements(items, container);
17
+ };
18
+ function BoxHeaderAutoAlignment(props) {
19
+ const {
20
+ editor,
21
+ boxCls,
22
+ path
23
+ } = props;
24
+ const classes = useAutoAlignStyles();
25
+ const virtualRef = useRef();
26
+ useEffect(() => {
27
+ const childPathLength = path?.split("|").length + 1;
28
+ const ROOT_ITEM_CLASS = `.freegrid-item.path-${childPathLength}`;
29
+ appendItems(boxCls, virtualRef, ROOT_ITEM_CLASS);
30
+ const allData = calculateProps(path, virtualRef?.current, ROOT_ITEM_CLASS, [], null, true);
31
+ updateAutoProps(editor, allData, "xs", true);
32
+ const currentSectionPath = path.split("|").map(m => parseInt(m));
33
+ reRenderChildNodes(editor, currentSectionPath);
34
+ }, []);
35
+ return /*#__PURE__*/_jsx(Box, {
36
+ className: "header-box-mobile-virtual-mode",
37
+ ref: virtualRef,
38
+ sx: classes.root,
39
+ "aria-hidden": "true",
40
+ contentEditable: false
41
+ });
42
+ }
43
+ export default BoxHeaderAutoAlignment;
@@ -0,0 +1,44 @@
1
+ import { Box } from "@mui/material";
2
+ import { useAutoAlignStyles } from "./styles";
3
+ import { useEffect, useRef } from "react";
4
+ import { reRenderChildNodes } from "../Utils/gridDropItem";
5
+ import updateAutoProps from "./updateAutoProps";
6
+ import { calculateProps, sortElements } from "./helper";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const ROOT_ITEM_CLASS = ".freegrid-item.path-3";
9
+ const appendItems = (sectionCls, virtualRef) => {
10
+ const cloneNode = document.querySelector(sectionCls)?.cloneNode(true);
11
+ const items = cloneNode?.querySelectorAll(ROOT_ITEM_CLASS) || [];
12
+ if (!cloneNode || !items?.length) {
13
+ return;
14
+ }
15
+ virtualRef.current.innerHTML = "";
16
+ const container = virtualRef?.current;
17
+ sortElements(items, container);
18
+ };
19
+ function ForceAutoAlignment(props) {
20
+ const {
21
+ editor,
22
+ sectionCls,
23
+ path,
24
+ setAutoAlign
25
+ } = props;
26
+ const classes = useAutoAlignStyles();
27
+ const virtualRef = useRef();
28
+ useEffect(() => {
29
+ appendItems(sectionCls, virtualRef);
30
+ const allData = calculateProps(path, virtualRef?.current, ROOT_ITEM_CLASS, []);
31
+ updateAutoProps(editor, allData, "xs", true);
32
+ const currentSectionPath = path.split("|").map(m => parseInt(m));
33
+ reRenderChildNodes(editor, currentSectionPath);
34
+ setAutoAlign(false);
35
+ }, []);
36
+ return /*#__PURE__*/_jsx(Box, {
37
+ className: "force-mobile-virtual-mode",
38
+ ref: virtualRef,
39
+ sx: classes.root,
40
+ "aria-hidden": "true",
41
+ contentEditable: false
42
+ });
43
+ }
44
+ export default ForceAutoAlignment;
@@ -0,0 +1,134 @@
1
+ import { useEffect, useRef } from "react";
2
+ import { Path, Transforms } from "slate";
3
+ import { getNode } from "../../../utils/helper";
4
+ import { ROW_HEIGHT } from "../Utils/gridDropItem";
5
+ import { findFirstRowOverlap, getGridArea, handleContainers, moveOverlappedItems } from "./helper";
6
+ import { Box } from "@mui/material";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const updateTextHeight = (editor, path, height) => {
9
+ if (!height) {
10
+ return;
11
+ }
12
+ const parentPath = Path.parent(path);
13
+ const currentNode = getNode(editor, parentPath);
14
+ const gridItems = currentNode?.children || [];
15
+ const isNewlyAddedElement = gridItems.some(gridItem => !gridItem.gridArea_xs && gridItem.type !== "paragraph");
16
+ if (isNewlyAddedElement) {
17
+ return;
18
+ }
19
+ const textItemIndex = path[parentPath.length];
20
+ const textItem = gridItems.find((_, index) => textItemIndex === index);
21
+ const {
22
+ marginTop_xs: marginTop,
23
+ gridArea_xs: gridArea,
24
+ height_xs
25
+ } = textItem;
26
+ const oldHeight = height_xs + marginTop;
27
+ const newHeight = height + marginTop;
28
+ const extraHeight = newHeight - oldHeight;
29
+ let containerExtraHeight = extraHeight;
30
+ if (extraHeight > 0) {
31
+ const [startRow] = getGridArea(gridArea);
32
+ const newRows = Math.floor(newHeight / ROW_HEIGHT) + 1;
33
+ const endRow = startRow + newRows;
34
+ const firstOverlappedRow = findFirstRowOverlap(gridItems, startRow, endRow, textItemIndex);
35
+ if (firstOverlappedRow) {
36
+ const moveRows = endRow - firstOverlappedRow;
37
+ moveOverlappedItems(editor, moveRows, gridItems, parentPath, textItemIndex, startRow);
38
+ containerExtraHeight += moveRows * ROW_HEIGHT;
39
+ }
40
+
41
+ // handle containers (box and section)
42
+ const containerData = handleContainers(editor, parentPath, containerExtraHeight);
43
+ containerData.forEach(container => {
44
+ const {
45
+ moveRows,
46
+ containerNode,
47
+ containerPath,
48
+ newHeight,
49
+ childIndex,
50
+ lastChildStartRow
51
+ } = container;
52
+ if (moveRows) {
53
+ moveOverlappedItems(editor, moveRows, containerNode?.children, containerPath, childIndex, lastChildStartRow);
54
+ }
55
+ Transforms.setNodes(editor, {
56
+ height_xs: newHeight,
57
+ xs_updatedOn: new Date().getTime()
58
+ }, {
59
+ at: containerPath
60
+ });
61
+ });
62
+ Transforms.setNodes(editor, {
63
+ height_xs: height
64
+ }, {
65
+ at: path
66
+ });
67
+ }
68
+ };
69
+ function VirtualTextElement(props) {
70
+ const {
71
+ dataSets,
72
+ getCurrentEle,
73
+ path,
74
+ editor
75
+ } = props;
76
+ const currElement = getCurrentEle();
77
+ const textRef = useRef(null);
78
+ const prevTextRef = useRef(currElement?.innerText);
79
+ useEffect(() => {
80
+ const observer = new ResizeObserver(([entry]) => {
81
+ if (entry) {
82
+ const {
83
+ height
84
+ } = entry.contentRect;
85
+ const currentText = currElement?.innerText;
86
+ const prevText = prevTextRef.current;
87
+ if (currentText && currentText !== prevText) {
88
+ updateTextHeight(editor, path, height);
89
+ }
90
+ prevTextRef.current = currentText;
91
+ }
92
+ });
93
+ const elementRef = textRef?.current;
94
+ if (elementRef) {
95
+ observer.observe(elementRef);
96
+ }
97
+ return () => {
98
+ const elementRef = textRef?.current;
99
+ if (elementRef) {
100
+ observer.unobserve(elementRef);
101
+ }
102
+ observer.disconnect();
103
+ };
104
+ }, [currElement?.innerText]);
105
+ return /*#__PURE__*/_jsx(Box, {
106
+ style: {
107
+ position: "fixed",
108
+ width: dataSets["data-width-xs"],
109
+ minHeight: "fit-content",
110
+ visibility: "hidden",
111
+ pointerEvents: "none",
112
+ right: 100,
113
+ top: 100
114
+ },
115
+ ref: textRef,
116
+ sx: {
117
+ "& .leaf-item": {
118
+ fontSize: "var(--fontSize_xs) !important",
119
+ "& span": {
120
+ fontSize: "var(--fontSize_xs) !important"
121
+ }
122
+ },
123
+ "& .editor-blocker": {
124
+ display: "none"
125
+ }
126
+ },
127
+ dangerouslySetInnerHTML: {
128
+ __html: currElement?.innerHTML
129
+ },
130
+ contentEditable: false,
131
+ id: "virtual-text-element"
132
+ });
133
+ }
134
+ export default VirtualTextElement;