easy-email-pro-theme 1.23.1 → 1.24.0

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.
package/lib/index.js CHANGED
@@ -54,7 +54,7 @@ var __async = (__this, __arguments, generator) => {
54
54
  step((generator = generator.apply(__this, __arguments)).next());
55
55
  });
56
56
  };
57
- import { classnames, useEditorState, useEditorProps, useRefState, isDOMElement, useMergeTagsData, useEventCallback, useSelectedNode, validation, CustomEvent, ActiveTabKeys, EmailEditorProvider, EmailEditor, useForceUpdate, IframeComponent, toggleFormat, TextFormat, HtmlStringToReactNodes, isFormatActive } from "easy-email-pro-editor";
57
+ import { classnames, useEditorState, useEditorProps, useRefState, isDOMElement, useMergeTagsData, useEventCallback, useSelectedNode, validation, CustomEvent, ActiveTabKeys, EmailEditorProvider, EmailEditor, useForceUpdate, IframeComponent, toggleFormat, TextFormat, isFormatActive, HtmlStringToReactNodes } from "easy-email-pro-editor";
58
58
  import { useSlate, ReactEditor, useSlateStatic } from "slate-react";
59
59
  import * as React$2 from "react";
60
60
  import React__default, { useRef, useState, useEffect, useCallback as useCallback$1, useMemo as useMemo$1, createContext, useContext, useLayoutEffect, useReducer, Suspense, memo, cloneElement, forwardRef, Component } from "react";
