@flozy/editor 3.7.2 → 3.7.3

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 (85) hide show
  1. package/dist/Editor/CommonEditor.js +169 -111
  2. package/dist/Editor/Elements/Accordion/Accordion.js +74 -7
  3. package/dist/Editor/Elements/Accordion/AccordionBtnPopup.js +3 -2
  4. package/dist/Editor/Elements/Accordion/AccordionSummary.js +4 -60
  5. package/dist/Editor/Elements/AppHeader/AppHeader.js +26 -4
  6. package/dist/Editor/Elements/Button/EditorButton.js +25 -14
  7. package/dist/Editor/Elements/Color Picker/ColorButtons.js +60 -17
  8. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  9. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  10. package/dist/Editor/Elements/Color Picker/Styles.js +2 -1
  11. package/dist/Editor/Elements/Embed/Frames/ImageFrame.js +1 -0
  12. package/dist/Editor/Elements/Embed/Image.js +28 -20
  13. package/dist/Editor/Elements/Embed/Video.js +15 -11
  14. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +2 -1
  15. package/dist/Editor/Elements/Grid/Grid.js +2 -0
  16. package/dist/Editor/Elements/Grid/GridItem.js +3 -1
  17. package/dist/Editor/Elements/Link/Link.js +6 -1
  18. package/dist/Editor/Elements/Link/LinkButton.js +4 -2
  19. package/dist/Editor/Elements/Link/LinkPopup.js +11 -3
  20. package/dist/Editor/Elements/Link/LinkPopupStyles.js +28 -0
  21. package/dist/Editor/Elements/Table/TableCell.js +1 -1
  22. package/dist/Editor/MiniEditor.js +3 -1
  23. package/dist/Editor/Toolbar/Basic/index.js +4 -2
  24. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +26 -2
  25. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  26. package/dist/Editor/Toolbar/FormatTools/TextSize.js +5 -11
  27. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +4 -11
  28. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +213 -86
  29. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +2 -1
  30. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +20 -13
  31. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +52 -7
  32. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +438 -0
  33. package/dist/Editor/Toolbar/PopupTool/index.js +4 -2
  34. package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
  35. package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
  36. package/dist/Editor/common/ColorPickerButton.js +25 -9
  37. package/dist/Editor/common/CustomColorPicker/index.js +106 -0
  38. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  39. package/dist/Editor/common/CustomDialog/index.js +94 -0
  40. package/dist/Editor/common/CustomDialog/style.js +67 -0
  41. package/dist/Editor/common/CustomSelect.js +33 -0
  42. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  43. package/dist/Editor/common/EditorCmds.js +35 -0
  44. package/dist/Editor/common/Icon.js +30 -2
  45. package/dist/Editor/common/MentionsPopup/Styles.js +5 -2
  46. package/dist/Editor/common/Shorthands/elements.js +54 -0
  47. package/dist/Editor/common/StyleBuilder/accordionTitleBtnStyle.js +7 -7
  48. package/dist/Editor/common/StyleBuilder/accordionTitleStyle.js +16 -16
  49. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  50. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +13 -3
  51. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  52. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +31 -7
  53. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +13 -4
  54. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +14 -4
  55. package/dist/Editor/common/StyleBuilder/index.js +1 -1
  56. package/dist/Editor/helper/theme.js +190 -4
  57. package/dist/Editor/hooks/useEditorTheme.js +139 -0
  58. package/dist/Editor/hooks/useMouseMove.js +4 -2
  59. package/dist/Editor/plugins/withEmbeds.js +1 -1
  60. package/dist/Editor/plugins/withHTML.js +47 -5
  61. package/dist/Editor/plugins/withLayout.js +15 -10
  62. package/dist/Editor/plugins/withTable.js +2 -2
  63. package/dist/Editor/theme/ThemeList.js +50 -173
  64. package/dist/Editor/theme/index.js +144 -0
  65. package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
  66. package/dist/Editor/themeSettings/buttons/index.js +290 -0
  67. package/dist/Editor/themeSettings/buttons/style.js +21 -0
  68. package/dist/Editor/themeSettings/colorTheme/index.js +290 -0
  69. package/dist/Editor/themeSettings/colorTheme/style.js +77 -0
  70. package/dist/Editor/themeSettings/fonts/PreviewElement.js +123 -0
  71. package/dist/Editor/themeSettings/fonts/index.js +213 -0
  72. package/dist/Editor/themeSettings/fonts/style.js +44 -0
  73. package/dist/Editor/themeSettings/icons.js +60 -0
  74. package/dist/Editor/themeSettings/index.js +320 -0
  75. package/dist/Editor/themeSettings/style.js +152 -0
  76. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  77. package/dist/Editor/themeSettingsAI/index.js +356 -0
  78. package/dist/Editor/themeSettingsAI/saveTheme.js +190 -0
  79. package/dist/Editor/themeSettingsAI/style.js +247 -0
  80. package/dist/Editor/utils/SlateUtilityFunctions.js +157 -25
  81. package/dist/Editor/utils/button.js +1 -17
  82. package/dist/Editor/utils/events.js +11 -4
  83. package/dist/Editor/utils/font.js +40 -37
  84. package/dist/Editor/utils/helper.js +71 -12
  85. package/package.json +1 -1
