@flozy/editor 11.0.6 → 11.0.8

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 (160) hide show
  1. package/dist/Editor/ChatEditor.js +17 -16
  2. package/dist/Editor/CommonEditor.js +141 -28
  3. package/dist/Editor/DialogWrapper.js +31 -25
  4. package/dist/Editor/Editor.css +39 -11
  5. package/dist/Editor/Elements/AI/PopoverAIInput.js +11 -3
  6. package/dist/Editor/Elements/AI/Styles.js +1 -0
  7. package/dist/Editor/Elements/Accordion/Accordion.js +28 -22
  8. package/dist/Editor/Elements/Accordion/AccordionButton.js +12 -3
  9. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  10. package/dist/Editor/Elements/Attachments/AttachmentStyles.js +16 -0
  11. package/dist/Editor/Elements/Attachments/Attachments.js +153 -11
  12. package/dist/Editor/Elements/Attachments/AttachmentsButton.js +8 -3
  13. package/dist/Editor/Elements/Button/EditorButton.js +23 -7
  14. package/dist/Editor/Elements/Color Picker/ColorButtons.js +61 -14
  15. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  16. package/dist/Editor/Elements/Color Picker/ColorPicker.js +10 -7
  17. package/dist/Editor/Elements/Color Picker/Styles.js +15 -13
  18. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +134 -55
  19. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/SelectV1.js +7 -8
  20. package/dist/Editor/Elements/DataView/Layouts/DataTypes/PersonType.js +8 -3
  21. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +1 -1
  22. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +1 -1
  23. package/dist/Editor/Elements/Embed/Embed.js +36 -43
  24. package/dist/Editor/Elements/Embed/Image.js +236 -23
  25. package/dist/Editor/Elements/Embed/Video.js +245 -15
  26. package/dist/Editor/Elements/Form/Form.js +35 -10
  27. package/dist/Editor/Elements/Form/FormField.js +1 -1
  28. package/dist/Editor/Elements/Form/Workflow/Styles.js +24 -22
  29. package/dist/Editor/Elements/Form/Workflow/constant.js +25 -1
  30. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +31 -74
  31. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +9 -5
  32. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +3 -1
  33. package/dist/Editor/Elements/FreeGrid/Options/More.js +7 -7
  34. package/dist/Editor/Elements/FreeGrid/helper.js +194 -0
  35. package/dist/Editor/Elements/FreeGrid/styles.js +15 -0
  36. package/dist/Editor/Elements/Grid/GridItem.js +1 -1
  37. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +2 -1
  38. package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +3 -2
  39. package/dist/Editor/Elements/Signature/SignaturePopup.js +24 -6
  40. package/dist/Editor/Elements/SimpleText/style.js +2 -2
  41. package/dist/Editor/Elements/Table/Table.js +5 -4
  42. package/dist/Editor/Elements/Table/TableCell.js +10 -3
  43. package/dist/Editor/Elements/Title/title.js +10 -11
  44. package/dist/Editor/Elements/TopBanner/TopBanner.js +4 -2
  45. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +5 -3
  46. package/dist/Editor/Elements/Variables/VariableButton.js +10 -1
  47. package/dist/Editor/MiniEditor.js +2 -1
  48. package/dist/Editor/Styles/EditorStyles.js +23 -5
  49. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  50. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  51. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  52. package/dist/Editor/Toolbar/FormatTools/TextSize.js +33 -29
  53. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +2 -1
  54. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +4 -2
  55. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +25 -23
  56. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +25 -7
  57. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +167 -42
  58. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +24 -8
  59. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +2 -1
  60. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +70 -10
  61. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +73 -14
  62. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +439 -0
  63. package/dist/Editor/Toolbar/PopupTool/index.js +7 -4
  64. package/dist/Editor/Toolbar/toolbarGroups.js +56 -10
  65. package/dist/Editor/assets/svg/BackIcon.js +18 -0
  66. package/dist/Editor/assets/svg/ThemeIcons.js +293 -0
  67. package/dist/Editor/common/ColorPickerButton.js +38 -16
  68. package/dist/Editor/common/CustomColorPicker/index.js +130 -0
  69. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  70. package/dist/Editor/common/CustomDialog2/index.js +94 -0
  71. package/dist/Editor/common/CustomDialog2/style.js +67 -0
  72. package/dist/Editor/common/CustomSelect.js +43 -0
  73. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  74. package/dist/Editor/common/FontLoader/FontLoader.js +4 -0
  75. package/dist/Editor/common/Icon.js +28 -0
  76. package/dist/Editor/common/ImageSelector/ImageSelector.js +45 -7
  77. package/dist/Editor/common/ImageSelector/Options/Upload.js +26 -11
  78. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  79. package/dist/Editor/common/LinkSettings/NavComponents.js +6 -2
  80. package/dist/Editor/common/MentionsPopup/index.js +9 -1
  81. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  82. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  83. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  84. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  85. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  86. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +4 -2
  87. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +20 -7
  88. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  89. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +9 -1
  90. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +20 -7
  91. package/dist/Editor/common/RnD/GuideLines/styles.js +1 -1
  92. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +11 -2
  93. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  94. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  95. package/dist/Editor/common/RnD/Utils/gridDropItem.js +28 -11
  96. package/dist/Editor/common/RnD/Utils/index.js +3 -1
  97. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +52 -63
  98. package/dist/Editor/common/RnD/VirtualElement/helper.js +320 -130
  99. package/dist/Editor/common/RnD/VirtualElement/styles.js +22 -0
  100. package/dist/Editor/common/RnD/index.js +61 -14
  101. package/dist/Editor/common/Shorthands/elements.js +62 -4
  102. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  103. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +4 -0
  104. package/dist/Editor/common/StyleBuilder/fieldStyle.js +1 -0
  105. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +15 -2
  106. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  107. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  108. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +16 -8
  109. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +36 -10
  110. package/dist/Editor/common/StyleBuilder/fieldTypes/embedUpload.js +115 -0
  111. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +16 -7
  112. package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +3 -1
  113. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +2 -0
  114. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +1 -0
  115. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  116. package/dist/Editor/common/StyleBuilder/formStyle.js +19 -13
  117. package/dist/Editor/common/StyleBuilder/index.js +8 -4
  118. package/dist/Editor/common/Uploader.js +125 -17
  119. package/dist/Editor/common/UploaderWithProgress.js +183 -0
  120. package/dist/Editor/common/iconslist.js +21 -0
  121. package/dist/Editor/commonStyle.js +136 -63
  122. package/dist/Editor/helper/index.js +10 -2
  123. package/dist/Editor/helper/textIndeces.js +58 -0
  124. package/dist/Editor/helper/theme.js +203 -2
  125. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  126. package/dist/Editor/hooks/useMouseMove.js +9 -3
  127. package/dist/Editor/hooks/useTable.js +62 -1
  128. package/dist/Editor/hooks/useThemeValues.js +63 -0
  129. package/dist/Editor/plugins/withEmbeds.js +12 -1
  130. package/dist/Editor/plugins/withHTML.js +58 -3
  131. package/dist/Editor/plugins/withTable.js +1 -1
  132. package/dist/Editor/service/fileupload.js +70 -0
  133. package/dist/Editor/theme/ThemeList.js +50 -173
  134. package/dist/Editor/theme/index.js +149 -0
  135. package/dist/Editor/themeSettings/ActiveTheme.js +82 -0
  136. package/dist/Editor/themeSettings/buttons/index.js +300 -0
  137. package/dist/Editor/themeSettings/buttons/style.js +23 -0
  138. package/dist/Editor/themeSettings/colorTheme/index.js +310 -0
  139. package/dist/Editor/themeSettings/colorTheme/style.js +81 -0
  140. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  141. package/dist/Editor/themeSettings/fonts/index.js +240 -0
  142. package/dist/Editor/themeSettings/fonts/style.js +62 -0
  143. package/dist/Editor/themeSettings/icons.js +60 -0
  144. package/dist/Editor/themeSettings/index.js +380 -0
  145. package/dist/Editor/themeSettings/style.js +299 -0
  146. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  147. package/dist/Editor/themeSettingsAI/index.js +355 -0
  148. package/dist/Editor/themeSettingsAI/saveTheme.js +202 -0
  149. package/dist/Editor/themeSettingsAI/style.js +332 -0
  150. package/dist/Editor/utils/SlateUtilityFunctions.js +192 -40
  151. package/dist/Editor/utils/accordion.js +67 -39
  152. package/dist/Editor/utils/button.js +1 -17
  153. package/dist/Editor/utils/draftToSlate.js +3 -2
  154. package/dist/Editor/utils/events.js +94 -89
  155. package/dist/Editor/utils/font.js +40 -37
  156. package/dist/Editor/utils/formfield.js +2 -2
  157. package/dist/Editor/utils/helper.js +100 -23
  158. package/dist/Editor/utils/insertAppHeader.js +8 -4
  159. package/package.json +4 -4
  160. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +0 -454
