easy-email-pro-theme 1.51.0 → 1.51.1

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
@@ -677,7 +677,7 @@ const withTheme$1 = (editor) => {
677
677
  };
678
678
  return editor;
679
679
  };
680
- const styleText$g = "[data-slate-hide-cursor=true][data-slate-hover=true] {\n cursor: none;\n}\n[data-slate-hide-cursor=true][data-slate-hover=true]:hover {\n outline: none !important;\n}\n\n[data-slate-hide-cursor=true] [data-slate-hover=true] .element-tools-container {\n opacity: 0;\n}\n\n.element-tools-container {\n position: absolute;\n font-size: 14px;\n left: 0px;\n top: 0px;\n width: 100%;\n height: 100%;\n outline-offset: -2px;\n outline: 2px solid transparent;\n outline-offset: -2px;\n pointer-events: none;\n}\n\n.element-tools {\n pointer-events: auto;\n position: absolute;\n top: 0;\n left: 0;\n transform: translate(0, -100%);\n display: flex;\n align-items: center;\n font-size: 14px !important;\n height: 22px;\n padding: 1px 5px;\n line-height: 22px;\n font-weight: normal !important;\n font-style: normal !important;\n}\n.element-tools .element-tools-item {\n font-size: 12px !important;\n line-height: 20px;\n width: 25px;\n display: flex;\n pointer-events: auto;\n cursor: pointer;\n justify-content: center;\n}\n\n.element-tools-move-handle {\n position: absolute;\n right: 0;\n top: 50%;\n transform: translate(50%, -50%);\n width: 35px;\n height: 35px;\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n cursor: grab;\n}\n\n.element-tools-bottom {\n top: 100%;\n transform: translate(0, 0);\n}\n\n.element-drag-button {\n pointer-events: auto;\n position: absolute;\n z-index: 4;\n top: 50%;\n right: 0%;\n color: #fff;\n color: rgb(255, 255, 255);\n height: 28px;\n width: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n transform: translate(50%, -50%);\n border-radius: 50%;\n cursor: grab;\n}\n.element-drag-button .iconfont {\n cursor: grab !important;\n}";
680
+ const styleText$g = "[data-slate-hide-cursor=true][data-slate-hover=true] {\n cursor: none;\n}\n[data-slate-hide-cursor=true][data-slate-hover=true]:hover {\n outline: none !important;\n}\n\n[data-slate-hide-cursor=true] [data-slate-hover=true] .element-tools-container {\n opacity: 0;\n}\n\n.element-tools-container {\n position: absolute;\n font-size: 14px;\n left: 0px;\n top: 0px;\n width: 100%;\n height: 100%;\n outline-offset: -2px;\n outline: 2px solid transparent;\n outline-offset: -2px;\n pointer-events: none;\n}\n\n.element-tools {\n pointer-events: auto;\n position: absolute;\n top: 0;\n left: 0;\n transform: translate(0, -100%);\n display: flex;\n flex-wrap: nowrap;\n white-space: nowrap;\n align-items: center;\n font-size: 14px !important;\n height: 22px;\n padding: 1px 5px;\n line-height: 22px;\n font-weight: normal !important;\n font-style: normal !important;\n}\n.element-tools .element-tools-item {\n font-size: 12px !important;\n line-height: 20px;\n width: 25px;\n display: flex;\n pointer-events: auto;\n cursor: pointer;\n justify-content: center;\n}\n\n.element-tools-move-handle {\n position: absolute;\n right: 0;\n top: 50%;\n transform: translate(50%, -50%);\n width: 35px;\n height: 35px;\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n cursor: grab;\n}\n\n.element-tools-bottom {\n top: 100%;\n transform: translate(0, 0);\n}\n\n.element-drag-button {\n pointer-events: auto;\n position: absolute;\n z-index: 4;\n top: 50%;\n right: 0%;\n color: #fff;\n color: rgb(255, 255, 255);\n height: 28px;\n width: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n transform: translate(50%, -50%);\n border-radius: 50%;\n cursor: grab;\n}\n.element-drag-button .iconfont {\n cursor: grab !important;\n}";
681
681
  function IconFont(props) {
682
682
  var _a;
683
683
  return /* @__PURE__ */ React__default.createElement(
@@ -2487,7 +2487,7 @@ function BlockItem({
2487
2487
  ));
2488
2488
  }
2489
2489
  const index$d = "";
2490
- const LayoutItem = ({
2490
+ const SectionLayout = ({
2491
2491
  columns,
2492
2492
  title
2493
2493
  }) => {
@@ -2543,6 +2543,99 @@ const ColumnElement = ({ column: column2 }) => {
2543
2543
  );
2544
2544
  }))));
