@flozy/editor 9.3.0 → 9.3.2

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 (243) hide show
  1. package/dist/Editor/ChatEditor.js +10 -45
  2. package/dist/Editor/CommonEditor.js +20 -126
  3. package/dist/Editor/DialogWrapper.js +25 -31
  4. package/dist/Editor/Editor.css +7 -11
  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 +4 -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/FilterSort/SortOptions/ChooseSort.js +12 -13
  33. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/index.js +4 -7
  34. package/dist/Editor/Elements/DataView/Layouts/FilterSort/index.js +5 -7
  35. package/dist/Editor/Elements/DataView/Layouts/FilterView.js +7 -9
  36. package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +2 -3
  37. package/dist/Editor/Elements/DataView/Layouts/Options/AddProperty.js +3 -5
  38. package/dist/Editor/Elements/DataView/Layouts/Options/AllProperties.js +5 -6
  39. package/dist/Editor/Elements/DataView/Layouts/Options/ChangeProperty.js +3 -5
  40. package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +6 -7
  41. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +12 -15
  42. package/dist/Editor/Elements/DataView/Layouts/Options/FilterProperty.js +2 -3
  43. package/dist/Editor/Elements/DataView/Layouts/Options/PropertyList.js +2 -3
  44. package/dist/Editor/Elements/DataView/Layouts/Options/index.js +6 -12
  45. package/dist/Editor/Elements/DataView/Layouts/TableView.js +4 -6
  46. package/dist/Editor/Elements/DataView/Layouts/index.js +1 -3
  47. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +2 -5
  48. package/dist/Editor/Elements/Divider/Divider.js +3 -5
  49. package/dist/Editor/Elements/Divider/DividerButton.js +2 -6
  50. package/dist/Editor/Elements/Divider/DividerPopup.js +2 -3
  51. package/dist/Editor/Elements/Embed/Embed.js +1 -4
  52. package/dist/Editor/Elements/Embed/EmbedPopup.js +1 -4
  53. package/dist/Editor/Elements/Embed/Image.js +11 -16
  54. package/dist/Editor/Elements/Embed/Video.js +7 -10
  55. package/dist/Editor/Elements/EmbedScript/Code.js +4 -7
  56. package/dist/Editor/Elements/EmbedScript/EmbedScript.js +2 -6
  57. package/dist/Editor/Elements/EmbedScript/EmbedScriptPopup.js +5 -8
  58. package/dist/Editor/Elements/Emoji/EmojiButton.js +2 -6
  59. package/dist/Editor/Elements/Form/FieldPopup.js +1 -4
  60. package/dist/Editor/Elements/Form/Form.js +9 -12
  61. package/dist/Editor/Elements/Form/FormButton.js +2 -6
  62. package/dist/Editor/Elements/Form/FormPopup.js +2 -3
  63. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +12 -18
  64. package/dist/Editor/Elements/Form/Workflow/ListWorkflow.js +8 -13
  65. package/dist/Editor/Elements/Form/Workflow/MoreOptions.js +2 -3
  66. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +2 -4
  67. package/dist/Editor/Elements/Form/Workflow/index.js +9 -15
  68. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +18 -21
  69. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +2 -6
  70. package/dist/Editor/Elements/FreeGrid/FreeGridButton.js +2 -6
  71. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +3 -8
  72. package/dist/Editor/Elements/FreeGrid/Options/AddElement.js +2 -3
  73. package/dist/Editor/Elements/FreeGrid/Options/More.js +3 -4
  74. package/dist/Editor/Elements/FreeGrid/styles.js +0 -3
  75. package/dist/Editor/Elements/Grid/Grid.js +10 -13
  76. package/dist/Editor/Elements/Grid/GridButton.js +5 -9
  77. package/dist/Editor/Elements/Grid/GridItem.js +8 -14
  78. package/dist/Editor/Elements/Grid/GridItemPopup.js +1 -4
  79. package/dist/Editor/Elements/Grid/GridPopup.js +1 -4
  80. package/dist/Editor/Elements/Grid/SectionPopup.js +1 -4
  81. package/dist/Editor/Elements/Link/Link.js +7 -14
  82. package/dist/Editor/Elements/Link/LinkButton.js +1 -4
  83. package/dist/Editor/Elements/List/CheckList.js +9 -14
  84. package/dist/Editor/Elements/NewLine/NewLineButton.js +2 -6
  85. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +5 -16
  86. package/dist/Editor/Elements/PageSettings/PageSettingsPopup.js +1 -4
  87. package/dist/Editor/Elements/Search/SearchButton.js +3 -6
  88. package/dist/Editor/Elements/Search/SearchList.js +3 -7
  89. package/dist/Editor/Elements/Signature/SignatureButton.js +2 -6
  90. package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +2 -6
  91. package/dist/Editor/Elements/Signature/SignatureOptions/UploadSignature.js +1 -4
  92. package/dist/Editor/Elements/Signature/SignaturePopup.js +16 -17
  93. package/dist/Editor/Elements/SimpleText/index.js +4 -5
  94. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  95. package/dist/Editor/Elements/Table/DragButton.js +2 -4
  96. package/dist/Editor/Elements/Table/Table.js +25 -48
  97. package/dist/Editor/Elements/Table/TableCell.js +27 -6
  98. package/dist/Editor/Elements/Table/TablePopup.js +1 -4
  99. package/dist/Editor/Elements/Table/TableSelector.js +6 -10
  100. package/dist/Editor/Elements/Table/TableTool.js +4 -8
  101. package/dist/Editor/Elements/Title/title.js +0 -10
  102. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +1 -4
  103. package/dist/Editor/Elements/Variables/VariableButton.js +1 -10
  104. package/dist/Editor/MiniEditor.js +3 -9
  105. package/dist/Editor/Styles/EditorStyles.js +5 -5
  106. package/dist/Editor/Toolbar/Basic/index.js +1 -2
  107. package/dist/Editor/Toolbar/FormatTools/BlockButton.js +2 -6
  108. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +3 -27
  109. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +3 -4
  110. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +4 -8
  111. package/dist/Editor/Toolbar/FormatTools/TextSize.js +13 -7
  112. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +15 -20
  113. package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +5 -10
  114. package/dist/Editor/Toolbar/PopupTool/ButtonTemplatesCard.js +4 -10
  115. package/dist/Editor/Toolbar/PopupTool/FullViewCard.js +4 -10
  116. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +2 -6
  117. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectAlignment.js +35 -42
  118. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +13 -6
  119. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +51 -58
  120. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectSuperSubscript.js +22 -29
  121. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +87 -226
  122. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +7 -15
  123. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +4 -8
  124. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +9 -16
  125. package/dist/Editor/Toolbar/PopupTool/TemplateCard.js +5 -11
  126. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +41 -120
  127. package/dist/Editor/Toolbar/PopupTool/index.js +8 -3
  128. package/dist/Editor/Toolbar/Toolbar.js +10 -20
  129. package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
  130. package/dist/Editor/assets/svg/CalenderIconTick.js +0 -1
  131. package/dist/Editor/common/ColorPickerButton.js +9 -35
  132. package/dist/Editor/common/CustomDialog/index.js +10 -8
  133. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  134. package/dist/Editor/common/FontLoader/FontLoader.js +0 -3
  135. package/dist/Editor/common/Icon.js +0 -28
  136. package/dist/Editor/common/ImageSelector/ImageSelector.js +8 -10
  137. package/dist/Editor/common/ImageSelector/Options/AddLink.js +4 -6
  138. package/dist/Editor/common/ImageSelector/Styles.js +9 -3
  139. package/dist/Editor/common/LinkSettings/NavComponents.js +10 -14
  140. package/dist/Editor/common/LinkSettings/index.js +14 -20
  141. package/dist/Editor/common/LinkSettings/navOptions.js +1 -1
  142. package/dist/Editor/common/MentionsPopup/Styles.js +68 -106
  143. package/dist/Editor/common/MentionsPopup/index.js +4 -8
  144. package/dist/Editor/common/RnD/ContextMenu/CMenus.js +22 -22
  145. package/dist/Editor/common/RnD/ContextMenu/index.js +2 -3
  146. package/dist/Editor/common/RnD/ElementOptions/index.js +2 -7
  147. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/SaveAsTemplate.js +3 -8
  148. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +3 -7
  149. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +2 -3
  150. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +2 -3
  151. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +2 -3
  152. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +2 -3
  153. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -7
  154. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +2 -3
  155. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
  156. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +2 -4
  157. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +2 -3
  158. package/dist/Editor/common/RnD/OptionsPopup/index.js +3 -4
  159. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +4 -11
  160. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +8 -20
  161. package/dist/Editor/common/RnD/Utils/index.js +0 -45
  162. package/dist/Editor/common/RnD/VirtualElement/index.js +2 -1
  163. package/dist/Editor/common/RnD/index.js +7 -34
  164. package/dist/Editor/common/Section/index.js +4 -7
  165. package/dist/Editor/common/Shorthands/elements.js +10 -93
  166. package/dist/Editor/common/StyleBuilder/appHeaderStyle.js +4 -4
  167. package/dist/Editor/common/StyleBuilder/boxStyle.js +2 -2
  168. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -6
  169. package/dist/Editor/common/StyleBuilder/dividerStyles.js +2 -2
  170. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +6 -6
  171. package/dist/Editor/common/StyleBuilder/fieldStyle.js +2 -2
  172. package/dist/Editor/common/StyleBuilder/fieldTypes/alignment.js +9 -13
  173. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +3 -11
  174. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +5 -19
  175. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +10 -22
  176. package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +3 -6
  177. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +13 -27
  178. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +14 -41
  179. package/dist/Editor/common/StyleBuilder/fieldTypes/elementSize.js +6 -10
  180. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +6 -19
  181. package/dist/Editor/common/StyleBuilder/fieldTypes/gridSize.js +2 -6
  182. package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +2 -5
  183. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +6 -9
  184. package/dist/Editor/common/StyleBuilder/fieldTypes/metaDataMapping.js +2 -8
  185. package/dist/Editor/common/StyleBuilder/fieldTypes/saveAsTemplate.js +11 -12
  186. package/dist/Editor/common/StyleBuilder/fieldTypes/selectBox.js +2 -6
  187. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +4 -8
  188. package/dist/Editor/common/StyleBuilder/fieldTypes/textAlign.js +2 -6
  189. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +12 -21
  190. package/dist/Editor/common/StyleBuilder/formStyle.js +7 -7
  191. package/dist/Editor/common/StyleBuilder/gridItemStyle.js +6 -6
  192. package/dist/Editor/common/StyleBuilder/gridStyle.js +5 -5
  193. package/dist/Editor/common/StyleBuilder/index.js +5 -8
  194. package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +7 -5
  195. package/dist/Editor/common/Uploader.js +5 -16
  196. package/dist/Editor/commonStyle.js +65 -55
  197. package/dist/Editor/helper/index.js +12 -8
  198. package/dist/Editor/helper/theme.js +2 -200
  199. package/dist/Editor/hooks/useDrag.js +10 -16
  200. package/dist/Editor/hooks/useEditorScroll.js +5 -10
  201. package/dist/Editor/hooks/useMouseMove.js +13 -25
  202. package/dist/Editor/hooks/useTable.js +1 -1
  203. package/dist/Editor/plugins/withEmbeds.js +1 -1
  204. package/dist/Editor/plugins/withHTML.js +13 -18
  205. package/dist/Editor/plugins/withLayout.js +2 -3
  206. package/dist/Editor/plugins/withTable.js +1 -1
  207. package/dist/Editor/theme/ThemeList.js +173 -50
  208. package/dist/Editor/utils/SlateUtilityFunctions.js +45 -162
  209. package/dist/Editor/utils/button.js +14 -0
  210. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +0 -23
  211. package/dist/Editor/utils/divider.js +0 -8
  212. package/dist/Editor/utils/draftToSlate.js +2 -3
  213. package/dist/Editor/utils/embed.js +4 -9
  214. package/dist/Editor/utils/font.js +37 -40
  215. package/dist/Editor/utils/helper.js +19 -65
  216. package/dist/Editor/utils/table.js +0 -8
  217. package/package.json +1 -1
  218. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -438
  219. package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
  220. package/dist/Editor/common/CustomColorPicker/index.js +0 -106
  221. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  222. package/dist/Editor/common/CustomDialog2/index.js +0 -94
  223. package/dist/Editor/common/CustomDialog2/style.js +0 -67
  224. package/dist/Editor/common/CustomSelect.js +0 -33
  225. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
  226. package/dist/Editor/helper/textIndeces.js +0 -58
  227. package/dist/Editor/hooks/useEditorTheme.js +0 -153
  228. package/dist/Editor/theme/index.js +0 -144
  229. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  230. package/dist/Editor/themeSettings/buttons/index.js +0 -283
  231. package/dist/Editor/themeSettings/buttons/style.js +0 -21
  232. package/dist/Editor/themeSettings/colorTheme/index.js +0 -292
  233. package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
  234. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
  235. package/dist/Editor/themeSettings/fonts/index.js +0 -220
  236. package/dist/Editor/themeSettings/fonts/style.js +0 -44
  237. package/dist/Editor/themeSettings/icons.js +0 -60
  238. package/dist/Editor/themeSettings/index.js +0 -320
  239. package/dist/Editor/themeSettings/style.js +0 -152
  240. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  241. package/dist/Editor/themeSettingsAI/index.js +0 -356
  242. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -197
  243. package/dist/Editor/themeSettingsAI/style.js +0 -250