@@ -62,7 +62,7 @@ import { NodeUtils, BlockManager, ElementType, EditorCore, t, ElementCategory, c
62
62
  import { Editor, Node as Node$1, Transforms, Path, createEditor, Range, Text as Text$3 } from "slate";
63
63
  import ReactDOM, { createPortal, unstable_batchedUpdates } from "react-dom";
64
64
  import { cloneDeep, get, isEqual as isEqual$3, set, omit as omit$2, merge as merge$1, debounce as debounce$2, isUndefined as isUndefined$1, isString as isString$1, isNumber as isNumber$1, uniqueId, camelCase, upperFirst, isFunction as isFunction$4, flatMap } from "lodash";
65
- import { Form, Input, Modal, Collapse as Collapse$1, Space, Empty, Card, Grid, Button as Button$2, Radio, Message, Popover, Spin, Select as Select$1, Drawer, Divider as Divider$2, Switch, Tabs, Slider, Typography as Typography$1, InputNumber, Tooltip, Tag, Link as Link$2, List, Alert, Popconfirm, PageHeader, Skeleton, Layout as Layout$2 } from "@arco-design/web-react";
65
+ import { Form, Input, Modal, Collapse as Collapse$1, Space, Empty, Card, Grid, Button as Button$2, Radio, Message, Popover, Spin, Select as Select$1, Drawer, Divider as Divider$2, Switch, Tabs, Slider, Typography as Typography$1, InputNumber, Tooltip, Tag, Link as Link$2, List, Alert, Popconfirm, PageHeader, Layout as Layout$2, Skeleton } from "@arco-design/web-react";
66
66
  import { IconDelete, IconClose, IconPlus, IconCopy, IconDragArrow, IconLock, IconUnlock, IconQuestionCircle, IconLink, IconCloud, IconRefresh, IconEdit, IconLeft, IconUndo, IconRedo, IconMinus, IconEye, IconSubscribeAdd, IconCheckCircleFill } from "@arco-design/web-react/icon";
67
67
  import mjml from "mjml-browser";
68
68
  import { HistoryEditor } from "slate-history";
@@ -498,7 +498,12 @@ const withTheme$1 = (editor) => {
498
498
  const isVoid = NodeUtils.isVoidBlockElement(contentElementEntry[0]);
499
499
  const textElement = contentElementEntry[0];
500
500
  if (textElement.children.length === 1 && !isVoid) {
501
- if (((_a = editor.selection) == null ? void 0 : _a.focus.offset) === 0) {
501
+ const isEmpty = Editor.string(editor, contentElementEntry[1]) === "";
502
+ if (isEmpty && ((_a = editor.selection) == null ? void 0 : _a.focus.offset) === 0) {
503
+ editor.replaceNode({
504
+ path: [...contentElementEntry[1], 0],
505
+ node: { text: "" }
506
+ });
502
507
  return;
503
508
  }
504
509
  }
@@ -14515,7 +14520,12 @@ function previewLoadImage(url) {
14515
14520
  img.setAttribute("crossOrigin", "Anonymous");
14516
14521
  img.src = url;
14517
14522
  img.onload = () => resolve(img);
14518
- img.onerror = () => resolve(img);
14523
+ img.onerror = () => {
14524
+ const img2 = new Image();
14525
+ img2.src = url;
14526
+ img2.onload = () => resolve(img2);
14527
+ img2.onerror = () => resolve(img2);
14528
+ };
14519
14529
  });
14520
14530
  }
14521
14531
  function bind(fn, thisArg) {
@@ -16542,10 +16552,75 @@ axios.getAdapter = adapters.getAdapter;
16542
16552
  axios.HttpStatusCode = HttpStatusCode$1;
16543
16553
  axios.default = axios;
16544
16554
  const axios$1 = axios;
16555
+ const blockLevelTags = [
16556
+ "div",
16557
+ "p",
16558
+ "h1",
16559
+ "h2",
16560
+ "h3",
16561
+ "h4",
16562
+ "h5",
16563
+ "h6",
16564
+ "ol",
16565
+ "ul",
16566
+ "li",
16567
+ "table",
16568
+ "hr",
16569
+ "dl"
16570
+ ];
16571
+ const formateChildNotes = (node) => {
16572
+ const childNodes = Array.from(node.childNodes);
16573
+ const hasBlockElement = childNodes.some((item2) => {
16574
+ return item2.nodeType === Node.ELEMENT_NODE && isBlockNode({ item: item2 });
16575
+ });
16576
+ if (!hasBlockElement) {
16577
+ return childNodes;
16578
+ }
16579
+ function groupNodesByDisplay(node2) {
16580
+ const result2 = [];
16581
+ let currentGroup = null;
16582
+ for (const child of node2.childNodes) {
16583
+ let display = "inline";
16584
+ if (child.nodeType === Node.ELEMENT_NODE && isBlockNode({ item: child })) {
16585
+ display = "block";
16586
+ }
16587
+ if (!currentGroup || currentGroup.display !== display) {
16588
+ currentGroup = { display, children: [] };
16589
+ result2.push(currentGroup);
16590
+ }
16591
+ currentGroup.children.push(child);
16592
+ }
16593
+ return result2;
16594
+ }
16595
+ const result = groupNodesByDisplay(node);
16596
+ const list = [];
16597
+ result.forEach((item2) => {
16598
+ if (item2.display === "inline") {
16599
+ const div = document.createElement("div");
16600
+ item2.children.forEach((child) => {
16601
+ var _a;
16602
+ if ((_a = child.textContent) == null ? void 0 : _a.trim()) {
16603
+ div.appendChild(child);
16604
+ }
16605
+ });
16606
+ if (div.childNodes.length > 0) {
16607
+ list.push(div);
16608
+ }
16609
+ } else {
16610
+ list.push(...item2.children);
16611
+ }
16612
+ });
16613
+ return list;
16614
+ };
16615
+ const isBlockNode = ({ item: item2 }) => {
16616
+ if (!(item2 instanceof Element))
16617
+ return false;
16618
+ return blockLevelTags.includes(item2.tagName.toLowerCase());
16619
+ };
16545
16620
  const HtmlNodeAdapter = (content) => {
16546
16621
  const div = document.createElement("div");
16547
16622
  div.innerHTML = content;
16548
- return Array.from(div.childNodes).map((node) => {
16623
+ return formateChildNotes(div).map((node) => {
16549
16624
  return getItemNode(node);
16550
16625
  });
16551
16626
  };
@@ -16553,7 +16628,7 @@ const getItemNode = (node) => {
16553
16628
  var _a;
16554
16629
  if (node.nodeType === Node.TEXT_NODE) {
16555
16630
  return {
16556
- text: ((_a = node.textContent) == null ? void 0 : _a.trim().replace(/\s+/g, " ").replace(/\n/g, "")) || ""
16631
+ text: ((_a = node.textContent) == null ? void 0 : _a.replace(/\s+/g, " ").replace(/\n/g, "")) || ""
16557
16632
  };
16558
16633
  } else if (node.nodeType === Node.ELEMENT_NODE && node instanceof Element) {
16559
16634
  const attrs = {};
@@ -16572,12 +16647,21 @@ const getItemNode = (node) => {
16572
16647
  children: [{ text: "" }]
16573
16648
  });
16574
16649
  }
16650
+ if (blockLevelTags.includes(tagName)) {
16651
+ return BlockManager.getBlockByType(ElementType.HTML_BLOCK_NODE).create({
16652
+ attributes: attrs,
16653
+ data: {
16654
+ tagName
16655
+ },
16656
+ children: formateChildNotes(node).map((child) => getItemNode(child))
16657
+ });
16658
+ }
16575
16659
  return BlockManager.getBlockByType(ElementType.HTML_NODE).create({
16576
16660
  attributes: attrs,
16577
16661
  data: {
16578
16662
  tagName
16579
16663
  },
16580
- children: Array.from(node.childNodes).map((child) => getItemNode(child))
16664
+ children: formateChildNotes(node).map((child) => getItemNode(child))
16581
16665
  });
16582
16666
  }
16583
16667
  throw new Error("Invalid node");
@@ -16644,6 +16728,7 @@ function basicElementToStandardElement(element) {
16644
16728
  case ElementType.SPACER:
16645
16729
  case ElementType.SOCIAL_ELEMENT:
16646
16730
  case ElementType.NAVBAR_LINK:
16731
+ case ElementType.TABLE:
16647
16732
  const standardElement = __spreadValues({}, element);
16648
16733
  if ([ElementType.HERO, ElementType.SECTION].includes(
16649
16734
  element.type
@@ -16785,6 +16870,9 @@ function mjmlTransform(data) {
16785
16870
  case ElementType.SOCIAL_ELEMENT:
16786
16871
  payload.children = HtmlNodeAdapter(item2.content || "");
16787
16872
  break;
16873
+ case ElementType.TABLE:
16874
+ payload.data.code = item2.content || "";
16875
+ break;
16788
16876
  default:
16789
16877
  if (item2.children) {
16790
16878
  payload.children = item2.children.map(transform);
@@ -16797,7 +16885,8 @@ function mjmlTransform(data) {
16797
16885
  return basicElementToStandardElement(blockData);
16798
16886
  }
16799
16887
  };
16800
- return transform(data);
16888
+ const result = transform(data);
16889
+ return result;
16801
16890
  }
16802
16891
  const getMergeTagsByType = (mergetags, type) => {
16803
16892
  const list = [];
@@ -20142,14 +20231,14 @@ const Text$2 = ({ nodePath }) => {
20142
20231
  ResponsiveTabs,
20143
20232
  {
20144
20233
  desktop: /* @__PURE__ */ React__default.createElement(
20145
- AttributesContainer$b,
20234
+ AttributesContainer$c,
20146
20235
  {
20147
20236
  mode: ActiveTabKeys.DESKTOP,
20148
20237
  nodePath
20149
20238
  }
20150
20239
  ),
20151
20240
  mobile: /* @__PURE__ */ React__default.createElement(
20152
- AttributesContainer$b,
20241
+ AttributesContainer$c,
20153
20242
  {
20154
20243
  mode: ActiveTabKeys.MOBILE,
20155
20244
  nodePath
@@ -20158,7 +20247,7 @@ const Text$2 = ({ nodePath }) => {
20158
20247
  }
20159
20248
  ));
20160
20249
  };
20161
- function AttributesContainer$b({
20250
+ function AttributesContainer$c({
20162
20251
  nodePath,
20163
20252
  mode
20164
20253
  }) {
@@ -20180,7 +20269,7 @@ function AttributesContainer$b({
20180
20269
  path: nodePath,
20181
20270
  name: ""
20182
20271
  }
20183
- )), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, { name: "1", header: t("Typography") }, mode === ActiveTabKeys.DESKTOP && /* @__PURE__ */ React__default.createElement(
20272
+ )), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, { name: "1", header: t("Typography") }, mode === ActiveTabKeys.DESKTOP && !NodeUtils.isTextListElement(selectedNode) && /* @__PURE__ */ React__default.createElement(
20184
20273
  AttributeField.Heading,
20185
20274
  {
20186
20275
  path: nodePath,
@@ -20219,14 +20308,14 @@ const Section$1 = ({ nodePath }) => {
20219
20308
  ResponsiveTabs,
20220
20309
  {
20221
20310
  desktop: /* @__PURE__ */ React__default.createElement(
20222
- AttributesContainer$a,
20311
+ AttributesContainer$b,
20223
20312
  {
20224
20313
  mode: ActiveTabKeys.DESKTOP,
20225
20314
  nodePath
20226
20315
  }
20227
20316
  ),
20228
20317
  mobile: /* @__PURE__ */ React__default.createElement(
20229
- AttributesContainer$a,
20318
+ AttributesContainer$b,
20230
20319
  {
20231
20320
  mode: ActiveTabKeys.MOBILE,
20232
20321
  nodePath
@@ -20235,7 +20324,7 @@ const Section$1 = ({ nodePath }) => {
20235
20324
  }
20236
20325
  ));
20237
20326
  };
20238
- function AttributesContainer$a({
20327
+ function AttributesContainer$b({
20239
20328
  nodePath,
20240
20329
  mode
20241
20330
  }) {
@@ -20382,14 +20471,14 @@ const Button$1 = ({ nodePath }) => {
20382
20471
  ResponsiveTabs,
20383
20472
  {
20384
20473
  desktop: /* @__PURE__ */ React__default.createElement(
20385
- AttributesContainer$9,
20474
+ AttributesContainer$a,
20386
20475
  {
20387
20476
  mode: ActiveTabKeys.DESKTOP,
20388
20477
  nodePath
20389
20478
  }
20390
20479
  ),
20391
20480
  mobile: /* @__PURE__ */ React__default.createElement(
20392
- AttributesContainer$9,
20481
+ AttributesContainer$a,
20393
20482
  {
20394
20483
  mode: ActiveTabKeys.MOBILE,
20395
20484
  nodePath
@@ -20398,7 +20487,7 @@ const Button$1 = ({ nodePath }) => {
20398
20487
  }
20399
20488
  ));
20400
20489
  };
20401
- function AttributesContainer$9({
20490
+ function AttributesContainer$a({
20402
20491
  nodePath,
20403
20492
  mode
20404
20493
  }) {
@@ -20504,14 +20593,14 @@ const Image$3 = ({ nodePath }) => {
20504
20593
  ResponsiveTabs,
20505
20594
  {
20506
20595
  desktop: /* @__PURE__ */ React__default.createElement(
20507
- AttributesContainer$8,
20596
+ AttributesContainer$9,
20508
20597
  {
20509
20598
  mode: ActiveTabKeys.DESKTOP,
20510
20599
  nodePath
20511
20600
  }
20512
20601
  ),
20513
20602
  mobile: /* @__PURE__ */ React__default.createElement(
20514
- AttributesContainer$8,
20603
+ AttributesContainer$9,
20515
20604
  {
20516
20605
  mode: ActiveTabKeys.MOBILE,
20517
20606
  nodePath
@@ -20520,7 +20609,7 @@ const Image$3 = ({ nodePath }) => {
20520
20609
  }
20521
20610
  ));
20522
20611
  };
20523
- function AttributesContainer$8({
20612
+ function AttributesContainer$9({
20524
20613
  nodePath,
20525
20614
  mode
20526
20615
  }) {
@@ -20628,14 +20717,14 @@ const Divider$1 = ({ nodePath }) => {
20628
20717
  ResponsiveTabs,
20629
20718
  {
20630
20719
  desktop: /* @__PURE__ */ React__default.createElement(
20631
- AttributesContainer$7,
20720
+ AttributesContainer$8,
20632
20721
  {
20633
20722
  mode: ActiveTabKeys.DESKTOP,
20634
20723
  nodePath
20635
20724
  }
20636
20725
  ),
20637
20726
  mobile: /* @__PURE__ */ React__default.createElement(
20638
- AttributesContainer$7,
20727
+ AttributesContainer$8,
20639
20728
  {
20640
20729
  mode: ActiveTabKeys.MOBILE,
20641
20730
  nodePath
@@ -20644,7 +20733,7 @@ const Divider$1 = ({ nodePath }) => {
20644
20733
  }
20645
20734
  ));
20646
20735
  };
20647
- function AttributesContainer$7({
20736
+ function AttributesContainer$8({
20648
20737
  nodePath,
20649
20738
  mode
20650
20739
  }) {
@@ -20710,14 +20799,14 @@ const Spacer$1 = ({ nodePath }) => {
20710
20799
  ResponsiveTabs,
20711
20800
  {
20712
20801
  desktop: /* @__PURE__ */ React__default.createElement(
20713
- AttributesContainer$6,
20802
+ AttributesContainer$7,
20714
20803
  {
20715
20804
  mode: ActiveTabKeys.DESKTOP,
20716
20805
  nodePath
20717
20806
  }
20718
20807
  ),
20719
20808
  mobile: /* @__PURE__ */ React__default.createElement(
20720
- AttributesContainer$6,
20809
+ AttributesContainer$7,
20721
20810
  {
20722
20811
  mode: ActiveTabKeys.MOBILE,
20723
20812
  nodePath
@@ -20726,7 +20815,7 @@ const Spacer$1 = ({ nodePath }) => {
20726
20815
  }
20727
20816
  ));
20728
20817
  };
20729
- function AttributesContainer$6({
20818
+ function AttributesContainer$7({
20730
20819
  nodePath,
20731
20820
  mode
20732
20821
  }) {
@@ -20751,14 +20840,14 @@ const Navbar$1 = ({ nodePath }) => {
20751
20840
  ResponsiveTabs,
20752
20841
  {
20753
20842
  desktop: /* @__PURE__ */ React__default.createElement(
20754
- AttributesContainer$5,
20843
+ AttributesContainer$6,
20755
20844
  {
20756
20845
  mode: ActiveTabKeys.DESKTOP,
20757
20846
  nodePath
20758
20847
  }
20759
20848
  ),
20760
20849
  mobile: /* @__PURE__ */ React__default.createElement(
20761
- AttributesContainer$5,
20850
+ AttributesContainer$6,
20762
20851
  {
20763
20852
  mode: ActiveTabKeys.MOBILE,
20764
20853
  nodePath
@@ -20767,7 +20856,7 @@ const Navbar$1 = ({ nodePath }) => {
20767
20856
  }
20768
20857
  ));
20769
20858
  };
20770
- function AttributesContainer$5({
20859
+ function AttributesContainer$6({
20771
20860
  nodePath,
20772
20861
  mode
20773
20862
  }) {
@@ -20947,14 +21036,14 @@ const Social$1 = ({ nodePath }) => {
20947
21036
  ResponsiveTabs,
20948
21037
  {
20949
21038
  desktop: /* @__PURE__ */ React__default.createElement(
20950
- AttributesContainer$4,
21039
+ AttributesContainer$5,
20951
21040
  {
20952
21041
  mode: ActiveTabKeys.DESKTOP,
20953
21042
  nodePath
20954
21043
  }
20955
21044
  ),
20956
21045
  mobile: /* @__PURE__ */ React__default.createElement(
20957
- AttributesContainer$4,
21046
+ AttributesContainer$5,
20958
21047
  {
20959
21048
  mode: ActiveTabKeys.MOBILE,
20960
21049
  nodePath
@@ -20963,7 +21052,7 @@ const Social$1 = ({ nodePath }) => {
20963
21052
  }
20964
21053
  ));
20965
21054
  };
20966
- function AttributesContainer$4({
21055
+ function AttributesContainer$5({
20967
21056
  nodePath,
20968
21057
  mode
20969
21058
  }) {
@@ -21183,14 +21272,14 @@ const Hero = ({ nodePath }) => {
21183
21272
  ResponsiveTabs,
21184
21273
  {
21185
21274
  desktop: /* @__PURE__ */ React__default.createElement(
21186
- AttributesContainer$3,
21275
+ AttributesContainer$4,
21187
21276
  {
21188
21277
  mode: ActiveTabKeys.DESKTOP,
21189
21278
  nodePath
21190
21279
  }
21191
21280
  ),
21192
21281
  mobile: /* @__PURE__ */ React__default.createElement(
21193
- AttributesContainer$3,
21282
+ AttributesContainer$4,
21194
21283
  {
21195
21284
  mode: ActiveTabKeys.MOBILE,
21196
21285
  nodePath
@@ -21199,7 +21288,7 @@ const Hero = ({ nodePath }) => {
21199
21288
  }
21200
21289
  ));
21201
21290
  };
21202
- function AttributesContainer$3({
21291
+ function AttributesContainer$4({
21203
21292
  nodePath,
21204
21293
  mode
21205
21294
  }) {
@@ -21341,14 +21430,14 @@ const Column = ({ nodePath }) => {
21341
21430
  ResponsiveTabs,
21342
21431
  {
21343
21432
  desktop: /* @__PURE__ */ React__default.createElement(
21344
- AttributesContainer$2,
21433
+ AttributesContainer$3,
21345
21434
  {
21346
21435
  mode: ActiveTabKeys.DESKTOP,
21347
21436
  nodePath
21348
21437
  }
21349
21438
  ),
21350
21439
  mobile: /* @__PURE__ */ React__default.createElement(
21351
- AttributesContainer$2,
21440
+ AttributesContainer$3,
21352
21441
  {
21353
21442
  mode: ActiveTabKeys.MOBILE,
21354
21443
  nodePath
@@ -21357,7 +21446,7 @@ const Column = ({ nodePath }) => {
21357
21446
  }
21358
21447
  ));
21359
21448
  };
21360
- function AttributesContainer$2({
21449
+ function AttributesContainer$3({
21361
21450
  nodePath,
21362
21451
  mode
21363
21452
  }) {
@@ -21399,14 +21488,14 @@ const Wrapper$1 = ({ nodePath }) => {
21399
21488
  ResponsiveTabs,
21400
21489
  {
21401
21490
  desktop: /* @__PURE__ */ React__default.createElement(
21402
- AttributesContainer$1,
21491
+ AttributesContainer$2,
21403
21492
  {
21404
21493
  mode: ActiveTabKeys.DESKTOP,
21405
21494
  nodePath
21406
21495
  }
21407
21496
  ),
21408
21497
  mobile: /* @__PURE__ */ React__default.createElement(
21409
- AttributesContainer$1,
21498
+ AttributesContainer$2,
21410
21499
  {
21411
21500
  mode: ActiveTabKeys.MOBILE,
21412
21501
  nodePath
@@ -21415,7 +21504,7 @@ const Wrapper$1 = ({ nodePath }) => {
21415
21504
  }
21416
21505
  ));
21417
21506
  };
21418
- function AttributesContainer$1({
21507
+ function AttributesContainer$2({
21419
21508
  nodePath,
21420
21509
  mode
21421
21510
  }) {
@@ -21491,14 +21580,14 @@ const Widget = ({ nodePath }) => {
21491
21580
  ResponsiveTabs,
21492
21581
  {
21493
21582
  desktop: /* @__PURE__ */ React__default.createElement(
21494
- AttributesContainer,
21583
+ AttributesContainer$1,
21495
21584
  {
21496
21585
  mode: ActiveTabKeys.DESKTOP,
21497
21586
  nodePath
21498
21587
  }
21499
21588
  ),
21500
21589
  mobile: /* @__PURE__ */ React__default.createElement(
21501
- AttributesContainer,
21590
+ AttributesContainer$1,
21502
21591
  {
21503
21592
  mode: ActiveTabKeys.MOBILE,
21504
21593
  nodePath
@@ -21507,7 +21596,7 @@ const Widget = ({ nodePath }) => {
21507
21596
  }
21508
21597
  ));
21509
21598
  };
21510
- function AttributesContainer({
21599
+ function AttributesContainer$1({
21511
21600
  nodePath,
21512
21601
  mode
21513
21602
  }) {
@@ -21636,6 +21725,117 @@ const Code = ({ nodePath }) => {
21636
21725
  /* @__PURE__ */ React__default.createElement(Button$2, { type: "primary" }, "Edit")
21637
21726
  ))))));
21638
21727
  };
21728
+ const Blockquote = ({ nodePath }) => {
21729
+ return /* @__PURE__ */ React__default.createElement(AttributesPanelWrapper, null, /* @__PURE__ */ React__default.createElement(
21730
+ ResponsiveTabs,
21731
+ {
21732
+ desktop: /* @__PURE__ */ React__default.createElement(
21733
+ AttributesContainer,
21734
+ {
21735
+ mode: ActiveTabKeys.DESKTOP,
21736
+ nodePath
21737
+ }
21738
+ ),
21739
+ mobile: /* @__PURE__ */ React__default.createElement(
21740
+ AttributesContainer,
21741
+ {
21742
+ mode: ActiveTabKeys.MOBILE,
21743
+ nodePath
21744
+ }
21745
+ )
21746
+ }
21747
+ ));
21748
+ };
21749
+ function AttributesContainer({
21750
+ nodePath,
21751
+ mode
21752
+ }) {
21753
+ const { selectedNode } = useSelectedNode();
21754
+ if (!selectedNode)
21755
+ return null;
21756
+ return /* @__PURE__ */ React__default.createElement("div", null, /* @__PURE__ */ React__default.createElement(CollapseWrapper, { defaultActiveKey: ["0", "1", "2", "style"] }, /* @__PURE__ */ React__default.createElement(Collapse$1.Item, { name: "style", header: t("Style") }, /* @__PURE__ */ React__default.createElement(
21757
+ ResponsiveField,
21758
+ {
21759
+ component: AttributeField.SliderField,
21760
+ formItem: __spreadValues({}, pixelNumberAdapter),
21761
+ path: nodePath,
21762
+ name: "border-width",
21763
+ label: t("Border width"),
21764
+ showLimit: true,
21765
+ min: 1,
21766
+ max: 10
21767
+ }
21768
+ ), /* @__PURE__ */ React__default.createElement(
21769
+ ResponsiveField,
21770
+ {
21771
+ component: AttributeField.ColorPickerField,
21772
+ path: nodePath,
21773
+ name: "border-color",
21774
+ label: t("Border color")
21775
+ }
21776
+ )), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, { name: "0", header: t("Dimension") }, /* @__PURE__ */ React__default.createElement(
21777
+ ResponsiveField,
21778
+ {
21779
+ component: AttributeField.Padding,
21780
+ path: nodePath,
21781
+ name: ""
21782
+ }
21783
+ )), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, { name: "1", header: t("Typography") }, mode === ActiveTabKeys.DESKTOP && !NodeUtils.isTextListElement(selectedNode) && /* @__PURE__ */ React__default.createElement(
21784
+ AttributeField.Heading,
21785
+ {
21786
+ path: nodePath,
21787
+ formItem: {
21788
+ labelCol: { span: 8, style: { lineHeight: 1.15 } },
21789
+ wrapperCol: { span: 14, offset: 0 }
21790
+ }
21791
+ }
21792
+ ), /* @__PURE__ */ React__default.createElement(
21793
+ ResponsiveField,
21794
+ {
21795
+ mode,
21796
+ component: AttributeField.Typography,
21797
+ path: nodePath,
21798
+ name: "",
21799
+ type: selectedNode.type
21800
+ }
21801
+ )), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, { name: "2", header: t("Block") }, /* @__PURE__ */ React__default.createElement(
21802
+ ResponsiveField,
21803
+ {
21804
+ component: AttributeField.BackgroundColor,
21805
+ path: nodePath,
21806
+ name: "container-background-color"
21807
+ }
21808
+ ), /* @__PURE__ */ React__default.createElement(
21809
+ ResponsiveField,
21810
+ {
21811
+ component: AttributeField.TextAlign,
21812
+ path: nodePath,
21813
+ name: `align`
21814
+ }
21815
+ ))));
21816
+ }
21817
+ const Table = ({ nodePath }) => {
21818
+ const { selectedNode } = useSelectedNode();
21819
+ const { setFieldValue } = useEditorContext();
21820
+ const onChange = (val) => {
21821
+ setFieldValue(nodePath, "data.code", val);
21822
+ };
21823
+ return /* @__PURE__ */ React__default.createElement(AttributesPanelWrapper, null, /* @__PURE__ */ React__default.createElement(Grid.Row, { style: { paddingTop: 30 } }, /* @__PURE__ */ React__default.createElement(Grid.Col, { span: 22, offset: 1 }, /* @__PURE__ */ React__default.createElement(Space, { direction: "vertical", style: { width: "100%" } }, /* @__PURE__ */ React__default.createElement(
21824
+ Input.TextArea,
21825
+ {
21826
+ disabled: true,
21827
+ rows: 5,
21828
+ value: (selectedNode == null ? void 0 : selectedNode.data.code) || ""
21829
+ }
21830
+ ), /* @__PURE__ */ React__default.createElement(Grid.Row, { justify: "end" }, /* @__PURE__ */ React__default.createElement(
21831
+ HTMLEditor,
21832
+ {
21833
+ initialValue: (selectedNode == null ? void 0 : selectedNode.data.code) || "",
21834
+ onChange
21835
+ },
21836
+ /* @__PURE__ */ React__default.createElement(Button$2, { type: "primary" }, "Edit")
21837
+ ))))));
21838
+ };
21639
21839
  const ConfigPanelsMap = {
21640
21840
  [ElementType.PAGE]: Page$1,
21641
21841
  [ElementType.STANDARD_NAVBAR]: Navbar$1,
@@ -21659,7 +21859,9 @@ const ConfigPanelsMap = {
21659
21859
  [ElementType.STANDARD_H1]: Text$2,
21660
21860
  [ElementType.STANDARD_H2]: Text$2,
21661
21861
  [ElementType.STANDARD_H3]: Text$2,
21662
- [ElementType.STANDARD_H4]: Text$2
21862
+ [ElementType.STANDARD_H4]: Text$2,
21863
+ [ElementType.STANDARD_TABLE]: Table,
21864
+ [ElementType.STANDARD_BLOCK_QUOTE]: Blockquote
21663
21865
  };
21664
21866
  const AttributePanel = () => {
21665
21867
  const { selectedNode, selectedNodePath } = useSelectedNode();
@@ -27842,224 +28044,6 @@ const UniversalElementEditorDrawer = ({ children }) => {
27842
28044
  visible && children
27843
28045
  ));
27844
28046
  };
27845
- const DesktopEmailPreview = ({
27846
- html,
27847
- isActive
27848
- }) => {
27849
- const [ref2, setRef] = useState(null);
27850
- useEffect(() => {
27851
- var _a;
27852
- if (ref2 && ref2.contentWindow) {
27853
- (_a = ref2.contentWindow) == null ? void 0 : _a.postMessage({ type: "email-render", html }, "*");
27854
- }
27855
- }, [html, ref2, ref2 == null ? void 0 : ref2.contentWindow]);
27856
- const onLoad = (ev) => {
27857
- setRef(ev.target);
27858
- };
27859
- return useMemo$1(() => {
27860
- return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
27861
- IframeComponent,
27862
- {
27863
- style: {
27864
- width: "100%",
27865
- height: "calc(100%)",
27866
- position: ref2 ? "relative" : "absolute",
27867
- opacity: ref2 ? 1 : 0,
27868
- display: isActive ? "flex" : "none"
27869
- },
27870
- onLoad
27871
- },
27872
- /* @__PURE__ */ React__default.createElement(HtmlStringToReactNodes, { content: html })
27873
- ), !ref2 && /* @__PURE__ */ React__default.createElement("div", { style: { width: 600, margin: "30px auto" } }, /* @__PURE__ */ React__default.createElement(Space, { direction: "vertical", size: "large", style: { width: "100%" } }, /* @__PURE__ */ React__default.createElement(
27874
- Skeleton,
27875
- {
27876
- animation: true,
27877
- image: {
27878
- size: "large"
27879
- },
27880
- text: {
27881
- rows: 3
27882
- }
27883
- }
27884
- ), /* @__PURE__ */ React__default.createElement(
27885
- Skeleton,
27886
- {
27887
- animation: true,
27888
- text: {
27889
- rows: 3
27890
- }
27891
- }
27892
- ), /* @__PURE__ */ React__default.createElement(
27893
- Skeleton,
27894
- {
27895
- animation: true,
27896
- text: {
27897
- rows: 4
27898
- }
27899
- }
27900
- ), /* @__PURE__ */ React__default.createElement(
27901
- Skeleton,
27902
- {
27903
- animation: true,
27904
- text: {
27905
- rows: 5
27906
- }
27907
- }
27908
- ))));
27909
- }, [html, isActive, ref2]);
27910
- };
27911
- const iphoneFrame = "data:image/png;base64,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ggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAeAApBDwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBAB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";
27912
- const MOBILE_WIDTH = 375;
27913
- const MOBILE_Height = 750;
27914
- const MobilePreview = ({
27915
- html,
27916
- isActive
27917
- }) => {
27918
- const [ref2, setRef] = useState(null);
27919
- const onLoad = (ev) => {
27920
- setRef(ev.target);
27921
- };
27922
- return useMemo$1(() => {
27923
- return /* @__PURE__ */ React__default.createElement(
27924
- "div",
27925
- {
27926
- style: {
27927
- height: "100%",
27928
- display: isActive ? "flex" : "none",
27929
- alignItems: "center",
27930
- justifyContent: "center",
27931
- overflow: "auto",
27932
- padding: "10px 0px",
27933
- boxSizing: "border-box"
27934
- }
27935
- },
27936
- /* @__PURE__ */ React__default.createElement(
27937
- "div",
27938
- {
27939
- style: {
27940
- position: "relative",
27941
- margin: "auto",
27942
- padding: "6px 6.8px 2px 6.8px",
27943
- boxSizing: "border-box"
27944
- }
27945
- },
27946
- /* @__PURE__ */ React__default.createElement(
27947
- "div",
27948
- {
27949
- style: {
27950
- left: 0,
27951
- top: 0,
27952
- width: "100%",
27953
- height: "100%",
27954
- position: "absolute",
27955
- padding: "6px 6.8px 2px 6.8px",
27956
- boxSizing: "border-box",
27957
- backgroundImage: `url(${iphoneFrame})`,
27958
- backgroundSize: "100% 100%",
27959
- zIndex: 10,
27960
- pointerEvents: "none"
27961
- }
27962
- }
27963
- ),
27964
- /* @__PURE__ */ React__default.createElement(
27965
- "div",
27966
- {
27967
- style: {
27968
- width: MOBILE_WIDTH,
27969
- height: MOBILE_Height
27970
- }
27971
- },
27972
- /* @__PURE__ */ React__default.createElement(
27973
- "div",
27974
- {
27975
- style: {
27976
- height: MOBILE_Height,
27977
- width: MOBILE_WIDTH,
27978
- boxSizing: "content-box",
27979
- borderRadius: 30,
27980
- border: "none",
27981
- overflow: "hidden",
27982
- position: "relative"
27983
- }
27984
- },
27985
- !ref2 && /* @__PURE__ */ React__default.createElement("div", { style: { width: 600, margin: "30px auto" } }, /* @__PURE__ */ React__default.createElement(
27986
- Space,
27987
- {
27988
- direction: "vertical",
27989
- size: "large",
27990
- style: { width: "100%" }
27991
- },
27992
- /* @__PURE__ */ React__default.createElement(
27993
- Skeleton,
27994
- {
27995
- animation: true,
27996
- image: {
27997
- size: "large"
27998
- },
27999
- text: {
28000
- rows: 3
28001
- }
28002
- }
28003
- ),
28004
- /* @__PURE__ */ React__default.createElement(
28005
- Skeleton,
28006
- {
28007
- animation: true,
28008
- text: {
28009
- rows: 3
28010
- }
28011
- }
28012
- ),
28013
- /* @__PURE__ */ React__default.createElement(
28014
- Skeleton,
28015
- {
28016
- animation: true,
28017
- text: {
28018
- rows: 4
28019
- }
28020
- }
28021
- ),
28022
- /* @__PURE__ */ React__default.createElement(
28023
- Skeleton,
28024
- {
28025
- animation: true,
28026
- text: {
28027
- rows: 5
28028
- }
28029
- }
28030
- )
28031
- )),
28032
- /* @__PURE__ */ React__default.createElement(
28033
- IframeComponent,
28034
- {
28035
- onLoad,
28036
- style: {
28037
- width: "100%",
28038
- height: "calc(100%)",
28039
- position: ref2 ? "relative" : "absolute",
28040
- opacity: ref2 ? 1 : 0
28041
- }
28042
- },
28043
- /* @__PURE__ */ React__default.createElement(HtmlStringToReactNodes, { content: html }),
28044
- /* @__PURE__ */ React__default.createElement("style", null, `.mjbody {
28045
- height: 100vh;
28046
- }
28047
- *::-webkit-scrollbar {
28048
- -webkit-appearance: none;
28049
- width: 0px;
28050
- }
28051
- *::-webkit-scrollbar-thumb {
28052
- background-color: rgba(0, 0, 0, 0.5);
28053
- box-shadow: 0 0 1px rgba(255, 255, 255, 0.5);
28054
- -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, 0.5);
28055
- }`)
28056
- )
28057
- )
28058
- )
28059
- )
28060
- );
28061
- }, [html, isActive, ref2]);
28062
- };
28063
28047
  const PreviewEmail = ({
28064
28048
  isDesktop,
28065
28049
  universalElementSetting,
@@ -28092,7 +28076,13 @@ const PreviewEmail = ({
28092
28076
  return finalHtml;
28093
28077
  }, [mergetagsData, mjmlString]);
28094
28078
  return useMemo$1(() => {
28095
- return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(MobilePreview, { html, isActive: !isDesktop }), /* @__PURE__ */ React__default.createElement(DesktopEmailPreview, { html, isActive: isDesktop }));
28079
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(SharedComponents.MobilePreview, { html, isActive: !isDesktop }), /* @__PURE__ */ React__default.createElement(
28080
+ SharedComponents.DesktopEmailPreview,
28081
+ {
28082
+ html,
28083
+ isActive: isDesktop
28084
+ }
28085
+ ));
28096
28086
  }, [html, isDesktop]);
28097
28087
  };
28098
28088
  const VariablesEditorContent = React__default.lazy(
@@ -42486,6 +42476,224 @@ const ConfigurationToolbar = () => {
42486
42476
  return /* @__PURE__ */ React__default.createElement(Com, { nodePath, key: selectedNode.type + nodePath.toString() });
42487
42477
  }, [nodePath, selectedNode]);
42488
42478
  };
42479
+ const DesktopEmailPreview = ({
42480
+ html,
42481
+ isActive
42482
+ }) => {
42483
+ const [ref2, setRef] = useState(null);
42484
+ useEffect(() => {
42485
+ var _a;
42486
+ if (ref2 && ref2.contentWindow) {
42487
+ (_a = ref2.contentWindow) == null ? void 0 : _a.postMessage({ type: "email-render", html }, "*");
42488
+ }
42489
+ }, [html, ref2, ref2 == null ? void 0 : ref2.contentWindow]);
42490
+ const onLoad = (ev) => {
42491
+ setRef(ev.target);
42492
+ };
42493
+ return useMemo$1(() => {
42494
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
42495
+ IframeComponent,
42496
+ {
42497
+ style: {
42498
+ width: "100%",
42499
+ height: "calc(100%)",
42500
+ position: ref2 ? "relative" : "absolute",
42501
+ opacity: ref2 ? 1 : 0,
42502
+ display: isActive ? "flex" : "none"
42503
+ },
42504
+ onLoad
42505
+ },
42506
+ /* @__PURE__ */ React__default.createElement(HtmlStringToReactNodes, { content: html })
42507
+ ), !ref2 && /* @__PURE__ */ React__default.createElement("div", { style: { width: 600, margin: "30px auto" } }, /* @__PURE__ */ React__default.createElement(Space, { direction: "vertical", size: "large", style: { width: "100%" } }, /* @__PURE__ */ React__default.createElement(
42508
+ Skeleton,
42509
+ {
42510
+ animation: true,
42511
+ image: {
42512
+ size: "large"
42513
+ },
42514
+ text: {
42515
+ rows: 3
42516
+ }
42517
+ }
42518
+ ), /* @__PURE__ */ React__default.createElement(
42519
+ Skeleton,
42520
+ {
42521
+ animation: true,
42522
+ text: {
42523
+ rows: 3
42524
+ }
42525
+ }
42526
+ ), /* @__PURE__ */ React__default.createElement(
42527
+ Skeleton,
42528
+ {
42529
+ animation: true,
42530
+ text: {
42531
+ rows: 4
42532
+ }
42533
+ }
42534
+ ), /* @__PURE__ */ React__default.createElement(
42535
+ Skeleton,
42536
+ {
42537
+ animation: true,
42538
+ text: {
42539
+ rows: 5
42540
+ }
42541
+ }
42542
+ ))));
42543
+ }, [html, isActive, ref2]);
42544
+ };
42545
+ const iphoneFrame = "data:image/png;base64,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ggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAcAgCACHgAAggh4AAAIIuABACCIgAeAApBDwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBABDwAAQQQ8AAAEEfAAABBEwAMAQBAB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";
42546
+ const MOBILE_WIDTH = 375;
42547
+ const MOBILE_Height = 750;
42548
+ const MobilePreview = ({
42549
+ html,
42550
+ isActive
42551
+ }) => {
42552
+ const [ref2, setRef] = useState(null);
42553
+ const onLoad = (ev) => {
42554
+ setRef(ev.target);
42555
+ };
42556
+ return useMemo$1(() => {
42557
+ return /* @__PURE__ */ React__default.createElement(
42558
+ "div",
42559
+ {
42560
+ style: {
42561
+ height: "100%",
42562
+ display: isActive ? "flex" : "none",
42563
+ alignItems: "center",
42564
+ justifyContent: "center",
42565
+ overflow: "auto",
42566
+ padding: "10px 0px",
42567
+ boxSizing: "border-box"
42568
+ }
42569
+ },
42570
+ /* @__PURE__ */ React__default.createElement(
42571
+ "div",
42572
+ {
42573
+ style: {
42574
+ position: "relative",
42575
+ margin: "auto",
42576
+ padding: "6px 6.8px 2px 6.8px",
42577
+ boxSizing: "border-box"
42578
+ }
42579
+ },
42580
+ /* @__PURE__ */ React__default.createElement(
42581
+ "div",
42582
+ {
42583
+ style: {
42584
+ left: 0,
42585
+ top: 0,
42586
+ width: "100%",
42587
+ height: "100%",
42588
+ position: "absolute",
42589
+ padding: "6px 6.8px 2px 6.8px",
42590
+ boxSizing: "border-box",
42591
+ backgroundImage: `url(${iphoneFrame})`,
42592
+ backgroundSize: "100% 100%",
42593
+ zIndex: 10,
42594
+ pointerEvents: "none"
42595
+ }
42596
+ }
42597
+ ),
42598
+ /* @__PURE__ */ React__default.createElement(
42599
+ "div",
42600
+ {
42601
+ style: {
42602
+ width: MOBILE_WIDTH,
42603
+ height: MOBILE_Height
42604
+ }
42605
+ },
42606
+ /* @__PURE__ */ React__default.createElement(
42607
+ "div",
42608
+ {
42609
+ style: {
42610
+ height: MOBILE_Height,
42611
+ width: MOBILE_WIDTH,
42612
+ boxSizing: "content-box",
42613
+ borderRadius: 30,
42614
+ border: "none",
42615
+ overflow: "hidden",
42616
+ position: "relative"
42617
+ }
42618
+ },
42619
+ !ref2 && /* @__PURE__ */ React__default.createElement("div", { style: { width: 600, margin: "30px auto" } }, /* @__PURE__ */ React__default.createElement(
42620
+ Space,
42621
+ {
42622
+ direction: "vertical",
42623
+ size: "large",
42624
+ style: { width: "100%" }
42625
+ },
42626
+ /* @__PURE__ */ React__default.createElement(
42627
+ Skeleton,
42628
+ {
42629
+ animation: true,
42630
+ image: {
42631
+ size: "large"
42632
+ },
42633
+ text: {
42634
+ rows: 3
42635
+ }
42636
+ }
42637
+ ),
42638
+ /* @__PURE__ */ React__default.createElement(
42639
+ Skeleton,
42640
+ {
42641
+ animation: true,
42642
+ text: {
42643
+ rows: 3
42644
+ }
42645
+ }
42646
+ ),
42647
+ /* @__PURE__ */ React__default.createElement(
42648
+ Skeleton,
42649
+ {
42650
+ animation: true,
42651
+ text: {
42652
+ rows: 4
42653
+ }
42654
+ }
42655
+ ),
42656
+ /* @__PURE__ */ React__default.createElement(
42657
+ Skeleton,
42658
+ {
42659
+ animation: true,
42660
+ text: {
42661
+ rows: 5
42662
+ }
42663
+ }
42664
+ )
42665
+ )),
42666
+ /* @__PURE__ */ React__default.createElement(
42667
+ IframeComponent,
42668
+ {
42669
+ onLoad,
42670
+ style: {
42671
+ width: "100%",
42672
+ height: "calc(100%)",
42673
+ position: ref2 ? "relative" : "absolute",
42674
+ opacity: ref2 ? 1 : 0
42675
+ }
42676
+ },
42677
+ /* @__PURE__ */ React__default.createElement(HtmlStringToReactNodes, { content: html }),
42678
+ /* @__PURE__ */ React__default.createElement("style", null, `.mjbody {
42679
+ height: 100vh;
42680
+ }
42681
+ *::-webkit-scrollbar {
42682
+ -webkit-appearance: none;
42683
+ width: 0px;
42684
+ }
42685
+ *::-webkit-scrollbar-thumb {
42686
+ background-color: rgba(0, 0, 0, 0.5);
42687
+ box-shadow: 0 0 1px rgba(255, 255, 255, 0.5);
42688
+ -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, 0.5);
42689
+ }`)
42690
+ )
42691
+ )
42692
+ )
42693
+ )
42694
+ );
42695
+ }, [html, isActive, ref2]);
42696
+ };
42489
42697
  const SharedComponents = {
42490
42698
  PreviewEmailDrawer,
42491
42699
  PreviewEmail,
@@ -42510,6 +42718,8 @@ const SharedComponents = {
42510
42718
  UniversalList,
42511
42719
  MergeTagComponent,
42512
42720
  ImageAction,
42721
+ DesktopEmailPreview,
42722
+ MobilePreview,
42513
42723
  MinimalistEditorTopBar: EditorTopBar,
42514
42724
  ConfigurationToolbar
42515
42725
  };
@@ -43239,7 +43449,7 @@ const minimaliststyleText = `[data-slate-block=page] {
43239
43449
  position: relative;
43240
43450
  }
43241
43451
 
43242
- [data-slate-block=text] [data-slate-node=text] .text-empty::before {
43452
+ [data-slate-block=text] [data-slate-node=text] .text-empty-focus::before {
43243
43453
  content: "Type '/' for commands";
43244
43454
  position: absolute;
43245
43455
  font-size: 14px;
@@ -43252,12 +43462,12 @@ const minimaliststyleText = `[data-slate-block=page] {
43252
43462
  font-weight: normal;
43253
43463
  }
43254
43464
 
43255
- [data-text-align=left] .text-empty::before {
43465
+ [data-text-align=left] .text-empty-focus::before {
43256
43466
  left: 0;
43257
43467
  text-align: left;
43258
43468
  }
43259
43469
 
43260
- [data-text-align=right] .text-empty::before {
43470
+ [data-text-align=right] .text-empty-focus::before {
43261
43471
  right: 0;
43262
43472
  text-align: right;
43263
43473
  }
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { Path } from "slate";
3
+ export declare const Blockquote: ({ nodePath }: {
4
+ nodePath: Path;
5
+ }) => React.JSX.Element;
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { Path } from "slate";
3
+ export declare const Table: ({ nodePath }: {
4
+ nodePath: Path;
5
+ }) => React.JSX.Element;
@@ -88,6 +88,14 @@ export declare const SharedComponents: {
88
88
  isSelected: boolean;
89
89
  nodeElement: HTMLElement;
90
90
  }>;
91
+ DesktopEmailPreview: ({ html, isActive, }: {
92
+ html: string;
93
+ isActive: boolean;
94
+ }) => import("react").JSX.Element;
95
+ MobilePreview: ({ html, isActive, }: {
96
+ html: string;
97
+ isActive: boolean;
98
+ }) => import("react").JSX.Element;
91
99
  MinimalistEditorTopBar: () => import("react").JSX.Element;
92
100
  ConfigurationToolbar: () => import("react").JSX.Element | null;
93
101
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easy-email-pro-theme",
3
- "version": "1.23.1",
3
+ "version": "1.24.0",
4
4
  "description": "",
5
5
  "files": [
6
6
  "lib"