@@ -7,43 +7,43 @@ export const sizeMap = {
7
7
  export const fontFamilyMap = {
8
8
  PoppinsRegular: "PoppinsRegular",
9
9
  PoppinsBold: "PoppinsBold",
10
- sans: "Helvetica,Arial, sans serif",
11
- serif: "Georgia, Times New Roaman,serif",
12
- monospace: "Monaco, Courier New,monospace",
13
- roboto: "'Roboto', sans-serif",
14
- qwitcher: "'Qwitcher Grypen', cursive",
15
- garamond: "'EB Garamond', serif",
16
- anton: "'Anton', sans-serif",
17
- dmserif: "'DM Serif Text', serif",
18
- inter: "'Inter', sans-serif",
19
- libre: "'Libre Baskerville', serif",
20
- montserrat: "'Montserrat', sans-serif",
21
- opensans: "'Open Sans', sans-serif",
22
- publicsans: "'Public Sans', sans-serif",
23
- raleway: "'Raleway', sans-serif",
24
- spacemono: "'Space Mono', sans-serif",
25
- bulgarian: "'Bulgarian Garamond', monospace",
26
- impact: "'Impact', serif",
27
- redacted: "'Redacted Script', cursive",
28
- greatVibes: "'Great Vibes', cursive",
29
- zeyada: "'Zeyada', cursive",
30
- allura: "'Allura', cursive",
31
- pinyon: "'Pinyon Script', cursive",
32
- muellerhoff: "'Herr Von Muellerhoff', cursive",
33
- dawning: "'Dawning of a New Day', cursive",
10
+ sans: 'Helvetica, Arial, "sans serif"',
11
+ serif: 'Georgia, "Times New Roaman", serif',
12
+ monospace: 'Monaco, "Courier New", monospace',
13
+ roboto: "Roboto, sans-serif",
14
+ qwitcher: '"Qwitcher Grypen", cursive',
15
+ garamond: '"EB Garamond", serif',
16
+ anton: "Anton, sans-serif",
17
+ dmserif: '"DM Serif Text", serif',
18
+ inter: "Inter, sans-serif",
19
+ libre: '"Libre Baskerville", serif',
20
+ montserrat: "Montserrat, sans-serif",
21
+ opensans: '"Open Sans", sans-serif',
22
+ publicsans: '"Public Sans", sans-serif',
23
+ raleway: "Raleway, sans-serif",
24
+ spacemono: '"Space Mono", sans-serif',
25
+ bulgarian: '"Bulgarian Garamond", monospace',
26
+ impact: "Impact, serif",
27
+ redacted: '"Redacted Script", cursive',
28
+ greatVibes: '"Great Vibes", cursive',
29
+ zeyada: "Zeyada, cursive",
30
+ allura: "Allura, cursive",
31
+ pinyon: '"Pinyon Script", cursive',
32
+ muellerhoff: '"Herr Von Muellerhoff", cursive',
33
+ dawning: '"Dawning of a New Day", cursive',
34
34
  // New Font Added for Type Signature
35
- comingsoon: "'Coming Soon', cursive",
36
- dancingScript: "'Dancing Script', cursive",
37
- engagement: "'Engagement', cursive",
38
- gaegu: "'Gaegu', cursive",
39
- ingridDarling: "'Ingrid Darling', cursive",
40
- kitaOne: "'Kite One', sans - serif",
41
- laBelleAurore: "'La Belle Aurore', cursive",
42
- lobster: "'Lobster', cursive",
43
- meaCulpa: "'Mea Culpa', cursive",
44
- meddon: "'Meddon', cursive",
45
- merriWeather: "'Merriweather', serif",
46
- theGirlNextDoor: "'The Girl Next Door', cursive"
35
+ comingsoon: '"Coming Soon", cursive',
36
+ dancingScript: '"Dancing Script", cursive',
37
+ engagement: "Engagement, cursive",
38
+ gaegu: "Gaegu, cursive",
39
+ ingridDarling: '"Ingrid Darling", cursive',
40
+ kitaOne: "Times",
41
+ laBelleAurore: '"La Belle Aurore", cursive',
42
+ lobster: "Lobster, cursive",
43
+ meaCulpa: '"Mea Culpa", cursive',
44
+ meddon: "Meddon, cursive",
45
+ merriWeather: "Merriweather, serif",
46
+ theGirlNextDoor: '"The Girl Next Door", cursive'
47
47
  };
48
48
  export const fontOptions = Object.keys(fontFamilyMap).map(m => {
49
49
  return {
@@ -62,5 +62,8 @@ export const signedTextFonts = Object.keys(fontFamilyMap).slice(-12).map(m => {
62
62
  export const headingMap = {
63
63
  "headingOne": "32px",
64
64
  "headingTwo": "24px",
65
- "headingThree": "19px"
65
+ "headingThree": "19px",
66
+ "headingFour": "16px",
67
+ "headingFive": "13px",
68
+ "headingSix": "11px"
66
69
  };
@@ -216,6 +216,17 @@ const getScrollElement = () => {
216
216
  const scrollFrom = isSlateWrapperScroll ? slateWrapper : window;
217
217
  return scrollFrom;
218
218
  };
219
+ const handleLinkBtnClick = (e, props) => {
220
+ if (e) {
221
+ e.preventDefault();
222
+ e.stopPropagation();
223
+ }
224
+ if (props.target) {
225
+ window.open(props.href);
226
+ } else {
227
+ window.location.href = props.href;
228
+ }
229
+ };
219
230
  export const handleLinkType = (url, linkType, readOnly, openInNewTab, onClick = () => {}) => {
220
231
  const props = {};
221
232
  if (!readOnly) {
@@ -306,23 +317,22 @@ export const handleLinkType = (url, linkType, readOnly, openInNewTab, onClick =
306
317
 
307
318
  // for iphone fix
308
319
  if (props.component === "a" && props.href) {
309
- if (getDevice(window.innerWidth) === "xs") {
320
+ const isMobile = getDevice(window.innerWidth) === "xs";
321
+ if (isMobile) {
310
322
  props.component = "button"; // iphone is opening two tabs, on open in new tab because of a tag.
311
323
  }
312
324
 
325
+ let touchEndClicked = false;
313
326
  props.onTouchEnd = e => {
314
- if (e) {
315
- // onTouchEnd will get triggered on web, only for image element, for that case event is getting undefined.
316
- e.preventDefault();
317
- e.stopPropagation();
318
- }
319
- if (props.target) {
320
- window.open(props.href);
321
- } else {
322
- window.location.href = props.href;
323
- }
327
+ touchEndClicked = true;
328
+ handleLinkBtnClick(e, props);
324
329
  };
325
- props.onClick = () => {
330
+ props.onClick = e => {
331
+ // This condition is used for mobile preview in the page editor.
332
+ // 'touchEnd' will not work in the mobile page preview.
333
+ if (!touchEndClicked && isMobile) {
334
+ handleLinkBtnClick(e, props);
335
+ }
326
336
  return false;
327
337
  };
328
338
  }
@@ -367,4 +377,53 @@ export const decodeString = str => {
367
377
  } catch (err) {
368
378
  console.log(err);
369
379
  }
380
+ };
381
+ export const getContrastColor = color => {
382
+ let r, g, b;
383
+
384
+ // Check if the color is in hex format
385
+ if (color.startsWith("#")) {
386
+ r = parseInt(color.substring(1, 3), 16);
387
+ g = parseInt(color.substring(3, 5), 16);
388
+ b = parseInt(color.substring(5, 7), 16);
389
+ }
390
+ // Check if the color is in RGB/RGBA format
391
+ else if (color.startsWith("rgb")) {
392
+ const rgbValues = color.replace(/^rgba?\(|\s+|\)$/g, "") // Remove the rgb/rgba and spaces
393
+ .split(","); // Split the values into an array
394
+
395
+ r = parseInt(rgbValues[0]);
396
+ g = parseInt(rgbValues[1]);
397
+ b = parseInt(rgbValues[2]);
398
+ } else {
399
+ // If the format is not recognized, default to black text
400
+ return "#000000";
401
+ }
402
+
403
+ // Calculate relative luminance
404
+ const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
405
+
406
+ // Return black for light colors, white for dark colors
407
+ return luminance > 0.5 ? "#000000" : "#FFFFFF";
408
+ };
409
+ export const onDeleteKey = (event, {
410
+ editor
411
+ }) => {
412
+ try {
413
+ const {
414
+ selection
415
+ } = editor;
416
+ if (selection) {
417
+ // If text is selected, delete the selection
418
+ Transforms.delete(editor);
419
+ } else {
420
+ // If no text is selected, handle deleting the next character/element
421
+ Transforms.delete(editor, {
422
+ unit: "character",
423
+ reverse: false
424
+ });
425
+ }
426
+ } catch (err) {
427
+ console.log(err);
428
+ }
370
429
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flozy/editor",
3
- "version": "3.7.2",
3
+ "version": "3.7.3",
4
4
  "description": "An Editor for flozy app brain",
5
5
  "files": [
6
6
  "dist"