2545
2545
  };
2546
+ const WrapperLayout = ({
2547
+ variants,
2548
+ title
2549
+ }) => {
2550
+ return /* @__PURE__ */ React__default.createElement(Collapse.Item, { contentStyle: { padding: 10 }, header: title, name: title }, /* @__PURE__ */ React__default.createElement("div", { className: "LayoutWrapperItemList" }, variants.map((block, index2) => {
2551
+ return /* @__PURE__ */ React__default.createElement("div", { key: index2 }, /* @__PURE__ */ React__default.createElement(
2552
+ "div",
2553
+ {
2554
+ key: index2,
2555
+ style: {
2556
+ marginBottom: index2 === variants.length - 1 ? 0 : 10
2557
+ }
2558
+ },
2559
+ /* @__PURE__ */ React__default.createElement(SectionElement, { sections: block.sections })
2560
+ ));
2561
+ })));
2562
+ };
2563
+ const SectionElement = ({
2564
+ sections
2565
+ }) => {
2566
+ const isMultipleSections = sections.length > 1;
2567
+ const element = useMemo(() => {
2568
+ if (isMultipleSections) {
2569
+ const wrapperBlock = BlockManager.getBlockByType(
2570
+ ElementType.STANDARD_WRAPPER
2571
+ );
2572
+ return wrapperBlock.create({
2573
+ attributes: {
2574
+ "background-repeat": "no-repeat"
2575
+ },
2576
+ children: sections.map((section) => ({
2577
+ type: StandardType.STANDARD_SECTION,
2578
+ attributes: {},
2579
+ data: {},
2580
+ children: section.columns.map((column2) => ({
2581
+ type: StandardType.STANDARD_COLUMN,
2582
+ attributes: {
2583
+ width: column2
2584
+ },
2585
+ data: {},
2586
+ children: []
2587
+ }))
2588
+ }))
2589
+ });
2590
+ } else {
2591
+ const sectionBlock = BlockManager.getBlockByType(
2592
+ ElementType.STANDARD_SECTION
2593
+ );
2594
+ return sectionBlock.create({
2595
+ attributes: {},
2596
+ data: {},
2597
+ children: sections[0].columns.map((column2) => ({
2598
+ type: StandardType.STANDARD_COLUMN,
2599
+ attributes: {
2600
+ width: column2
2601
+ },
2602
+ data: {},
2603
+ children: []
2604
+ }))
2605
+ });
2606
+ }
2607
+ }, [isMultipleSections, sections]);
2608
+ const { dragHandle } = useDragging({
2609
+ element,
2610
+ nodeElement: null,
2611
+ action: "copy",
2612
+ cloneGhost: false
2613
+ });
2614
+ return /* @__PURE__ */ React__default.createElement("div", __spreadValues({ className: classnames$1("LayoutWrapperItem") }, dragHandle), sections.map((section, index2) => {
2615
+ return /* @__PURE__ */ React__default.createElement(
2616
+ "div",
2617
+ {
2618
+ key: index2,
2619
+ style: { paddingTop: isMultipleSections && index2 === 0 ? 10 : 0 }
2620
+ },
2621
+ isMultipleSections && /* @__PURE__ */ React__default.createElement("div", { className: "LayoutWrapperItemRowTitle" }, "Row ", index2 + 1),
2622
+ /* @__PURE__ */ React__default.createElement("div", null, /* @__PURE__ */ React__default.createElement("div", { className: "LayoutItemOuter" }, /* @__PURE__ */ React__default.createElement("div", { className: "LayoutItemInner" }, section.columns.map((width, index22) => {
2623
+ return /* @__PURE__ */ React__default.createElement(
2624
+ "div",
2625
+ {
2626
+ className: classnames$1("LayoutItemInnerPart"),
2627
+ key: index22,
2628
+ style: {
2629
+ width,
2630
+ borderRight: index22 === section.columns.length - 1 ? "none" : void 0
2631
+ }
2632
+ },
2633
+ width
2634
+ );
2635
+ }))))
2636
+ );
2637
+ }));
2638
+ };
2546
2639
  const index$c = "";