@@ -1,58 +0,0 @@
1
- export function extractTextWithPath(data, path = []) {
2
- let result = [];
3
- data.forEach((item, index) => {
4
- const currentPath = [...path, index];
5
- if (item.text) {
6
- result.push({
7
- path_id: currentPath.join(","),
8
- text: item.text
9
- });
10
- }
11
- if (item.children) {
12
- result = result.concat(extractTextWithPath(item.children, currentPath));
13
- }
14
- });
15
- return result;
16
- }
17
- export function replaceTextPath(nestedJson, pathIdJson) {
18
- // Create a map from path_id JSON for quick lookup
19
- const pathIdMap = new Map(pathIdJson.map(item => [item.path_id, item.text]));
20
- console.log(pathIdMap);
21
- function extractTextWithPath(data, path = []) {
22
- data.forEach((item, index) => {
23
- const currentPath = [...path, index];
24
- if (item.text) {
25
- if (pathIdMap.has(currentPath?.join(","))) {
26
- item.text = pathIdMap.get(currentPath?.join(","));
27
- }
28
- }
29
- if (item.children) {
30
- extractTextWithPath(item.children, currentPath);
31
- }
32
- });
33
- }
34
- extractTextWithPath(nestedJson, []);
35
- return nestedJson;
36
- }
37
-
38
- // export function replaceTextPath(nestedJson, pathIdJson) {
39
- // // Create a map from path_id JSON for quick lookup
40
- // const pathIdMap = new Map(
41
- // pathIdJson.map((item) => [item.path_id, item.text])
42
- // );
43
-
44
- // function traverseAndReplace(node) {
45
- // if (Array.isArray(node)) {
46
- // node.forEach(traverseAndReplace);
47
- // } else if (typeof node === "object" && node !== null) {
48
- // console.log(node);
49
- // if (node.text && pathIdMap.has(node.text)) {
50
- // node.text = pathIdMap.get(node.path_id);
51
- // }
52
- // Object.values(node).forEach(traverseAndReplace);
53
- // }
54
- // }
55
-
56
- // traverseAndReplace(nestedJson);
57
- // return nestedJson;
58
- // }
@@ -1,153 +0,0 @@
1
- import { useSlate } from "slate-react";
2
- import { defaultTheme } from "../theme";
3
- import { getPageSettings, updatePageSettings } from "../utils/pageSettings";
4
- import { HEADING_THEME_FIELDS, PARAGRAPH_THEME_FIELDS } from "../helper/theme";
5
- import { useEditorContext } from "./useMouseMove";
6
- const MAP_FIELDS = {
7
- HEADING: HEADING_THEME_FIELDS,
8
- PARAGRAPH: PARAGRAPH_THEME_FIELDS
9
- };
10
- const MAP_FONT_FIELD_KEYS = {
11
- HEADING: "headingFontFamily",
12
- PARAGRAPH: "paragraphFontFamily"
13
- };
14
- function getUpdatePayload(prevTheme = {}, update, actionData) {
15
- const {
16
- action,
17
- fieldName
18
- } = actionData || {};
19
- const {
20
- theme: prev
21
- } = prevTheme;
22
- let theme = {};
23
- let themeProps = {};
24
- switch (action) {
25
- case "THEME_CHANGE":
26
- theme = update;
27
- break;
28
- case "CSS_VAR_CHANGE":
29
- const prevCssVars = prev?.cssVars || {};
30
- const prevValue = prevCssVars[fieldName] || {};
31
- themeProps = {
32
- ...(prev || {}),
33
- cssVars: {
34
- ...prevCssVars,
35
- [fieldName]: {
36
- ...prevValue,
37
- ...update
38
- }
39
- }
40
- };
41
- theme = {
42
- ...prevTheme,
43
- theme: themeProps
44
- };
45
- break;
46
- case "ELEMENT_PROPS_CHANGE":
47
- const prevEleProps = prev?.elementProps || {};
48
- const prevEleValue = prevEleProps[fieldName] || {};
49
- themeProps = {
50
- ...(prev || {}),
51
- elementProps: {
52
- ...prevEleProps,
53
- [fieldName]: {
54
- ...prevEleValue,
55
- ...update
56
- }
57
- }
58
- };
59
- theme = {
60
- ...prevTheme,
61
- theme: themeProps
62
- };
63
- break;
64
- case "OTHER_PROPS_CHANGE":
65
- themeProps = {
66
- ...(prev || {}),
67
- otherProps: {
68
- ...(prev.otherProps || {}),
69
- ...update
70
- }
71
- };
72
- theme = {
73
- ...prevTheme,
74
- theme: themeProps
75
- };
76
- break;
77
- case "FONT_CHANGE":
78
- const {
79
- elementProps = {},
80
- otherProps = {}
81
- } = prev;
82
- const {
83
- fieldType
84
- } = actionData || {};
85
- const fields = MAP_FIELDS[fieldType];
86
- const fontFieldsUpdate = {};
87
- fields?.forEach(field => {
88
- const prevFieldData = elementProps[field];
89
- fontFieldsUpdate[field] = {
90
- ...prevFieldData,
91
- ...update
92
- };
93
- });
94
- const FONT_KEY_FOR_FIELD = MAP_FONT_FIELD_KEYS[fieldType];
95
- themeProps = {
96
- ...(prev || {}),
97
- elementProps: {
98
- ...elementProps,
99
- ...fontFieldsUpdate
100
- },
101
- otherProps: {
102
- ...otherProps,
103
- [FONT_KEY_FOR_FIELD]: update?.fontFamily
104
- }
105
- };
106
- theme = {
107
- ...prevTheme,
108
- theme: themeProps
109
- };
110
- break;
111
- default:
112
- theme = {
113
- ...prevTheme,
114
- ...(update || {})
115
- };
116
- break;
117
- }
118
- return theme;
119
- }
120
- const updateTheme = (editor, pageSt, update, actionData, triggerRender) => {
121
- const {
122
- pageProps
123
- } = pageSt || {};
124
- const {
125
- theme
126
- } = pageProps || {};
127
- const updatedTheme = getUpdatePayload(theme, update, actionData);
128
- updatePageSettings(editor, {
129
- ...(pageProps || {}),
130
- theme: updatedTheme
131
- });
132
- triggerRender();
133
- };
134
- export const useEditorTheme = () => {
135
- const editor = useSlate();
136
- const {
137
- triggerRender
138
- } = useEditorContext();
139
- const {
140
- element: pageSt
141
- } = getPageSettings(editor) || {};
142
- const {
143
- pageProps
144
- } = pageSt || {};
145
- const {
146
- theme
147
- } = pageProps || {};
148
- return {
149
- selectedTheme: theme?.theme || defaultTheme?.theme,
150
- updateTheme: (update, actionData) => updateTheme(editor, pageSt, update, actionData, triggerRender),
151
- theme
152
- };
153
- };
@@ -1,144 +0,0 @@
1
- const themeClassName = ".theme-element";
2
- function getTextStyles(props) {
3
- const {
4
- fontSize,
5
- textDecoration,
6
- ...rest
7
- } = props;
8
- return {
9
- ...rest,
10
- '& span[data-slate-string="true"]': {
11
- textDecoration,
12
- fontSize
13
- }
14
-
15
- // "&::after": {
16
- // // for placeholder
17
- // fontSize,
18
- // },
19
- };
20
- }
21
-
22
- const transformHeading = (props, elementType) => {
23
- return {
24
- [`& ${elementType}${themeClassName}`]: getTextStyles(props)
25
- };
26
- };
27
- const transformParagraph = (props, paraType) => {
28
- return {
29
- [`& p${themeClassName}.${paraType}`]: getTextStyles(props)
30
- };
31
- };
32
- const transformButton = props => {
33
- const {
34
- borderRadius,
35
- lockRadius,
36
- bannerSpacing,
37
- buttonIcon,
38
- hover,
39
- ...classProps
40
- } = props;
41
- return {
42
- [`& .button${themeClassName}`]: {
43
- ...classProps,
44
- "&:hover": hover
45
- },
46
- buttonTheme: {
47
- borderRadius,
48
- lockRadius,
49
- bannerSpacing,
50
- buttonIcon
51
- }
52
- };
53
- };
54
- const transformProps = (elementType, props) => {
55
- let transformedProp = {};
56
- let otherProps = {};
57
- switch (elementType) {
58
- case "h1":
59
- case "h2":
60
- case "h3":
61
- case "h4":
62
- case "h5":
63
- case "h6":
64
- transformedProp = transformHeading(props, elementType);
65
- break;
66
- case "para1":
67
- case "para2":
68
- case "para3":
69
- transformedProp = transformParagraph(props, elementType);
70
- break;
71
- case "button":
72
- const {
73
- buttonTheme,
74
- ...classProps
75
- } = transformButton(props, elementType);
76
- transformedProp = classProps;
77
- otherProps = {
78
- buttonTheme
79
- };
80
- break;
81
- default:
82
- }
83
- return {
84
- transformedProp,
85
- otherProps
86
- };
87
- };
88
- export const transformTheme = (selectedTheme = {}) => {
89
- let sxProps = {};
90
- let others = {};
91
- const {
92
- elementProps
93
- } = selectedTheme;
94
- if (elementProps) {
95
- Object.entries(elementProps).forEach(([key, value]) => {
96
- const {
97
- transformedProp,
98
- otherProps
99
- } = transformProps(key, value);
100
- sxProps = {
101
- ...sxProps,
102
- ...transformedProp
103
- };
104
- others = {
105
- ...others,
106
- ...otherProps
107
- };
108
- });
109
- }
110
- return {
111
- sxProps,
112
- ...others
113
- };
114
- };
115
- export const defaultTheme = {
116
- theme: {
117
- cssVars: {},
118
- elementProps: {
119
- button: {
120
- color: "#FFFFFF",
121
- background: "#2563EB",
122
- fontFamily: "PoppinsRegular",
123
- fontWeight: 400,
124
- fontSize: "inherit",
125
- borderColor: "transparent",
126
- borderRadius: {
127
- topLeft: 30,
128
- topRight: 30,
129
- bottomLeft: 30,
130
- bottomRight: 30
131
- },
132
- bannerSpacing: {
133
- left: 16,
134
- top: 8,
135
- right: 16,
136
- bottom: 8
137
- }
138
- }
139
- }
140
- }
141
- };
142
- export function getTheme(selectedTheme) {
143
- return transformTheme(selectedTheme?.theme || defaultTheme.theme);
144
- }
@@ -1,72 +0,0 @@
1
- import { Grid, Link, Typography } from "@mui/material";
2
- import { useEditorTheme } from "../hooks/useEditorTheme";
3
- import { jsx as _jsx } from "react/jsx-runtime";
4
- import { jsxs as _jsxs } from "react/jsx-runtime";
5
- import { Fragment as _Fragment } from "react/jsx-runtime";
6
- function ActiveTheme(props) {
7
- const {
8
- onExplore
9
- } = props;
10
- const {
11
- theme
12
- } = useEditorTheme();
13
- const {
14
- colors = {}
15
- } = theme?.theme?.cssVars || {};
16
- const {
17
- id,
18
- name,
19
- mood_name = ""
20
- } = theme || {};
21
- const themeColors = Object.values(colors || {});
22
- return /*#__PURE__*/_jsxs(Grid, {
23
- className: "activeThemeInnner",
24
- children: [/*#__PURE__*/_jsx(Typography, {
25
- variant: "body1",
26
- className: "title",
27
- children: id ? "Active Theme" : "No theme activated"
28
- }), /*#__PURE__*/_jsxs(Grid, {
29
- className: "flexAlign",
30
- children: [/*#__PURE__*/_jsx(Typography, {
31
- variant: "body1",
32
- className: "fs-14",
33
- children: name
34
- }), /*#__PURE__*/_jsxs(Typography, {
35
- variant: "body2",
36
- color: "textSecondary",
37
- className: "fs-12",
38
- style: {
39
- marginLeft: "4px"
40
- },
41
- children: [id ? ` - ` : null, id ? mood_name : "Select 'Explore More' to activate a theme and customize your design."]
42
- })]
43
- }), /*#__PURE__*/_jsxs(Grid, {
44
- container: true,
45
- justifyContent: "space-between",
46
- sx: {
47
- mt: 1
48
- },
49
- children: [/*#__PURE__*/_jsx(Grid, {
50
- className: "flexAlign",
51
- sx: {
52
- gap: "10px"
53
- },
54
- children: id ? /*#__PURE__*/_jsx(_Fragment, {
55
- children: themeColors?.map((color, i) => {
56
- return /*#__PURE__*/_jsx(Grid, {
57
- className: "activeColorBox",
58
- style: {
59
- background: color
60
- }
61
- }, i);
62
- })
63
- }) : null
64
- }), onExplore && /*#__PURE__*/_jsx(Link, {
65
- className: "pointer fs-12 fw-500",
66
- onClick: onExplore,
67
- children: "Explore More"
68
- })]
69
- })]
70
- });
71
- }
72
- export default ActiveTheme;
@@ -1,283 +0,0 @@
1
- import React, { useRef, useState } from "react";
2
- import { Accordion, AccordionDetails, AccordionSummary, Button, Fade, Grid, IconButton, Popper, Typography, styled } from "@mui/material";
3
- import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
4
-
5
- // Style
6
- import Style from "./style";
7
- import { PenIcon } from "../icons";
8
- import StyleBuilder from "../../common/StyleBuilder";
9
- import { fontOptions } from "../../utils/font";
10
- import { useEditorTheme } from "../../hooks/useEditorTheme";
11
- import { getBreakPointsValue, getElementProperty, getTRBLBreakPoints } from "../../helper/theme";
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { jsxs as _jsxs } from "react/jsx-runtime";
14
- const buttonStyle = [{
15
- tab: "General",
16
- value: "size",
17
- fields: [{
18
- label: "Font Family",
19
- key: "fontFamily",
20
- type: "textOptions",
21
- options: fontOptions,
22
- webFont: true,
23
- width: 7,
24
- renderOption: option => {
25
- return /*#__PURE__*/_jsx("span", {
26
- style: {
27
- fontFamily: option.value
28
- },
29
- children: option.text
30
- });
31
- }
32
- }, {
33
- label: "Font Size",
34
- key: "textSize",
35
- type: "fontSize",
36
- width: 5,
37
- placeholder: "16px or 1em"
38
- }]
39
- }, {
40
- tab: "Colors",
41
- value: "colors",
42
- fields: [{
43
- label: "Text Color",
44
- key: "textColor",
45
- type: "color",
46
- needPreview: true
47
- }, {
48
- label: "Button Color",
49
- key: "bgColor",
50
- type: "color",
51
- themeEnabled: true
52
- }]
53
- }, {
54
- tab: "Banner Spacing",
55
- value: "bannerSpacing",
56
- fields: [{
57
- label: "Banner Spacing",
58
- key: "bannerSpacing",
59
- type: "bannerSpacing"
60
- }]
61
- }, {
62
- tab: "Border",
63
- value: "border",
64
- fields: [{
65
- label: "Border Radius",
66
- key: "borderRadius",
67
- type: "borderRadius"
68
- }]
69
- }, {
70
- tab: "Hover Colors",
71
- value: "hoverColors",
72
- fields: [{
73
- label: "Hover Text Color",
74
- key: "textColorHover",
75
- type: "color",
76
- needPreview: true
77
- }, {
78
- label: "Hover Button Color",
79
- key: "bgColorHover",
80
- type: "color"
81
- }]
82
- }];
83
- function getBtnSxProps(buttonStyle = {}) {
84
- const newStyle = {
85
- ...buttonStyle
86
- };
87
- if (newStyle?.bannerSpacing) {
88
- newStyle.padding = newStyle?.bannerSpacing;
89
- }
90
- newStyle.borderRadius = {
91
- ...getBreakPointsValue(newStyle?.borderRadius || {}, null, "overrideBorderRadius", true)
92
- };
93
- newStyle.padding = {
94
- ...getTRBLBreakPoints(newStyle?.bannerSpacing || {})
95
- };
96
- delete newStyle?.bannerSpacing;
97
- if (newStyle?.hover) {
98
- newStyle["&:hover"] = newStyle.hover;
99
- delete newStyle.hover;
100
- }
101
- return newStyle;
102
- }
103
- const MAP_HOVER_KEYS = {
104
- color: "textColorHover",
105
- background: "bgColorHover"
106
- };
107
- const MAP_THEME_TO_ELEMENT_KEYS = {
108
- color: "textColor",
109
- background: "bgColor",
110
- fontFamily: (value, prev, buttonEl) => {
111
- if (!buttonEl?.current) {
112
- return prev;
113
- }
114
- const val = getElementProperty(buttonEl?.current, "font-family");
115
- return {
116
- ...prev,
117
- fontFamily: val
118
- };
119
- },
120
- fontSize: "textSize",
121
- borderRadius: "borderRadius",
122
- bannerSpacing: "bannerSpacing",
123
- lockRadius: "lockRadius",
124
- lockbannerSpacing: "lockbannerSpacing",
125
- // fontWeight
126
-
127
- hover: (value = {}, prev = {}) => {
128
- const props = getProps(value, MAP_HOVER_KEYS);
129
- return {
130
- ...prev,
131
- ...props
132
- };
133
- }
134
- };
135
- const MAP_ELEMENT_TO_THEME_KEYS = {
136
- textSize: "fontSize",
137
- textColor: "color",
138
- bgColor: "background",
139
- bannerSpacing: "bannerSpacing",
140
- borderRadius: "borderRadius",
141
- lockRadius: "lockRadius",
142
- lockbannerSpacing: "lockbannerSpacing",
143
- textColorHover: (value, prev) => {
144
- const hover = {
145
- ...(prev?.hover || {})
146
- };
147
- hover.color = value;
148
- return {
149
- ...prev,
150
- hover
151
- };
152
- },
153
- bgColorHover: (value, prev) => {
154
- const hover = {
155
- ...(prev?.hover || {})
156
- };
157
- hover.background = value;
158
- return {
159
- ...prev,
160
- hover
161
- };
162
- },
163
- fontFamily: "fontFamily"
164
- };
165
- function getProps(buttonStyle, MAP_KEYS, buttonEl) {
166
- let props = {};
167
- Object.entries(buttonStyle).forEach(([key, value]) => {
168
- const elementKey = MAP_KEYS[key];
169
- if (elementKey) {
170
- if (typeof elementKey === "string") {
171
- props[elementKey] = value;
172
- } else {
173
- props = elementKey(value, props, buttonEl);
174
- }
175
- }
176
- });
177
- return props;
178
- }
179
- function convertThemeToElementProps(button = {}, buttonEl) {
180
- const props = getProps(button, MAP_THEME_TO_ELEMENT_KEYS, buttonEl);
181
- return props;
182
- }
183
-
184
- // icons
185
-
186
- const Buttons = props => {
187
- const {
188
- className
189
- } = props;
190
- const [anchorEl, setAnchorEl] = useState();
191
- const {
192
- selectedTheme,
193
- updateTheme
194
- } = useEditorTheme();
195
- const {
196
- button
197
- } = selectedTheme?.elementProps || {};
198
- const buttonEl = useRef();
199
- const elementProps = convertThemeToElementProps(button, buttonEl);
200
-
201
- // State
202
- return /*#__PURE__*/_jsxs(Grid, {
203
- className: className,
204
- children: [/*#__PURE__*/_jsxs(Accordion, {
205
- className: "settingAccordion",
206
- children: [/*#__PURE__*/_jsx(AccordionSummary, {
207
- expandIcon: /*#__PURE__*/_jsx(ExpandMoreIcon, {}),
208
- "aria-controls": "panel1-content",
209
- id: "panel1-header",
210
- children: "Buttons"
211
- }), /*#__PURE__*/_jsx(AccordionDetails, {
212
- children: /*#__PURE__*/_jsxs(Grid, {
213
- container: true,
214
- className: "buttonTypeItem",
215
- justifyContent: "space-between",
216
- alignItems: "center",
217
- wrap: "nowrap",
218
- onClick: e => setAnchorEl(e.currentTarget),
219
- children: [/*#__PURE__*/_jsxs(Grid, {
220
- item: true,
221
- style: {
222
- maxWidth: "calc(100% - 50px)",
223
- overflowX: "auto"
224
- },
225
- children: [/*#__PURE__*/_jsx(Typography, {
226
- variant: "body1",
227
- className: "fw-600 fs-14",
228
- style: {
229
- marginBottom: "10px"
230
- },
231
- children: "Primary Button"
232
- }), /*#__PURE__*/_jsx(Button, {
233
- sx: getBtnSxProps(button),
234
- ref: buttonEl,
235
- children: "Button"
236
- })]
237
- }), /*#__PURE__*/_jsx(IconButton, {
238
- className: "editIcon",
239
- children: /*#__PURE__*/_jsx(PenIcon, {})
240
- })]
241
- })
242
- })]
243
- }), /*#__PURE__*/_jsx(Popper, {
244
- open: Boolean(anchorEl),
245
- anchorEl: anchorEl,
246
- transition: true,
247
- sx: {
248
- zIndex: "100000",
249
- background: "white"
250
- },
251
- placement: "left-start",
252
- children: ({
253
- TransitionProps
254
- }) => /*#__PURE__*/_jsx(Fade, {
255
- ...TransitionProps,
256
- timeout: 350,
257
- children: /*#__PURE__*/_jsx("div", {
258
- children: /*#__PURE__*/_jsx(StyleBuilder, {
259
- title: "Button",
260
- type: "buttonStyle",
261
- element: elementProps,
262
- onSave: data => {
263
- const props = getProps(data, MAP_ELEMENT_TO_THEME_KEYS);
264
- updateTheme(props, {
265
- action: "ELEMENT_PROPS_CHANGE",
266
- fieldName: "button"
267
- });
268
- setAnchorEl(null);
269
- },
270
- onClose: () => {
271
- setAnchorEl(null);
272
- },
273
- renderTabs: buttonStyle,
274
- customProps: {
275
- disableEditTheme: true
276
- }
277
- })
278
- })
279
- })
280
- })]
281
- });
282
- };
283
- export default styled(Buttons)(Style);