@@ -49,15 +49,21 @@ const useCommonStyle = theme => ({
49
49
  fontWeight: "500",
50
50
  fontFamily: "Inter, sans-serif"
51
51
  },
52
+ "& .MuiPaper-root": {
53
+ border: `unset !important`,
54
+ borderRadius: "0px",
55
+ height: "fit-content",
56
+ padding: "2px"
57
+ },
52
58
  "& p": {
53
59
  marginBottom: "7px",
54
60
  marginTop: "4px"
55
61
  },
56
62
  "& .MuiPaper-root": {
57
- border: 'unset !important',
58
- borderRadius: '0px',
59
- height: 'fit-content',
60
- padding: '2px'
63
+ border: "unset !important",
64
+ borderRadius: "0px",
65
+ height: "fit-content",
66
+ padding: "2px"
61
67
  },
62
68
  "& .muiIconsListParent": {
63
69
  "& svg": {
@@ -65,15 +71,12 @@ const useCommonStyle = theme => ({
65
71
  },
66
72
  "&::-webkit-scrollbar-thumb": {
67
73
  background: `${theme?.palette?.editor?.brainPopupScroll} !important`
68
- },
69
- "&::-webkit-scrollbar-track": {
70
- visibility: "hidden"
71
74
  }
72
75
  },
73
76
  "& .MuiGrid-root>.MuiGrid-item": {
74
77
  paddingRight: "0px !important",
75
78
  fontFamily: "Inter, sans-serif",
76
- height: 'fit-content'
79
+ height: "fit-content"
77
80
  },
78
81
  "& .MuiInputBase-root": {
79
82
  borderRadius: "10px",
@@ -134,14 +137,14 @@ const useCommonStyle = theme => ({
134
137
  borderRadius: "10px",
135
138
  width: "52px !important",
136
139
  marginLeft: "10px",
137
- height: '36px !important'
140
+ height: "36px !important"
138
141
  },
139
142
  "& .spacingSlider": {
140
143
  width: "calc(100% - 18px)"
141
144
  }
142
145
  },
143
- '& .MuiFormHelperText-root': {
144
- margin: '4px 0px 0px 0px',
146
+ "& .MuiFormHelperText-root": {
147
+ margin: "4px 0px 0px 0px",
145
148
  color: theme?.palette?.editor?.closeButtonSvgStroke,
146
149
  fontFamily: "Inter, sans-serif"
147
150
  }
@@ -211,16 +214,16 @@ const useCommonStyle = theme => ({
211
214
  backgroundColor: theme?.palette?.editor?.miniToolBarBackground
212
215
  },
213
216
  "& .popup_tabs": {
214
- backgroundColor: theme?.palette?.editor?.background,
217
+ backgroundColor: theme?.palette?.editor?.miniToolBarBackground,
215
218
  "@media only screen and (max-width: 899px)": {
216
219
  width: "100% !important"
217
220
  }
218
221
  },
219
222
  "& .popup_tabs-header": {
220
- backgroundColor: theme?.palette?.editor?.background,
223
+ backgroundColor: theme?.palette?.editor?.miniToolBarBackground,
221
224
  "& .popup_tabs-header-label-active": {
222
225
  color: theme?.palette?.editor?.activeColor,
223
- backgroundColor: theme?.palette?.editor?.background
226
+ backgroundColor: theme?.palette?.editor?.miniToolBarBackground
224
227
  }
225
228
  },
226
229
  "& .colorpicker": {
@@ -249,6 +252,40 @@ const useCommonStyle = theme => ({
249
252
  backgroundColor: theme?.palette?.editor?.miniToolBarBackground,
250
253
  color: theme?.palette?.editor?.textColor
251
254
  }
255
+ },
256
+ "& .colorPickerActionBtns": {
257
+ backgroundColor: theme?.palette?.editor?.miniToolBarBackground,
258
+ display: "flex",
259
+ justifyContent: "end",
260
+ padding: "10px",
261
+ position: "sticky",
262
+ bottom: 0,
263
+ right: 0,
264
+ boxShadow: `0px -3px 12px 0px ${theme?.palette?.editor?.cardShadow}`,
265
+ gap: "8px",
266
+ "& button": {
267
+ fontWeight: 600,
268
+ fontSize: "14px",
269
+ opacity: 1,
270
+ borderRadius: "8px",
271
+ textTransform: "math-auto",
272
+ padding: "4px 20px",
273
+ height: "fit-content",
274
+ minWidth: "90px",
275
+ "@media only screen and (max-width: 899px)": {
276
+ width: "50%"
277
+ },
278
+ "&.confirmBtn": {
279
+ backgroundColor: "#2563EB",
280
+ color: "#ffffff",
281
+ border: `1px solid #2563EB`
282
+ },
283
+ "&.cancelBtn": {
284
+ backgroundColor: theme?.palette?.editor?.closeButtonBackground,
285
+ color: theme?.palette?.editor?.customDialogueCloseBtnColor,
286
+ border: `1px solid ${theme?.palette?.editor?.customDialogueCloseBtnBorder}`
287
+ }
288
+ }
252
289
  }
253
290
  },
254
291
  colorPickerBtnBorder: {
@@ -403,14 +440,14 @@ const useCommonStyle = theme => ({
403
440
  padding: "8px 12px",
404
441
  fontSize: "12px",
405
442
  color: theme?.palette?.editor?.menuOptionTextColor,
406
- fontWeight: '500',
443
+ fontWeight: "500",
407
444
  fontFamily: "Inter, sans-serif",
408
- minHeight: '36px',
445
+ minHeight: "36px",
409
446
  "&:hover": {
410
447
  backgroundColor: theme?.palette?.editor?.menuOptionHoverBackground
411
448
  }
412
449
  },
413
- '& .Mui-selected': {
450
+ "& .Mui-selected": {
414
451
  background: `${theme?.palette?.editor?.menuOptionSelectedOption} !important`
415
452
  },
416
453
  "& .MuiListSubheader-root": {
@@ -419,16 +456,16 @@ const useCommonStyle = theme => ({
419
456
  fontSize: "12px"
420
457
  },
421
458
  "& .MuiPaper-root": {
422
- borderRadius: '8px',
423
- padding: '0px',
459
+ borderRadius: "8px",
460
+ padding: "0px",
424
461
  background: `${theme?.palette?.editor?.textWeightPopUpBackground} !important`
425
462
  },
426
- '& .MuiButtonBase-root': {
427
- margin: '4px',
428
- borderRadius: '6px'
463
+ "& .MuiButtonBase-root": {
464
+ margin: "4px",
465
+ borderRadius: "6px"
429
466
  },
430
- '& .MuiList-root': {
431
- padding: '0px'
467
+ "& .MuiList-root": {
468
+ padding: "0px"
432
469
  }
433
470
  },
434
471
  datePicker: {
@@ -528,9 +565,38 @@ const useCommonStyle = theme => ({
528
565
  }
529
566
  }
530
567
  },
568
+ buttonMoreOption: {
569
+ background: `${theme?.palette?.editor?.aiInputBackground} !important`,
570
+ border: `1px solid ${theme?.palette?.editor?.buttonBorder1} !important`,
571
+ padding: "4px !important",
572
+ "& svg": {
573
+ width: "18px !important",
574
+ height: "18px !important",
575
+ "& path": {
576
+ stroke: `${theme?.palette?.editor?.closeButtonSvgStroke} !important`
577
+ }
578
+ }
579
+ },
531
580
  pageSettingPopUpRoot: {
532
581
  padding: "16px 8px 16px 10px!important",
533
- height: "100%"
582
+ height: "100%",
583
+ "& .text-field-wrapper": {
584
+ "& input:-webkit-autofill": {
585
+ WebkitBackgroundClip: "text !important",
586
+ WebkitBoxShadow: "0 0 0 1000px transparent inset !important",
587
+ WebkitTextFillColor: `${theme?.palette?.editor?.deletePopUpButtonTextColor} !important`,
588
+ transition: "background-color 600000s 0s, color 600000s 0s !important"
589
+ },
590
+ "& .MuiFilledInput-root": {
591
+ backgroundColor: "rgba(255, 255, 255, 0.5)",
592
+ "&:hover": {
593
+ backgroundColor: "rgba(255, 255, 255, 0.7)"
594
+ },
595
+ "&.Mui-focused": {
596
+ backgroundColor: "rgba(255, 255, 255, 0.9)"
597
+ }
598
+ }
599
+ }
534
600
  },
535
601
  buttonMoreIcon: {
536
602
  position: "absolute",
@@ -538,23 +604,23 @@ const useCommonStyle = theme => ({
538
604
  right: -40,
539
605
  transform: "translateY(-50%)"
540
606
  },
541
- buttonMoreOption: {
542
- background: `${theme?.palette?.editor?.aiInputBackground} !important`,
543
- border: `1px solid ${theme?.palette?.editor?.buttonBorder1} !important`,
544
- padding: '4px !important',
545
- '& svg': {
546
- width: '18px !important',
547
- height: '18px !important',
548
- '& path': {
549
- stroke: `${theme?.palette?.editor?.closeButtonSvgStroke} !important`
550
- }
551
- }
552
- },
607
+ // buttonMoreOption: {
608
+ // background: `${theme?.palette?.editor?.aiInputBackground} !important`,
609
+ // border: `1px solid ${theme?.palette?.editor?.buttonBorder1} !important`,
610
+ // padding: "4px !important",
611
+ // "& svg": {
612
+ // width: "18px !important",
613
+ // height: "18px !important",
614
+ // "& path": {
615
+ // stroke: `${theme?.palette?.editor?.closeButtonSvgStroke} !important`,
616
+ // },
617
+ // },
618
+ // },
553
619
  buttonMoreOption2: {
554
620
  background: `${theme?.palette?.editor?.aiInputBackground} !important`,
555
621
  border: `1px solid ${theme?.palette?.editor?.buttonBorder1} !important`,
556
- '& svg': {
557
- '& path': {
622
+ "& svg": {
623
+ "& path": {
558
624
  fill: `${theme?.palette?.editor?.closeButtonSvgStroke} !important`
559
625
  }
560
626
  }
@@ -562,11 +628,11 @@ const useCommonStyle = theme => ({
562
628
  buttonMoreOption3: {
563
629
  background: `${theme?.palette?.editor?.aiInputBackground} !important`,
564
630
  border: `1px solid ${theme?.palette?.editor?.buttonBorder1} !important`,
565
- padding: '5px !important',
566
- '& svg': {
567
- width: '16px !important',
568
- height: '16px !important',
569
- '& path': {
631
+ padding: "5px !important",
632
+ "& svg": {
633
+ width: "16px !important",
634
+ height: "16px !important",
635
+ "& path": {
570
636
  stroke: `${theme?.palette?.editor?.closeButtonSvgStroke} !important`
571
637
  }
572
638
  }
@@ -574,37 +640,37 @@ const useCommonStyle = theme => ({
574
640
  resizeButton: {
575
641
  background: theme?.palette?.editor?.aiInputBackground,
576
642
  border: `1px solid ${theme?.palette?.editor?.buttonBorder1}`,
577
- padding: '5px !important',
578
- borderRadius: '50% !important',
579
- '& svg': {
580
- width: '18px',
581
- height: '18px',
582
- '& path': {
643
+ padding: "5px !important",
644
+ borderRadius: "50% !important",
645
+ "& svg": {
646
+ width: "18px",
647
+ height: "18px",
648
+ "& path": {
583
649
  fill: `${theme?.palette?.editor?.closeButtonSvgStroke}`
584
650
  }
585
651
  },
586
- '&:hover': {
652
+ "&:hover": {
587
653
  background: theme?.palette?.editor?.aiInputBackground
588
654
  }
589
655
  },
590
656
  gradientFillBtn: {
591
657
  background: `linear-gradient(112.61deg, #2C63ED 19.3%, #8360FD 88.14%) !important`,
592
- textTransform: 'math-auto !important',
593
- color: '#FFFFFF !important',
594
- padding: '0px 12px !important',
595
- height: '32px',
596
- borderRadius: '8px',
597
- fontWeight: '500',
598
- fontSize: '14px'
658
+ textTransform: "math-auto !important",
659
+ color: "#FFFFFF !important",
660
+ padding: "0px 12px !important",
661
+ height: "32px",
662
+ borderRadius: "8px",
663
+ fontWeight: "500",
664
+ fontSize: "14px"
599
665
  },
600
666
  emptyThumbBtn: {
601
667
  background: `${theme?.palette?.editor?.sectionSettingIconHover} !important`,
602
668
  color: `${theme?.palette?.editor?.textColor} !important`,
603
- fontSize: '14px !important',
604
- '& svg': {
605
- width: '20px !important',
606
- height: '20px !important',
607
- '& path': {
669
+ fontSize: "14px !important",
670
+ "& svg": {
671
+ width: "20px !important",
672
+ height: "20px !important",
673
+ "& path": {
608
674
  stroke: `${theme?.palette?.editor?.closeButtonSvgStroke} !important`
609
675
  }
610
676
  }
@@ -676,6 +742,13 @@ const useCommonStyle = theme => ({
676
742
  stroke: theme?.palette?.editor?.closeButtonSvgStroke
677
743
  }
678
744
  }
745
+ },
746
+ "& .element-toolbar": {
747
+ "& button": {
748
+ borderRadius: "50%",
749
+ background: theme?.palette?.editor?.signatureFontBtnBg,
750
+ border: `1px solid ${theme?.palette?.editor?.buttonBorder1} !important`
751
+ }
679
752
  }
680
753
  }
681
754
  });
@@ -7,14 +7,14 @@ import { Node } from "slate";
7
7
  const HIDE_PLACHOLDERS = ["grid", "grid-item", "table"];
8
8
  const TEXT_NODES = ["paragraph", "headingOne", "headingTwo", "headingThree"];
9
9
  const PREVIEW_IMAGE_HIDE_CLASS = ["grid-container-toolbar", "grid-item-toolbar", "element-toolbar", "mini-tool-wrpr-ei", "element-selector", "element-selector-ctrl"];
10
- const RND_ITEMS = ["freegridItem", "freegridBox"];
10
+ export const RND_ITEMS = ["freegridItem", "freegridBox"];
11
11
  export const getThumbnailImage = async (dom, options = {}) => {
12
12
  try {
13
13
  const canvas = await html2canvas(dom, {
14
14
  windowWidth: 1440,
15
15
  windowHeight: 768,
16
16
  ...options,
17
- backgroundColor: null,
17
+ backgroundColor: 'white',
18
18
  allowTaint: true,
19
19
  useCORS: false,
20
20
  scale: 0.5,
@@ -23,6 +23,11 @@ export const getThumbnailImage = async (dom, options = {}) => {
23
23
  // hide class
24
24
  const sw = document.getElementById("slate-wrapper-scroll-container");
25
25
  sw.style.minHeight = "2000px";
26
+ if (options?.fromBrains) {
27
+ const textbox = document.querySelector(".innert-editor-textbox");
28
+ textbox.style.padding = "24px";
29
+ textbox.style.background = options?.pageColor || '#fffff';
30
+ }
26
31
  const svgFrames = document.querySelectorAll(".image-frame svg");
27
32
  for (let i = 0; i < svgFrames.length; i++) {
28
33
  svgFrames[i].style.width = "100%";
@@ -99,6 +104,9 @@ function padZero(str, len) {
99
104
  return (zeros + str).slice(-len);
100
105
  }
101
106
  export function getEmbedURL(element, needType = false) {
107
+ if (typeof element?.href !== "string" && typeof element?.url !== "string") {
108
+ return null;
109
+ }
102
110
  let refUrl = element.href ? element.href : element.url;
103
111
  refUrl = refUrl ? refUrl.includes("http") ? refUrl : `//${refUrl}` : "Link";
104
112
  let embedUrl = refUrl;
@@ -0,0 +1,58 @@
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,4 +1,6 @@
1
+ import { ReactEditor } from "slate-react";
1
2
  import { sizeMap } from "../utils/font";
3
+ import { Editor, Node } from "slate";
2
4
  export const breakpoints = {
3
5
  small: 0,
4
6
  mobile: 600,
@@ -33,7 +35,7 @@ const overrideValues = (value, ot) => {
33
35
  return Object.keys(value).reduce((a, b) => {
34
36
  return {
35
37
  ...a,
36
- [b]: overrides[ot] ? overrides[ot](value[b]) : value
38
+ [b]: overrides[ot] ? overrides[ot](value[b], value) : value
37
39
  };
38
40
  }, {});
39
41
  };
@@ -50,7 +52,15 @@ const overrides = {
50
52
  overrideReSizeH: val => {
51
53
  return val ? `${val?.height}px` : "auto";
52
54
  },
53
- overrideBorderRadius: val => {
55
+ overrideBorderRadius: (val, breakpointValues) => {
56
+ if (!val?.topLeft) {
57
+ Object.values(breakpointValues || {}).forEach(v => {
58
+ if (v) {
59
+ // Applying the values from breakpoints that exist to those that do not have
60
+ val = v;
61
+ }
62
+ });
63
+ }
54
64
  return `${val?.topLeft}px ${val?.topRight}px ${val?.bottomLeft}px ${val?.bottomRight}px`;
55
65
  }
56
66
  };
@@ -118,6 +128,197 @@ export const getTRBLBreakPoints = (value, breakpoint) => {
118
128
  console.log(err);
119
129
  }
120
130
  };
131
+ export function getElementStyle(editor, element, stylePropertyName) {
132
+ try {
133
+ const path = ReactEditor.findPath(editor, element);
134
+ if (path?.length) {
135
+ const currentEle = Node.get(editor, path);
136
+ const dom = ReactEditor.toDOMNode(editor, currentEle);
137
+ const editorBtn = dom?.querySelector(".button.theme-element");
138
+ return getElementProperty(editorBtn, stylePropertyName);
139
+ }
140
+ } catch (err) {
141
+ // console.log(err);
142
+ }
143
+ }
144
+ export function getTextSizeVal(editor) {
145
+ try {
146
+ const currentNode = Node.get(editor, editor.selection.anchor.path);
147
+ const currentElement = ReactEditor.toDOMNode(editor, currentNode);
148
+ if (currentElement) {
149
+ const element = currentElement.querySelector('span[data-slate-string="true"]');
150
+ const fontSize = getElementProperty(element, "font-size");
151
+ return fontSize || 16;
152
+ }
153
+ } catch (err) {
154
+ // console.log(err);
155
+ }
156
+ }
157
+ export function getVariableValue(val) {
158
+ const bodyElement = document.body;
159
+ const computedStyle = getComputedStyle(bodyElement);
160
+ const [, variableName] = val?.match(/var\((--[^)]+)\)/) || [];
161
+ const varValue = computedStyle.getPropertyValue(variableName).trim();
162
+ return varValue;
163
+ }
164
+ const MAP_PROPERTY_KEYS = {
165
+ fontFamily: "font-family",
166
+ fontSize: "font-size",
167
+ textSize: "font-size",
168
+ fontWeight: "font-weight",
169
+ color: "color",
170
+ bgColor: "background-color"
171
+ };
172
+ export function getElementProperty(element, styleProperty) {
173
+ if (!element) {
174
+ return "";
175
+ }
176
+ const computedStyle = window.getComputedStyle(element);
177
+ const property = MAP_PROPERTY_KEYS[styleProperty] || styleProperty;
178
+ let style = computedStyle.getPropertyValue(property);
179
+ if (property === "font-family") {
180
+ style = style.replace(/"/g, ""); // remove double quotes if exists e.g: '"Courier New"'
181
+ }
182
+
183
+ return style || "";
184
+ }
185
+ export const textThemeFields = ["fontFamily", "fontSize", "color", "bold", "italic", "fontWeight"
186
+ // "underline",
187
+ // "strikethrough",
188
+ ];
189
+
190
+ const themeElements = ["headingOne", "headingTwo", "headingThree", "headingFour", "headingFive", "headingSix", "paragraphOne", "paragraphTwo", "paragraphThree"];
191
+ export const isTextCustomized = editor => {
192
+ try {
193
+ if (editor.selection) {
194
+ const currentElement = Node.parent(editor, editor?.selection?.anchor?.path);
195
+ if (!currentElement) {
196
+ return false;
197
+ }
198
+ const {
199
+ children,
200
+ type
201
+ } = currentElement;
202
+ if (!themeElements.includes(type)) {
203
+ return false;
204
+ }
205
+ if (!children?.length) {
206
+ return true;
207
+ }
208
+ const customized = textThemeFields.some(field => {
209
+ const element = children.find(child => child.text.trim() !== "") || {};
210
+ const value = element[field];
211
+ if (field === "fontSize") {
212
+ return Object.keys(value || {}).length;
213
+ } else {
214
+ return value;
215
+ }
216
+ });
217
+ return customized;
218
+ } else {
219
+ return null;
220
+ }
221
+ } catch (err) {
222
+ return null;
223
+ }
224
+ };
225
+ const addToTheme = (field, value, element) => {
226
+ switch (field) {
227
+ case "fontFamily":
228
+ return {
229
+ fontFamily: value
230
+ };
231
+ case "fontSize":
232
+ return {
233
+ fontSize: value?.lg
234
+ };
235
+ case "color":
236
+ return {
237
+ color: value
238
+ };
239
+ case "bold":
240
+ return {
241
+ fontWeight: "bold"
242
+ };
243
+ case "italic":
244
+ return {
245
+ fontStyle: "italic"
246
+ };
247
+ // case "underline":
248
+ // case "strikethrough":
249
+ // let textDecoration = "";
250
+
251
+ // if (element.underline) {
252
+ // textDecoration = "underline";
253
+ // }
254
+
255
+ // if (element.strikethrough) {
256
+ // textDecoration += " strikethrough";
257
+ // }
258
+
259
+ // return { textDecoration };
260
+ default:
261
+ return {};
262
+ }
263
+ };
264
+ const MAP_TEXT_THEME_FIELD = {
265
+ headingOne: "h1",
266
+ headingTwo: "h2",
267
+ headingThree: "h3",
268
+ headingFour: "h4",
269
+ headingFive: "h5",
270
+ headingSix: "h6",
271
+ paragraphOne: "para1",
272
+ paragraphTwo: "para2",
273
+ paragraphThree: "para3"
274
+ };
275
+ export const saveToTheme = editor => {
276
+ try {
277
+ if (editor.selection) {
278
+ const currentElement = Node.parent(editor, editor?.selection?.anchor?.path);
279
+ if (!currentElement) {
280
+ return false;
281
+ }
282
+ const {
283
+ children
284
+ } = currentElement;
285
+ if (!children?.length) {
286
+ return true;
287
+ }
288
+ let theme = {};
289
+ textThemeFields.forEach(field => {
290
+ const element = children.find(child => child.text.trim() !== "") || {};
291
+ const value = element[field];
292
+ let style = {};
293
+ let isValueExist = false;
294
+ if (value) {
295
+ isValueExist = true;
296
+ if (field === "fontSize") {
297
+ isValueExist = !!Object.keys(value).length;
298
+ }
299
+ }
300
+ if (isValueExist) {
301
+ style = addToTheme(field, value, element);
302
+ }
303
+ theme = {
304
+ ...theme,
305
+ ...style
306
+ };
307
+ });
308
+ textThemeFields.forEach(field => {
309
+ Editor.removeMark(editor, field);
310
+ });
311
+ return {
312
+ field: MAP_TEXT_THEME_FIELD[currentElement?.type],
313
+ theme
314
+ };
315
+ }
316
+ } catch (err) {
317
+ return;
318
+ }
319
+ };
320
+ export const HEADING_THEME_FIELDS = ["h1", "h2", "h3", "h4", "h5", "h6"];
321
+ export const PARAGRAPH_THEME_FIELDS = ["para1", "para2", "para3"];
121
322
  export const getBRValue = (props, rbr = "lg") => {
122
323
  const {
123
324
  value,