2547
2640
  const defaultCategories = [
2548
2641
  {
@@ -2739,7 +2832,7 @@ const DefaultBlockList = () => {
2739
2832
  id: "BlockSideBar-BlockList"
2740
2833
  },
2741
2834
  /* @__PURE__ */ React__default.createElement(Collapse, { defaultActiveKey }, categories.map((category2, index2) => {
2742
- var _a;
2835
+ var _a, _b;
2743
2836
  if (category2.displayType === "grid") {
2744
2837
  return /* @__PURE__ */ React__default.createElement(
2745
2838
  Collapse.Item,
@@ -2784,7 +2877,7 @@ const DefaultBlockList = () => {
2784
2877
  defaultActiveKey: [((_a = category2.blocks[0]) == null ? void 0 : _a.title) || ""]
2785
2878
  },
2786
2879
  category2.blocks.map((item2) => /* @__PURE__ */ React__default.createElement(
2787
- LayoutItem,
2880
+ SectionLayout,
2788
2881
  {
2789
2882
  key: item2.title,
2790
2883
  title: item2.title || "",
@@ -2795,6 +2888,39 @@ const DefaultBlockList = () => {
2795
2888
  /* @__PURE__ */ React__default.createElement(Space, { direction: "vertical" }, /* @__PURE__ */ React__default.createElement("div", null))
2796
2889
  );
2797
2890
  }
2891
+ if (category2.displayType === "section" && !universalElementEditing) {
2892
+ if (standaloneElementEditing && initialStandaloneElement && !NodeUtils.isParentCategoryType(
2893
+ ElementType.SECTION,
2894
+ initialStandaloneElement.type
2895
+ )) {
2896
+ return null;
2897
+ }
2898
+ return /* @__PURE__ */ React__default.createElement(
2899
+ Collapse.Item,
2900
+ {
2901
+ key: index2,
2902
+ contentStyle: { padding: "0px 20px" },
2903
+ name: index2.toString(),
2904
+ header: category2.label
2905
+ },
2906
+ /* @__PURE__ */ React__default.createElement(Space, { direction: "vertical" }, /* @__PURE__ */ React__default.createElement("div", null)),
2907
+ /* @__PURE__ */ React__default.createElement(
2908
+ Collapse,
2909
+ {
2910
+ defaultActiveKey: [((_b = category2.blocks[0]) == null ? void 0 : _b.title) || ""]
2911
+ },
2912
+ category2.blocks.map((item2, index22) => /* @__PURE__ */ React__default.createElement(
2913
+ WrapperLayout,
2914
+ {
2915
+ key: index22,
2916
+ title: item2.title || "",
2917
+ variants: item2.variants
2918
+ }
2919
+ ))
2920
+ ),
2921
+ /* @__PURE__ */ React__default.createElement(Space, { direction: "vertical" }, /* @__PURE__ */ React__default.createElement("div", null))
2922
+ );
2923
+ }
2798
2924
  if (category2.displayType === "custom" && !universalElementEditing && !standaloneElementEditing) {
2799
2925
  return /* @__PURE__ */ React__default.createElement(
2800
2926
  Collapse.Item,
@@ -2829,16 +2955,26 @@ const BlocksPanel = () => {
2829
2955
  return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, !universalElementEditing && universalElementSetting && /* @__PURE__ */ React__default.createElement("div", { style: { padding: 24 } }, /* @__PURE__ */ React__default.createElement(Button$2.Group, { style: { width: "100%" } }, /* @__PURE__ */ React__default.createElement(
2830
2956
  Button$2,
2831
2957
  {
2832
- type: tab === "Default" ? "outline" : void 0,
2833
- style: { width: "50%" },
2958
+ type: "outline",
2959
+ style: {
2960
+ width: "50%",
2961
+ borderColor: tab === "Default" ? void 0 : "#000",
2962
+ color: tab === "Default" ? void 0 : "#000",
2963
+ borderRightColor: tab === "Default" ? void 0 : "transparent"
2964
+ },
2834
2965
  onClick: () => setTab("Default")
2835
2966
  },
2836
2967
  /* @__PURE__ */ React__default.createElement(Space, null, t("Default"))
2837
2968
  ), /* @__PURE__ */ React__default.createElement(
2838
2969
  Button$2,
2839
2970
  {
2840
- type: tab === "Universal" ? "outline" : void 0,
2841
- style: { width: "50%" },
2971
+ type: "outline",
2972
+ style: {
2973
+ width: "50%",
2974
+ borderColor: tab !== "Default" ? void 0 : "#000",
2975
+ color: tab !== "Default" ? void 0 : "#000",
2976
+ borderLeftColor: tab !== "Default" ? void 0 : "transparent"
2977
+ },
2842
2978
  onClick: () => setTab("Universal")
2843
2979
  },
2844
2980
  /* @__PURE__ */ React__default.createElement(Space, null, t("Universal"))
@@ -7919,16 +8055,28 @@ const TabHeader = (props) => {
7919
8055
  /* @__PURE__ */ React__default.createElement("div", { style: { textAlign: "center" } }, /* @__PURE__ */ React__default.createElement(Button$2.Group, null, /* @__PURE__ */ React__default.createElement(
7920
8056
  Button$2,
7921
8057
  {
7922
- style: { paddingLeft: grid, paddingRight: grid },
7923
- type: !isMobileActive ? "outline" : "secondary",
8058
+ style: {
8059
+ paddingLeft: grid,
8060
+ paddingRight: grid,
8061
+ borderColor: !isMobileActive ? void 0 : "#000",
8062
+ color: !isMobileActive ? void 0 : "#000",
8063
+ borderRightColor: !isMobileActive ? void 0 : "transparent"
8064
+ },
8065
+ type: "outline",
7924
8066
  onClick: () => onChangeTab(ActiveTabKeys.DESKTOP)
7925
8067
  },
7926
8068
  /* @__PURE__ */ React__default.createElement(Space, null, /* @__PURE__ */ React__default.createElement(IconFont, { iconName: "icon-desktop" }), " ", t("desktop"))
7927
8069
  ), /* @__PURE__ */ React__default.createElement(
7928
8070
  Button$2,
7929
8071
  {
7930
- style: { paddingLeft: grid, paddingRight: grid },
7931
- type: isMobileActive ? "outline" : "secondary",
8072
+ style: {
8073
+ paddingLeft: grid,
8074
+ paddingRight: grid,
8075
+ borderColor: isMobileActive ? void 0 : "#000",
8076
+ color: isMobileActive ? void 0 : "#000",
8077
+ borderLeftColor: isMobileActive ? void 0 : "transparent"
8078
+ },
8079
+ type: "outline",
7932
8080
  onClick: () => onChangeTab(ActiveTabKeys.MOBILE)
7933
8081
  },
7934
8082
  /* @__PURE__ */ React__default.createElement(Space, null, /* @__PURE__ */ React__default.createElement(IconFont, { iconName: "icon-mobile" }), " ", t("mobile"))
@@ -25019,15 +25167,25 @@ const DefaultButton = (props) => {
25019
25167
  const ButtonField = enhancer(DefaultButton);
25020
25168
  const DefaultButtonGroup = (props) => {
25021
25169
  const _a = props, { options: options2, value, onChange } = _a, rest = __objRest(_a, ["options", "value", "onChange"]);
25022
- return /* @__PURE__ */ React__default.createElement(Space, { direction: "vertical" }, /* @__PURE__ */ React__default.createElement(Grid.Row, { justify: "center" }, /* @__PURE__ */ React__default.createElement(
25170
+ return /* @__PURE__ */ React__default.createElement(Grid.Row, { justify: "center" }, /* @__PURE__ */ React__default.createElement(
25023
25171
  Radio.Group,
25024
- __spreadProps(__spreadValues({}, rest), {
25172
+ __spreadProps(__spreadValues({
25173
+ style: { width: "100%", display: "flex" }
25174
+ }, rest), {
25025
25175
  value,
25026
25176
  type: "button",
25027
- options: options2,
25028
25177
  onChange
25029
- })
25030
- )));
25178
+ }),
25179
+ options2.map((option) => /* @__PURE__ */ React__default.createElement(
25180
+ Radio,
25181
+ {
25182
+ style: { width: `${(100 / options2.length).toFixed(2)}%` },
25183
+ key: option.value,
25184
+ value: option.value
25185
+ },
25186
+ /* @__PURE__ */ React__default.createElement("div", { style: { width: "100%", textAlign: "center" } }, option.label)
25187
+ ))
25188
+ ));
25031
25189
  };
25032
25190
  const ButtonGroupField = enhancer(DefaultButtonGroup);
25033
25191
  var colorString$1 = { exports: {} };
@@ -26719,7 +26877,7 @@ const ColorPickerContainer = (props) => {
26719
26877
  title: "",
26720
26878
  trigger: "click"
26721
26879
  }, props), {
26722
- className: "color-picker-popup",
26880
+ className: "easy-email-pro-theme-color-picker-popup",
26723
26881
  content: /* @__PURE__ */ React__default.createElement(
26724
26882
  ColorPickerContent,
26725
26883
  {
@@ -26732,6 +26890,7 @@ const ColorPickerContainer = (props) => {
26732
26890
  children || /* @__PURE__ */ React__default.createElement(
26733
26891
  "div",
26734
26892
  {
26893
+ className: "easy-email-pro-theme-color-picker-trigger",
26735
26894
  style: {
26736
26895
  display: "inline-block",
26737
26896
  height: 32,
@@ -26784,6 +26943,7 @@ const ColorPickerContainer = (props) => {
26784
26943
  ), showInput && /* @__PURE__ */ React__default.createElement(
26785
26944
  Input,
26786
26945
  {
26946
+ className: "easy-email-pro-theme-color-picker-input",
26787
26947
  prefix: !isPageVarMatch && !isTemplateVarMatch && !value.includes("rgb") ? "#" : "",
26788
26948
  value: inputColor,
26789
26949
  style: { outline: "none", flex: 1 },
@@ -30538,19 +30698,19 @@ const options$3 = [
30538
30698
  {
30539
30699
  value: "top",
30540
30700
  get label() {
30541
- return t("top");
30701
+ return t("Top");
30542
30702
  }
30543
30703
  },
30544
30704
  {
30545
30705
  value: "middle",
30546
30706
  get label() {
30547
- return t("middle");
30707
+ return t("Middle");
30548
30708
  }
30549
30709
  },
30550
30710
  {
30551
30711
  value: "bottom",
30552
30712
  get label() {
30553
- return t("bottom");
30713
+ return t("Bottom");
30554
30714
  }
30555
30715
  }
30556
30716
  ];
@@ -30655,41 +30815,56 @@ function PixelAndPercentField(props) {
30655
30815
  return val + unit;
30656
30816
  }
30657
30817
  };
30658
- return /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, { span: 16, style: { textAlign: "right" } }, /* @__PURE__ */ React__default.createElement(
30659
- AttributeField.NumberField,
30660
- __spreadProps(__spreadValues({}, rest), {
30661
- label,
30662
- formItem: __spreadValues(__spreadProps(__spreadValues({}, adapter), {
30663
- disabled: props.disabled,
30664
- labelCol: {
30665
- span: 10,
30666
- offset: 2
30667
- },
30668
- wrapperCol: {
30669
- span: 12
30670
- }
30671
- }), props.formItem)
30672
- })
30673
- )), /* @__PURE__ */ React__default.createElement(Grid.Col, { span: 6 }, /* @__PURE__ */ React__default.createElement(
30674
- Form.Item,
30818
+ return /* @__PURE__ */ React__default.createElement(Grid.Row, { className: "easy-email-pro-theme-PixelAndPercentField" }, /* @__PURE__ */ React__default.createElement(
30819
+ Grid.Col,
30675
30820
  {
30676
- labelCol: {
30677
- span: 0,
30678
- style: { lineHeight: 1.15 }
30679
- },
30680
- wrapperCol: { span: 24 }
30821
+ className: "easy-email-pro-theme-PixelAndPercentField-number",
30822
+ span: 16,
30823
+ style: { textAlign: "right" }
30681
30824
  },
30682
30825
  /* @__PURE__ */ React__default.createElement(
30683
- Select$1,
30826
+ AttributeField.NumberField,
30827
+ __spreadProps(__spreadValues({}, rest), {
30828
+ label,
30829
+ formItem: __spreadValues(__spreadProps(__spreadValues({}, adapter), {
30830
+ disabled: props.disabled,
30831
+ labelCol: {
30832
+ span: 10,
30833
+ offset: 2
30834
+ },
30835
+ wrapperCol: {
30836
+ span: 12
30837
+ }
30838
+ }), props.formItem)
30839
+ })
30840
+ )
30841
+ ), /* @__PURE__ */ React__default.createElement(
30842
+ Grid.Col,
30843
+ {
30844
+ className: "easy-email-pro-theme-PixelAndPercentField-unit",
30845
+ span: 6
30846
+ },
30847
+ /* @__PURE__ */ React__default.createElement(
30848
+ Form.Item,
30684
30849
  {
30685
- disabled: props.disabled,
30686
- value: unit,
30687
- onChange: onChangeUnit
30850
+ labelCol: {
30851
+ span: 0,
30852
+ style: { lineHeight: 1.15 }
30853
+ },
30854
+ wrapperCol: { span: 24 }
30688
30855
  },
30689
- /* @__PURE__ */ React__default.createElement(Select$1.Option, { value: "px" }, t("px")),
30690
- /* @__PURE__ */ React__default.createElement(Select$1.Option, { value: "" }, t("%"))
30856
+ /* @__PURE__ */ React__default.createElement(
30857
+ Select$1,
30858
+ {
30859
+ disabled: props.disabled,
30860
+ value: unit,
30861
+ onChange: onChangeUnit
30862
+ },
30863
+ /* @__PURE__ */ React__default.createElement(Select$1.Option, { value: "px" }, t("px")),
30864
+ /* @__PURE__ */ React__default.createElement(Select$1.Option, { value: "" }, t("%"))
30865
+ )
30691
30866
  )
30692
- )));
30867
+ ));
30693
30868
  }, [label, onChangeUnit, props.disabled, props.formItem, rest, unit]);
30694
30869
  }
30695
30870
  function ImageWidth(props) {
@@ -30778,7 +30953,7 @@ function Direction(props) {
30778
30953
  }, rest), {
30779
30954
  formItem: __spreadProps(__spreadValues({}, rest.formItem), {
30780
30955
  wrapperCol: __spreadProps(__spreadValues({}, (_a2 = rest.formItem) == null ? void 0 : _a2.wrapperCol), {
30781
- span: 15
30956
+ span: 14
30782
30957
  })
30783
30958
  })
30784
30959
  })
package/lib/style.css CHANGED
@@ -30,6 +30,101 @@
30
30
  display: flex;
31
31
  align-items: center;
32
32
  justify-content: center;
33
+ }
34
+ .LayoutItemList * .LayoutWrapperItem {
35
+ position: relative;
36
+ cursor: grab;
37
+ color: rgb(85, 85, 85);
38
+ background-color: #fff;
39
+ }
40
+ .LayoutItemList * .LayoutWrapperItem .LayoutItemOuter {
41
+ position: relative;
42
+ width: 100%;
43
+ z-index: 1;
44
+ padding: 10px;
45
+ }
46
+ .LayoutItemList * .LayoutWrapperItem .LayoutItemInner {
47
+ height: 36px;
48
+ border: 1px solid rgb(85, 85, 85);
49
+ border-radius: 3px;
50
+ overflow: hidden;
51
+ display: flex;
52
+ }
53
+ .LayoutItemList * .LayoutWrapperItem .LayoutItemInnerPart {
54
+ border-right: 1px solid rgb(85, 85, 85);
55
+ height: 100%;
56
+ display: flex;
57
+ align-items: center;
58
+ justify-content: center;
59
+ }
60
+
61
+ .LayoutWrapperItemList {
62
+ box-sizing: border-box;
63
+ }
64
+ .LayoutWrapperItemList .LayoutItem {
65
+ position: relative;
66
+ cursor: grab;
67
+ color: rgb(85, 85, 85);
68
+ background-color: #fff;
69
+ }
70
+ .LayoutWrapperItemList .LayoutItem .LayoutItemOuter {
71
+ position: relative;
72
+ width: 100%;
73
+ z-index: 1;
74
+ padding: 10px;
75
+ border: 1px solid rgb(229, 229, 229);
76
+ }
77
+ .LayoutWrapperItemList .LayoutItem .LayoutItemOuter:hover {
78
+ box-shadow: inset 0px 0px 2px #ccc;
79
+ }
80
+ .LayoutWrapperItemList .LayoutItem .LayoutItemInner {
81
+ height: 36px;
82
+ border: 1px solid rgb(85, 85, 85);
83
+ border-radius: 3px;
84
+ overflow: hidden;
85
+ display: flex;
86
+ }
87
+ .LayoutWrapperItemList .LayoutItem .LayoutItemInnerPart {
88
+ border-right: 1px solid rgb(85, 85, 85);
89
+ height: 100%;
90
+ display: flex;
91
+ align-items: center;
92
+ justify-content: center;
93
+ }
94
+ .LayoutWrapperItemList .LayoutWrapperItemRowTitle {
95
+ padding-left: 10px;
96
+ }
97
+ .LayoutWrapperItemList .LayoutWrapperItem {
98
+ position: relative;
99
+ cursor: grab;
100
+ color: rgb(85, 85, 85);
101
+ background-color: #fff;
102
+ border: 1px solid rgb(229, 229, 229);
103
+ border-radius: 3px;
104
+ margin-bottom: 16px;
105
+ }
106
+ .LayoutWrapperItemList .LayoutWrapperItem:hover {
107
+ box-shadow: 1px 1px 2px #ccc;
108
+ }
109
+ .LayoutWrapperItemList .LayoutWrapperItem .LayoutItemOuter {
110
+ position: relative;
111
+ width: 100%;
112
+ z-index: 1;
113
+ padding: 10px;
114
+ }
115
+ .LayoutWrapperItemList .LayoutWrapperItem .LayoutItemInner {
116
+ height: 36px;
117
+ border: 1px solid rgb(85, 85, 85);
118
+ border-radius: 3px;
119
+ overflow: hidden;
120
+ display: flex;
121
+ }
122
+ .LayoutWrapperItemList .LayoutWrapperItem .LayoutItemInnerPart {
123
+ border-right: 1px solid rgb(85, 85, 85);
124
+ height: 100%;
125
+ display: flex;
126
+ align-items: center;
127
+ justify-content: center;
33
128
  }.BlockSideBar-BlockList {
34
129
  --block-grid-item-size: 100px;
35
130
  }
@@ -241,6 +336,36 @@
241
336
  display: flex;
242
337
  align-items: center;
243
338
  justify-content: center;
339
+ }.easy-email-pro-theme-PixelAndPercentField .easy-email-pro-theme-PixelAndPercentField-number .arco-input-inner-wrapper {
340
+ border-top-right-radius: 0;
341
+ border-bottom-right-radius: 0;
342
+ }
343
+ .easy-email-pro-theme-PixelAndPercentField .easy-email-pro-theme-PixelAndPercentField-unit .arco-select-view {
344
+ border-top-left-radius: 0;
345
+ border-bottom-left-radius: 0;
346
+ border-left: 0;
347
+ }
348
+
349
+ .easy-email-pro-theme-color-picker-trigger {
350
+ border-top-left-radius: var(--border-radius-small) !important;
351
+ border-bottom-left-radius: var(--border-radius-small) !important;
352
+ }
353
+
354
+ .easy-email-pro-theme-color-picker-input .arco-input-inner-wrapper {
355
+ border-top-left-radius: 0 !important;
356
+ border-bottom-left-radius: 0 !important;
357
+ border-left: 0 !important;
358
+ }
359
+
360
+ .arco-radio-group-type-button .arco-radio-button::after {
361
+ content: " ";
362
+ display: block;
363
+ position: absolute;
364
+ top: -4px;
365
+ left: -4px;
366
+ right: -4px;
367
+ bottom: -4px;
368
+ background-color: var(--color-fill-2);
244
369
  }.easy-email-pro-editor-controller {
245
370
  font-size: 14px;
246
371
  background: #fff;
@@ -0,0 +1,6 @@
1
+ import { CategoryLayoutSectionItemPayload } from "../../../typings";
2
+ import React from "react";
3
+ export declare const SectionLayout: ({ columns, title, }: {
4
+ columns: CategoryLayoutSectionItemPayload[];
5
+ title: string;
6
+ }) => React.JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { CategoryLayoutWrapperItemPayload } from "../../../typings";
2
+ import React from "react";
3
+ export declare const WrapperLayout: ({ variants, title, }: {
4
+ variants: CategoryLayoutWrapperItemPayload["variants"];
5
+ title: string;
6
+ }) => React.JSX.Element;
@@ -1,6 +1,3 @@
1
- import React from "react";
2
1
  import "./index.scss";
3
- export declare const LayoutItem: ({ columns, title, }: {
4
- columns: string[][];
5
- title: string;
6
- }) => React.JSX.Element;
2
+ export * from "./SectionLayout";
3
+ export * from "./WrapperLayout";
@@ -57,14 +57,28 @@ export interface CategoryMenuItem<T extends keyof ElementMap = any> {
57
57
  }>;
58
58
  displayType?: "menu";
59
59
  }
60
+ export type CategoryLayoutSectionItemPayload = Array<string>;
61
+ export type CategoryLayoutWrapperItemPayload = {
62
+ title: string;
63
+ variants: Array<{
64
+ sections: Array<{
65
+ columns: string[];
66
+ }>;
67
+ }>;
68
+ };
60
69
  export type Categories = Array<CategoryGridItem | CategoryMenuItem | {
61
70
  label: string;
62
71
  active?: boolean;
63
72
  blocks: Array<{
64
- payload: string[][];
73
+ payload: Array<CategoryLayoutSectionItemPayload>;
65
74
  title: string | undefined;
66
75
  }>;
67
76
  displayType: "column";
77
+ } | {
78
+ label: string;
79
+ active?: boolean;
80
+ blocks: Array<CategoryLayoutWrapperItemPayload>;
81
+ displayType: "section";
68
82
  } | {
69
83
  label: string;
70
84
  active?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easy-email-pro-theme",
3
- "version": "1.51.0",
3
+ "version": "1.51.1",
4
4
  "description": "",
5
5
  "files": [
6
6
  "lib"